From 33e6766d410a374a709cbc05e2f6be0f83ccbfed Mon Sep 17 00:00:00 2001 From: ahmed elias Date: Tue, 25 Jul 2017 20:56:22 +0200 Subject: [PATCH 001/125] adding all changes from ornage private branch --- openair2/COMMON/rrc_messages_types.h | 37 + openair2/ENB_APP/enb_config.c | 942 ++++++++++----- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 1515 ++++++++++++++++++++++--- openair2/RRC/LITE/MESSAGES/asn1_msg.h | 2 +- openair2/RRC/LITE/rrc_eNB.c | 19 +- 5 files changed, 2023 insertions(+), 492 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index cd8b533dd3..91ac072384 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -166,6 +166,43 @@ typedef struct RrcConfigurationReq_s { long ue_TimersAndConstants_n310[MAX_NUM_CCs]; long ue_TimersAndConstants_n311[MAX_NUM_CCs]; long ue_TransmissionMode[MAX_NUM_CCs]; + + + //MIB + long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs]; + //SIB1 BR options + + + uint16_t* hyperSFN_r13[MAX_NUM_CCs]; + long* eDRX_Allowed_r13[MAX_NUM_CCs]; + BOOLEAN_t cellSelectionInfoCE_r13[MAX_NUM_CCs]; + long q_RxLevMinCE_r13[MAX_NUM_CCs]; + long* q_QualMinRSRQ_CE_r13[MAX_NUM_CCs]; + BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13[MAX_NUM_CCs]; + long si_WindowLength_BR_r13[MAX_NUM_CCs]; + long si_RepetitionPattern_r13[MAX_NUM_CCs]; + BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13[MAX_NUM_CCs]; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13[MAX_NUM_CCs]; + uint16_t fdd_UplinkSubframeBitmapBR_r13[MAX_NUM_CCs]; + long startSymbolBR_r13[MAX_NUM_CCs]; + long si_HoppingConfigCommon_r13[MAX_NUM_CCs]; + long* si_ValidityTime_r13[MAX_NUM_CCs]; + BOOLEAN_t freqHoppingParametersDL_r13[MAX_NUM_CCs]; + long* mpdcch_pdsch_HoppingNB_r13[MAX_NUM_CCs]; + BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13[MAX_NUM_CCs]; + long interval_DLHoppingConfigCommonModeA_r13_val[MAX_NUM_CCs]; + BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13[MAX_NUM_CCs]; + long interval_DLHoppingConfigCommonModeB_r13_val[MAX_NUM_CCs]; + long* mpdcch_pdsch_HoppingOffset_r13[MAX_NUM_CCs]; + + + //SIB2 BR Options + long* preambleTransMax_CE_r13[MAX_NUM_CCs]; + BOOLEAN_t prach_ConfigCommon_v1310[MAX_NUM_CCs]; + BOOLEAN_t* mpdcch_startSF_CSS_RA_r13[MAX_NUM_CCs]; + long mpdcch_startSF_CSS_RA_r13_val[MAX_NUM_CCs]; + long* prach_HoppingOffset_r13[MAX_NUM_CCs]; + } RrcConfigurationReq; // UE: NAS -> RRC messages diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index ae3c7d5bfb..39c181319a 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -299,6 +299,38 @@ #define CONFIG_STRING_RU_MAX_RXGAIN "max_rxgain" #define CONFIG_STRING_RU_IF_COMPRESSION "if_compression" +#define ENB_CONFIG_STRING_BR "br_parameters" +#define ENB_CONFIG_STRING_schedulingInfoSIB1 "schedulingInfoSIB1_BR_r13" + +#define ENB_CONFIG_STRING_HYPERSFN "hyperSFN_r13" +#define ENB_CONFIG_STRING_EDRX_ALLOWED "eDRX_Allowed_r13" +#define ENB_CONFIG_STRING_CELLSELECTIONINFOCE "cellSelectionInfoCE_r13" +#define ENB_CONFIG_STRING_Q_RXLEVMINCE "q_RxLevMinCE_r13" +#define ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE "q_QualMinRSRQ_CE_r13" +#define ENB_CONFIG_STRING_BRAccessRelatedInfo "bandwidthReducedAccessRelatedInfo_r13" + +#define ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR "si_WindowLength_BR_r13" +#define ENB_CONFIG_STRING_SI_REPETITIONPATTERN "si_RepetitionPattern_r13" +#define ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR "fdd_DownlinkOrTddSubframeBitmapBR_r13" +#define ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" +#define ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR "fdd_UplinkSubframeBitmapBR_r13" +#define ENB_CONFIG_STRING_STARTSYMBOLBR "startSymbolBR_r13" +#define ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON "si_HoppingConfigCommon_r13" +#define ENB_CONFIG_STRING_SI_VALIDITYTIME "si_ValidityTime_r13" +#define ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL "freqHoppingParametersDL_r13" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB "mpdcch_pdsch_HoppingNB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEA "interval_DLHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEA_VAL "interval_DLHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB "interval_DLHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL "interval_DLHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET "mpdcch_pdsch_HoppingOffset_r13" + + +#define ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13 "preambleTransMax_CE_r13" +#define ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310 "prach_ConfigCommon_v1310" +#define ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13 "mpdcch_startSF_CSS_RA_r13" +#define ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL "mpdcch_startSF_CSS_RA_r13_val" +#define ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13 "prach_HoppingOffset_r13" #define KHz (1000UL) #define MHz (1000 * KHz) @@ -881,6 +913,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_setting_t *setting_enb = NULL; config_setting_t *setting_otg = NULL; config_setting_t *subsetting_otg = NULL; +#if defined(Rel14) + config_setting_t *setting_br13 = NULL; +#endif // REL14 int parse_errors = 0; int num_enbs = 0; int num_mme_address = 0; @@ -1041,28 +1076,32 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_destroy(&cfg); AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); } - } else { - config_destroy(&cfg); - AssertFatal (0, "No eNB configuration file provided!\n"); - } + } + else { + config_destroy(&cfg); + AssertFatal(0, "No eNB configuration file provided!\n"); + } #if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { - asn_debug = 0; - asn1_xer_print = 0; - } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { - asn_debug = 1; - asn1_xer_print = 1; - } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { - asn_debug = 1; - asn1_xer_print = 2; - } else { - asn_debug = 0; - asn1_xer_print = 0; - } - } + asn_debug = 0; + asn1_xer_print = 0; + } + else if (strcasecmp(astring, ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { + asn_debug = 1; + asn1_xer_print = 1; + } + else if (strcasecmp(astring, ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { + asn_debug = 1; + asn1_xer_print = 2; + } + else { + asn_debug = 0; + asn1_xer_print = 0; + } + } #endif @@ -1325,26 +1364,30 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL; - } else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } #ifdef Rel14 - if (!pbch_repetition) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 1; - } else if (strcmp(pbch_repetition, "FALSE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 0; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", + if (!pbch_repetition) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); + else if (strcmp(pbch_repetition, "TRUE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; + } + else if (strcmp(pbch_repetition, "FALSE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", RC.config_file_name, i, pbch_repetition); } #endif @@ -1368,13 +1411,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, N_RB_DL); } - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = FDD; - } else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = TDD; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + if (strcmp(frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; + } + else if (strcmp(frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", RC.config_file_name, i, frame_type); } @@ -1396,14 +1441,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL; - } else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); } @@ -1455,12 +1502,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = TRUE; - } else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RRC_CONFIGURATION_REQ(msg_p).prach_high_speed[j] = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prach_high_speed[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", RC.config_file_name, i, prach_high_speed); RRC_CONFIGURATION_REQ (msg_p).prach_zero_correlation[j] =prach_zero_correlation; @@ -1533,14 +1582,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode,"interSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } else if (strcmp(pusch_hoppingMode,"intraAndInterSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingOffset[j] = pusch_hoppingOffset; @@ -1554,25 +1605,29 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = TRUE; - } else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); + RRC_CONFIGURATION_REQ(msg_p).pusch_enable64QAM[j] = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_enable64QAM[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); - if (!pusch_groupHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = TRUE; - } else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_groupHoppingEnabled[j] = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_groupHoppingEnabled[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", RC.config_file_name, i, pusch_groupHoppingEnabled); @@ -1587,13 +1642,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = TRUE; - } else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_sequenceHoppingEnabled[j] = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_sequenceHoppingEnabled[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", RC.config_file_name, i, pusch_sequenceHoppingEnabled); RRC_CONFIGURATION_REQ (msg_p).pusch_nDMRS1[j] = pusch_nDMRS1; //cyclic_shift in RRC! @@ -1603,38 +1660,46 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", RC.config_file_name, i, pusch_nDMRS1); - if (strcmp(phich_duration,"NORMAL")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_normal; - } else if (strcmp(phich_duration,"EXTENDED")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).phich_duration[j] = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).phich_duration[j] = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); - if (strcmp(phich_resource,"ONESIXTH")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_oneSixth ; - } else if (strcmp(phich_resource,"HALF")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_half; - } else if (strcmp(phich_resource,"ONE")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_one; - } else if (strcmp(phich_resource,"TWO")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_two; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j],phich_resource, - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j],phich_duration); + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + RRC_CONFIGURATION_REQ(msg_p).phich_resource[j], phich_resource, + RRC_CONFIGURATION_REQ(msg_p).phich_duration[j], phich_duration); - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = TRUE; - } else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = FALSE; - } else - AssertFatal (0, + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).srs_enable[j] = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).srs_enable[j] = FALSE; + } + else + AssertFatal(0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", RC.config_file_name, i, srs_enable); @@ -1661,163 +1726,197 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", RC.config_file_name, i, srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = TRUE; - } else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).srs_ackNackST[j] = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).srs_ackNackST[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = TRUE; - } else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).srs_MaxUpPts[j] = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).srs_MaxUpPts[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } - RRC_CONFIGURATION_REQ (msg_p).pusch_p0_Nominal[j] = pusch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).pusch_p0_Nominal[j] = pusch_p0_Nominal; - if ((pusch_p0_Nominal<-126) || (pusch_p0_Nominal>24)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); #ifndef Rel14 - if (strcmp(pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0; - } else if (strcmp(pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al04; - } else if (strcmp(pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al05; - } else if (strcmp(pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al06; - } else if (strcmp(pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al07; - } else if (strcmp(pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al08; - } else if (strcmp(pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al09; - } else if (strcmp(pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1; + } #else - if (strcmp(pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al0; - } else if (strcmp(pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al04; - } else if (strcmp(pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al05; - } else if (strcmp(pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al06; - } else if (strcmp(pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al07; - } else if (strcmp(pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al08; - } else if (strcmp(pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al09; - } else if (strcmp(pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al1; + } #endif - else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); - RRC_CONFIGURATION_REQ (msg_p).pucch_p0_Nominal[j] = pucch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).pucch_p0_Nominal[j] = pucch_p0_Nominal; - if ((pucch_p0_Nominal<-127) || (pucch_p0_Nominal>-96)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); - RRC_CONFIGURATION_REQ (msg_p).msg3_delta_Preamble[j] = msg3_delta_Preamble; + RRC_CONFIGURATION_REQ(msg_p).msg3_delta_Preamble[j] = msg3_delta_Preamble; - if ((msg3_delta_Preamble<-1) || (msg3_delta_Preamble>6)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } else if (strcmp(pucch_deltaF_Format1,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } else if (strcmp(pucch_deltaF_Format1,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } else if (strcmp(pucch_deltaF_Format1b,"deltaF3")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } else if (strcmp(pucch_deltaF_Format1b,"deltaF5")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } else if (strcmp(pucch_deltaF_Format2,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } else if (strcmp(pucch_deltaF_Format2,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2a,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } else if (strcmp(pucch_deltaF_Format2a,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2b,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } else if (strcmp(pucch_deltaF_Format2b,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ (msg_p).rach_numberOfRA_Preambles[j] = (rach_numberOfRA_Preambles/4)-1; + RRC_CONFIGURATION_REQ(msg_p).rach_numberOfRA_Preambles[j] = (rach_numberOfRA_Preambles / 4) - 1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>64) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = TRUE; + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).rach_preamblesGroupAConfig[j] = TRUE; - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", RC.config_file_name, i); @@ -1883,17 +1982,20 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + RRC_CONFIGURATION_REQ(msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); - } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).rach_preamblesGroupAConfig[j] = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", RC.config_file_name, i, rach_preamblesGroupAConfig); RRC_CONFIGURATION_REQ (msg_p).rach_preambleInitialReceivedTargetPower[j] = (rach_preambleInitialReceivedTargetPower+120)/2; @@ -2060,25 +2162,33 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_fourT; - } else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_twoT; - } else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneT; - } else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_halfT; - } else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_quarterT; - } else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneEighthT; - } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneSixteenthT; - } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneThirtySecondT; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", RC.config_file_name, i, pcch_defaultPagingCycle); @@ -2375,7 +2485,228 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ue_TransmissionMode); break; } - } + + setting_br13 = config_setting_get_member(setting_enb, ENB_CONFIG_STRING_BR); + if (setting_br13 != NULL) + { + int hyperSFN_r13; + int eDRX_Allowed_r13; + int q_RxLevMinCE_r13; + int q_QualMinRSRQ_CE_r13; + int si_WindowLength_BR_r13; + int si_RepetitionPattern_r13; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + int startSymbolBR_r13; + int si_HoppingConfigCommon_r13; + int si_ValidityTime_r13; + int mpdcch_pdsch_HoppingNB_r13; + int interval_DLHoppingConfigCommonModeA_r13_val; + int interval_DLHoppingConfigCommonModeB_r13_val; + int mpdcch_pdsch_HoppingOffset_r13; + int preambleTransMax_CE_r13; + int mpdcch_startSF_CSS_RA_r13_val; + int prach_HoppingOffset_r13; + int schedulingInfoSIB1_BR_r13; + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13; + + + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", + RC.config_file_name, i); + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j] = calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j] = (uint16_t)hyperSFN_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j] = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j] = eDRX_Allowed_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j] = NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j] = q_RxLevMinCE_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j] = q_QualMinRSRQ_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || + !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + + + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + + /////SIB2 Parameters + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).preambleTransMax_CE_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).preambleTransMax_CE_r13[j] = preambleTransMax_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).preambleTransMax_CE_r13[j] = NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).prach_ConfigCommon_v1310[j] = TRUE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = calloc(1, sizeof(BOOLEAN_t)); + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13_val[j] = mpdcch_startSF_CSS_RA_r13_val; + + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).prach_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).prach_HoppingOffset_r13[j] = prach_HoppingOffset_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).prach_HoppingOffset_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).prach_ConfigCommon_v1310[j] = TRUE; + } + else + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + } } setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); @@ -2539,22 +2870,26 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5)/5; - } else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300)/50 + 50; - } else { - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; + } + else if (srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_timer_poll_retransmit); + } - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit/5; - } else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300)/50 + 51; - } else { - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + if (srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; + } + else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", RC.config_file_name, i, srb1_timer_status_prohibit); } @@ -2686,14 +3021,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } + RC.config_file_name, i, srb1_timer_reordering); + } - } else { - rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; - rrc->srb1_timer_reordering = T_Reordering_ms35; - rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; - rrc->srb1_poll_pdu = PollPDU_p4; + } + else { + rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; + rrc->srb1_timer_reordering = T_Reordering_ms35; + rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; + rrc->srb1_poll_pdu = PollPDU_p4; rrc->srb1_poll_byte = PollByte_kBinfinity; rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; } diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 70f27a7cf5..01c95845d6 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -72,6 +72,8 @@ #include "SystemInformation.h" #include "SystemInformationBlockType1.h" +#include "SystemInformationBlockType1-BR-r13.h" + #include "SIB-Type.h" @@ -190,7 +192,7 @@ uint8_t get_adjacent_cell_mod_id(uint16_t phyCellId) return 0xFF; //error! } -uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame) +uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame, uint32_t schedulingInfoSIB1) { asn_enc_rval_t enc_rval; @@ -244,6 +246,7 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich #ifndef Rel14 mib->message.spare.size = 2; mib->message.spare.bits_unused = 6; // This makes a spare of 10 bits + mib->message.schedulingInfoSIB1_BR_r13 = schedulingInfoSIB1; // turn on eMTC #else mib->message.spare.size = 1; mib->message.spare.bits_unused = 3; // This makes a spare of 5 bits @@ -301,7 +304,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, uint8_t *buffer = carrier->SIB1; BCCH_DL_SCH_Message_t *bcch_message = &carrier->siblock1; - SystemInformationBlockType1_t **sib1 = &carrier->sib1; + SystemInformationBlockType1_BR_r13_t **sib1_br = &carrier->sib1; memset(bcch_message,0,sizeof(BCCH_DL_SCH_Message_t)); @@ -309,7 +312,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, bcch_message->message.choice.c1.present = BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1; // memcpy(&bcch_message.message.choice.c1.choice.systemInformationBlockType1,sib1,sizeof(SystemInformationBlockType1_t)); - *sib1 = &bcch_message->message.choice.c1.choice.systemInformationBlockType1; + *sib1_br = &bcch_message->message.choice.c1.choice.systemInformationBlockType1; memset(&PLMN_identity_info,0,sizeof(PLMN_IdentityInfo_t)); memset(&schedulingInfo,0,sizeof(SchedulingInfo_t)); @@ -370,90 +373,401 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, //assign_enum(&PLMN_identity_info.cellReservedForOperatorUse,PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved); PLMN_identity_info.cellReservedForOperatorUse=PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved; - ASN_SEQUENCE_ADD(&(*sib1)->cellAccessRelatedInfo.plmn_IdentityList.list,&PLMN_identity_info); + ASN_SEQUENCE_ADD(&(*sib1_br)->cellAccessRelatedInfo.plmn_IdentityList.list, &PLMN_identity_info); - // 16 bits - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf = MALLOC(2); + // 16 bits + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf = MALLOC(2); #if defined(ENABLE_ITTI) - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = (configuration->tac >> 8) & 0xff; - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = (configuration->tac >> 0) & 0xff; + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = (configuration->tac >> 8) & 0xff; + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = (configuration->tac >> 0) & 0xff; #else - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = 0x00; - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = 0x01; + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = 0x00; + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = 0x01; #endif - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.size=2; - (*sib1)->cellAccessRelatedInfo.trackingAreaCode.bits_unused=0; + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.size = 2; + (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.bits_unused = 0; - // 28 bits - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf = MALLOC(8); + // 28 bits + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf = MALLOC(8); #if defined(ENABLE_ITTI) - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[0] = (configuration->cell_identity >> 20) & 0xff; - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[1] = (configuration->cell_identity >> 12) & 0xff; - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[2] = (configuration->cell_identity >> 4) & 0xff; - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[3] = (configuration->cell_identity << 4) & 0xf0; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[0] = (configuration->cell_identity >> 20) & 0xff; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[1] = (configuration->cell_identity >> 12) & 0xff; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[2] = (configuration->cell_identity >> 4) & 0xff; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[3] = (configuration->cell_identity << 4) & 0xf0; #else - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[0] = 0x00; - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[1] = 0x00; - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[2] = 0x00; - (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[3] = 0x10; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[0] = 0x00; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[1] = 0x00; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[2] = 0x00; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[3] = 0x10; #endif - (*sib1)->cellAccessRelatedInfo.cellIdentity.size=4; - (*sib1)->cellAccessRelatedInfo.cellIdentity.bits_unused=4; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.size = 4; + (*sib1_br)->cellAccessRelatedInfo.cellIdentity.bits_unused = 4; - // assign_enum(&(*sib1)->cellAccessRelatedInfo.cellBarred,SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred); - (*sib1)->cellAccessRelatedInfo.cellBarred=SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred; + // assign_enum(&(*sib1)->cellAccessRelatedInfo.cellBarred,SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred); + (*sib1_br)->cellAccessRelatedInfo.cellBarred = SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred; - // assign_enum(&(*sib1)->cellAccessRelatedInfo.intraFreqReselection,SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_allowed); - (*sib1)->cellAccessRelatedInfo.intraFreqReselection=SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_notAllowed; - (*sib1)->cellAccessRelatedInfo.csg_Indication=0; + // assign_enum(&(*sib1)->cellAccessRelatedInfo.intraFreqReselection,SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_allowed); + (*sib1_br)->cellAccessRelatedInfo.intraFreqReselection = SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_notAllowed; + (*sib1_br)->cellAccessRelatedInfo.csg_Indication = 0; - (*sib1)->cellSelectionInfo.q_RxLevMin=-65; - (*sib1)->cellSelectionInfo.q_RxLevMinOffset=NULL; - //(*sib1)->p_Max = CALLOC(1, sizeof(P_Max_t)); - //*((*sib1)->p_Max) = 23; - (*sib1)->freqBandIndicator = + (*sib1_br)->cellSelectionInfo.q_RxLevMin = -65; + (*sib1_br)->cellSelectionInfo.q_RxLevMinOffset = NULL; + //(*sib1)->p_Max = CALLOC(1, sizeof(P_Max_t)); + //*((*sib1)->p_Max) = 23; + (*sib1_br)->freqBandIndicator = #if defined(ENABLE_ITTI) - configuration->eutra_band[CC_id]; + configuration->eutra_band[CC_id]; #else - 7; + 7; #endif - schedulingInfo.si_Periodicity=SchedulingInfo__si_Periodicity_rf8; + schedulingInfo.si_Periodicity = SchedulingInfo__si_Periodicity_rf8; - // This is for SIB2/3 - sib_type=SIB_Type_sibType3; - ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,&sib_type); - ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list,&schedulingInfo); + // This is for SIB2/3 + sib_type = SIB_Type_sibType3; + ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list, &sib_type); + ASN_SEQUENCE_ADD(&(*sib1_br)->schedulingInfoList.list, &schedulingInfo); - // ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,NULL); + // ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,NULL); #if defined(ENABLE_ITTI) - if (configuration->frame_type[CC_id] == TDD) + if (configuration->frame_type[CC_id] == TDD) #endif - { - (*sib1)->tdd_Config = CALLOC(1,sizeof(struct TDD_Config)); + { + (*sib1_br)->tdd_Config = CALLOC(1, sizeof(struct TDD_Config)); - (*sib1)->tdd_Config->subframeAssignment = + (*sib1_br)->tdd_Config->subframeAssignment = #if defined(ENABLE_ITTI) - configuration->tdd_config[CC_id]; + configuration->tdd_config[CC_id]; #else - 3; + 3; // +kogo this was frame_parms->tdd_config #endif - (*sib1)->tdd_Config->specialSubframePatterns = + (*sib1_br)->tdd_Config->specialSubframePatterns = #if defined(ENABLE_ITTI) - configuration->tdd_config_s[CC_id]; + configuration->tdd_config_s[CC_id]; #else - 0; + 0; // +kogo this was frame_parms->tdd_config_S; #endif - } + } - (*sib1)->si_WindowLength=SystemInformationBlockType1__si_WindowLength_ms20; - (*sib1)->systemInfoValueTag=0; - // (*sib1).nonCriticalExtension = calloc(1,sizeof(*(*sib1).nonCriticalExtension)); + (*sib1_br)->si_WindowLength = SystemInformationBlockType1__si_WindowLength_ms20; + (*sib1_br)->systemInfoValueTag = 0; + (*sib1_br)->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v890_IEs_t)); + SystemInformationBlockType1_v890_IEs_t *sib1_br_890 = (*sib1_br)->nonCriticalExtension; + sib1_br_890->lateNonCriticalExtension = NULL; + sib1_br_890->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v920_IEs_t)); + memset(sib1_br_890->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v920_IEs_t)); + + SystemInformationBlockType1_v920_IEs_t *sib1_br_920 = (*sib1_br_890).nonCriticalExtension; + sib1_br_920->ims_EmergencySupport_r9 = NULL; // ptr + sib1_br_920->cellSelectionInfo_v920 = NULL; + sib1_br_920->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1130_IEs_t)); + memset(sib1_br_920->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1130_IEs_t)); + + //////Rel11 + SystemInformationBlockType1_v1130_IEs_t *sib1_br_1130 = sib1_br_920->nonCriticalExtension; + + sib1_br_1130->tdd_Config_v1130 = NULL; // ptr + sib1_br_1130->cellSelectionInfo_v1130 = NULL; // ptr + sib1_br_1130->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1250_IEs_t)); + memset(sib1_br_1130->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1250_IEs_t)); + + + ///Rel12 + SystemInformationBlockType1_v1250_IEs_t *sib1_br_1250 = sib1_br_1130->nonCriticalExtension; + sib1_br_1250->cellAccessRelatedInfo_v1250.category0Allowed_r12 = NULL; // long* + sib1_br_1250->cellSelectionInfo_v1250 = NULL; + sib1_br_1250->freqBandIndicatorPriority_r12 = 0; // long* // FIXME + sib1_br_1250->nonCriticalExtension = NULL; + + + + + ////Rel1310 +#if defined(ENABLE_ITTI) + if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) + { + sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; + + + if (configuration->hyperSFN_r13[CC_id]) + { + sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_br_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_br_1310->hyperSFN_r13->size = 2; + sib1_br_1310->hyperSFN_r13->bits_unused = 6; + } + else + sib1_br_1310->hyperSFN_r13 = NULL; + + if (configuration->eDRX_Allowed_r13[CC_id]) + { + sib1_br_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); + *sib1_br_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; + } + else + sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* + + if (configuration->cellSelectionInfoCE_r13[CC_id]) + { + sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long + if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) + { + sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); + *sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; + } + else + sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; + } + else + sib1_br_1310->cellSelectionInfoCE_r13 = NULL; + + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = configuration->si_WindowLength_BR_r13[CC_id]; // 0 + + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = configuration->si_RepetitionPattern_r13[CC_id]; // 0 + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); + SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); + memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); + schedulinginfo_br_13->si_Narrowband_r13 = 1; + schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + } + else + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); + memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; + } + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], + 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 + = configuration->si_HoppingConfigCommon_r13[CC_id]; + + if (configuration->si_ValidityTime_r13[CC_id]) + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 + = *configuration->si_ValidityTime_r13[CC_id]; + } + else + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + } + else + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; + + sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + + /////Rel1320 + SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; + + + + if (configuration->freqHoppingParametersDL_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + + + if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; + } + else + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; + + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + + if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + + if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } + + if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) + { + + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; + } + else + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + + } + else + sib1_br_1320->freqHoppingParametersDL_r13 = NULL; + + sib1_br_1320->nonCriticalExtension = NULL; + } +#else + sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; + + sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memset(sib1_br_1310->hyperSFN_r13->buf, 0, 2*sizeof(uint8_t)); + sib1_br_1310->hyperSFN_r13->size = 2; + sib1_br_1310->hyperSFN_r13->bits_unused = 6; + + sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* + sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; // (Q_RxLevMin_t) long + sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; // (Q_RxLevMin_t) *long + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_WindowLength_BR_r13_ms20; // 0 + + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_RepetitionPattern_r13_everyRF; // 0 + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); + SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); + memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); + schedulinginfo_br_13->si_Narrowband_r13 = 1; + schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, 0, 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, 0, + 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = 1; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_HoppingConfigCommon_r13_on; + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_ValidityTime_r13_true; + + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + + sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + + /////Rel1320 + SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; + sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__mpdcch_pdsch_HoppingNB_r13_nb2; + + + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13__interval_FDD_r13_int1; + + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13__interval_FDD_r13_int2; + + + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = 1; + + sib1_br_1320->nonCriticalExtension = NULL; +#endif #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message); #endif @@ -512,7 +826,7 @@ uint8_t do_SIB23(uint8_t Mod_id, uint8_t *buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23; BCCH_DL_SCH_Message_t *bcch_message = &RC.rrc[Mod_id]->carrier[CC_id].systemInformation; - SystemInformationBlockType2_t **sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2; + SystemInformationBlockType2_t **sib2_br = &RC.rrc[Mod_id]->carrier[CC_id].sib2; SystemInformationBlockType3_t **sib3 = &RC.rrc[Mod_id]->carrier[CC_id].sib3; #if defined(Rel10) || defined(Rel14) SystemInformationBlockType13_r9_t **sib13 = &RC.rrc[Mod_id]->carrier[CC_id].sib13; @@ -526,8 +840,8 @@ uint8_t do_SIB23(uint8_t Mod_id, exit(-1); } - if (!sib2) { - LOG_E(RRC,"[eNB %d] sib2 is null, exiting\n", Mod_id); + if (!sib2_br) { + LOG_E(RRC,"[eNB %d] sib2_br is null, exiting\n", Mod_id); exit(-1); } @@ -537,7 +851,7 @@ uint8_t do_SIB23(uint8_t Mod_id, } #if defined(Rel10) || defined(Rel14) - LOG_I(RRC,"[eNB %d] Configuration SIB2/3, MBMS = %d\n", Mod_id, MBMS_flag); + LOG_I(RRC,"[eNB %d] Configuration sib2_br/3, MBMS = %d\n", Mod_id, MBMS_flag); #else LOG_I(RRC,"[eNB %d] Configuration SIB2/3\n", Mod_id); #endif @@ -549,7 +863,7 @@ uint8_t do_SIB23(uint8_t Mod_id, sib2_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2; sib3_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3; - *sib2 = &sib2_part->choice.sib2; + *sib2_br = &sib2_part->choice.sib2; *sib3 = &sib3_part->choice.sib3; #if defined(Rel10) || defined(Rel14) @@ -565,252 +879,428 @@ uint8_t do_SIB23(uint8_t Mod_id, // sib2 - (*sib2)->ac_BarringInfo = NULL; + (*sib2_br)->ac_BarringInfo = NULL; #if defined(Rel10) || defined(Rel14) #if 0 - (*sib2)->ssac_BarringForMMTEL_Voice_r9 = NULL; - (*sib2)->ssac_BarringForMMTEL_Video_r9 = NULL; - (*sib2)->ac_BarringForCSFB_r10 = NULL; + (*sib2_br)->ssac_BarringForMMTEL_Voice_r9 = NULL; + (*sib2_br)->ssac_BarringForMMTEL_Video_r9 = NULL; + (*sib2_br)->ac_BarringForCSFB_r10 = NULL; #endif - (*sib2)->ext1 = NULL; - (*sib2)->ext2 = NULL; + (*sib2_br)->ext1 = NULL; + (*sib2_br)->ext2 = NULL; #endif #if defined(ENABLE_ITTI) - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = configuration->rach_numberOfRA_Preambles[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = configuration->rach_numberOfRA_Preambles[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; if (configuration->rach_preamblesGroupAConfig[CC_id]) { - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = CALLOC(1,sizeof(struct RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig)); - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->sizeOfRA_PreamblesGroupA + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->sizeOfRA_PreamblesGroupA = configuration->rach_sizeOfRA_PreamblesGroupA[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messageSizeGroupA + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messageSizeGroupA = configuration->rach_messageSizeGroupA[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messagePowerOffsetGroupB + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messagePowerOffsetGroupB = configuration->rach_messagePowerOffsetGroupB[CC_id]; } - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep = configuration->rach_powerRampingStep[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower = - configuration->rach_preambleInitialReceivedTargetPower[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax = configuration->rach_preambleTransMax[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize = configuration->rach_raResponseWindowSize[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer = - configuration->rach_macContentionResolutionTimer[CC_id]; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = configuration->rach_maxHARQ_Msg3Tx[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep = configuration->rach_powerRampingStep[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower = configuration->rach_preambleInitialReceivedTargetPower[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax = configuration->rach_preambleTransMax[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize = configuration->rach_raResponseWindowSize[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer = configuration->rach_macContentionResolutionTimer[CC_id]; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = configuration->rach_maxHARQ_Msg3Tx[CC_id]; + + // LTE-M +kogo + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); + memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); + + if (configuration->rach_maxHARQ_Msg3Tx[CC_id]) + { + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); + *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = configuration->rach_maxHARQ_Msg3Tx[CC_id]; // to be re-initialized when we find the enum + } + else + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; + + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); + memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); + + RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); + memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t)); + rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = 0; + rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = 63; + rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80; + rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; + rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; + + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); +//--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo // BCCH-Config - (*sib2)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff + (*sib2_br)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff = configuration->bcch_modificationPeriodCoeff[CC_id]; // PCCH-Config - (*sib2)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle + (*sib2_br)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle = configuration->pcch_defaultPagingCycle[CC_id]; - (*sib2)->radioResourceConfigCommon.pcch_Config.nB + (*sib2_br)->radioResourceConfigCommon.pcch_Config.nB = configuration->pcch_nB[CC_id]; // PRACH-Config - (*sib2)->radioResourceConfigCommon.prach_Config.rootSequenceIndex + (*sib2_br)->radioResourceConfigCommon.prach_Config.rootSequenceIndex = configuration->prach_root[CC_id]; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex = configuration->prach_config_index[CC_id]; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag = configuration->prach_high_speed[CC_id]; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig = configuration->prach_zero_correlation[CC_id]; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset = configuration->prach_freq_offset[CC_id]; // PDSCH-Config - (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower + (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower = configuration->pdsch_referenceSignalPower[CC_id]; - (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b + (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b = configuration->pdsch_p_b[CC_id]; // PUSCH-Config - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB = configuration->pusch_n_SB[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode = configuration->pusch_hoppingMode[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset = configuration->pusch_hoppingOffset[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM = configuration->pusch_enable64QAM[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = configuration->pusch_groupHoppingEnabled[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = configuration->pusch_groupAssignment[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = configuration->pusch_sequenceHoppingEnabled[CC_id]; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift = configuration->pusch_nDMRS1[CC_id]; // PUCCH-Config - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift = configuration->pucch_delta_shift[CC_id]; - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI = configuration->pucch_nRB_CQI[CC_id]; - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN = configuration->pucch_nCS_AN[CC_id]; #if !defined(Rel10) && !defined(Rel14) - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN = configuration->pucch_n1_AN[CC_id]; #endif // SRS Config if (configuration->srs_enable[CC_id]==1) { - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present = SoundingRS_UL_ConfigCommon_PR_setup; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig = configuration->srs_BandwidthConfig[CC_id]; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig = configuration->srs_SubframeConfig[CC_id]; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission = configuration->srs_ackNackST[CC_id]; if (configuration->srs_MaxUpPts[CC_id]) { - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts = CALLOC(1,sizeof(long)); - *(*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts=1; + *(*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts=1; } else { - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts = NULL; + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts = NULL; } RC.rrc[Mod_id]->srs_enable[CC_id] = 1; } else { RC.rrc[Mod_id]->srs_enable[CC_id] = 0; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; } // uplinkPowerControlCommon - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH = configuration->pusch_p0_Nominal[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH = configuration->pucch_p0_Nominal[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha = configuration->pusch_alpha[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1 + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1 = configuration->pucch_deltaF_Format1[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b = configuration->pucch_deltaF_Format1b[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2 + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2 = configuration->pucch_deltaF_Format2[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a = configuration->pucch_deltaF_Format2a[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b = configuration->pucch_deltaF_Format2b[CC_id]; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 = configuration->msg3_delta_Preamble[CC_id]; - (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength + (*sib2_br)->radioResourceConfigCommon.ul_CyclicPrefixLength = configuration->ul_CyclicPrefixLength[CC_id]; + // LTE-M - +Kogo + (*sib2_br)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + memset((*sib2_br)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); + (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; + (*sib2_br)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; + + if (configuration->prach_ConfigCommon_v1310[CC_id]) + { + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); + + RSRP_Range_t rsrp_range = 60; + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); + + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL; + + if (configuration->mpdcch_startSF_CSS_RA_r13[CC_id]) + { + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + + if (*configuration->mpdcch_startSF_CSS_RA_r13[CC_id]) + { + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = configuration->mpdcch_startSF_CSS_RA_r13_val[CC_id]; + } + else + { + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = configuration->mpdcch_startSF_CSS_RA_r13_val[CC_id]; + } + } + + if (configuration->prach_HoppingOffset_r13[CC_id]) + { + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *configuration->prach_HoppingOffset_r13[CC_id]; + } + else + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; + + PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t)); + memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); + + prach_parametersce_r13->prach_ConfigIndex_r13 = 3; + prach_parametersce_r13->prach_FreqOffset_r13 = 1; + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long)); + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3; + + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; + long maxavailablenarrowband = 2; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + } + else + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; + + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); + long pucch_info_value1 = 0; + long pucch_info_value2 = 2; + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; +//----------------------------------------------------------------------------------------------------------------------------------------- + + // UE Timers and Constants - (*sib2)->ue_TimersAndConstants.t300 + (*sib2_br)->ue_TimersAndConstants.t300 = configuration->ue_TimersAndConstants_t300[CC_id]; - (*sib2)->ue_TimersAndConstants.t301 + (*sib2_br)->ue_TimersAndConstants.t301 = configuration->ue_TimersAndConstants_t301[CC_id]; - (*sib2)->ue_TimersAndConstants.t310 + (*sib2_br)->ue_TimersAndConstants.t310 = configuration->ue_TimersAndConstants_t310[CC_id]; - (*sib2)->ue_TimersAndConstants.n310 + (*sib2_br)->ue_TimersAndConstants.n310 = configuration->ue_TimersAndConstants_n310[CC_id]; - (*sib2)->ue_TimersAndConstants.t311 + (*sib2_br)->ue_TimersAndConstants.t311 = configuration->ue_TimersAndConstants_t311[CC_id]; - (*sib2)->ue_TimersAndConstants.n311 + (*sib2_br)->ue_TimersAndConstants.n311 = configuration->ue_TimersAndConstants_n311[CC_id]; #else - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles=RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep=RACH_ConfigCommon__powerRampingParameters__powerRampingStep_dB2; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower= + puts("This is a test that #define ITTI is not working"); + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles=RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep=RACH_ConfigCommon__powerRampingParameters__powerRampingStep_dB2; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower= RACH_ConfigCommon__powerRampingParameters__preambleInitialReceivedTargetPower_dBm_100; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax=RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize=RACH_ConfigCommon__ra_SupervisionInfo__ra_ResponseWindowSize_sf10; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer= + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax=RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize=RACH_ConfigCommon__ra_SupervisionInfo__ra_ResponseWindowSize_sf10; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer= RACH_ConfigCommon__ra_SupervisionInfo__mac_ContentionResolutionTimer_sf48; - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = 4; + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = 4; + + // LTE-M +kogo + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); + memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); + *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = PreambleTransMax_n5; // to be re-initialized when we find the enum + (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); + memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); + + RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); + memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t)); + rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = 0; + rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = 63; + rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80; + rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; + rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; + + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); +//--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo // BCCH-Config - (*sib2)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff=BCCH_Config__modificationPeriodCoeff_n2; + (*sib2_br)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff=BCCH_Config__modificationPeriodCoeff_n2; // PCCH-Config - (*sib2)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; - (*sib2)->radioResourceConfigCommon.pcch_Config.nB=PCCH_Config__nB_oneT; + (*sib2_br)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + (*sib2_br)->radioResourceConfigCommon.pcch_Config.nB=PCCH_Config__nB_oneT; // PRACH-Config - (*sib2)->radioResourceConfigCommon.prach_Config.rootSequenceIndex=Mod_id;//0;//384; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex = 0;//3; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag = 0; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig = 1;//12; - (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset = 2; + (*sib2_br)->radioResourceConfigCommon.prach_Config.rootSequenceIndex=Mod_id;//0;//384; + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex = 0;//3; + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag = 0; + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig = 1;//12; + (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset = 2; // PDSCH-Config - (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=0; // corresponds to 24.7 dBm 5 MHz/ 27.7 10 MHz/ 30.7 20 MHz + (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=0; // corresponds to 24.7 dBm 5 MHz/ 27.7 10 MHz/ 30.7 20 MHz - (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b=0; + (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b=0; // this is different ,, // PUSCH-Config - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB=1; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode=PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset=0; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM=0; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled=1; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH=0; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled=0; - (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift=0; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB=1; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode=PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset=0; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM=0; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled=1; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH=0; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled=0; + (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift=0; // PUCCH-Config - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift=PUCCH_ConfigCommon__deltaPUCCH_Shift_ds1; - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI = 1; - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN = 0; - (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN = 32; + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift=PUCCH_ConfigCommon__deltaPUCCH_Shift_ds1; + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI = 1; + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN = 0; + (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN = 32; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; - (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; + (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; // uplinkPowerControlCommon - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH = -108; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH = -108; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha=UplinkPowerControlCommon__alpha_al1; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1=DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b=DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH = -108; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH = -108; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha=UplinkPowerControlCommon__alpha_al1; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1=DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b=DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2=DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2=DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a=DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a=DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b=DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b=DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 = 6; + (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 = 6; - (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength=UL_CyclicPrefixLength_len1; + (*sib2_br)->radioResourceConfigCommon.ul_CyclicPrefixLength=UL_CyclicPrefixLength_len1; - (*sib2)->ue_TimersAndConstants.t300=UE_TimersAndConstants__t300_ms1000; + // LTE-M - +Kogo + (*sib2_br)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + memset((*sib2_br)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); + (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; + (*sib2_br)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); - (*sib2)->ue_TimersAndConstants.t301=UE_TimersAndConstants__t301_ms1000; + RSRP_Range_t rsrp_range = 60; + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); - (*sib2)->ue_TimersAndConstants.t310=UE_TimersAndConstants__t310_ms1000; + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13__fdd_r13_v5; + (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; - (*sib2)->ue_TimersAndConstants.n310=UE_TimersAndConstants__n310_n20; + PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t)); + memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); - (*sib2)->ue_TimersAndConstants.t311=UE_TimersAndConstants__t311_ms10000; + prach_parametersce_r13->prach_ConfigIndex_r13 = 3; + prach_parametersce_r13->prach_FreqOffset_r13 = 1; + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long)); + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3; - (*sib2)->ue_TimersAndConstants.n311=UE_TimersAndConstants__n311_n1; + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; + long maxavailablenarrowband = 2; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); + memset((*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); + long pucch_info_value1 = 0; + long pucch_info_value2 = 2; + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); + ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; +//----------------------------------------------------------------------------------------------------------------------------------------- + + (*sib2_br)->ue_TimersAndConstants.t300=UE_TimersAndConstants__t300_ms1000; + + (*sib2_br)->ue_TimersAndConstants.t301=UE_TimersAndConstants__t301_ms1000; + + (*sib2_br)->ue_TimersAndConstants.t310=UE_TimersAndConstants__t310_ms1000; + + (*sib2_br)->ue_TimersAndConstants.n310=UE_TimersAndConstants__n310_n20; + + (*sib2_br)->ue_TimersAndConstants.t311=UE_TimersAndConstants__t311_ms10000; + + (*sib2_br)->ue_TimersAndConstants.n311=UE_TimersAndConstants__n311_n1; #endif - (*sib2)->freqInfo.additionalSpectrumEmission = 1; - (*sib2)->freqInfo.ul_CarrierFreq = NULL; - (*sib2)->freqInfo.ul_Bandwidth = NULL; + (*sib2_br)->freqInfo.additionalSpectrumEmission = 1; + (*sib2_br)->freqInfo.ul_CarrierFreq = NULL; + (*sib2_br)->freqInfo.ul_Bandwidth = NULL; // (*sib2)->mbsfn_SubframeConfigList = NULL; #if defined(Rel10) || defined(Rel14) @@ -818,8 +1308,8 @@ uint8_t do_SIB23(uint8_t Mod_id, if (MBMS_flag > 0) { LOG_I(RRC,"Adding MBSFN subframe Configuration 1 to SIB2\n"); MBSFN_SubframeConfig_t *sib2_mbsfn_SubframeConfig1; - (*sib2)->mbsfn_SubframeConfigList = CALLOC(1,sizeof(struct MBSFN_SubframeConfigList)); - MBSFNSubframeConfigList = (*sib2)->mbsfn_SubframeConfigList; + (*sib2_br)->mbsfn_SubframeConfigList = CALLOC(1,sizeof(struct MBSFN_SubframeConfigList)); + MBSFNSubframeConfigList = (*sib2_br)->mbsfn_SubframeConfigList; sib2_mbsfn_SubframeConfig1= CALLOC(1,sizeof(*sib2_mbsfn_SubframeConfig1)); memset((void*)sib2_mbsfn_SubframeConfig1,0,sizeof(*sib2_mbsfn_SubframeConfig1)); @@ -849,17 +1339,17 @@ uint8_t do_SIB23(uint8_t Mod_id, sib2_mbsfn_SubframeConfig2->subframeAllocation.choice.oneFrame.bits_unused= 2; sib2_mbsfn_SubframeConfig2->subframeAllocation.choice.oneFrame.buf[0]=0x07<<2; - + ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig2); } } #else // no MBMS transmission - (*sib2)->mbsfn_SubframeConfigList = NULL; + (*sib2_br)->mbsfn_SubframeConfigList = NULL; #endif - (*sib2)->timeAlignmentTimerCommon=TimeAlignmentTimer_infinity;//TimeAlignmentTimer_sf5120; + (*sib2_br)->timeAlignmentTimerCommon=TimeAlignmentTimer_infinity;//TimeAlignmentTimer_sf5120; /// (*SIB3) #if defined(Rel10) || defined(Rel14) @@ -921,7 +1411,7 @@ uint8_t do_SIB23(uint8_t Mod_id, MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.size= 1; MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.buf[0]=0x20<<2; // FDD: SF1 - + MBSFN_Area1->mcch_Config_r9.sf_AllocInfo_r9.bits_unused= 2; @@ -944,7 +1434,7 @@ uint8_t do_SIB23(uint8_t Mod_id, MBSFN_Area2->mcch_Config_r9.sf_AllocInfo_r9.bits_unused= 2; MBSFN_Area2->mcch_Config_r9.sf_AllocInfo_r9.buf[0]=0x04<<2; // FDD: SF6 - + MBSFN_Area2->mcch_Config_r9.signallingMCS_r9= MBSFN_AreaInfo_r9__mcch_Config_r9__signallingMCS_r9_n7; @@ -1253,6 +1743,442 @@ do_RRCConnectionReconfigurationComplete( return((enc_rval.encoded+7)/8); } +uint8_t +do_RRCConnectionSetup_BR( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + int CC_id, + uint8_t* const buffer, + const uint8_t transmission_mode, + const uint8_t Transaction_id, + SRB_ToAddModList_t **SRB_configList, + struct PhysicalConfigDedicated **physicalConfigDedicated) +{ + + asn_enc_rval_t enc_rval; + uint8_t ecause=0; + eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id]; + rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id]; + + long* logicalchannelgroup = NULL; + struct SRB_ToAddMod* SRB1_config = NULL; + struct SRB_ToAddMod__rlc_Config* SRB1_rlc_config = NULL; + struct SRB_ToAddMod__logicalChannelConfig* SRB1_lchan_config = NULL; + struct LogicalChannelConfig__ul_SpecificParameters* SRB1_ul_SpecificParameters = NULL; + + #ifdef CBA + struct PUSCH_CBAConfigDedicated_vlola* pusch_CBAConfigDedicated_vlola = NULL; + long* betaOffset_CBA_Index = NULL; + long* cShift_CBA = NULL; + #endif + PhysicalConfigDedicated_t* physicalConfigDedicated2 = NULL; + + DL_CCCH_Message_t dl_ccch_msg; + + RRCConnectionSetup_t* rrcConnectionSetup = NULL; + + memset((void *)&dl_ccch_msg,0,sizeof(DL_CCCH_Message_t)); + dl_ccch_msg.message.present = DL_CCCH_MessageType_PR_c1; + dl_ccch_msg.message.choice.c1.present = DL_CCCH_MessageType__c1_PR_rrcConnectionSetup; + rrcConnectionSetup = &dl_ccch_msg.message.choice.c1.choice.rrcConnectionSetup; + + // RRCConnectionSetup + // Configure SRB1 + + // *SRB_configList = CALLOC(1,sizeof(*SRB_configList)); + if (*SRB_configList) { + free(*SRB_configList); + } + + *SRB_configList = CALLOC(1,sizeof(SRB_ToAddModList_t)); + + /// SRB1 + SRB1_config = CALLOC(1,sizeof(*SRB1_config)); + + SRB1_config->srb_Identity = 1; + SRB1_rlc_config = CALLOC(1,sizeof(*SRB1_rlc_config)); + SRB1_config->rlc_Config = SRB1_rlc_config; + + SRB1_rlc_config->present = SRB_ToAddMod__rlc_Config_PR_explicitValue; + SRB1_rlc_config->choice.explicitValue.present=RLC_Config_PR_am; +#if defined(ENABLE_ITTI) + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = rrc->srb1_timer_poll_retransmit; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = rrc->srb1_poll_pdu; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = rrc->srb1_poll_byte; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = rrc->srb1_max_retx_threshold; + SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = rrc->srb1_timer_reordering; + SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = rrc->srb1_timer_status_prohibit; +#else + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = T_PollRetransmit_ms20;; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = PollPDU_p4;; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = PollByte_kBinfinity; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t8; + SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms35; + SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = T_StatusProhibit_ms0; +#endif + + SRB1_lchan_config = CALLOC(1,sizeof(*SRB1_lchan_config)); + SRB1_config->logicalChannelConfig = SRB1_lchan_config; + + SRB1_lchan_config->present = SRB_ToAddMod__logicalChannelConfig_PR_explicitValue; + SRB1_ul_SpecificParameters = CALLOC(1,sizeof(*SRB1_ul_SpecificParameters)); + + SRB1_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB1_ul_SpecificParameters; + + + SRB1_ul_SpecificParameters->priority = 1; + + //assign_enum(&SRB1_ul_SpecificParameters->prioritisedBitRate,LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity); + SRB1_ul_SpecificParameters->prioritisedBitRate=LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + + //assign_enum(&SRB1_ul_SpecificParameters->bucketSizeDuration,LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50); + SRB1_ul_SpecificParameters->bucketSizeDuration=LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + + logicalchannelgroup = CALLOC(1,sizeof(long)); + *logicalchannelgroup=0; + SRB1_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup; + + + ASN_SEQUENCE_ADD(&(*SRB_configList)->list,SRB1_config); + + // PhysicalConfigDedicated + + physicalConfigDedicated2 = CALLOC(1,sizeof(*physicalConfigDedicated2)); + *physicalConfigDedicated = physicalConfigDedicated2; + + physicalConfigDedicated2->pdsch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pdsch_ConfigDedicated)); + physicalConfigDedicated2->pucch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pucch_ConfigDedicated)); + + physicalConfigDedicated2->pusch_ConfigDedicated = NULL; + physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH = NULL; + physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH = NULL; + + physicalConfigDedicated2->uplinkPowerControlDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated)); + physicalConfigDedicated2->cqi_ReportConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig)); + + if (rrc->srs_enable[CC_id]) + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); + else + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = NULL; + physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); + physicalConfigDedicated2->schedulingRequestConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->schedulingRequestConfig)); +#ifdef CBA + physicalConfigDedicated2->pusch_CBAConfigDedicated_vlola = CALLOC(1,sizeof(*physicalConfigDedicated2->pusch_CBAConfigDedicated_vlola)); +#endif + // PDSCH + //assign_enum(&physicalConfigDedicated2->pdsch_ConfigDedicated->p_a, + // PDSCH_ConfigDedicated__p_a_dB0); + if (carrier->p_eNB==2) + physicalConfigDedicated2->pdsch_ConfigDedicated->p_a= PDSCH_ConfigDedicated__p_a_dB_3; + else + physicalConfigDedicated2->pdsch_ConfigDedicated->p_a= PDSCH_ConfigDedicated__p_a_dB0; + + // PUCCH + physicalConfigDedicated2->pucch_ConfigDedicated->ackNackRepetition.present=PUCCH_ConfigDedicated__ackNackRepetition_PR_release; + physicalConfigDedicated2->pucch_ConfigDedicated->ackNackRepetition.choice.release=0; + + if (carrier->sib1->tdd_Config == NULL) { + physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode=NULL;//PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing; + } else { //TDD + physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode= CALLOC(1,sizeof(long)); + *(physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode) = + PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_bundling;//PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing; + } + + /// TODO to be reviewed + // UplinkPowerControlDedicated + physicalConfigDedicated2->uplinkPowerControlDedicated->p0_UE_PUSCH = 0; // 0 dB + //assign_enum(&physicalConfigDedicated2->uplinkPowerControlDedicated->deltaMCS_Enabled, + // UplinkPowerControlDedicated__deltaMCS_Enabled_en1); + physicalConfigDedicated2->uplinkPowerControlDedicated->deltaMCS_Enabled= UplinkPowerControlDedicated__deltaMCS_Enabled_en1; + physicalConfigDedicated2->uplinkPowerControlDedicated->accumulationEnabled = 1; // TRUE + physicalConfigDedicated2->uplinkPowerControlDedicated->p0_UE_PUCCH = 0; // 0 dB + physicalConfigDedicated2->uplinkPowerControlDedicated->pSRS_Offset = 0; // 0 dB + physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient = CALLOC(1, + sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient)); + // assign_enum(physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient,FilterCoefficient_fc4); // fc4 dB + *physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient=FilterCoefficient_fc4; // fc4 dB + + // TPC-PDCCH-Config + + // CQI ReportConfig + + /// TODO to be reviewed + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic)); +#if defined(Rel10) || defined(Rel14) + *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic= CQI_ReportModeAperiodic_rm30; +#else + *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI +#endif + physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB + //physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=NULL; + + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; + /* + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup; + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_pmi_ConfigIndex = 0; // Icqi/pmi + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_FormatIndicatorPeriodic.present = CQI_ReportPeriodic__setup__cqi_FormatIndicatorPeriodic_PR_subbandCQI; // subband CQI + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_FormatIndicatorPeriodic.choice.subbandCQI.k=4; + + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.ri_ConfigIndex=NULL; + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.simultaneousAckNackAndCQI=0; + */ + + /// TODO to be reviewed + if (rrc->srs_enable[CC_id]) { + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = + SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = + SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; + if (carrier->sib1->tdd_Config==NULL) { // FDD + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); + if (ue_context_pP->local_uid >=20) + LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); + //the current code will allow for 20 UEs - to be revised for more + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; + } + else { + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) { + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, + carrier->sib1->tdd_Config->subframeAssignment); + } + if (ue_context_pP->local_uid >=6) + LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=17+ue_context_pP->local_uid/2; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; + } + LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid, + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); + + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift= + SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; + } + + //AntennaInfoDedicated + physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); + physicalConfigDedicated2->antennaInfo->present = PhysicalConfigDedicated__antennaInfo_PR_explicitValue; + //assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode, + // AntennaInfoDedicated__transmissionMode_tm2); + + switch (transmission_mode) { + default: + LOG_W(RRC,"At RRCConnectionSetup Transmission mode can only take values 1 or 2! Defaulting to 1!\n"); + case 1: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + + case 2: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + /* + case 3: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1, + sizeof(*physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction)); + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = + AntennaInfoDedicated__codebookSubsetRestriction_PR_n2TxAntenna_tm3; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf= MALLOC(1); + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf[0] = 0xc0; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; + + break; + + case 4: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + + case 5: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + + case 6: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + + case 7: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + */ + } + + + physicalConfigDedicated2->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection.present = AntennaInfoDedicated__ue_TransmitAntennaSelection_PR_release; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection.choice.release = 0; + + // SchedulingRequestConfig + + physicalConfigDedicated2->schedulingRequestConfig->present = SchedulingRequestConfig_PR_setup; + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 3;//ue_context_pP->local_uid; + + if (carrier->sib1->tdd_Config == NULL) { // FDD + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 5+(ue_context_pP->local_uid%10); // Isr = 5 (every 10 subframes, offset=2+UE_id mod3) + } else { + switch (carrier->sib1->tdd_Config->subframeAssignment) { + case 1: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+(ue_context_pP->local_uid&1)+(( + ue_context_pP->local_uid&3)>>1)*5; // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 7 for UE2, 8 for UE3 , 2 for UE4 etc..) + break; + + case 3: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+ + (ue_context_pP->local_uid%3); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) + break; + + case 4: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+ + (ue_context_pP->local_uid&1); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) + break; + + default: + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7; // Isr = 5 (every 10 subframes, offset=2 for all UE0 etc..) + break; + } + } + + + // assign_enum(&physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax, + //SchedulingRequestConfig__setup__dsr_TransMax_n4); + // assign_enum(&physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; + + physicalConfigDedicated2->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; + physicalConfigDedicated2->ext4->csi_RS_ConfigNZPToAddModList_r11 = NULL; + physicalConfigDedicated2->ext4->csi_RS_ConfigZPToAddModList_r11 = NULL; + physicalConfigDedicated2->ext4->csi_RS_ConfigZPToReleaseList_r11 = NULL; + + physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; + physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; + physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; + physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToReleaseList_r11 = NULL; + + + physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); +// memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); + epdcch_setconfig_r11->setConfigId_r11 = 0; + epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; + epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; + //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; + + epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; + epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; + epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; + ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); + + physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL; + physicalConfigDedicated2->ext7->pusch_ConfigDedicated_r13 = NULL; + + physicalConfigDedicated2->ext7->pdcch_CandidateReductions_r13 = NULL; + physicalConfigDedicated2->ext7->pucch_ConfigDedicated_r13 = NULL; + + physicalConfigDedicated2->ext7->cqi_ReportConfig_v1310 = NULL; + + physicalConfigDedicated2->ext7->soundingRS_UL_ConfigDedicated_v1310 = NULL; + physicalConfigDedicated2->ext7->soundingRS_UL_ConfigDedicatedUpPTsExt_r13 = NULL; + physicalConfigDedicated2->ext7->soundingRS_UL_ConfigDedicatedAperiodic_v1310 = NULL; + physicalConfigDedicated2->ext7->soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13 = NULL; + + physicalConfigDedicated2->ext7->csi_RS_Config_v1310 = NULL; + + physicalConfigDedicated2->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; + physicalConfigDedicated2->ext7->ce_Mode_r13->choice.setup = PhysicalConfigDedicated__ext7__ce_Mode_r13__setup_ce_ModeA; + physicalConfigDedicated2->ext7->csi_RS_ConfigNZPToAddModListExt_r13 = NULL; + physicalConfigDedicated2->ext7->csi_RS_ConfigNZPToReleaseListExt_r13 = NULL; + + + rrcConnectionSetup->rrc_TransactionIdentifier = Transaction_id; + rrcConnectionSetup->criticalExtensions.present = RRCConnectionSetup__criticalExtensions_PR_c1; + rrcConnectionSetup->criticalExtensions.choice.c1.present =RRCConnectionSetup__criticalExtensions__c1_PR_rrcConnectionSetup_r8 ; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.srb_ToAddModList = *SRB_configList; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.drb_ToAddModList = NULL; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.drb_ToReleaseList = NULL; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.sps_Config = NULL; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.physicalConfigDedicated = physicalConfigDedicated2; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.mac_MainConfig = NULL; + +#ifdef CBA + betaOffset_CBA_Index = CALLOC(1,sizeof(long)); + cShift_CBA = CALLOC(1,sizeof(long)); + *betaOffset_CBA_Index=10; // need to be changed by Kaijie + *cShift_CBA=4; + physicalConfigDedicated2->pusch_CBAConfigDedicated_vlola->betaOffset_CBA_Index=betaOffset_CBA_Index; + physicalConfigDedicated2->pusch_CBAConfigDedicated_vlola->cShift_CBA=cShift_CBA; + rrcConnectionSetup->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated.sps_CBA_ConfigList_vlola = NULL; +#endif + + +#ifdef XER_PRINT + xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); +#endif + enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, + (void*)&dl_ccch_msg, + buffer, + 100); + AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + +#if defined(ENABLE_ITTI) +# if !defined(DISABLE_XER_SPRINT) + { + char message_string[20000]; + size_t message_string_size; + + if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_CCCH_Message, (void *) &dl_ccch_msg)) > 0) { + MessageDef *msg_p; + + msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB, RRC_DL_CCCH, message_string_size + sizeof (IttiMsgText)); + msg_p->ittiMsg.rrc_dl_ccch.size = message_string_size; + memcpy(&msg_p->ittiMsg.rrc_dl_ccch.text, message_string, message_string_size); + + itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); + } + } +# endif +#endif + +#ifdef USER_MODE + LOG_D(RRC,"RRCConnectionSetup Encoded %d bits (%d bytes), ecause %d\n", + enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); +#endif + + // FREEMEM(SRB_list); + // free(SRB1_config); + // free(SRB1_rlc_config); + // free(SRB1_lchan_config); + // free(SRB1_ul_SpecificParameters); + + return((enc_rval.encoded+7)/8); +} + //------------------------------------------------------------------------------ uint8_t @@ -1806,6 +2732,225 @@ do_UECapabilityEnquiry( return((enc_rval.encoded+7)/8); } +uint16_t +do_RRCConnectionReconfiguration_BR( + const protocol_ctxt_t* const ctxt_pP, + uint8_t *buffer, + uint8_t Transaction_id, + SRB_ToAddModList_t *SRB_list, + DRB_ToAddModList_t *DRB_list, + DRB_ToReleaseList_t *DRB_list2, + struct SPS_Config *sps_Config, + struct PhysicalConfigDedicated *physicalConfigDedicated, + MeasObjectToAddModList_t *MeasObj_list, + ReportConfigToAddModList_t *ReportConfig_list, + QuantityConfig_t *quantityConfig, + MeasIdToAddModList_t *MeasId_list, + MAC_MainConfig_t *mac_MainConfig, + MeasGapConfig_t *measGapConfig, + MobilityControlInfo_t *mobilityInfo, + struct MeasConfig__speedStatePars *speedStatePars, + RSRP_Range_t *rsrp, + C_RNTI_t *cba_rnti, + struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList + *dedicatedInfoNASList + +#if defined(Rel10) || defined(Rel14) + , SCellToAddMod_r10_t *SCell_config +#endif +) +{ + asn_enc_rval_t enc_rval; + + DL_DCCH_Message_t dl_dcch_msg; + RRCConnectionReconfiguration_t *rrcConnectionReconfiguration; + + + memset(&dl_dcch_msg,0,sizeof(DL_DCCH_Message_t)); + + dl_dcch_msg.message.present = DL_DCCH_MessageType_PR_c1; + dl_dcch_msg.message.choice.c1.present = DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration; + rrcConnectionReconfiguration = &dl_dcch_msg.message.choice.c1.choice.rrcConnectionReconfiguration; + + // RRCConnectionReconfiguration + rrcConnectionReconfiguration->rrc_TransactionIdentifier = Transaction_id; + rrcConnectionReconfiguration->criticalExtensions.present = RRCConnectionReconfiguration__criticalExtensions_PR_c1; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.present =RRCConnectionReconfiguration__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r8 ; + + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList = SRB_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList = DRB_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToReleaseList = DRB_list2; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->sps_Config = sps_Config; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->physicalConfigDedicated = physicalConfigDedicated; + #ifdef CBA + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->cba_RNTI_vlola= cba_rnti; + #endif + + // +kogo + physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; + + physicalConfigDedicated->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigNZPToAddModList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigZPToAddModList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigZPToReleaseList_r11 = NULL; + + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToReleaseList_r11 = NULL; + + + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); + // memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); + epdcch_setconfig_r11->setConfigId_r11 = 0; + epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; + epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; + //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; + + epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; + epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; + epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; + ASN_SEQUENCE_ADD(physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); + + physicalConfigDedicated->ext7->pdsch_ConfigDedicated_v1310 = NULL; + physicalConfigDedicated->ext7->pusch_ConfigDedicated_r13 = NULL; + + physicalConfigDedicated->ext7->pdcch_CandidateReductions_r13 = NULL; + + physicalConfigDedicated->ext7->pucch_ConfigDedicated_r13 = NULL; + + physicalConfigDedicated->ext7->cqi_ReportConfig_v1310 = NULL; + + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicated_v1310 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedUpPTsExt_r13 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodic_v1310 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13 = NULL; + + physicalConfigDedicated->ext7->csi_RS_Config_v1310 = NULL; + + physicalConfigDedicated->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; + physicalConfigDedicated->ext7->ce_Mode_r13->choice.setup = PhysicalConfigDedicated__ext7__ce_Mode_r13__setup_ce_ModeA; + physicalConfigDedicated->ext7->csi_RS_ConfigNZPToAddModListExt_r13 = NULL; + physicalConfigDedicated->ext7->csi_RS_ConfigNZPToReleaseListExt_r13 = NULL; + + // +kogo ------------------------------------------------------------------------------------------ + + + if (mac_MainConfig!=NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->present + =RadioResourceConfigDedicated__mac_MainConfig_PR_explicitValue; + memcpy(&rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue, + mac_MainConfig, + sizeof(*mac_MainConfig)); + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig=NULL; + } + + if (MeasId_list != NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); + memset((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig, + 0, sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); + + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measObjectToAddModList = MeasObj_list; + + if (quantityConfig!=NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); + memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig, + (void *)quantityConfig, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = NULL; + } + + if(speedStatePars != NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars)); + memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars, + (void *)speedStatePars,sizeof(*speedStatePars)); + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = NULL; + } + + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->s_Measure= rsrp; + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = NULL; + } + + if (mobilityInfo !=NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo)); + memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo, (void*)mobilityInfo, + sizeof(MobilityControlInfo_t)); + + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = NULL; + } + + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.dedicatedInfoNASList = dedicatedInfoNASList; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO = NULL; + + enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + (void*)&dl_dcch_msg, + buffer, + RRC_BUF_SIZE); + AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %l)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + + #ifdef XER_PRINT + xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)&dl_dcch_msg); + #endif + + #if defined(ENABLE_ITTI) + # if !defined(DISABLE_XER_SPRINT) + { + char message_string[30000]; + size_t message_string_size; + + if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_DCCH_Message, (void *) &dl_dcch_msg)) > 0) { + MessageDef *msg_p; + + msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText)); + msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size; + memcpy(&msg_p->ittiMsg.rrc_dl_dcch.text, message_string, message_string_size); + + itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); + } + } + # endif + #endif + + //#ifdef USER_MODE + LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); + // for (i=0;i<30;i++) + // msg("%x.",buffer[i]); + // msg("\n"); + + //#endif + + return((enc_rval.encoded+7)/8); +} + //------------------------------------------------------------------------------ uint16_t do_RRCConnectionReconfiguration( diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h index 0e03ff9274..9f978dc797 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.h @@ -67,7 +67,7 @@ uint8_t get_adjacent_cell_mod_id(uint16_t phyCellId); @param phich_duration PHICH duration parameter @param frame radio frame number @return size of encoded bit stream in bytes*/ -uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame); +uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame, uint32_t schedulingInfoSIB1); /** \brief Generate configuration for SIB1 (eNB). diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index c733ebdfd4..91c1d91ee6 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -155,9 +155,10 @@ init_SI( #ifdef ENABLE_ITTI configuration->N_RB_DL[CC_id], configuration->phich_resource[CC_id], - configuration->phich_duration[CC_id] + configuration->phich_duration[CC_id], + configuration->schedulingInfoSIB1_BR_r13[CC_id] #else - 50,0,0 + 50, 0, 0, 1 #endif ,0); @@ -3731,6 +3732,7 @@ rrc_eNB_generate_RRCConnectionSetup( //----------------------------------------------------------------------------- { + bool is_mtc = false; LogicalChannelConfig_t *SRB1_logicalChannelConfig; //,*SRB2_logicalChannelConfig; SRB_ToAddModList_t **SRB_configList; SRB_ToAddMod_t *SRB1_config; @@ -3740,15 +3742,26 @@ rrc_eNB_generate_RRCConnectionSetup( T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); SRB_configList = &ue_context_pP->ue_context.SRB_configList; + if (is_mtc) { + do_RRCConnectionSetup_BR(ctxt_pP, + ue_context_pP, + CC_id, + (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, + (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 + rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), + SRB_configList, + &ue_context_pP->ue_context.physicalConfigDedicated); + } else { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size = do_RRCConnectionSetup(ctxt_pP, ue_context_pP, CC_id, (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, - (uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 + (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), SRB_configList, &ue_context_pP->ue_context.physicalConfigDedicated); + } #ifdef RRC_MSG_PRINT LOG_F(RRC,"[MSG] RRC Connection Setup\n"); From 8717669c92569438734361ee95efc618589bc19f Mon Sep 17 00:00:00 2001 From: kogo Date: Wed, 26 Jul 2017 17:36:11 +0200 Subject: [PATCH 002/125] tested do_SIB1 parameters & config file reading --- oai5g_development.config | 2 + oai5g_development.creator | 1 + oai5g_development.files | 3763 ++++++++++++++++++++++++++++++++++++ oai5g_development.includes | 182 ++ 4 files changed, 3948 insertions(+) create mode 100644 oai5g_development.config create mode 100644 oai5g_development.creator create mode 100644 oai5g_development.files create mode 100644 oai5g_development.includes diff --git a/oai5g_development.config b/oai5g_development.config new file mode 100644 index 0000000000..e0284f4257 --- /dev/null +++ b/oai5g_development.config @@ -0,0 +1,2 @@ +// Add predefined macros for your project here. For example: +// #define THE_ANSWER 42 diff --git a/oai5g_development.creator b/oai5g_development.creator new file mode 100644 index 0000000000..e94cbbd302 --- /dev/null +++ b/oai5g_development.creator @@ -0,0 +1 @@ +[General] diff --git a/oai5g_development.files b/oai5g_development.files new file mode 100644 index 0000000000..24c41067c5 --- /dev/null +++ b/oai5g_development.files @@ -0,0 +1,3763 @@ +cmake_targets/at_commands/CMakeLists.txt +cmake_targets/autotests/test.0101/CMakeLists.txt +cmake_targets/autotests/test.0102/CMakeLists.txt +cmake_targets/autotests/test.0103/CMakeLists.txt +cmake_targets/autotests/test.0104/CMakeLists.txt +cmake_targets/autotests/test.0106/CMakeLists.txt +cmake_targets/autotests/test.0107/CMakeLists.txt +cmake_targets/autotests/test.0108/CMakeLists.txt +cmake_targets/autotests/test.0113/CMakeLists.txt +cmake_targets/autotests/test.0114/CMakeLists.txt +cmake_targets/autotests/test.0115/CMakeLists.txt +cmake_targets/autotests/test.0120/CMakeLists.txt +cmake_targets/autotests/run_compilation_autotests.bash +cmake_targets/autotests/run_exec_autotests.bash +cmake_targets/doxygen/CMakeLists.txt +cmake_targets/epc_build_oai/CMakeLists.template +cmake_targets/hss_build/acl.conf.in +cmake_targets/hss_build/CMakeLists.txt +cmake_targets/hss_build/hss.conf.in +cmake_targets/hss_build/hss_fd.conf.in +cmake_targets/lte-simulators/CMakeLists.txt +cmake_targets/lte_noS1_build_oai/CMakeLists.txt +cmake_targets/nas_sim_tools/CMakeLists.txt +cmake_targets/oaisim_build_oai/CMakeLists.template +cmake_targets/oaisim_mme_build_oai/CMakeLists.template +cmake_targets/oaisim_noS1_build_oai/CMakeLists.template +cmake_targets/s1c_mme_test/CMakeLists.template +cmake_targets/tools/MODULES/cmake_useful.cmake +cmake_targets/tools/MODULES/CMakeParseArguments.cmake +cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake +cmake_targets/tools/MODULES/CMakeUserUseBison.cmake +cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake +cmake_targets/tools/MODULES/FindFreeDiameter.cmake +cmake_targets/tools/MODULES/FindGCCXML.cmake +cmake_targets/tools/MODULES/FindGcrypt.cmake +cmake_targets/tools/MODULES/FindGnuTLS.cmake +cmake_targets/tools/MODULES/FindKbuild.cmake +cmake_targets/tools/MODULES/FindLibXml2.cmake +cmake_targets/tools/MODULES/FindMySQL.cmake +cmake_targets/tools/MODULES/FindNettle.cmake +cmake_targets/tools/MODULES/FindPostgreSQL.cmake +cmake_targets/tools/MODULES/FindSCTP.cmake +cmake_targets/tools/MODULES/Kbuild.cmake +cmake_targets/tools/MODULES/kbuild_system.cmake +cmake_targets/tools/MODULES/kmodule.cmake +cmake_targets/tools/MODULES/path_prefixes.cmake +cmake_targets/tools/build_epc +cmake_targets/tools/build_helper +cmake_targets/tools/build_hss +cmake_targets/tools/check_hss_s6a_certificate +cmake_targets/tools/check_mme_s6a_certificate +cmake_targets/tools/create_hss_database +cmake_targets/tools/epc.conf.in +cmake_targets/tools/epc.local.enb.conf.in +cmake_targets/tools/example_enb_exmimo_mme_hss.txt +cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt +cmake_targets/tools/exmimo2_2arxg.lime +cmake_targets/tools/exmimo2_2brxg.lime +cmake_targets/tools/generate_asn1 +cmake_targets/tools/indent_source_code +cmake_targets/tools/init_exmimo2 +cmake_targets/tools/init_nas_nos1 +cmake_targets/tools/Kbuild.cmake +cmake_targets/tools/perf_oai.bash +cmake_targets/tools/run_enb_s1_exmimo +cmake_targets/tools/run_enb_s1_usrp +cmake_targets/tools/run_enb_ue_virt_noS1 +cmake_targets/tools/run_enb_ue_virt_s1 +cmake_targets/tools/run_epc +cmake_targets/tools/run_hss +cmake_targets/tools/s6a.conf.in +cmake_targets/tools/test_helper +cmake_targets/build_oai +cmake_targets/CMakeLists.txt +common/utils/collection/hashtable/COPYING +common/utils/collection/hashtable/hashtable.c +common/utils/collection/hashtable/hashtable.h +common/utils/collection/hashtable/obj_hashtable.c +common/utils/collection/hashtable/obj_hashtable.h +common/utils/collection/COPYING +common/utils/collection/queue.h +common/utils/collection/tree.h +common/utils/itti/assertions.h +common/utils/itti/backtrace.c +common/utils/itti/backtrace.h +common/utils/itti/COPYING +common/utils/itti/intertask_interface.c +common/utils/itti/intertask_interface.h +common/utils/itti/intertask_interface_dump.c +common/utils/itti/intertask_interface_dump.h +common/utils/itti/intertask_interface_init.h +common/utils/itti/intertask_interface_types.h +common/utils/itti/intertask_messages_def.h +common/utils/itti/intertask_messages_types.h +common/utils/itti/itti_types.h +common/utils/itti/memory_pools.c +common/utils/itti/memory_pools.h +common/utils/itti/messages_def.h +common/utils/itti/messages_types.h +common/utils/itti/signals.c +common/utils/itti/signals.h +common/utils/itti/tasks_def.h +common/utils/itti/timer.c +common/utils/itti/timer.h +common/utils/itti/timer_messages_def.h +common/utils/itti/timer_messages_types.h +common/utils/itti_analyzer/common/COPYING +common/utils/itti_analyzer/common/itti_types.h +common/utils/itti_analyzer/common/logs.h +common/utils/itti_analyzer/common/queue.h +common/utils/itti_analyzer/common/rc.h +common/utils/itti_analyzer/libbuffers/buffers.c +common/utils/itti_analyzer/libbuffers/buffers.h +common/utils/itti_analyzer/libbuffers/COPYING +common/utils/itti_analyzer/libbuffers/file.c +common/utils/itti_analyzer/libbuffers/file.h +common/utils/itti_analyzer/libbuffers/socket.c +common/utils/itti_analyzer/libbuffers/socket.h +common/utils/itti_analyzer/libparser/array_type.c +common/utils/itti_analyzer/libparser/array_type.h +common/utils/itti_analyzer/libparser/COPYING +common/utils/itti_analyzer/libparser/enum_type.c +common/utils/itti_analyzer/libparser/enum_type.h +common/utils/itti_analyzer/libparser/enum_value_type.c +common/utils/itti_analyzer/libparser/enum_value_type.h +common/utils/itti_analyzer/libparser/field_type.c +common/utils/itti_analyzer/libparser/field_type.h +common/utils/itti_analyzer/libparser/file_type.c +common/utils/itti_analyzer/libparser/file_type.h +common/utils/itti_analyzer/libparser/fundamental_type.c +common/utils/itti_analyzer/libparser/fundamental_type.h +common/utils/itti_analyzer/libparser/intertask_contexts.h +common/utils/itti_analyzer/libparser/pointer_type.c +common/utils/itti_analyzer/libparser/pointer_type.h +common/utils/itti_analyzer/libparser/reference_type.c +common/utils/itti_analyzer/libparser/reference_type.h +common/utils/itti_analyzer/libparser/struct_type.c +common/utils/itti_analyzer/libparser/struct_type.h +common/utils/itti_analyzer/libparser/typedef_type.c +common/utils/itti_analyzer/libparser/typedef_type.h +common/utils/itti_analyzer/libparser/types.c +common/utils/itti_analyzer/libparser/types.h +common/utils/itti_analyzer/libparser/union_type.c +common/utils/itti_analyzer/libparser/union_type.h +common/utils/itti_analyzer/libparser/xml_parse.c +common/utils/itti_analyzer/libparser/xml_parse.h +common/utils/itti_analyzer/libresolver/COPYING +common/utils/itti_analyzer/libresolver/locate_root.c +common/utils/itti_analyzer/libresolver/locate_root.h +common/utils/itti_analyzer/libresolver/resolvers.c +common/utils/itti_analyzer/libresolver/resolvers.h +common/utils/itti_analyzer/libui/COPYING +common/utils/itti_analyzer/libui/ui_callbacks.c +common/utils/itti_analyzer/libui/ui_callbacks.h +common/utils/itti_analyzer/libui/ui_filters.c +common/utils/itti_analyzer/libui/ui_filters.h +common/utils/itti_analyzer/libui/ui_interface.c +common/utils/itti_analyzer/libui/ui_interface.h +common/utils/itti_analyzer/libui/ui_main_screen.c +common/utils/itti_analyzer/libui/ui_main_screen.h +common/utils/itti_analyzer/libui/ui_menu_bar.c +common/utils/itti_analyzer/libui/ui_menu_bar.h +common/utils/itti_analyzer/libui/ui_notebook.c +common/utils/itti_analyzer/libui/ui_notebook.h +common/utils/itti_analyzer/libui/ui_notif_dlg.c +common/utils/itti_analyzer/libui/ui_notif_dlg.h +common/utils/itti_analyzer/libui/ui_notifications.c +common/utils/itti_analyzer/libui/ui_notifications.h +common/utils/itti_analyzer/libui/ui_signal_dissect_view.c +common/utils/itti_analyzer/libui/ui_signal_dissect_view.h +common/utils/itti_analyzer/libui/ui_tree_view.c +common/utils/itti_analyzer/libui/ui_tree_view.h +common/utils/itti_analyzer/AUTHORS +common/utils/itti_analyzer/autogen.sh +common/utils/itti_analyzer/ChangeLog +common/utils/itti_analyzer/configure.ac +common/utils/itti_analyzer/COPYING +common/utils/itti_analyzer/filters.xml +common/utils/itti_analyzer/filters_mme.xml +common/utils/itti_analyzer/filters_ue_enb.xml +common/utils/itti_analyzer/INSTALL +common/utils/itti_analyzer/itti_analyzer.c +common/utils/itti_analyzer/NEWS +common/utils/itti_analyzer/README +common/utils/msc/msc.c +common/utils/msc/msc.h +common/utils/asn1_conversions.h +common/utils/assertions.h +common/utils/COPYING +openair-cn/COMMON/as_message.h +openair-cn/COMMON/common_types.h +openair-cn/COMMON/gtpv1_u_messages_def.h +openair-cn/COMMON/gtpv1_u_messages_types.h +openair-cn/COMMON/intertask_interface_conf.h +openair-cn/COMMON/ip_forward_messages_def.h +openair-cn/COMMON/ip_forward_messages_types.h +openair-cn/COMMON/messages_def.h +openair-cn/COMMON/messages_types.h +openair-cn/COMMON/mme_app_messages_def.h +openair-cn/COMMON/mme_app_messages_types.h +openair-cn/COMMON/nas_messages_def.h +openair-cn/COMMON/nas_messages_types.h +openair-cn/COMMON/s11_messages_def.h +openair-cn/COMMON/s11_messages_types.h +openair-cn/COMMON/s1ap_messages_def.h +openair-cn/COMMON/s1ap_messages_types.h +openair-cn/COMMON/s6a_messages_def.h +openair-cn/COMMON/s6a_messages_types.h +openair-cn/COMMON/sctp_messages_def.h +openair-cn/COMMON/sctp_messages_types.h +openair-cn/COMMON/security_types.h +openair-cn/COMMON/sgw_lite_def.h +openair-cn/COMMON/sgw_lite_messages_types.h +openair-cn/COMMON/tasks_def.h +openair-cn/COMMON/udp_messages_def.h +openair-cn/COMMON/udp_messages_types.h +openair-cn/DOCS/DOXYGEN/COPYING +openair-cn/DOCS/DOXYGEN/Doxyfile.in +openair-cn/DOCS/Latex/DefaultBearer/COPYING +openair-cn/DOCS/Latex/DefaultBearer/DefaultBearer.pdf +openair-cn/DOCS/Latex/DefaultBearer/DefaultBearer.tex +openair-cn/DOCS/Latex/EPC/COPYING +openair-cn/DOCS/Latex/EPC/EPC.pdf +openair-cn/DOCS/Latex/EPC/EPC.tex +openair-cn/DOCS/Latex/COPYING +openair-cn/DOCS/COPYING +openair-cn/DOCS/EPC_User_Guide.docx +openair-cn/DOCS/EPC_User_Guide.pdf +openair-cn/GTPV1-U/GTPUAH/cmd.sh +openair-cn/GTPV1-U/GTPUAH/COPYING +openair-cn/GTPV1-U/GTPUAH/INSTALL +openair-cn/GTPV1-U/GTPUAH/libxt_GTPUAH.c +openair-cn/GTPV1-U/GTPUAH/README +openair-cn/GTPV1-U/GTPUAH/RELEASE_NOTES +openair-cn/GTPV1-U/GTPUAH/xt_GTPUAH.c +openair-cn/GTPV1-U/GTPUAH/xt_GTPUAH.h +openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h +openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h +openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h +openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwLog.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwTypes.h +openair-cn/GTPV1-U/nw-gtpv1u/shared/NwUtils.h +openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c +openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c +openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c +openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h +openair-cn/GTPV1-U/nw-gtpv1u/AUTHORS +openair-cn/GTPV1-U/nw-gtpv1u/ChangeLog +openair-cn/GTPV1-U/nw-gtpv1u/COPYING +openair-cn/GTPV1-U/nw-gtpv1u/NEWS +openair-cn/GTPV1-U/nw-gtpv1u/README +openair-cn/GTPV1-U/gtpv1u.h +openair-cn/GTPV1-U/gtpv1u_eNB.c +openair-cn/GTPV1-U/gtpv1u_eNB_defs.h +openair-cn/GTPV1-U/gtpv1u_eNB_task.h +openair-cn/GTPV1-U/gtpv1u_sgw_defs.h +openair-cn/GTPV1-U/gtpv1u_task.c +openair-cn/GTPV1-U/gtpv1u_teid_pool.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cLog.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cMsgIeParseInfo.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cPrivate.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cTrxn.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cTunnel.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/queue.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/include/tree.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwError.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2c.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2cIe.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2cMsg.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2cMsgParser.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwLog.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwTypes.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwUtils.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2c.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cMsg.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cMsgIeParseInfo.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cMsgParser.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cTrxn.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cTunnel.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwEgtPingMain.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwEvt.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniLogMgrEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniLogMgrEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniTmrMgrEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniTmrMgrEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUdpEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUdpEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUlpEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUlpEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/helloworld.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwEvt.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniLogMgrEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniLogMgrEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniTmrMgrEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniTmrMgrEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUdpEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUdpEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUlpEntity.c +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUlpEntity.h +openair-cn/GTPV2-C/nwgtpv2c-0.11/AUTHORS +openair-cn/GTPV2-C/nwgtpv2c-0.11/ChangeLog +openair-cn/GTPV2-C/nwgtpv2c-0.11/configure.ac +openair-cn/GTPV2-C/nwgtpv2c-0.11/COPYING +openair-cn/GTPV2-C/nwgtpv2c-0.11/NEWS +openair-cn/GTPV2-C/nwgtpv2c-0.11/README +openair-cn/INTERTASK_INTERFACE/assertions.h +openair-cn/INTERTASK_INTERFACE/backtrace.c +openair-cn/INTERTASK_INTERFACE/backtrace.h +openair-cn/INTERTASK_INTERFACE/COPYING +openair-cn/INTERTASK_INTERFACE/intertask_interface.c +openair-cn/INTERTASK_INTERFACE/intertask_interface.h +openair-cn/INTERTASK_INTERFACE/intertask_interface_dump.c +openair-cn/INTERTASK_INTERFACE/intertask_interface_dump.h +openair-cn/INTERTASK_INTERFACE/intertask_interface_init.h +openair-cn/INTERTASK_INTERFACE/intertask_interface_types.h +openair-cn/INTERTASK_INTERFACE/intertask_messages_def.h +openair-cn/INTERTASK_INTERFACE/intertask_messages_types.h +openair-cn/INTERTASK_INTERFACE/itti_types.h +openair-cn/INTERTASK_INTERFACE/memory_pools.c +openair-cn/INTERTASK_INTERFACE/memory_pools.h +openair-cn/INTERTASK_INTERFACE/messages_def.h +openair-cn/INTERTASK_INTERFACE/messages_types.h +openair-cn/INTERTASK_INTERFACE/signals.c +openair-cn/INTERTASK_INTERFACE/signals.h +openair-cn/INTERTASK_INTERFACE/tasks_def.h +openair-cn/INTERTASK_INTERFACE/timer.c +openair-cn/INTERTASK_INTERFACE/timer.h +openair-cn/INTERTASK_INTERFACE/timer_messages_def.h +openair-cn/INTERTASK_INTERFACE/timer_messages_types.h +openair-cn/MME_APP/COPYING +openair-cn/MME_APP/mme_app_authentication.c +openair-cn/MME_APP/mme_app_bearer.c +openair-cn/MME_APP/mme_app_capabilities.c +openair-cn/MME_APP/mme_app_config.c +openair-cn/MME_APP/mme_app_config.h +openair-cn/MME_APP/mme_app_context.c +openair-cn/MME_APP/mme_app_defs.h +openair-cn/MME_APP/mme_app_extern.h +openair-cn/MME_APP/mme_app_itti_messaging.h +openair-cn/MME_APP/mme_app_location.c +openair-cn/MME_APP/mme_app_main.c +openair-cn/MME_APP/mme_app_statistics.c +openair-cn/MME_APP/mme_app_statistics.h +openair-cn/MME_APP/mme_app_ue_context.h +openair-cn/MME_APP/s6a_2_nas_cause.c +openair-cn/NAS/EURECOM-NAS/bin/COPYING +openair-cn/NAS/EURECOM-NAS/lib/COPYING +openair-cn/NAS/EURECOM-NAS/libMME/COPYING +openair-cn/NAS/EURECOM-NAS/libUE/COPYING +openair-cn/NAS/EURECOM-NAS/src/api/mme/COPYING +openair-cn/NAS/EURECOM-NAS/src/api/mme/mme_api.c +openair-cn/NAS/EURECOM-NAS/src/api/mme/mme_api.h +openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.c +openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.h +openair-cn/NAS/EURECOM-NAS/src/api/network/COPYING +openair-cn/NAS/EURECOM-NAS/src/api/network/l2_message.h +openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.c +openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.h +openair-cn/NAS/EURECOM-NAS/src/api/network/network_api.c +openair-cn/NAS/EURECOM-NAS/src/api/network/network_api.h +openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.c +openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.in +openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.in.bis +openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.out +openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.out.bis +openair-cn/NAS/EURECOM-NAS/src/api/user/tst/smartcom.txt +openair-cn/NAS/EURECOM-NAS/src/api/user/at_command.c +openair-cn/NAS/EURECOM-NAS/src/api/user/at_command.h +openair-cn/NAS/EURECOM-NAS/src/api/user/at_error.c +openair-cn/NAS/EURECOM-NAS/src/api/user/at_error.h +openair-cn/NAS/EURECOM-NAS/src/api/user/at_response.c +openair-cn/NAS/EURECOM-NAS/src/api/user/at_response.h +openair-cn/NAS/EURECOM-NAS/src/api/user/COPYING +openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.c +openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.h +openair-cn/NAS/EURECOM-NAS/src/api/user/user_indication.c +openair-cn/NAS/EURECOM-NAS/src/api/user/user_indication.h +openair-cn/NAS/EURECOM-NAS/src/api/usim/aka_functions.c +openair-cn/NAS/EURECOM-NAS/src/api/usim/aka_functions.h +openair-cn/NAS/EURECOM-NAS/src/api/usim/COPYING +openair-cn/NAS/EURECOM-NAS/src/api/usim/usim_api.c +openair-cn/NAS/EURECOM-NAS/src/api/usim/usim_api.h +openair-cn/NAS/EURECOM-NAS/src/api/COPYING +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachComplete.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachComplete.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachReject.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachReject.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationFailure.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationFailure.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationReject.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationReject.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationResponse.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationResponse.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/COPYING +openair-cn/NAS/EURECOM-NAS/src/emm/msg/CsServiceNotification.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/CsServiceNotification.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachAccept.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachAccept.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/DownlinkNasTransport.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/DownlinkNasTransport.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_cause.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msgDef.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmInformation.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmInformation.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmStatus.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmStatus.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationCommand.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationCommand.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationComplete.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationComplete.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityResponse.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityResponse.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/NASSecurityModeCommand.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/NASSecurityModeComplete.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeCommand.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeComplete.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeReject.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeReject.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceReject.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceReject.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.h +openair-cn/NAS/EURECOM-NAS/src/emm/msg/UplinkNasTransport.c +openair-cn/NAS/EURECOM-NAS/src/emm/msg/UplinkNasTransport.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/COPYING +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_asDef.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_cn.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_cn.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_cnDef.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_esm.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_esm.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_esmDef.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_fsm.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_fsm.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_reg.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_reg.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_regDef.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_sap.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_sap.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_send.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_send.h +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmCommonProcedureInitiated.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregistered.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredAttachNeeded.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredAttemptingToAttach.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredInitiated.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredLimitedService.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredNoCellAvailable.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredNoImsi.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredNormalService.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredPlmnSearch.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmNull.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegistered.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredAttemptingToUpdate.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredImsiDetachInitiated.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredInitiated.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredLimitedService.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredNoCellAvailable.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredNormalService.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredPlmnSearch.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredUpdateNeeded.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmServiceRequestInitiated.c +openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmTrackingAreaUpdatingInitiated.c +openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c +openair-cn/NAS/EURECOM-NAS/src/emm/Authentication.c +openair-cn/NAS/EURECOM-NAS/src/emm/COPYING +openair-cn/NAS/EURECOM-NAS/src/emm/Detach.c +openair-cn/NAS/EURECOM-NAS/src/emm/emm_data_ctx.c +openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c +openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.h +openair-cn/NAS/EURECOM-NAS/src/emm/emm_proc.h +openair-cn/NAS/EURECOM-NAS/src/emm/EmmCommon.c +openair-cn/NAS/EURECOM-NAS/src/emm/EmmCommon.h +openair-cn/NAS/EURECOM-NAS/src/emm/emmData.h +openair-cn/NAS/EURECOM-NAS/src/emm/EmmStatusHdl.c +openair-cn/NAS/EURECOM-NAS/src/emm/Identification.c +openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c +openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.h +openair-cn/NAS/EURECOM-NAS/src/emm/LowerLayer.c +openair-cn/NAS/EURECOM-NAS/src/emm/LowerLayer.h +openair-cn/NAS/EURECOM-NAS/src/emm/SecurityModeControl.c +openair-cn/NAS/EURECOM-NAS/src/emm/ServiceRequestHdl.c +openair-cn/NAS/EURECOM-NAS/src/emm/TrackingAreaUpdate.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/COPYING +openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_cause.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msgDef.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationResponse.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationResponse.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmStatus.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmStatus.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectReject.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectReject.h +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.c +openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.h +openair-cn/NAS/EURECOM-NAS/src/esm/sap/COPYING +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.c +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.h +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_sap.c +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_sap.h +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_sapDef.h +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.c +openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.h +openair-cn/NAS/EURECOM-NAS/src/esm/COPYING +openair-cn/NAS/EURECOM-NAS/src/esm/DedicatedEpsBearerContextActivation.c +openair-cn/NAS/EURECOM-NAS/src/esm/DefaultEpsBearerContextActivation.c +openair-cn/NAS/EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c +openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr.c +openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr.h +openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.c +openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.h +openair-cn/NAS/EURECOM-NAS/src/esm/esm_ip.c +openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c +openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.h +openair-cn/NAS/EURECOM-NAS/src/esm/esm_proc.h +openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c +openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.h +openair-cn/NAS/EURECOM-NAS/src/esm/esmData.h +openair-cn/NAS/EURECOM-NAS/src/esm/EsmStatusHdl.c +openair-cn/NAS/EURECOM-NAS/src/esm/PdnConnectivity.c +openair-cn/NAS/EURECOM-NAS/src/esm/PdnDisconnect.c +openair-cn/NAS/EURECOM-NAS/src/ies/AccessPointName.c +openair-cn/NAS/EURECOM-NAS/src/ies/AccessPointName.h +openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateResult.c +openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateResult.h +openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateType.c +openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateType.h +openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c +openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationFailureParameter.c +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationFailureParameter.h +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterAutn.c +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterAutn.h +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterRand.c +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterRand.h +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationResponseParameter.c +openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationResponseParameter.h +openair-cn/NAS/EURECOM-NAS/src/ies/CipheringKeySequenceNumber.c +openair-cn/NAS/EURECOM-NAS/src/ies/CipheringKeySequenceNumber.h +openair-cn/NAS/EURECOM-NAS/src/ies/Cli.c +openair-cn/NAS/EURECOM-NAS/src/ies/Cli.h +openair-cn/NAS/EURECOM-NAS/src/ies/COPYING +openair-cn/NAS/EURECOM-NAS/src/ies/CsfbResponse.c +openair-cn/NAS/EURECOM-NAS/src/ies/CsfbResponse.h +openair-cn/NAS/EURECOM-NAS/src/ies/DaylightSavingTime.c +openair-cn/NAS/EURECOM-NAS/src/ies/DaylightSavingTime.h +openair-cn/NAS/EURECOM-NAS/src/ies/DetachType.c +openair-cn/NAS/EURECOM-NAS/src/ies/DetachType.h +openair-cn/NAS/EURECOM-NAS/src/ies/DrxParameter.c +openair-cn/NAS/EURECOM-NAS/src/ies/DrxParameter.h +openair-cn/NAS/EURECOM-NAS/src/ies/EmergencyNumberList.c +openair-cn/NAS/EURECOM-NAS/src/ies/EmergencyNumberList.h +openair-cn/NAS/EURECOM-NAS/src/ies/EmmCause.c +openair-cn/NAS/EURECOM-NAS/src/ies/EmmCause.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachResult.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachResult.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachType.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachType.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerContextStatus.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerContextStatus.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsMobileIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsMobileIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsQualityOfService.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsQualityOfService.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateResult.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateResult.h +openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateType.c +openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateType.h +openair-cn/NAS/EURECOM-NAS/src/ies/EsmCause.c +openair-cn/NAS/EURECOM-NAS/src/ies/EsmCause.h +openair-cn/NAS/EURECOM-NAS/src/ies/EsmInformationTransferFlag.c +openair-cn/NAS/EURECOM-NAS/src/ies/EsmInformationTransferFlag.h +openair-cn/NAS/EURECOM-NAS/src/ies/EsmMessageContainer.c +openair-cn/NAS/EURECOM-NAS/src/ies/EsmMessageContainer.h +openair-cn/NAS/EURECOM-NAS/src/ies/GprsTimer.c +openair-cn/NAS/EURECOM-NAS/src/ies/GprsTimer.h +openair-cn/NAS/EURECOM-NAS/src/ies/GutiType.c +openair-cn/NAS/EURECOM-NAS/src/ies/GutiType.h +openair-cn/NAS/EURECOM-NAS/src/ies/IdentityType2.c +openair-cn/NAS/EURECOM-NAS/src/ies/IdentityType2.h +openair-cn/NAS/EURECOM-NAS/src/ies/ImeisvRequest.c +openair-cn/NAS/EURECOM-NAS/src/ies/ImeisvRequest.h +openair-cn/NAS/EURECOM-NAS/src/ies/KsiAndSequenceNumber.c +openair-cn/NAS/EURECOM-NAS/src/ies/KsiAndSequenceNumber.h +openair-cn/NAS/EURECOM-NAS/src/ies/LcsClientIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/LcsClientIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/LcsIndicator.c +openair-cn/NAS/EURECOM-NAS/src/ies/LcsIndicator.h +openair-cn/NAS/EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.c +openair-cn/NAS/EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.h +openair-cn/NAS/EURECOM-NAS/src/ies/LocationAreaIdentification.c +openair-cn/NAS/EURECOM-NAS/src/ies/LocationAreaIdentification.h +openair-cn/NAS/EURECOM-NAS/src/ies/MessageType.c +openair-cn/NAS/EURECOM-NAS/src/ies/MessageType.h +openair-cn/NAS/EURECOM-NAS/src/ies/MobileIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/MobileIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark2.c +openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark2.h +openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark3.c +openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark3.h +openair-cn/NAS/EURECOM-NAS/src/ies/MsNetworkCapability.c +openair-cn/NAS/EURECOM-NAS/src/ies/MsNetworkCapability.h +openair-cn/NAS/EURECOM-NAS/src/ies/NasKeySetIdentifier.c +openair-cn/NAS/EURECOM-NAS/src/ies/NasKeySetIdentifier.h +openair-cn/NAS/EURECOM-NAS/src/ies/NasMessageContainer.c +openair-cn/NAS/EURECOM-NAS/src/ies/NasMessageContainer.h +openair-cn/NAS/EURECOM-NAS/src/ies/NasRequestType.c +openair-cn/NAS/EURECOM-NAS/src/ies/NasRequestType.h +openair-cn/NAS/EURECOM-NAS/src/ies/NasSecurityAlgorithms.c +openair-cn/NAS/EURECOM-NAS/src/ies/NasSecurityAlgorithms.h +openair-cn/NAS/EURECOM-NAS/src/ies/NetworkName.c +openair-cn/NAS/EURECOM-NAS/src/ies/NetworkName.h +openair-cn/NAS/EURECOM-NAS/src/ies/Nonce.c +openair-cn/NAS/EURECOM-NAS/src/ies/Nonce.h +openair-cn/NAS/EURECOM-NAS/src/ies/PacketFlowIdentifier.c +openair-cn/NAS/EURECOM-NAS/src/ies/PacketFlowIdentifier.h +openair-cn/NAS/EURECOM-NAS/src/ies/PagingIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/PagingIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/PdnAddress.c +openair-cn/NAS/EURECOM-NAS/src/ies/PdnAddress.h +openair-cn/NAS/EURECOM-NAS/src/ies/PdnType.c +openair-cn/NAS/EURECOM-NAS/src/ies/PdnType.h +openair-cn/NAS/EURECOM-NAS/src/ies/PlmnList.c +openair-cn/NAS/EURECOM-NAS/src/ies/PlmnList.h +openair-cn/NAS/EURECOM-NAS/src/ies/ProcedureTransactionIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/ProcedureTransactionIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolConfigurationOptions.c +openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolConfigurationOptions.h +openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolDiscriminator.c +openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolDiscriminator.h +openair-cn/NAS/EURECOM-NAS/src/ies/PTmsiSignature.c +openair-cn/NAS/EURECOM-NAS/src/ies/PTmsiSignature.h +openair-cn/NAS/EURECOM-NAS/src/ies/QualityOfService.c +openair-cn/NAS/EURECOM-NAS/src/ies/QualityOfService.h +openair-cn/NAS/EURECOM-NAS/src/ies/RadioPriority.c +openair-cn/NAS/EURECOM-NAS/src/ies/RadioPriority.h +openair-cn/NAS/EURECOM-NAS/src/ies/SecurityHeaderType.c +openair-cn/NAS/EURECOM-NAS/src/ies/SecurityHeaderType.h +openair-cn/NAS/EURECOM-NAS/src/ies/ServiceType.c +openair-cn/NAS/EURECOM-NAS/src/ies/ServiceType.h +openair-cn/NAS/EURECOM-NAS/src/ies/ShortMac.c +openair-cn/NAS/EURECOM-NAS/src/ies/ShortMac.h +openair-cn/NAS/EURECOM-NAS/src/ies/SsCode.c +openair-cn/NAS/EURECOM-NAS/src/ies/SsCode.h +openair-cn/NAS/EURECOM-NAS/src/ies/SupportedCodecList.c +openair-cn/NAS/EURECOM-NAS/src/ies/SupportedCodecList.h +openair-cn/NAS/EURECOM-NAS/src/ies/TimeZone.c +openair-cn/NAS/EURECOM-NAS/src/ies/TimeZone.h +openair-cn/NAS/EURECOM-NAS/src/ies/TimeZoneAndTime.c +openair-cn/NAS/EURECOM-NAS/src/ies/TimeZoneAndTime.h +openair-cn/NAS/EURECOM-NAS/src/ies/TmsiStatus.c +openair-cn/NAS/EURECOM-NAS/src/ies/TmsiStatus.h +openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentity.c +openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentity.h +openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentityList.c +openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentityList.h +openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.c +openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.h +openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowTemplate.c +openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowTemplate.h +openair-cn/NAS/EURECOM-NAS/src/ies/TransactionIdentifier.c +openair-cn/NAS/EURECOM-NAS/src/ies/TransactionIdentifier.h +openair-cn/NAS/EURECOM-NAS/src/ies/UeNetworkCapability.c +openair-cn/NAS/EURECOM-NAS/src/ies/UeNetworkCapability.h +openair-cn/NAS/EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.c +openair-cn/NAS/EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.h +openair-cn/NAS/EURECOM-NAS/src/ies/UeSecurityCapability.c +openair-cn/NAS/EURECOM-NAS/src/ies/UeSecurityCapability.h +openair-cn/NAS/EURECOM-NAS/src/ies/VoiceDomainPreferenceAndUeUsageSetting.c +openair-cn/NAS/EURECOM-NAS/src/ies/VoiceDomainPreferenceAndUeUsageSetting.h +openair-cn/NAS/EURECOM-NAS/src/include/commonDef.h +openair-cn/NAS/EURECOM-NAS/src/include/COPYING +openair-cn/NAS/EURECOM-NAS/src/include/networkDef.h +openair-cn/NAS/EURECOM-NAS/src/include/securityDef.h +openair-cn/NAS/EURECOM-NAS/src/include/userDef.h +openair-cn/NAS/EURECOM-NAS/src/util/tst/timer.c +openair-cn/NAS/EURECOM-NAS/src/util/tst/timer_debug.txt +openair-cn/NAS/EURECOM-NAS/src/util/COPYING +openair-cn/NAS/EURECOM-NAS/src/util/device.c +openair-cn/NAS/EURECOM-NAS/src/util/device.h +openair-cn/NAS/EURECOM-NAS/src/util/memory.c +openair-cn/NAS/EURECOM-NAS/src/util/memory.h +openair-cn/NAS/EURECOM-NAS/src/util/nas_log.c +openair-cn/NAS/EURECOM-NAS/src/util/nas_log.h +openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.c +openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.h +openair-cn/NAS/EURECOM-NAS/src/util/OctetString.c +openair-cn/NAS/EURECOM-NAS/src/util/OctetString.h +openair-cn/NAS/EURECOM-NAS/src/util/parser.c +openair-cn/NAS/EURECOM-NAS/src/util/parser.h +openair-cn/NAS/EURECOM-NAS/src/util/socket.c +openair-cn/NAS/EURECOM-NAS/src/util/socket.h +openair-cn/NAS/EURECOM-NAS/src/util/stty.c +openair-cn/NAS/EURECOM-NAS/src/util/TLVDecoder.c +openair-cn/NAS/EURECOM-NAS/src/util/TLVDecoder.h +openair-cn/NAS/EURECOM-NAS/src/util/TLVEncoder.c +openair-cn/NAS/EURECOM-NAS/src/util/TLVEncoder.h +openair-cn/NAS/EURECOM-NAS/src/COPYING +openair-cn/NAS/EURECOM-NAS/src/MMEprocess.c +openair-cn/NAS/EURECOM-NAS/src/nas_network.c +openair-cn/NAS/EURECOM-NAS/src/nas_network.h +openair-cn/NAS/EURECOM-NAS/src/nas_parser.c +openair-cn/NAS/EURECOM-NAS/src/nas_parser.h +openair-cn/NAS/EURECOM-NAS/src/nas_proc.c +openair-cn/NAS/EURECOM-NAS/src/nas_proc.h +openair-cn/NAS/EURECOM-NAS/src/nas_user.c +openair-cn/NAS/EURECOM-NAS/src/nas_user.h +openair-cn/NAS/EURECOM-NAS/src/UEprocess.c +openair-cn/NAS/EURECOM-NAS/tools/COPYING +openair-cn/NAS/EURECOM-NAS/tools/network.h +openair-cn/NAS/EURECOM-NAS/tools/ue_data.c +openair-cn/NAS/EURECOM-NAS/tools/usim_data.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_data.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_data.h +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_process.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_process.h +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_simulator.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_simulator_parser.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_simulator_parser.h +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/COPYING +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_data.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_data.h +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_process.c +openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_process.h +openair-cn/NAS/EURECOM-NAS/tst/MSC/ActivatePDN.png +openair-cn/NAS/EURECOM-NAS/tst/MSC/AuthenticationReject.png +openair-cn/NAS/EURECOM-NAS/tst/MSC/COPYING +openair-cn/NAS/EURECOM-NAS/tst/MSC/DeactivatePDN.png +openair-cn/NAS/EURECOM-NAS/tst/MSC/InitialAttach.png +openair-cn/NAS/EURECOM-NAS/tst/MSC/InitialAttachReject.png +openair-cn/NAS/EURECOM-NAS/tst/MSC/msc_gen.py +openair-cn/NAS/EURECOM-NAS/tst/MSC/mscgen +openair-cn/NAS/EURECOM-NAS/tst/MSC/NomalDetach.png +openair-cn/NAS/EURECOM-NAS/tst/MSC/README +openair-cn/NAS/EURECOM-NAS/tst/MSC/SwitchOffDetach.png +openair-cn/NAS/EURECOM-NAS/tst/network/COPYING +openair-cn/NAS/EURECOM-NAS/tst/network/network_parser.c +openair-cn/NAS/EURECOM-NAS/tst/network/network_parser.h +openair-cn/NAS/EURECOM-NAS/tst/network/network_simulator.c +openair-cn/NAS/EURECOM-NAS/tst/network/README +openair-cn/NAS/EURECOM-NAS/tst/user/COPYING +openair-cn/NAS/EURECOM-NAS/tst/user/user_parser.c +openair-cn/NAS/EURECOM-NAS/tst/user/user_parser.h +openair-cn/NAS/EURECOM-NAS/tst/user/user_simulator.c +openair-cn/NAS/EURECOM-NAS/tst/COPYING +openair-cn/NAS/EURECOM-NAS/COPYING +openair-cn/NAS/EURECOM-NAS/Makerules +openair-cn/NAS/COPYING +openair-cn/NAS/nas_defs.h +openair-cn/NAS/nas_itti_messaging.c +openair-cn/NAS/nas_itti_messaging.h +openair-cn/NAS/nas_main.c +openair-cn/NAS/nas_ue_task.c +openair-cn/OAI_EPC/COPYING +openair-cn/OAI_EPC/oai_epc.c +openair-cn/OAI_EPC/oai_epc.h +openair-cn/OAI_EPC/oai_epc_log.c +openair-cn/OAI_SGW/COPYING +openair-cn/OAI_SGW/oai_sgw.c +openair-cn/OAI_SGW/oai_sgw.h +openair-cn/OAI_SGW/oai_sgw_log.c +openair-cn/OAISIM_MME/COPYING +openair-cn/OAISIM_MME/oai_mme_log.c +openair-cn/OAISIM_MME/oaisim_mme.c +openair-cn/OAISIM_MME/oaisim_mme.h +openair-cn/OPENAIRHSS/access_restriction/access_restriction.c +openair-cn/OPENAIRHSS/access_restriction/access_restriction.h +openair-cn/OPENAIRHSS/access_restriction/COPYING +openair-cn/OPENAIRHSS/auc/auc.h +openair-cn/OPENAIRHSS/auc/COPYING +openair-cn/OPENAIRHSS/auc/fx.c +openair-cn/OPENAIRHSS/auc/kdf.c +openair-cn/OPENAIRHSS/auc/random.c +openair-cn/OPENAIRHSS/auc/rijndael.c +openair-cn/OPENAIRHSS/auc/sequence_number.c +openair-cn/OPENAIRHSS/conf/demoCA/COPYING +openair-cn/OPENAIRHSS/conf/COPYING +openair-cn/OPENAIRHSS/conf/hss.conf.in +openair-cn/OPENAIRHSS/conf/make_certs.sh +openair-cn/OPENAIRHSS/db/COPYING +openair-cn/OPENAIRHSS/db/db_connector.c +openair-cn/OPENAIRHSS/db/db_epc_equipment.c +openair-cn/OPENAIRHSS/db/db_proto.h +openair-cn/OPENAIRHSS/db/db_subscription_data.c +openair-cn/OPENAIRHSS/db/oai_db.sql +openair-cn/OPENAIRHSS/db/pft_db.sql +openair-cn/OPENAIRHSS/debian/changelog +openair-cn/OPENAIRHSS/debian/compat +openair-cn/OPENAIRHSS/debian/control +openair-cn/OPENAIRHSS/debian/copyright +openair-cn/OPENAIRHSS/debian/dirs +openair-cn/OPENAIRHSS/debian/files +openair-cn/OPENAIRHSS/debian/openair-hss.install +openair-cn/OPENAIRHSS/debian/rules +openair-cn/OPENAIRHSS/s6a/COPYING +openair-cn/OPENAIRHSS/s6a/s6a_auth_info.c +openair-cn/OPENAIRHSS/s6a/s6a_common.c +openair-cn/OPENAIRHSS/s6a/s6a_error.c +openair-cn/OPENAIRHSS/s6a/s6a_fd.c +openair-cn/OPENAIRHSS/s6a/s6a_in_addr.c +openair-cn/OPENAIRHSS/s6a/s6a_peers.c +openair-cn/OPENAIRHSS/s6a/s6a_proto.h +openair-cn/OPENAIRHSS/s6a/s6a_purge_ue.c +openair-cn/OPENAIRHSS/s6a/s6a_subscription_data.c +openair-cn/OPENAIRHSS/s6a/s6a_supported_features.c +openair-cn/OPENAIRHSS/s6a/s6a_supported_features.h +openair-cn/OPENAIRHSS/s6a/s6a_up_loc.c +openair-cn/OPENAIRHSS/scripts/COPYING +openair-cn/OPENAIRHSS/scripts/install_hss.sh +openair-cn/OPENAIRHSS/tests/COPYING +openair-cn/OPENAIRHSS/tests/test_fd.c +openair-cn/OPENAIRHSS/tests/test_fd.h +openair-cn/OPENAIRHSS/tests/test_kdf.c +openair-cn/OPENAIRHSS/tests/test_security.c +openair-cn/OPENAIRHSS/tests/test_security_f1.c +openair-cn/OPENAIRHSS/tests/test_security_f2_f3_f5.c +openair-cn/OPENAIRHSS/tests/test_security_f4_f5star.c +openair-cn/OPENAIRHSS/tests/test_security_kasme.c +openair-cn/OPENAIRHSS/tests/test_utils.c +openair-cn/OPENAIRHSS/tests/test_utils.h +openair-cn/OPENAIRHSS/tests/up_loc_test.c +openair-cn/OPENAIRHSS/utils/conversion.c +openair-cn/OPENAIRHSS/utils/conversion.h +openair-cn/OPENAIRHSS/utils/COPYING +openair-cn/OPENAIRHSS/utils/hss_config.c +openair-cn/OPENAIRHSS/utils/hss_config.h +openair-cn/OPENAIRHSS/utils/hss_parser.y +openair-cn/OPENAIRHSS/utils/hss_scanner.l +openair-cn/OPENAIRHSS/utils/queue.h +openair-cn/OPENAIRHSS/AUTHORS +openair-cn/OPENAIRHSS/autogen.sh +openair-cn/OPENAIRHSS/ChangeLog +openair-cn/OPENAIRHSS/configure.ac +openair-cn/OPENAIRHSS/hss_main.c +openair-cn/OPENAIRHSS/INSTALL +openair-cn/OPENAIRHSS/NEWS +openair-cn/OPENAIRHSS/README +openair-cn/S11/COPYING +openair-cn/S11/s11_common.c +openair-cn/S11/s11_common.h +openair-cn/S11/s11_ie_formatter.c +openair-cn/S11/s11_ie_formatter.h +openair-cn/S11/s11_mme.h +openair-cn/S11/s11_mme_peer_manager.c +openair-cn/S11/s11_mme_session_manager.c +openair-cn/S11/s11_mme_session_manager.h +openair-cn/S11/s11_mme_task.c +openair-cn/S11/s11_sgw.c +openair-cn/S11/s11_sgw.h +openair-cn/S11/s11_sgw_bearer_manager.c +openair-cn/S11/s11_sgw_bearer_manager.h +openair-cn/S11/s11_sgw_session_manager.c +openair-cn/S11/s11_sgw_session_manager.h +openair-cn/S1AP/MESSAGES/ASN1/R10.5/COPYING +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn +openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn +openair-cn/S1AP/MESSAGES/ASN1/R8.10/COPYING +openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn +openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn +openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn +openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn +openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/COPYING +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn +openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn +openair-cn/S1AP/MESSAGES/ASN1/asn1cpatch.p0 +openair-cn/S1AP/MESSAGES/ASN1/asn1cpatch_2.p0 +openair-cn/S1AP/MESSAGES/ASN1/asn1tostruct.py +openair-cn/S1AP/MESSAGES/ASN1/COPYING +openair-cn/S1AP/MESSAGES/ASN1/README +openair-cn/S1AP/MESSAGES/COPYING +openair-cn/S1AP/COPYING +openair-cn/S1AP/s1ap_common.c +openair-cn/S1AP/s1ap_common.h +openair-cn/S1AP/s1ap_eNB.c +openair-cn/S1AP/s1ap_eNB.h +openair-cn/S1AP/s1ap_eNB_context_management_procedures.c +openair-cn/S1AP/s1ap_eNB_context_management_procedures.h +openair-cn/S1AP/s1ap_eNB_decoder.c +openair-cn/S1AP/s1ap_eNB_decoder.h +openair-cn/S1AP/s1ap_eNB_default_values.h +openair-cn/S1AP/s1ap_eNB_defs.h +openair-cn/S1AP/s1ap_eNB_encoder.c +openair-cn/S1AP/s1ap_eNB_encoder.h +openair-cn/S1AP/s1ap_eNB_handlers.c +openair-cn/S1AP/s1ap_eNB_handlers.h +openair-cn/S1AP/s1ap_eNB_itti_messaging.c +openair-cn/S1AP/s1ap_eNB_itti_messaging.h +openair-cn/S1AP/s1ap_eNB_management_procedures.c +openair-cn/S1AP/s1ap_eNB_management_procedures.h +openair-cn/S1AP/s1ap_eNB_nas_procedures.c +openair-cn/S1AP/s1ap_eNB_nas_procedures.h +openair-cn/S1AP/s1ap_eNB_nnsf.c +openair-cn/S1AP/s1ap_eNB_nnsf.h +openair-cn/S1AP/s1ap_eNB_overload.c +openair-cn/S1AP/s1ap_eNB_overload.h +openair-cn/S1AP/s1ap_eNB_trace.c +openair-cn/S1AP/s1ap_eNB_trace.h +openair-cn/S1AP/s1ap_eNB_ue_context.c +openair-cn/S1AP/s1ap_eNB_ue_context.h +openair-cn/S1AP/s1ap_mme.c +openair-cn/S1AP/s1ap_mme.h +openair-cn/S1AP/s1ap_mme_decoder.c +openair-cn/S1AP/s1ap_mme_decoder.h +openair-cn/S1AP/s1ap_mme_encoder.c +openair-cn/S1AP/s1ap_mme_encoder.h +openair-cn/S1AP/s1ap_mme_handlers.c +openair-cn/S1AP/s1ap_mme_handlers.h +openair-cn/S1AP/s1ap_mme_itti_messaging.c +openair-cn/S1AP/s1ap_mme_itti_messaging.h +openair-cn/S1AP/s1ap_mme_nas_procedures.c +openair-cn/S1AP/s1ap_mme_nas_procedures.h +openair-cn/S1AP/s1ap_mme_retransmission.c +openair-cn/S1AP/s1ap_mme_retransmission.h +openair-cn/S1AP/s1ap_mme_ta.c +openair-cn/S1AP/s1ap_mme_ta.h +openair-cn/S6A/freediameter/freediameter-1.1.5.patch +openair-cn/S6A/freediameter/freediameter-1.2.0.patch +openair-cn/S6A/freediameter/install_freediameter.sh +openair-cn/S6A/freediameter/make_certs.sh +openair-cn/S6A/freediameter/README.txt +openair-cn/S6A/freediameter/s6a.conf +openair-cn/S6A/COPYING +openair-cn/S6A/s6a_apn_conf.c +openair-cn/S6A/s6a_auth_info.c +openair-cn/S6A/s6a_defs.h +openair-cn/S6A/s6a_dict.c +openair-cn/S6A/s6a_error.c +openair-cn/S6A/s6a_messages.h +openair-cn/S6A/s6a_peer.c +openair-cn/S6A/s6a_subscription_data.c +openair-cn/S6A/s6a_task.c +openair-cn/S6A/s6a_up_loc.c +openair-cn/SCTP/COPYING +openair-cn/SCTP/sctp_common.c +openair-cn/SCTP/sctp_common.h +openair-cn/SCTP/sctp_default_values.h +openair-cn/SCTP/sctp_eNB_defs.h +openair-cn/SCTP/sctp_eNB_itti_messaging.c +openair-cn/SCTP/sctp_eNB_itti_messaging.h +openair-cn/SCTP/sctp_eNB_task.c +openair-cn/SCTP/sctp_eNB_task.h +openair-cn/SCTP/sctp_itti_messaging.c +openair-cn/SCTP/sctp_itti_messaging.h +openair-cn/SCTP/sctp_primitives_client.c +openair-cn/SCTP/sctp_primitives_client.h +openair-cn/SCTP/sctp_primitives_server.c +openair-cn/SCTP/sctp_primitives_server.h +openair-cn/SECU/COPYING +openair-cn/SECU/kdf.c +openair-cn/SECU/key_nas_deriver.c +openair-cn/SECU/key_nas_encryption.c +openair-cn/SECU/nas_stream_eea1.c +openair-cn/SECU/nas_stream_eea2.c +openair-cn/SECU/nas_stream_eia1.c +openair-cn/SECU/nas_stream_eia2.c +openair-cn/SECU/rijndael.c +openair-cn/SECU/rijndael.h +openair-cn/SECU/secu_defs.h +openair-cn/SECU/snow3g.c +openair-cn/SECU/snow3g.h +openair-cn/SGW-LITE/COPYING +openair-cn/SGW-LITE/pgw_lite_paa.c +openair-cn/SGW-LITE/pgw_lite_paa.h +openair-cn/SGW-LITE/s11_causes.c +openair-cn/SGW-LITE/s11_causes.h +openair-cn/SGW-LITE/sgw_lite.h +openair-cn/SGW-LITE/sgw_lite_context_manager.c +openair-cn/SGW-LITE/sgw_lite_context_manager.h +openair-cn/SGW-LITE/sgw_lite_defs.h +openair-cn/SGW-LITE/sgw_lite_handlers.c +openair-cn/SGW-LITE/sgw_lite_handlers.h +openair-cn/SGW-LITE/sgw_lite_ie_defs.h +openair-cn/SGW-LITE/sgw_lite_task.c +openair-cn/SGW-LITE/spgw_config.c +openair-cn/SGW-LITE/spgw_config.h +openair-cn/TEST/COPYING +openair-cn/TEST/oaisim_mme_client_test.c +openair-cn/TEST/oaisim_mme_itti_test.c +openair-cn/TEST/oaisim_mme_list_benchmark.c +openair-cn/TEST/oaisim_mme_s1ap_test.c +openair-cn/TEST/oaisim_mme_sctp_test.c +openair-cn/TEST/oaisim_mme_test_s1c.c +openair-cn/TEST/oaisim_mme_test_s1c.h +openair-cn/TEST/oaisim_mme_test_s1c_scenario.h +openair-cn/TEST/oaisim_mme_test_s1c_scenario1.c +openair-cn/TEST/test_aes128_cmac_encrypt.c +openair-cn/TEST/test_aes128_ctr_decrypt.c +openair-cn/TEST/test_aes128_ctr_encrypt.c +openair-cn/TEST/test_kdf.c +openair-cn/TEST/test_s1ap.c +openair-cn/TEST/test_secu.c +openair-cn/TEST/test_secu_kenb.c +openair-cn/TEST/test_secu_knas.c +openair-cn/TEST/test_secu_knas_encrypt_eea1.c +openair-cn/TEST/test_secu_knas_encrypt_eea2.c +openair-cn/TEST/test_secu_knas_encrypt_eia1.c +openair-cn/TEST/test_secu_knas_encrypt_eia2.c +openair-cn/TEST/test_secu_knas_stream_int.c +openair-cn/TEST/test_util.c +openair-cn/TEST/test_util.h +openair-cn/UDP/COPYING +openair-cn/UDP/udp_eNB_task.c +openair-cn/UDP/udp_eNB_task.h +openair-cn/UDP/udp_primitives_server.c +openair-cn/UDP/udp_primitives_server.h +openair-cn/UTILS/CONF/COPYING +openair-cn/UTILS/HASHTABLE/COPYING +openair-cn/UTILS/HASHTABLE/hashtable.c +openair-cn/UTILS/HASHTABLE/hashtable.h +openair-cn/UTILS/HASHTABLE/obj_hashtable.c +openair-cn/UTILS/HASHTABLE/obj_hashtable.h +openair-cn/UTILS/conversions.c +openair-cn/UTILS/conversions.h +openair-cn/UTILS/COPYING +openair-cn/UTILS/enum_string.c +openair-cn/UTILS/enum_string.h +openair-cn/UTILS/log.c +openair-cn/UTILS/log.h +openair-cn/UTILS/mcc_mnc_itu.c +openair-cn/UTILS/mcc_mnc_itu.h +openair-cn/UTILS/mme_config.c +openair-cn/UTILS/mme_config.h +openair-cn/UTILS/mme_default_values.h +openair-cn/UTILS/mme_parser.y +openair-cn/UTILS/mme_scanner.l +openair-cn/UTILS/queue.h +openair-cn/UTILS/tree.h +openair-cn/AUTHORS +openair-cn/autogen.sh +openair-cn/ChangeLog +openair-cn/configure.ac +openair-cn/COPYING +openair-cn/cppcheck.sh +openair-cn/INSTALL +openair-cn/NEWS +openair-cn/README +openair-cn/valgrind.sh +openair1/MAC_INTERFACE/COPYING +openair1/MAC_INTERFACE/defs.h +openair1/MAC_INTERFACE/extern.h +openair1/MAC_INTERFACE/init.c +openair1/MAC_INTERFACE/register.c +openair1/MAC_INTERFACE/vars.h +openair1/PHY/CODING/TESTBENCH/COPYING +openair1/PHY/CODING/TESTBENCH/ltetest.c +openair1/PHY/CODING/TESTBENCH/pdcch_test.c +openair1/PHY/CODING/TESTBENCH/README.txt +openair1/PHY/CODING/TESTBENCH/viterbi_test.c +openair1/PHY/CODING/3gpplte.c +openair1/PHY/CODING/3gpplte_sse.c +openair1/PHY/CODING/3gpplte_turbo_decoder.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c +openair1/PHY/CODING/ccoding_byte.c +openair1/PHY/CODING/ccoding_byte_lte.c +openair1/PHY/CODING/COPYING +openair1/PHY/CODING/crc_byte.c +openair1/PHY/CODING/defs.h +openair1/PHY/CODING/extern.h +openair1/PHY/CODING/extern_3GPPinterleaver.h +openair1/PHY/CODING/lte_interleaver.h +openair1/PHY/CODING/lte_interleaver2.h +openair1/PHY/CODING/lte_interleaver_inline.h +openair1/PHY/CODING/lte_rate_matching.c +openair1/PHY/CODING/lte_segmentation.c +openair1/PHY/CODING/lte_tf.m +openair1/PHY/CODING/rate_matching.c +openair1/PHY/CODING/README.txt +openair1/PHY/CODING/scrambler.h +openair1/PHY/CODING/vars.h +openair1/PHY/CODING/viterbi.c +openair1/PHY/CODING/viterbi_lte.c +openair1/PHY/INIT/COPYING +openair1/PHY/INIT/defs.h +openair1/PHY/INIT/extern.h +openair1/PHY/INIT/init_top.c +openair1/PHY/INIT/lte_init.c +openair1/PHY/INIT/lte_parms.c +openair1/PHY/INIT/README.txt +openair1/PHY/INIT/vars.h +openair1/PHY/LTE_ESTIMATION/adjust_gain.c +openair1/PHY/LTE_ESTIMATION/COPYING +openair1/PHY/LTE_ESTIMATION/defs.h +openair1/PHY/LTE_ESTIMATION/extern.h +openair1/PHY/LTE_ESTIMATION/filt96_32.h +openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m +openair1/PHY/LTE_ESTIMATION/freq_equalization.c +openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c +openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c +openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c +openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c +openair1/PHY/LTE_ESTIMATION/lte_sync_time.c +openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c +openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m +openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c +openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/pss6144.h +openair1/PHY/LTE_ESTIMATION/README.txt +openair1/PHY/LTE_ESTIMATION/vars.h +openair1/PHY/LTE_REFSIG/COPYING +openair1/PHY/LTE_REFSIG/defs.h +openair1/PHY/LTE_REFSIG/gen_mod_table.m +openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c +openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c +openair1/PHY/LTE_REFSIG/lte_dl_uespec.c +openair1/PHY/LTE_REFSIG/lte_gold.c +openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c +openair1/PHY/LTE_REFSIG/lte_ul.m +openair1/PHY/LTE_REFSIG/lte_ul_ref.c +openair1/PHY/LTE_REFSIG/mod_table.h +openair1/PHY/LTE_REFSIG/primary_synch.h +openair1/PHY/LTE_REFSIG/primary_synch.m +openair1/PHY/LTE_REFSIG/README.txt +openair1/PHY/LTE_TRANSPORT/COPYING +openair1/PHY/LTE_TRANSPORT/dci.c +openair1/PHY/LTE_TRANSPORT/dci.h +openair1/PHY/LTE_TRANSPORT/dci_tools.c +openair1/PHY/LTE_TRANSPORT/defs.h +openair1/PHY/LTE_TRANSPORT/dlsch_coding.c +openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c +openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c +openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c +openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c +openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c +openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h +openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h +openair1/PHY/LTE_TRANSPORT/drs_modulation.c +openair1/PHY/LTE_TRANSPORT/extern.h +openair1/PHY/LTE_TRANSPORT/group_hopping.c +openair1/PHY/LTE_TRANSPORT/initial_sync.c +openair1/PHY/LTE_TRANSPORT/lte_mcs.c +openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h +openair1/PHY/LTE_TRANSPORT/pbch.c +openair1/PHY/LTE_TRANSPORT/pcfich.c +openair1/PHY/LTE_TRANSPORT/phich.c +openair1/PHY/LTE_TRANSPORT/pilots.c +openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c +openair1/PHY/LTE_TRANSPORT/pmch.c +openair1/PHY/LTE_TRANSPORT/power_control.c +openair1/PHY/LTE_TRANSPORT/prach.c +openair1/PHY/LTE_TRANSPORT/prach.h +openair1/PHY/LTE_TRANSPORT/print_stats.c +openair1/PHY/LTE_TRANSPORT/proto.h +openair1/PHY/LTE_TRANSPORT/pss.c +openair1/PHY/LTE_TRANSPORT/pucch.c +openair1/PHY/LTE_TRANSPORT/rar_tools.c +openair1/PHY/LTE_TRANSPORT/README.txt +openair1/PHY/LTE_TRANSPORT/srs_modulation.c +openair1/PHY/LTE_TRANSPORT/sss.c +openair1/PHY/LTE_TRANSPORT/sss.h +openair1/PHY/LTE_TRANSPORT/sss_gen.m +openair1/PHY/LTE_TRANSPORT/uci.h +openair1/PHY/LTE_TRANSPORT/uci_tools.c +openair1/PHY/LTE_TRANSPORT/ulsch_coding.c +openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c +openair1/PHY/LTE_TRANSPORT/vars.h +openair1/PHY/LTE_TRANSPORT/vrb_maps.m +openair1/PHY/MODULATION/COPYING +openair1/PHY/MODULATION/defs.h +openair1/PHY/MODULATION/extern.h +openair1/PHY/MODULATION/gen_7_5_kHz.m +openair1/PHY/MODULATION/kHz_7_5.h +openair1/PHY/MODULATION/ofdm_mod.c +openair1/PHY/MODULATION/prach625Hz.h +openair1/PHY/MODULATION/slot_fep.c +openair1/PHY/MODULATION/slot_fep_mbsfn.c +openair1/PHY/MODULATION/slot_fep_ul.c +openair1/PHY/MODULATION/ul_7_5_kHz.c +openair1/PHY/MODULATION/vars.h +openair1/PHY/TOOLS/8bit_rxdemux.c +openair1/PHY/TOOLS/8bit_txmux.c +openair1/PHY/TOOLS/angle.c +openair1/PHY/TOOLS/cadd_sv.c +openair1/PHY/TOOLS/cadd_vv.c +openair1/PHY/TOOLS/cdot_prod.c +openair1/PHY/TOOLS/cmult_mm.c +openair1/PHY/TOOLS/cmult_sv.c +openair1/PHY/TOOLS/cmult_vv.c +openair1/PHY/TOOLS/cmult_vvh.c +openair1/PHY/TOOLS/COPYING +openair1/PHY/TOOLS/costable.h +openair1/PHY/TOOLS/dB_routines.c +openair1/PHY/TOOLS/dB_routines.h +openair1/PHY/TOOLS/defs.h +openair1/PHY/TOOLS/extern.h +openair1/PHY/TOOLS/file_output.c +openair1/PHY/TOOLS/invSqrt.c +openair1/PHY/TOOLS/log2_approx.c +openair1/PHY/TOOLS/lte_dfts.c +openair1/PHY/TOOLS/lte_phy_scope.c +openair1/PHY/TOOLS/lte_phy_scope.h +openair1/PHY/TOOLS/lut.c +openair1/PHY/TOOLS/memory_routines.c +openair1/PHY/TOOLS/signal_energy.c +openair1/PHY/TOOLS/smbv.c +openair1/PHY/TOOLS/smbv.h +openair1/PHY/TOOLS/sqrt.c +openair1/PHY/TOOLS/time_meas.c +openair1/PHY/TOOLS/time_meas.h +openair1/PHY/TOOLS/twiddle12288.h +openair1/PHY/TOOLS/twiddle1536.h +openair1/PHY/TOOLS/twiddle24576.h +openair1/PHY/TOOLS/twiddle6144.h +openair1/PHY/TOOLS/twiddles4096.h +openair1/PHY/TOOLS/vars.h +openair1/PHY/COPYING +openair1/PHY/defs.h +openair1/PHY/extern.h +openair1/PHY/impl_defs_lte.h +openair1/PHY/impl_defs_top.h +openair1/PHY/spec_defs.h +openair1/PHY/spec_defs_top.h +openair1/PHY/sse_intrin.h +openair1/PHY/types.h +openair1/PHY/vars.h +openair1/SCHED/COPYING +openair1/SCHED/defs.h +openair1/SCHED/extern.h +openair1/SCHED/phy_procedures_emos.h +openair1/SCHED/phy_procedures_lte_common.c +openair1/SCHED/phy_procedures_lte_eNb.c +openair1/SCHED/phy_procedures_lte_ue.c +openair1/SCHED/pucch_pc.c +openair1/SCHED/pusch_pc.c +openair1/SCHED/rt_compat.h +openair1/SCHED/vars.h +openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c +openair1/SIMULATION/ETH_TRANSPORT/COPYING +openair1/SIMULATION/ETH_TRANSPORT/defs.h +openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c +openair1/SIMULATION/ETH_TRANSPORT/extern.h +openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c +openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h +openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c +openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c +openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h +openair1/SIMULATION/ETH_TRANSPORT/proto.h +openair1/SIMULATION/ETH_TRANSPORT/README.txt +openair1/SIMULATION/ETH_TRANSPORT/socket.c +openair1/SIMULATION/ETH_TRANSPORT/socket.h +openair1/SIMULATION/ETH_TRANSPORT/vars.h +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls +openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m +openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m +openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m +openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m +openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m +openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m +openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m +openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m +openair1/SIMULATION/LTE_PHY/plotTools/p +openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m +openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt +openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex +openair1/SIMULATION/LTE_PHY/blerSimus.zip +openair1/SIMULATION/LTE_PHY/COPYING +openair1/SIMULATION/LTE_PHY/dlsim.c +openair1/SIMULATION/LTE_PHY/fancyheadings.sty +openair1/SIMULATION/LTE_PHY/framegen.c +openair1/SIMULATION/LTE_PHY/gpib_send.c +openair1/SIMULATION/LTE_PHY/gpib_send.h +openair1/SIMULATION/LTE_PHY/launch_sim.sh +openair1/SIMULATION/LTE_PHY/LTE_Configuration.c +openair1/SIMULATION/LTE_PHY/LTE_Configuration.h +openair1/SIMULATION/LTE_PHY/mat2wv.m +openair1/SIMULATION/LTE_PHY/mbmssim.c +openair1/SIMULATION/LTE_PHY/pbch_awgn.txt +openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt +openair1/SIMULATION/LTE_PHY/pbchsim.c +openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh +openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m +openair1/SIMULATION/LTE_PHY/pdcchsim.c +openair1/SIMULATION/LTE_PHY/prachsim.c +openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h +openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c +openair1/SIMULATION/LTE_PHY/pucchsim.c +openair1/SIMULATION/LTE_PHY/README.txt +openair1/SIMULATION/LTE_PHY/scansim.c +openair1/SIMULATION/LTE_PHY/signalanalyzer.c +openair1/SIMULATION/LTE_PHY/signalanalyzer.h +openair1/SIMULATION/LTE_PHY/syncsim.c +openair1/SIMULATION/LTE_PHY/test.c +openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c +openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h +openair1/SIMULATION/LTE_PHY/ulsim.c +openair1/SIMULATION/LTE_PHY/ulsim2.c +openair1/SIMULATION/RF/adc.c +openair1/SIMULATION/RF/COPYING +openair1/SIMULATION/RF/dac.c +openair1/SIMULATION/RF/defs.h +openair1/SIMULATION/RF/README.txt +openair1/SIMULATION/RF/rf.c +openair1/SIMULATION/TOOLS/abstraction.c +openair1/SIMULATION/TOOLS/ch_desc_proto.c +openair1/SIMULATION/TOOLS/COPYING +openair1/SIMULATION/TOOLS/corr_mat.m +openair1/SIMULATION/TOOLS/defs.h +openair1/SIMULATION/TOOLS/gauss.c +openair1/SIMULATION/TOOLS/llr_quantization.c +openair1/SIMULATION/TOOLS/multipath_channel.c +openair1/SIMULATION/TOOLS/multipath_tv_channel.c +openair1/SIMULATION/TOOLS/random_channel.c +openair1/SIMULATION/TOOLS/rangen_double.c +openair1/SIMULATION/TOOLS/scm.m +openair1/SIMULATION/TOOLS/scm_corrmat.h +openair1/SIMULATION/TOOLS/taus.c +openair1/SIMULATION/COPYING +openair1/COPYING +openair1/README.TXT +openair2/COMMON/as_message.h +openair2/COMMON/commonDef.h +openair2/COMMON/COPYING +openair2/COMMON/gtpv1_u_messages_def.h +openair2/COMMON/gtpv1_u_messages_types.h +openair2/COMMON/intertask_interface_conf.h +openair2/COMMON/mac_messages_def.h +openair2/COMMON/mac_messages_types.h +openair2/COMMON/mac_primitives.h +openair2/COMMON/mac_rlc_primitives.h +openair2/COMMON/mac_rrc_primitives.h +openair2/COMMON/messages_def.h +openair2/COMMON/messages_types.h +openair2/COMMON/nas_messages_def.h +openair2/COMMON/nas_messages_types.h +openair2/COMMON/networkDef.h +openair2/COMMON/openair_defs.h +openair2/COMMON/openair_types.h +openair2/COMMON/pdcp_messages_def.h +openair2/COMMON/pdcp_messages_types.h +openair2/COMMON/phy_messages_def.h +openair2/COMMON/phy_messages_types.h +openair2/COMMON/platform_constants.h +openair2/COMMON/platform_types.h +openair2/COMMON/ral_messages_def.h +openair2/COMMON/ral_messages_types.h +openair2/COMMON/rlc_messages_def.h +openair2/COMMON/rlc_messages_types.h +openair2/COMMON/rrc_messages_def.h +openair2/COMMON/rrc_messages_types.h +openair2/COMMON/rrm_config_structs.h +openair2/COMMON/rrm_constants.h +openair2/COMMON/rtos_header.h +openair2/COMMON/s1ap_messages_def.h +openair2/COMMON/s1ap_messages_types.h +openair2/COMMON/sctp_messages_def.h +openair2/COMMON/sctp_messages_types.h +openair2/COMMON/tasks_def.h +openair2/COMMON/udp_messages_def.h +openair2/COMMON/udp_messages_types.h +openair2/COMMON/x2ap_messages_def.h +openair2/COMMON/x2ap_messages_types.h +openair2/DOCS/Documentation/flow.txt +openair2/DOCS/DOXYGEN/images/cellular_topology.doc +openair2/DOCS/DOXYGEN/images/cellular_topology.pdf +openair2/DOCS/DOXYGEN/images/cellular_topology_small.png +openair2/DOCS/DOXYGEN/images/channel server.png +openair2/DOCS/DOXYGEN/images/channel server.vsd +openair2/DOCS/DOXYGEN/images/convolutional.png +openair2/DOCS/DOXYGEN/images/convolutional.vsd +openair2/DOCS/DOXYGEN/images/Diapositive6.JPG +openair2/DOCS/DOXYGEN/images/DLC_arch.png +openair2/DOCS/DOXYGEN/images/Framing.png +openair2/DOCS/DOXYGEN/images/Framing.vsd +openair2/DOCS/DOXYGEN/images/irs_dcf.jpg +openair2/DOCS/DOXYGEN/images/irs_pcf.jpg +openair2/DOCS/DOXYGEN/images/layer2_stack.jpg +openair2/DOCS/DOXYGEN/images/layer2_stack.pdf +openair2/DOCS/DOXYGEN/images/layer2_stack.png +openair2/DOCS/DOXYGEN/images/MAC Services.vsd +openair2/DOCS/DOXYGEN/images/MAC_arch.eps +openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG +openair2/DOCS/DOXYGEN/images/mac_channels.png +openair2/DOCS/DOXYGEN/images/MAC_Measurements.png +openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd +openair2/DOCS/DOXYGEN/images/MAC_Services.eps +openair2/DOCS/DOXYGEN/images/MAC_Services.vsd +openair2/DOCS/DOXYGEN/images/MAC_Services2.eps +openair2/DOCS/DOXYGEN/images/MAC_Services2.png +openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd +openair2/DOCS/DOXYGEN/images/mac_wbs.jpg +openair2/DOCS/DOXYGEN/images/macphynet.eps +openair2/DOCS/DOXYGEN/images/macphynet.png +openair2/DOCS/DOXYGEN/images/mesh_frame.pdf +openair2/DOCS/DOXYGEN/images/mesh_topology.pdf +openair2/DOCS/DOXYGEN/images/mesh_topology_small.png +openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png +openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd +openair2/DOCS/DOXYGEN/images/PHY_arch.eps +openair2/DOCS/DOXYGEN/images/PHY_arch.png +openair2/DOCS/DOXYGEN/images/PHY_arch.vsd +openair2/DOCS/DOXYGEN/images/QAM modulation.png +openair2/DOCS/DOXYGEN/images/QAM modulation.vsd +openair2/DOCS/DOXYGEN/images/QAMmodulation.png +openair2/DOCS/DOXYGEN/images/scrambler.png +openair2/DOCS/DOXYGEN/images/scrambler.vsd +openair2/DOCS/DOXYGEN/images/Transmission.pdf +openair2/DOCS/DOXYGEN/images/Transmission.png +openair2/DOCS/DOXYGEN/images/Transmission.ps +openair2/DOCS/DOXYGEN/images/w3g4f_framing.png +openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd +openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd +openair2/DOCS/DOXYGEN/Doxyfile +openair2/DOCS/TEMPLATES/CODE/images/arch.eps +openair2/DOCS/TEMPLATES/CODE/images/arch.png +openair2/DOCS/TEMPLATES/CODE/COPYING +openair2/DOCS/TEMPLATES/CODE/Doxyfile +openair2/DOCS/TEMPLATES/CODE/example_doxy.h +openair2/DOCS/TEMPLATES/README/Readme.doxy +openair2/DOCS/TEMPLATES/README/readme.txt +openair2/ENB_APP/enb_app.c +openair2/ENB_APP/enb_app.h +openair2/ENB_APP/enb_config.c +openair2/ENB_APP/enb_config.h +openair2/LAYER2/MAC/config.c +openair2/LAYER2/MAC/COPYING +openair2/LAYER2/MAC/defs.h +openair2/LAYER2/MAC/eNB_scheduler.c +openair2/LAYER2/MAC/eNB_scheduler_bch.c +openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +openair2/LAYER2/MAC/eNB_scheduler_mch.c +openair2/LAYER2/MAC/eNB_scheduler_primitives.c +openair2/LAYER2/MAC/eNB_scheduler_RA.c +openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +openair2/LAYER2/MAC/extern.h +openair2/LAYER2/MAC/l1_helpers.c +openair2/LAYER2/MAC/lte_transport_init.c +openair2/LAYER2/MAC/main.c +openair2/LAYER2/MAC/openair2_proc.c +openair2/LAYER2/MAC/pre_processor.c +openair2/LAYER2/MAC/proto.h +openair2/LAYER2/MAC/ra_procedures.c +openair2/LAYER2/MAC/rar_tools.c +openair2/LAYER2/MAC/ue_procedures.c +openair2/LAYER2/MAC/vars.h +openair2/LAYER2/PDCP_v10.1.0/COPYING +openair2/LAYER2/PDCP_v10.1.0/pdcp.c +openair2/LAYER2/PDCP_v10.1.0/pdcp.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h +openair2/LAYER2/RLC/AM_v9.3.0/COPYING +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h +openair2/LAYER2/RLC/TM_v9.3.0/COPYING +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h +openair2/LAYER2/RLC/UM_v9.3.0/COPYING +openair2/LAYER2/RLC/UM_v9.3.0/README +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h +openair2/LAYER2/RLC/COPYING +openair2/LAYER2/RLC/mac_primitives.h +openair2/LAYER2/RLC/rlc.c +openair2/LAYER2/RLC/rlc.h +openair2/LAYER2/RLC/rlc_def.h +openair2/LAYER2/RLC/rlc_def_lte.h +openair2/LAYER2/RLC/rlc_mac.c +openair2/LAYER2/RLC/rlc_mpls.c +openair2/LAYER2/RLC/rlc_primitives.h +openair2/LAYER2/RLC/rlc_rrc.c +openair2/LAYER2/COPYING +openair2/LAYER2/layer2_top.c +openair2/LAYER2/openair2_proc.c +openair2/LAYER2/register.c +openair2/LAYER2/register.h +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h +openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest +openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c +openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c +openair2/NAS/DRIVER/CELLULAR/readme.txt +openair2/NAS/DRIVER/CELLULAR/start_mt_cellular +openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_noradvd +openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_radvd +openair2/NAS/DRIVER/CELLULAR/stop_mt_cellular +openair2/NAS/DRIVER/CELLULAR/stop_rg_cellular +openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h +openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c +openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c +openair2/NAS/nas_ue_task.h +openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c +openair2/NETWORK_DRIVER/LITE/classifier.c +openair2/NETWORK_DRIVER/LITE/common.c +openair2/NETWORK_DRIVER/LITE/constant.h +openair2/NETWORK_DRIVER/LITE/COPYING +openair2/NETWORK_DRIVER/LITE/device.c +openair2/NETWORK_DRIVER/LITE/ioctl.c +openair2/NETWORK_DRIVER/LITE/ioctl.h +openair2/NETWORK_DRIVER/LITE/local.h +openair2/NETWORK_DRIVER/LITE/netlink.c +openair2/NETWORK_DRIVER/LITE/proto_extern.h +openair2/NETWORK_DRIVER/LITE/sap.h +openair2/NETWORK_DRIVER/LITE/tool.c +openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c +openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c +openair2/NETWORK_DRIVER/MESH/classifier.c +openair2/NETWORK_DRIVER/MESH/common.c +openair2/NETWORK_DRIVER/MESH/constant.h +openair2/NETWORK_DRIVER/MESH/COPYING +openair2/NETWORK_DRIVER/MESH/device.c +openair2/NETWORK_DRIVER/MESH/ioctl.c +openair2/NETWORK_DRIVER/MESH/ioctl.h +openair2/NETWORK_DRIVER/MESH/local.h +openair2/NETWORK_DRIVER/MESH/mesh.c +openair2/NETWORK_DRIVER/MESH/netlink.c +openair2/NETWORK_DRIVER/MESH/proto_extern.h +openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h +openair2/NETWORK_DRIVER/MESH/sap.h +openair2/NETWORK_DRIVER/MESH/tool.c +openair2/NETWORK_DRIVER/UE_IP/common.c +openair2/NETWORK_DRIVER/UE_IP/constant.h +openair2/NETWORK_DRIVER/UE_IP/COPYING +openair2/NETWORK_DRIVER/UE_IP/device.c +openair2/NETWORK_DRIVER/UE_IP/local.h +openair2/NETWORK_DRIVER/UE_IP/netlink.c +openair2/NETWORK_DRIVER/UE_IP/proto_extern.h +openair2/NETWORK_DRIVER/UE_IP/README +openair2/NETWORK_DRIVER/UE_IP/sap.h +openair2/PHY_INTERFACE/COPYING +openair2/PHY_INTERFACE/defs.h +openair2/PHY_INTERFACE/extern.h +openair2/PHY_INTERFACE/mac_phy_primitives.c +openair2/PHY_INTERFACE/mac_phy_primitives.h +openair2/PHY_INTERFACE/vars.h +openair2/RRC/L2_INTERFACE/COPYING +openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c +openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-860.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-a20.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl +openair2/RRC/LITE/MESSAGES/asn1_msg.c +openair2/RRC/LITE/MESSAGES/asn1_msg.h +openair2/RRC/LITE/MESSAGES/asn1_patch +openair2/RRC/LITE/MESSAGES/bsearch.c +openair2/RRC/LITE/MESSAGES/bsearch.h +openair2/RRC/LITE/MESSAGES/COPYING +openair2/RRC/LITE/MESSAGES/README.txt +openair2/RRC/LITE/MESSAGES/rtai_mem.c +openair2/RRC/LITE/MESSAGES/rtai_mem.h +openair2/RRC/LITE/COPYING +openair2/RRC/LITE/defs.h +openair2/RRC/LITE/extern.h +openair2/RRC/LITE/L2_interface.c +openair2/RRC/LITE/mesh_top.c +openair2/RRC/LITE/plmn_data.h +openair2/RRC/LITE/proto.h +openair2/RRC/LITE/rrc_2_rrm_msg.c +openair2/RRC/LITE/rrc_common.c +openair2/RRC/LITE/rrc_config.c +openair2/RRC/LITE/rrc_eNB.c +openair2/RRC/LITE/rrc_eNB_GTPV1U.c +openair2/RRC/LITE/rrc_eNB_GTPV1U.h +openair2/RRC/LITE/rrc_eNB_ral.c +openair2/RRC/LITE/rrc_eNB_ral.h +openair2/RRC/LITE/rrc_eNB_S1AP.c +openair2/RRC/LITE/rrc_eNB_S1AP.h +openair2/RRC/LITE/rrc_eNB_UE_context.c +openair2/RRC/LITE/rrc_eNB_UE_context.h +openair2/RRC/LITE/rrc_rrm_interface.c +openair2/RRC/LITE/rrc_rrm_interface.h +openair2/RRC/LITE/rrc_types.h +openair2/RRC/LITE/rrc_UE.c +openair2/RRC/LITE/rrc_UE_ral.c +openair2/RRC/LITE/rrc_UE_ral.h +openair2/RRC/LITE/rrm_2_rrc_msg.c +openair2/RRC/LITE/utils.c +openair2/RRC/LITE/vars.h +openair2/RRC/NAS/COPYING +openair2/RRC/NAS/nas_config.c +openair2/RRC/NAS/nas_config.h +openair2/RRC/NAS/rb_config.c +openair2/RRC/NAS/rb_config.h +openair2/RRM_4_RRC_LITE/src/com/asn1/rrc-rrm.asn +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.h +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.cpp +openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.h +openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp +openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.h +openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.cpp +openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.h +openair2/RRM_4_RRC_LITE/src/com/Message.cpp +openair2/RRM_4_RRC_LITE/src/com/Message.h +openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/36331-860.txt +openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/EUTRA-InterNodeDefinitions.asn +openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/EUTRA-RRC-Definitions.asn +openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/EUTRA-UE-Variables.asn +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libSockets.pc +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libSockets.pc.IN +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libsockets2.pc +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libsockets2.pc.IN +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/base64.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/chunked.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/copy.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/crlf.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/echoserver.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/events.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/http.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/http_post.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/httpd.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/httpd_test.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/https.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/json.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/listener.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/resolve.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/resume.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/retry.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/scanr.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/semtest.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/sloppy_http.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/sockets_test.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/stressclient.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/threadstress.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/x.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ajp13.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ajp13Socket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ajp13Socket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/AjpBaseSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/AjpBaseSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Base64.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Base64.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Changelog +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Debug.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Debug.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Event.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Event.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventHandler.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventHandler.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventTime.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventTime.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Exception.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Exception.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/File.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/File.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/FileStream.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/FileStream.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/gpl.txt +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpBaseSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpBaseSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpClientSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpClientSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdCookies.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdCookies.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpDebugSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpDebugSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdForm.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdForm.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpGetSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpGetSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPostSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPostSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPutSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPutSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpRequest.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpRequest.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpResponse.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpResponse.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HTTPSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HTTPSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpTransaction.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpTransaction.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IBase.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IEventHandler.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IEventOwner.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IEventOwner.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IFile.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IFileUpload.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IHttpServer.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IMutex.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv4Address.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv4Address.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv6Address.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv6Address.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ISocketHandler.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IStream.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Json.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Json.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ListenSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Lock.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Lock.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/MemFile.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/MemFile.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/mkdot.sh +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Mutex.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Mutex.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/OSX.zip +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Parse.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Parse.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/README +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/README.macosx +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvServer.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvServer.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SctpSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SctpSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Semaphore.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Semaphore.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SmtpdSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SmtpdSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Socket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Socket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/socket_include.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/socket_include.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketAddress.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandler.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandler.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerEp.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerEp.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerThread.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerThread.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Sockets-config +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Sockets-config.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/sockets-config.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketStream.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketStream.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketThread.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketThread.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SSLInitializer.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SSLInitializer.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StdLog.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StdoutLog.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StdoutLog.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamWriter.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamWriter.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/TcpSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/TcpSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Thread.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Thread.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/UdpSocket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/UdpSocket.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Utility.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Utility.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlDocument.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlDocument.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlException.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlException.h +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlNode.cpp +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlNode.h +openair2/RRM_4_RRC_LITE/src/foreign/sql/sqlite3.c +openair2/RRM_4_RRC_LITE/src/foreign/sql/sqlite3.h +openair2/RRM_4_RRC_LITE/src/foreign/tcpip/socket.cpp +openair2/RRM_4_RRC_LITE/src/foreign/tcpip/socket.h +openair2/RRM_4_RRC_LITE/src/foreign/tcpip/socketUnitTests.cpp +openair2/RRM_4_RRC_LITE/src/foreign/tcpip/storage.cpp +openair2/RRM_4_RRC_LITE/src/foreign/tcpip/storage.h +openair2/RRM_4_RRC_LITE/src/foreign/tcpip/tcpipUnitTests.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.h +openair2/RRM_4_RRC_LITE/src/radio_resources/Command.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/Command.h +openair2/RRM_4_RRC_LITE/src/radio_resources/COPYING +openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.h +openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.h +openair2/RRM_4_RRC_LITE/src/radio_resources/Exceptions.h +openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.h +openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.h +openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.h +openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.h +openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.h +openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.h +openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.cpp +openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.h +openair2/RRM_4_RRC_LITE/src/test/test.cpp +openair2/RRM_4_RRC_LITE/src/test/TestScenario.cpp +openair2/RRM_4_RRC_LITE/src/test/TestScenario.h +openair2/RRM_4_RRC_LITE/src/COPYING +openair2/RRM_4_RRC_LITE/src/platform.h +openair2/RRM_4_RRC_LITE/src/platform_constants.h +openair2/RRM_4_RRC_LITE/src/platform_defines.h +openair2/RRM_4_RRC_LITE/src/platform_dim.h +openair2/RRM_4_RRC_LITE/src/rrm.cpp +openair2/RRM_4_RRC_LITE/src/version.h +openair2/RRM_4_RRC_LITE/ChangeLog +openair2/RRM_4_RRC_LITE/configure.ac +openair2/RRM_4_RRC_LITE/COPYING +openair2/RRM_4_RRC_LITE/NEWS +openair2/RRM_4_RRC_LITE/README +openair2/UTIL/AT_COMMANDS/COPYING +openair2/UTIL/AT_COMMANDS/parser.c +openair2/UTIL/AT_COMMANDS/parser.h +openair2/UTIL/BIGPHYS/bigphys.c +openair2/UTIL/BIGPHYS/COPYING +openair2/UTIL/BIGPHYS/defs.h +openair2/UTIL/CLI/cli.c +openair2/UTIL/CLI/cli.h +openair2/UTIL/CLI/cli_cmd.c +openair2/UTIL/CLI/cli_if.h +openair2/UTIL/CLI/cli_server.c +openair2/UTIL/CLI/COPYING +openair2/UTIL/FIFO/COPYING +openair2/UTIL/FIFO/pad_list.c +openair2/UTIL/FIFO/pad_list.h +openair2/UTIL/FIFO/types.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c +openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt +openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln +openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj +openair2/UTIL/LISTS/COPYING +openair2/UTIL/LISTS/list.c +openair2/UTIL/LISTS/list.h +openair2/UTIL/LISTS/list2.c +openair2/UTIL/LOG/COPYING +openair2/UTIL/LOG/log.c +openair2/UTIL/LOG/log.h +openair2/UTIL/LOG/log_extern.h +openair2/UTIL/LOG/log_if.h +openair2/UTIL/LOG/README.txt +openair2/UTIL/LOG/vcd_signal_dumper.c +openair2/UTIL/LOG/vcd_signal_dumper.h +openair2/UTIL/MATH/COPYING +openair2/UTIL/MATH/crc_byte.c +openair2/UTIL/MATH/oml.c +openair2/UTIL/MATH/oml.h +openair2/UTIL/MATH/random.c +openair2/UTIL/MATH/random_proto_extern.h +openair2/UTIL/MATH/taus.c +openair2/UTIL/MEM/COPYING +openair2/UTIL/MEM/mem_block.c +openair2/UTIL/MEM/mem_block.h +openair2/UTIL/MEM/mem_mngt.c +openair2/UTIL/MEM/mem_mngt_proto_extern.h +openair2/UTIL/MEM/mem_pool.h +openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml +openair2/UTIL/OCG/temp_output/OCG_report.xml +openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml +openair2/UTIL/OCG/COPYING +openair2/UTIL/OCG/Doxyfile +openair2/UTIL/OCG/eurecom_20110208110244.xml +openair2/UTIL/OCG/OCG.c +openair2/UTIL/OCG/OCG.h +openair2/UTIL/OCG/OCG_call_emu.c +openair2/UTIL/OCG/OCG_call_emu.h +openair2/UTIL/OCG/OCG_config_mobi.c +openair2/UTIL/OCG/OCG_config_mobi.h +openair2/UTIL/OCG/OCG_create_dir.c +openair2/UTIL/OCG/OCG_create_dir.h +openair2/UTIL/OCG/OCG_detect_file.c +openair2/UTIL/OCG/OCG_detect_file.h +openair2/UTIL/OCG/OCG_extern.h +openair2/UTIL/OCG/OCG_generate_report.c +openair2/UTIL/OCG/OCG_generate_report.h +openair2/UTIL/OCG/OCG_get_opt.c +openair2/UTIL/OCG/OCG_get_opt.h +openair2/UTIL/OCG/OCG_if.h +openair2/UTIL/OCG/OCG_parse_filename.c +openair2/UTIL/OCG/OCG_parse_filename.h +openair2/UTIL/OCG/OCG_parse_XML.c +openair2/UTIL/OCG/OCG_parse_XML.h +openair2/UTIL/OCG/OCG_save_XML.c +openair2/UTIL/OCG/OCG_save_XML.h +openair2/UTIL/OCG/OCG_vars.h +openair2/UTIL/OCG/Readme.doxy +openair2/UTIL/OCG/readme.txt +openair2/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg +openair2/UTIL/OMG/SUMO/SCENARIOS/sumo_commands.txt +openair2/UTIL/OMG/SUMO/SCENARIOS/traci.scen.sumo.cfg +openair2/UTIL/OMG/SUMO/SCENARIOS/traci_ex_Map.net.xml +openair2/UTIL/OMG/SUMO/SCENARIOS/traci_ex_ROU.rou.xml +openair2/UTIL/OMG/SUMO/README.TXT +openair2/UTIL/OMG/TRACE/example_trace.tr +openair2/UTIL/OMG/TRACE/handover.tr +openair2/UTIL/OMG/TRACE/handover_1ue.tr +openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr +openair2/UTIL/OMG/TRACE/mobility_2ues.tr +openair2/UTIL/OMG/TRACE/mobility_3ues.tr +openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf +openair2/UTIL/OMG/TRACE/README.TXT +openair2/UTIL/OMG/TRACE/regular.tr +openair2/UTIL/OMG/TRACE/static_1enb.tr +openair2/UTIL/OMG/TRACE/static_2ues.tr +openair2/UTIL/OMG/TRACE/zero_speed.tr +openair2/UTIL/OMG/client_traci_OMG.c +openair2/UTIL/OMG/client_traci_OMG.h +openair2/UTIL/OMG/common.c +openair2/UTIL/OMG/COPYING +openair2/UTIL/OMG/defs.h +openair2/UTIL/OMG/grid.c +openair2/UTIL/OMG/grid.h +openair2/UTIL/OMG/id_manager.c +openair2/UTIL/OMG/id_manager.h +openair2/UTIL/OMG/job.c +openair2/UTIL/OMG/mobility.txt +openair2/UTIL/OMG/mobility_parser.c +openair2/UTIL/OMG/mobility_parser.h +openair2/UTIL/OMG/omg.c +openair2/UTIL/OMG/omg.h +openair2/UTIL/OMG/omg_constants.h +openair2/UTIL/OMG/omg_hashtable.c +openair2/UTIL/OMG/omg_hashtable.h +openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf +openair2/UTIL/OMG/omg_vars.h +openair2/UTIL/OMG/README.TXT +openair2/UTIL/OMG/rwalk.c +openair2/UTIL/OMG/rwalk.h +openair2/UTIL/OMG/rwp.c +openair2/UTIL/OMG/rwp.h +openair2/UTIL/OMG/socket_traci_OMG.c +openair2/UTIL/OMG/socket_traci_OMG.h +openair2/UTIL/OMG/static.c +openair2/UTIL/OMG/static.h +openair2/UTIL/OMG/steadystaterwp.c +openair2/UTIL/OMG/steadystaterwp.h +openair2/UTIL/OMG/storage_traci_OMG.c +openair2/UTIL/OMG/storage_traci_OMG.h +openair2/UTIL/OMG/sumo.c +openair2/UTIL/OMG/sumo.h +openair2/UTIL/OMG/trace.c +openair2/UTIL/OMG/trace.h +openair2/UTIL/OMG/trace_hashtable.c +openair2/UTIL/OMG/trace_hashtable.h +openair2/UTIL/OMG/TraCIConstants.h +openair2/UTIL/OMV/blue.png +openair2/UTIL/OMV/communicationthread.cpp +openair2/UTIL/OMV/communicationthread.h +openair2/UTIL/OMV/COPYING +openair2/UTIL/OMV/green.png +openair2/UTIL/OMV/jpg.jpeg +openair2/UTIL/OMV/mus.png +openair2/UTIL/OMV/mywindow.cpp +openair2/UTIL/OMV/mywindow.h +openair2/UTIL/OMV/new.jpg +openair2/UTIL/OMV/new2.jpg +openair2/UTIL/OMV/omv.cpp +openair2/UTIL/OMV/openglwidget.cpp +openair2/UTIL/OMV/openglwidget.h +openair2/UTIL/OMV/README.txt +openair2/UTIL/OMV/red.png +openair2/UTIL/OMV/structures.h +openair2/UTIL/OMV/white.png +openair2/UTIL/OMV/wow.png +openair2/UTIL/OPT/COPYING +openair2/UTIL/OPT/mac_pcap.h +openair2/UTIL/OPT/opt.h +openair2/UTIL/OPT/packet-mac-lte.c +openair2/UTIL/OPT/packet-mac-lte.h +openair2/UTIL/OPT/packet-rlc-lte.h +openair2/UTIL/OPT/probe.c +openair2/UTIL/OPT/README.txt +openair2/UTIL/OPT/socket_sender.c +openair2/UTIL/OPT/vars.h +openair2/UTIL/OSA/COPYING +openair2/UTIL/OSA/osa_defs.h +openair2/UTIL/OSA/osa_internal.h +openair2/UTIL/OSA/osa_key_deriver.c +openair2/UTIL/OSA/osa_rijndael.c +openair2/UTIL/OSA/osa_rijndael.h +openair2/UTIL/OSA/osa_snow3g.c +openair2/UTIL/OSA/osa_snow3g.h +openair2/UTIL/OSA/osa_stream_eea.c +openair2/UTIL/OSA/osa_stream_eia.c +openair2/UTIL/OSA/README +openair2/UTIL/OSD/css/images/false.png +openair2/UTIL/OSD/css/images/false2.png +openair2/UTIL/OSD/css/images/lquote.png +openair2/UTIL/OSD/css/images/true.png +openair2/UTIL/OSD/css/images/warning.png +openair2/UTIL/OSD/css/blueprint.css +openair2/UTIL/OSD/css/fix-ie-rtl.css +openair2/UTIL/OSD/css/fix-ie.css +openair2/UTIL/OSD/css/ie.css +openair2/UTIL/OSD/css/ie6.css +openair2/UTIL/OSD/css/print.css +openair2/UTIL/OSD/css/screen.css +openair2/UTIL/OSD/css/style.css +openair2/UTIL/OSD/jquery/jquery.js +openair2/UTIL/OSD/COPYING +openair2/UTIL/OSD/fake_oaisim +openair2/UTIL/OSD/form.php +openair2/UTIL/OSD/header.php +openair2/UTIL/OSD/httpd-result.conf +openair2/UTIL/OSD/index.php +openair2/UTIL/OSD/OCG.pid +openair2/UTIL/OSD/OpenAirEmu.conf +openair2/UTIL/OSD/Platform_is_running.php +openair2/UTIL/OSD/README.txt +openair2/UTIL/OSD/recep.php +openair2/UTIL/OSD/toto.php +openair2/UTIL/OTG/COPYING +openair2/UTIL/OTG/Doxyfile +openair2/UTIL/OTG/help_OTGplot.txt +openair2/UTIL/OTG/main.c +openair2/UTIL/OTG/otg.c +openair2/UTIL/OTG/otg.h +openair2/UTIL/OTG/otg_config.h +openair2/UTIL/OTG/otg_defs.h +openair2/UTIL/OTG/otg_externs.h +openair2/UTIL/OTG/otg_form.c +openair2/UTIL/OTG/otg_form.h +openair2/UTIL/OTG/otg_kpi.c +openair2/UTIL/OTG/otg_kpi.h +openair2/UTIL/OTG/otg_models.c +openair2/UTIL/OTG/otg_models.h +openair2/UTIL/OTG/otg_rx.c +openair2/UTIL/OTG/otg_rx.h +openair2/UTIL/OTG/otg_rx_socket.c +openair2/UTIL/OTG/otg_rx_socket.h +openair2/UTIL/OTG/otg_tx.c +openair2/UTIL/OTG/otg_tx.h +openair2/UTIL/OTG/otg_tx_socket.c +openair2/UTIL/OTG/otg_tx_socket.h +openair2/UTIL/OTG/otg_vars.h +openair2/UTIL/OTG/OTGplot +openair2/UTIL/OTG/traffic_config.h +openair2/UTIL/SCTP/COPYING +openair2/UTIL/TIMER/COPYING +openair2/UTIL/TIMER/umts_timer.c +openair2/UTIL/TIMER/umts_timer.h +openair2/UTIL/TIMER/umts_timer_proto_extern.h +openair2/UTIL/TIMER/umts_timer_struct.h +openair2/UTIL/TRACE/COPYING +openair2/UTIL/TRACE/fifo_printf.c +openair2/UTIL/TRACE/fifo_printf.h +openair2/UTIL/TRACE/fifo_printf_proto_extern.h +openair2/UTIL/TRACE/print.h +openair2/UTIL/queue.h +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn +openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py +openair2/X2AP/COPYING +openair2/X2AP/x2ap.c +openair2/X2AP/x2ap.h +openair2/X2AP/x2ap_common.c +openair2/X2AP/x2ap_common.h +openair3/DOCS/DOXYGEN/Doxyfile +openair3/DOCS/TEMPLATES/CODE/images/arch.eps +openair3/DOCS/TEMPLATES/CODE/images/arch.png +openair3/DOCS/TEMPLATES/CODE/COPYING +openair3/DOCS/TEMPLATES/CODE/Doxyfile +openair3/DOCS/TEMPLATES/CODE/example_doxy.h +openair3/DOCS/TEMPLATES/README/Readme.doxy +openair3/DOCS/TEMPLATES/README/readme.txt +openair3/DOCS/COPYING +openair3/MESH/RRM/DOC/Doxyfile_rrm +openair3/MESH/RRM/EMUL/actdiff.c +openair3/MESH/RRM/EMUL/actdiff.h +openair3/MESH/RRM/EMUL/emul_interface.c +openair3/MESH/RRM/EMUL/emul_interface.h +openair3/MESH/RRM/EMUL/scenario.c +openair3/MESH/RRM/GRAPH/graph +openair3/MESH/RRM/GRAPH/graph_enum.h +openair3/MESH/RRM/GRAPH/graph_int.c +openair3/MESH/RRM/GRAPH/graph_int.h +openair3/MESH/RRM/GRAPH/graph_sock.c +openair3/MESH/RRM/GRAPH/graph_sock.h +openair3/MESH/RRM/VCD/Config_wave.xxx +openair3/MESH/RRM/VCD/gtkwave.ini +openair3/MESH/RRM/VCD/mkvcd +openair3/MESH/RRM/all_freq_to_users_form.c +openair3/MESH/RRM/all_freq_to_users_form.fd +openair3/MESH/RRM/all_freq_to_users_form.h +openair3/MESH/RRM/ch_init.c +openair3/MESH/RRM/ch_init.h +openair3/MESH/RRM/channels_db.c +openair3/MESH/RRM/channels_db.h +openair3/MESH/RRM/cmm_msg.c +openair3/MESH/RRM/cmm_msg.h +openair3/MESH/RRM/debug.h +openair3/MESH/RRM/freq_ass_op.c +openair3/MESH/RRM/freq_ass_op.h +openair3/MESH/RRM/ip_msg.c +openair3/MESH/RRM/ip_msg.h +openair3/MESH/RRM/mr_attach.c +openair3/MESH/RRM/mr_attach.h +openair3/MESH/RRM/msg_mngt.c +openair3/MESH/RRM/msg_mngt.h +openair3/MESH/RRM/neighbor_db.c +openair3/MESH/RRM/neighbor_db.h +openair3/MESH/RRM/pusu_msg.c +openair3/MESH/RRM/pusu_msg.h +openair3/MESH/RRM/rb_db.c +openair3/MESH/RRM/rb_db.h +openair3/MESH/RRM/rb_mngt.c +openair3/MESH/RRM/rb_mngt.h +openair3/MESH/RRM/rrc_2_rrm_msg.c +openair3/MESH/RRM/rrc_rrm_msg.h +openair3/MESH/RRM/rrm.c +openair3/MESH/RRM/rrm.cfg +openair3/MESH/RRM/rrm.h +openair3/MESH/RRM/rrm.sh +openair3/MESH/RRM/rrm_2_rrc_msg.c +openair3/MESH/RRM/rrm_2_sensing_msg.c +openair3/MESH/RRM/rrm_5nodes.sh +openair3/MESH/RRM/rrm_constant.c +openair3/MESH/RRM/rrm_constant.h +openair3/MESH/RRM/rrm_graph.c +openair3/MESH/RRM/rrm_SENS.sh +openair3/MESH/RRM/rrm_sock.c +openair3/MESH/RRM/rrm_sock.h +openair3/MESH/RRM/rrm_SS2_CH1.sh +openair3/MESH/RRM/rrm_SS2_global.sh +openair3/MESH/RRM/rrm_test.sh +openair3/MESH/RRM/rrm_util.c +openair3/MESH/RRM/rrm_util.h +openair3/MESH/RRM/sens_CH1_scen_2.c +openair3/MESH/RRM/sens_CH1_scen_2.fd +openair3/MESH/RRM/sens_CH1_scen_2.h +openair3/MESH/RRM/sens_db.c +openair3/MESH/RRM/sens_db.h +openair3/MESH/RRM/sens_op.c +openair3/MESH/RRM/sens_op.h +openair3/MESH/RRM/sens_scen_2_form.c +openair3/MESH/RRM/sens_scen_2_form.fd +openair3/MESH/RRM/sens_scen_2_form.h +openair3/MESH/RRM/sens_sensor.c +openair3/MESH/RRM/sens_sensor.fd +openair3/MESH/RRM/sens_sensor.h +openair3/MESH/RRM/sensing_2_rrm_msg.c +openair3/MESH/RRM/sensing_form.c +openair3/MESH/RRM/sensing_form.fd +openair3/MESH/RRM/sensing_form.h +openair3/MESH/RRM/sensing_rrm_msg.h +openair3/MESH/RRM/SN_freq_form.c +openair3/MESH/RRM/SN_freq_form.fd +openair3/MESH/RRM/SN_freq_form.h +openair3/MESH/RRM/transact.c +openair3/MESH/RRM/transact.h +openair3/MESH/cmm_ral_interface.h +openair3/MESH/cmm_rrm_interface.h +openair3/MESH/COPYING +openair3/MESH/L3_rrc_defs.h +openair3/MESH/L3_rrc_interface.h +openair3/NEMO_SHO/COPYING +openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch +openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-20080108.patch +openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch +openair3/NEMO_SHO/mipv6-daemon-umip-0.4-sho-20080331.patch +openair3/NEMO_SHO/mipv6-daemon-umip-0.4.tar.gz +openair3/NEMO_SHO/README +openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/output.0 +openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/output.1 +openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/requests +openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/traces.0 +openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/traces.1 +openair3/PMIPv6/freeradius-client-1.1.6/debian/changelog +openair3/PMIPv6/freeradius-client-1.1.6/debian/conffiles +openair3/PMIPv6/freeradius-client-1.1.6/debian/control +openair3/PMIPv6/freeradius-client-1.1.6/debian/copyright +openair3/PMIPv6/freeradius-client-1.1.6/debian/dirs +openair3/PMIPv6/freeradius-client-1.1.6/debian/docs +openair3/PMIPv6/freeradius-client-1.1.6/debian/examples +openair3/PMIPv6/freeradius-client-1.1.6/debian/files +openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng-dev.dirs +openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.conffiles +openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.dirs +openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.postinst +openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.substvars +openair3/PMIPv6/freeradius-client-1.1.6/debian/postrm +openair3/PMIPv6/freeradius-client-1.1.6/debian/radiusclient-ng.dirs +openair3/PMIPv6/freeradius-client-1.1.6/debian/radiusclient-ng.postinst +openair3/PMIPv6/freeradius-client-1.1.6/debian/README.debian +openair3/PMIPv6/freeradius-client-1.1.6/debian/rules +openair3/PMIPv6/freeradius-client-1.1.6/debian/substvars +openair3/PMIPv6/freeradius-client-1.1.6/debian/watch +openair3/PMIPv6/freeradius-client-1.1.6/doc/ChangeLog +openair3/PMIPv6/freeradius-client-1.1.6/doc/instop.html +openair3/PMIPv6/freeradius-client-1.1.6/doc/login.example +openair3/PMIPv6/freeradius-client-1.1.6/doc/README +openair3/PMIPv6/freeradius-client-1.1.6/doc/release-method.txt +openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary +openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.ascend +openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.compat +openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.merit +openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.sip +openair3/PMIPv6/freeradius-client-1.1.6/etc/issue +openair3/PMIPv6/freeradius-client-1.1.6/etc/port-id-map +openair3/PMIPv6/freeradius-client-1.1.6/etc/radiusclient.conf +openair3/PMIPv6/freeradius-client-1.1.6/etc/radiusclient.conf.in +openair3/PMIPv6/freeradius-client-1.1.6/etc/servers +openair3/PMIPv6/freeradius-client-1.1.6/examples/clients.conf +openair3/PMIPv6/freeradius-client-1.1.6/examples/radiusd.conf +openair3/PMIPv6/freeradius-client-1.1.6/examples/users +openair3/PMIPv6/freeradius-client-1.1.6/include/freeradius-client.h +openair3/PMIPv6/freeradius-client-1.1.6/include/includes.h +openair3/PMIPv6/freeradius-client-1.1.6/include/messages.h +openair3/PMIPv6/freeradius-client-1.1.6/include/pathnames.h +openair3/PMIPv6/freeradius-client-1.1.6/lib/avpair.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/buildreq.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/clientid.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/config.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/dict.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/env.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/ip_util.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/lock.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/log.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/md5.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/md5.h +openair3/PMIPv6/freeradius-client-1.1.6/lib/options.h +openair3/PMIPv6/freeradius-client-1.1.6/lib/sendserver.c +openair3/PMIPv6/freeradius-client-1.1.6/lib/util.c +openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/ip-down +openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/ip-up +openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/login.radius +openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/README +openair3/PMIPv6/freeradius-client-1.1.6/login.radius/login.radius +openair3/PMIPv6/freeradius-client-1.1.6/login.radius/README +openair3/PMIPv6/freeradius-client-1.1.6/patches/merit-2.4.21-CHAP.diff +openair3/PMIPv6/freeradius-client-1.1.6/patches/radiusd-1.16.accounting.diff +openair3/PMIPv6/freeradius-client-1.1.6/patches/radiusd-1.16.shadow.diff +openair3/PMIPv6/freeradius-client-1.1.6/patches/README +openair3/PMIPv6/freeradius-client-1.1.6/rpm/radiusclient.spec +openair3/PMIPv6/freeradius-client-1.1.6/src/local.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radacct +openair3/PMIPv6/freeradius-client-1.1.6/src/radacct.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radembedded +openair3/PMIPv6/freeradius-client-1.1.6/src/radembedded.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radexample +openair3/PMIPv6/freeradius-client-1.1.6/src/radexample.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radius.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radiusclient +openair3/PMIPv6/freeradius-client-1.1.6/src/radiusclient.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radlogin +openair3/PMIPv6/freeradius-client-1.1.6/src/radlogin.c +openair3/PMIPv6/freeradius-client-1.1.6/src/radlogin.h +openair3/PMIPv6/freeradius-client-1.1.6/src/radstatus +openair3/PMIPv6/freeradius-client-1.1.6/src/radstatus.c +openair3/PMIPv6/freeradius-client-1.1.6/aclocal.m4 +openair3/PMIPv6/freeradius-client-1.1.6/BUGS +openair3/PMIPv6/freeradius-client-1.1.6/config.guess +openair3/PMIPv6/freeradius-client-1.1.6/config.h +openair3/PMIPv6/freeradius-client-1.1.6/config.h.in +openair3/PMIPv6/freeradius-client-1.1.6/config.log +openair3/PMIPv6/freeradius-client-1.1.6/config.status +openair3/PMIPv6/freeradius-client-1.1.6/config.sub +openair3/PMIPv6/freeradius-client-1.1.6/configure +openair3/PMIPv6/freeradius-client-1.1.6/configure.in +openair3/PMIPv6/freeradius-client-1.1.6/COPYRIGHT +openair3/PMIPv6/freeradius-client-1.1.6/depcomp +openair3/PMIPv6/freeradius-client-1.1.6/install-sh +openair3/PMIPv6/freeradius-client-1.1.6/libtool +openair3/PMIPv6/freeradius-client-1.1.6/ltmain.sh +openair3/PMIPv6/freeradius-client-1.1.6/missing +openair3/PMIPv6/freeradius-client-1.1.6/mkinstalldirs +openair3/PMIPv6/freeradius-client-1.1.6/README +openair3/PMIPv6/freeradius-client-1.1.6/README.radexample +openair3/PMIPv6/freeradius-client-1.1.6/stamp-h +openair3/PMIPv6/freeradius-client-1.1.6/stamp-h1 +openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pcap2msc +openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pcap2msc_check.py +openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pcap2msc_filter.py +openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pmip_mscgen.sh +openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/lma_guest_setup.bash +openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/lma_vm_setup.bash +openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mag_guest_setup.bash +openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mag_vm_setup.bash +openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mn_guest_setup.bash +openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mn_vm_setup.bash +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-cn.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-ha-lma.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-ha.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-lma.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-mag1.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-mag2.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-mn.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-nemo-ha.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/example-nemo-mn.conf +openair3/PMIPv6/pmipv6-daemon-umip/extras/mac-mapping.auth +openair3/PMIPv6/pmipv6-daemon-umip/extras/PMIPv6_schema_example_1LMA_2MRs.jpg +openair3/PMIPv6/pmipv6-daemon-umip/extras/UMIP0.4_ALL_UBUNTU_GEN_SEQ_DIAGRAM.10.04.sh +openair3/PMIPv6/pmipv6-daemon-umip/extras/UMIP0.4_LMA_UBUNTU.10.04.py +openair3/PMIPv6/pmipv6-daemon-umip/extras/UMIP0.4_MAG_UBUNTU.10.04.py +openair3/PMIPv6/pmipv6-daemon-umip/include/linux/xfrm.h +openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/icmp6.h +openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/in.h +openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/ip6.h +openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/ip6mh.h +openair3/PMIPv6/pmipv6-daemon-umip/include/libnetlink.h +openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_opt_find.c +openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_add.c +openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_getaddr.c +openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_gettype.c +openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_init.c +openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_space.c +openair3/PMIPv6/pmipv6-daemon-umip/libnetlink/libnetlink.c +openair3/PMIPv6/pmipv6-daemon-umip/libnetlink/README +openair3/PMIPv6/pmipv6-daemon-umip/licenses/cisco-ipr-draft-ietf-nemo-basic-support-03.txt +openair3/PMIPv6/pmipv6-daemon-umip/licenses/nokia-ipr-draft-ietf-nemo-basic-support.txt +openair3/PMIPv6/pmipv6-daemon-umip/man/mip6d.conf.tmpl +openair3/PMIPv6/pmipv6-daemon-umip/man/mip6d.tmpl +openair3/PMIPv6/pmipv6-daemon-umip/man/mipv6.tmpl +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/docs/Doxyfile +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/docs/footer.html +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_cache.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_cache.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_consts.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_fsm.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_fsm.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_handler.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_handler.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_hnp_cache.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_hnp_cache.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_init.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_init.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_lma_proc.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_lma_proc.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_mag_proc.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_mag_proc.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_msgs.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_msgs.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_pcap.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_pcap.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_tunnel.c +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_tunnel.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_types.h +openair3/PMIPv6/pmipv6-daemon-umip/src/bcache.c +openair3/PMIPv6/pmipv6-daemon-umip/src/bcache.h +openair3/PMIPv6/pmipv6-daemon-umip/src/bul.c +openair3/PMIPv6/pmipv6-daemon-umip/src/bul.h +openair3/PMIPv6/pmipv6-daemon-umip/src/cn.c +openair3/PMIPv6/pmipv6-daemon-umip/src/cn.h +openair3/PMIPv6/pmipv6-daemon-umip/src/conf.c +openair3/PMIPv6/pmipv6-daemon-umip/src/conf.h +openair3/PMIPv6/pmipv6-daemon-umip/src/crypto.c +openair3/PMIPv6/pmipv6-daemon-umip/src/crypto.h +openair3/PMIPv6/pmipv6-daemon-umip/src/debug.c +openair3/PMIPv6/pmipv6-daemon-umip/src/debug.h +openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_ha.c +openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_ha.h +openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_mn.c +openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_mn.h +openair3/PMIPv6/pmipv6-daemon-umip/src/gram.y +openair3/PMIPv6/pmipv6-daemon-umip/src/ha.c +openair3/PMIPv6/pmipv6-daemon-umip/src/ha.h +openair3/PMIPv6/pmipv6-daemon-umip/src/hash.c +openair3/PMIPv6/pmipv6-daemon-umip/src/hash.h +openair3/PMIPv6/pmipv6-daemon-umip/src/icmp6.c +openair3/PMIPv6/pmipv6-daemon-umip/src/icmp6.h +openair3/PMIPv6/pmipv6-daemon-umip/src/ipsec.c +openair3/PMIPv6/pmipv6-daemon-umip/src/ipsec.h +openair3/PMIPv6/pmipv6-daemon-umip/src/keygen.c +openair3/PMIPv6/pmipv6-daemon-umip/src/keygen.h +openair3/PMIPv6/pmipv6-daemon-umip/src/list.h +openair3/PMIPv6/pmipv6-daemon-umip/src/main.c +openair3/PMIPv6/pmipv6-daemon-umip/src/mh.c +openair3/PMIPv6/pmipv6-daemon-umip/src/mh.h +openair3/PMIPv6/pmipv6-daemon-umip/src/mipv6.h +openair3/PMIPv6/pmipv6-daemon-umip/src/mk-pmgr_c.sh +openair3/PMIPv6/pmipv6-daemon-umip/src/mk-pmgr_h.sh +openair3/PMIPv6/pmipv6-daemon-umip/src/mn.c +openair3/PMIPv6/pmipv6-daemon-umip/src/mn.h +openair3/PMIPv6/pmipv6-daemon-umip/src/movement.c +openair3/PMIPv6/pmipv6-daemon-umip/src/movement.h +openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_ha.c +openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_ha.h +openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_mn.c +openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_mn.h +openair3/PMIPv6/pmipv6-daemon-umip/src/ndisc.c +openair3/PMIPv6/pmipv6-daemon-umip/src/ndisc.h +openair3/PMIPv6/pmipv6-daemon-umip/src/pmgr.c.in +openair3/PMIPv6/pmipv6-daemon-umip/src/pmgr.h.in +openair3/PMIPv6/pmipv6-daemon-umip/src/policy.c +openair3/PMIPv6/pmipv6-daemon-umip/src/policy.h +openair3/PMIPv6/pmipv6-daemon-umip/src/prefix.c +openair3/PMIPv6/pmipv6-daemon-umip/src/prefix.h +openair3/PMIPv6/pmipv6-daemon-umip/src/proc_sys.c +openair3/PMIPv6/pmipv6-daemon-umip/src/proc_sys.h +openair3/PMIPv6/pmipv6-daemon-umip/src/retrout.c +openair3/PMIPv6/pmipv6-daemon-umip/src/retrout.h +openair3/PMIPv6/pmipv6-daemon-umip/src/rtnl.c +openair3/PMIPv6/pmipv6-daemon-umip/src/rtnl.h +openair3/PMIPv6/pmipv6-daemon-umip/src/scan.l +openair3/PMIPv6/pmipv6-daemon-umip/src/statistics.h +openair3/PMIPv6/pmipv6-daemon-umip/src/tqueue.c +openair3/PMIPv6/pmipv6-daemon-umip/src/tqueue.h +openair3/PMIPv6/pmipv6-daemon-umip/src/tunnelctl.c +openair3/PMIPv6/pmipv6-daemon-umip/src/tunnelctl.h +openair3/PMIPv6/pmipv6-daemon-umip/src/util.c +openair3/PMIPv6/pmipv6-daemon-umip/src/util.h +openair3/PMIPv6/pmipv6-daemon-umip/src/vars.c +openair3/PMIPv6/pmipv6-daemon-umip/src/vt.c +openair3/PMIPv6/pmipv6-daemon-umip/src/vt.h +openair3/PMIPv6/pmipv6-daemon-umip/src/xfrm.c +openair3/PMIPv6/pmipv6-daemon-umip/src/xfrm.h +openair3/PMIPv6/pmipv6-daemon-umip/AUTHORS +openair3/PMIPv6/pmipv6-daemon-umip/BUGS +openair3/PMIPv6/pmipv6-daemon-umip/ChangeLog +openair3/PMIPv6/pmipv6-daemon-umip/chkconf_kernel.sh +openair3/PMIPv6/pmipv6-daemon-umip/configure.ac +openair3/PMIPv6/pmipv6-daemon-umip/COPYING +openair3/PMIPv6/pmipv6-daemon-umip/COPYING.NEMO +openair3/PMIPv6/pmipv6-daemon-umip/depcomp +openair3/PMIPv6/pmipv6-daemon-umip/INSTALL +openair3/PMIPv6/pmipv6-daemon-umip/install-sh +openair3/PMIPv6/pmipv6-daemon-umip/INSTALL.kernel +openair3/PMIPv6/pmipv6-daemon-umip/missing +openair3/PMIPv6/pmipv6-daemon-umip/NEWS +openair3/PMIPv6/pmipv6-daemon-umip/README +openair3/PMIPv6/pmipv6-daemon-umip/README.IPsec +openair3/PMIPv6/pmipv6-daemon-umip/README.NEMO +openair3/PMIPv6/pmipv6-daemon-umip/THANKS +openair3/PMIPv6/AUTHORS +openair3/PMIPv6/BUGS +openair3/PMIPv6/CHANGELOG +openair3/PMIPv6/chkconf_kernel.sh +openair3/PMIPv6/COPYING +openair3/PMIPv6/INSTALL +openair3/PMIPv6/INSTALL.kernel +openair3/PMIPv6/README.first +openair3/PMIPv6/VERSION +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_bit_buffer.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F13_data_types_for_information_elements_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F1_basic_data_types_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F2_general_data_types_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F3_data_types_for_address_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F4_data_types_for_links_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F9_data_types_for_qos_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_header_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_L2_type_values_for_tlv_encoding.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_log.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_Medieval_extensions.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_msg_codec.c +openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_primitive_codec.c +openair3/RAL-LTE/INTERFACE-802.21/DOXYGEN/Doxyfile +openair3/RAL-LTE/INTERFACE-802.21/DOXYGEN/footer.html +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_bit_buffer.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F13_data_types_for_information_elements_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F1_basic_data_types_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F2_general_data_types_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F3_data_types_for_address_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F4_data_types_for_links_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F9_data_types_for_qos_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_header_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_L2_type_values_for_tlv_encoding.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Link_Constants.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Link_Messages.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Link_Primitives.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_log.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Medieval_extensions.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_msg_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_primitive_codec.h +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Types.h +openair3/RAL-LTE/INTERFACE-802.21/readme.txt +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_action.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_constants.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_main.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_mih_msg.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_parameters.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_process.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_proto.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_rrc_msg.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_subscribe.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_thresholds.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_variables.h +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/rrc_d_types.h +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/dist/eNB_lte_user.conf +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/dist/link_sap.conf +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/dist/odtone.conf +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/dummy_130606.tgz +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/eNB_lte_user.conf +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/Jamfile +openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/rg_mih_usr.cpp +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_action.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_ioctl.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_main.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_mih_msg.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_parameters.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_process.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_rrc_msg.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_subscribe.c +openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_thresholds.c +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_action.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_constants.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_main.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_mih_execute.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_mih_msg.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_parameters.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_proto.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_rrc_msg.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_subscribe.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_thresholds.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_variables.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/nas_ue_ioctl.h +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/rrc_d_types.h +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/dist/link_sap.conf +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/dist/lte_user.conf +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/dist/odtone.conf +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/Jamfile +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/lte_user.conf +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/mih_usr.cpp +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/README.txt +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/ue_lte_user.conf +openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/ue_lte_user.cpp +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_action.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_ioctl.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_main.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_mih_execute.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_mih_msg.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_parameters.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_process.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_rrc_msg.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_subscribe.c +openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_thresholds.c +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_0.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_1.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_10.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_11.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_12.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_2.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_3.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_4.png +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_usr.cpp +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/README.txt +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/rg_mih_usr.cpp +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/sendUDP-01 +openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/sendUDP-FF +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_action.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_constants.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_mih_msg.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_parameters.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_proto.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_subscribe.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_thresholds.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_variables.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_action.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_constants.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_get.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_main.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_mih_msg.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_parameters.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_proto.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_subscribe.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_thresholds.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_variables.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nas_rg_netlink.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nas_ue_ioctl.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nas_ue_netlink.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nasUE_config.h +openair3/RAL-LTE/RAL-DUMMY/INCLUDE/rrc_d_types.h +openair3/RAL-LTE/RAL-DUMMY/MSCGEN_CHART/msc_gen.py +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_action.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_main.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_mih_msg.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_NAS.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_parameters.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_process.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_subscribe.c +openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_thresholds.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_action.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_get.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_main.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_mih_msg.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_NAS.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_parameters.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_process.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_subscribe.c +openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_thresholds.c +openair3/RAL-LTE/RAL-DUMMY/SRC/nasRGdummy.c +openair3/RAL-LTE/RAL-DUMMY/SRC/nasUEdummy.c +openair3/RAL-LTE/COPYING +openair3/RAL-LTE/RAL-LTE.readme.txt +openair3/UTILS/GPSDRIVE/maps/expedia/map_27650000_43.847_7.448.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.282_1.989.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.501_2.111.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.502_2.113.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.516_2.087.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.735_7.421.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.883_7.355.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.912_7.516.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.923_7.527.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_47400_41.282_1.989.gif +openair3/UTILS/GPSDRIVE/maps/expedia/map_98750_41.516_2.088.gif +openair3/UTILS/GPSDRIVE/maps/map_koord.txt +openair3/UTILS/GPSDRIVE/README.txt +openair3/UTILS/REMSERIAL-1.4.UDP/README.txt +openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c +openair3/UTILS/REMSERIAL-1.4.UDP/stty.c +openair3/UTILS/COPYING +openair3/COPYING +openair3/history.txt +openairITS/mac/DOT11/compat/scripts/compat_firmware_install +openairITS/mac/DOT11/compat/scripts/gen-compat-autoconf.sh +openairITS/mac/DOT11/compat/scripts/gen-compat-config.sh +openairITS/mac/DOT11/compat/scripts/skip-colors +openairITS/mac/DOT11/compat/compat-2.6.14.c +openairITS/mac/DOT11/compat/compat-2.6.18.c +openairITS/mac/DOT11/compat/compat-2.6.19.c +openairITS/mac/DOT11/compat/compat-2.6.21.c +openairITS/mac/DOT11/compat/compat-2.6.22.c +openairITS/mac/DOT11/compat/compat-2.6.23.c +openairITS/mac/DOT11/compat/compat-2.6.24.c +openairITS/mac/DOT11/compat/compat-2.6.25.c +openairITS/mac/DOT11/compat/compat-2.6.26.c +openairITS/mac/DOT11/compat/compat-2.6.27.c +openairITS/mac/DOT11/compat/compat-2.6.28.c +openairITS/mac/DOT11/compat/compat-2.6.29.c +openairITS/mac/DOT11/compat/compat-2.6.32.c +openairITS/mac/DOT11/compat/compat-2.6.33.c +openairITS/mac/DOT11/compat/compat-2.6.35.c +openairITS/mac/DOT11/compat/compat-2.6.36.c +openairITS/mac/DOT11/compat/compat-2.6.37.c +openairITS/mac/DOT11/compat/compat-2.6.38.c +openairITS/mac/DOT11/compat/compat-2.6.39.c +openairITS/mac/DOT11/compat/compat-3.0.c +openairITS/mac/DOT11/compat/compat-3.2.c +openairITS/mac/DOT11/compat/compat-3.3.c +openairITS/mac/DOT11/compat/compat-3.5.c +openairITS/mac/DOT11/compat/compat_atomic.c +openairITS/mac/DOT11/compat/compat_firmware_class.c +openairITS/mac/DOT11/compat/cordic.c +openairITS/mac/DOT11/compat/crc8.c +openairITS/mac/DOT11/compat/kfifo.c +openairITS/mac/DOT11/compat/kstrtox.c +openairITS/mac/DOT11/compat/main.c +openairITS/mac/DOT11/compat/modules.order +openairITS/mac/DOT11/compat/pm_qos_params.c +openairITS/mac/DOT11/include/crypto/aes.h +openairITS/mac/DOT11/include/linux/bcma/bcma.h +openairITS/mac/DOT11/include/linux/bcma/bcma_driver_chipcommon.h +openairITS/mac/DOT11/include/linux/bcma/bcma_driver_mips.h +openairITS/mac/DOT11/include/linux/bcma/bcma_driver_pci.h +openairITS/mac/DOT11/include/linux/bcma/bcma_regs.h +openairITS/mac/DOT11/include/linux/bcma/bcma_soc.h +openairITS/mac/DOT11/include/linux/spi/libertas_spi.h +openairITS/mac/DOT11/include/linux/ssb/ssb.h +openairITS/mac/DOT11/include/linux/ssb/ssb_driver_chipcommon.h +openairITS/mac/DOT11/include/linux/ssb/ssb_driver_extif.h +openairITS/mac/DOT11/include/linux/ssb/ssb_driver_gige.h +openairITS/mac/DOT11/include/linux/ssb/ssb_driver_mips.h +openairITS/mac/DOT11/include/linux/ssb/ssb_driver_pci.h +openairITS/mac/DOT11/include/linux/ssb/ssb_embedded.h +openairITS/mac/DOT11/include/linux/ssb/ssb_regs.h +openairITS/mac/DOT11/include/linux/unaligned/access_ok.h +openairITS/mac/DOT11/include/linux/unaligned/be_byteshift.h +openairITS/mac/DOT11/include/linux/unaligned/be_memmove.h +openairITS/mac/DOT11/include/linux/unaligned/be_struct.h +openairITS/mac/DOT11/include/linux/unaligned/generic.h +openairITS/mac/DOT11/include/linux/unaligned/le_byteshift.h +openairITS/mac/DOT11/include/linux/unaligned/le_memmove.h +openairITS/mac/DOT11/include/linux/unaligned/le_struct.h +openairITS/mac/DOT11/include/linux/unaligned/memmove.h +openairITS/mac/DOT11/include/linux/unaligned/packed_struct.h +openairITS/mac/DOT11/include/linux/usb/rndis_host.h +openairITS/mac/DOT11/include/linux/usb/usbnet.h +openairITS/mac/DOT11/include/linux/ath9k_platform.h +openairITS/mac/DOT11/include/linux/atomic.h +openairITS/mac/DOT11/include/linux/average.h +openairITS/mac/DOT11/include/linux/bitops.h +openairITS/mac/DOT11/include/linux/compat-2.6.14.h +openairITS/mac/DOT11/include/linux/compat-2.6.18.h +openairITS/mac/DOT11/include/linux/compat-2.6.19.h +openairITS/mac/DOT11/include/linux/compat-2.6.20.h +openairITS/mac/DOT11/include/linux/compat-2.6.21.h +openairITS/mac/DOT11/include/linux/compat-2.6.22.h +openairITS/mac/DOT11/include/linux/compat-2.6.23.h +openairITS/mac/DOT11/include/linux/compat-2.6.24.h +openairITS/mac/DOT11/include/linux/compat-2.6.25.h +openairITS/mac/DOT11/include/linux/compat-2.6.26.h +openairITS/mac/DOT11/include/linux/compat-2.6.27.h +openairITS/mac/DOT11/include/linux/compat-2.6.28.h +openairITS/mac/DOT11/include/linux/compat-2.6.29.h +openairITS/mac/DOT11/include/linux/compat-2.6.30.h +openairITS/mac/DOT11/include/linux/compat-2.6.31.h +openairITS/mac/DOT11/include/linux/compat-2.6.32.h +openairITS/mac/DOT11/include/linux/compat-2.6.33.h +openairITS/mac/DOT11/include/linux/compat-2.6.34.h +openairITS/mac/DOT11/include/linux/compat-2.6.35.h +openairITS/mac/DOT11/include/linux/compat-2.6.36.h +openairITS/mac/DOT11/include/linux/compat-2.6.37.h +openairITS/mac/DOT11/include/linux/compat-2.6.38.h +openairITS/mac/DOT11/include/linux/compat-2.6.39.h +openairITS/mac/DOT11/include/linux/compat-2.6.h +openairITS/mac/DOT11/include/linux/compat-3.0.h +openairITS/mac/DOT11/include/linux/compat-3.1.h +openairITS/mac/DOT11/include/linux/compat-3.2.h +openairITS/mac/DOT11/include/linux/compat-3.3.h +openairITS/mac/DOT11/include/linux/compat-3.4.h +openairITS/mac/DOT11/include/linux/compat-3.5.h +openairITS/mac/DOT11/include/linux/compat_autoconf.h +openairITS/mac/DOT11/include/linux/cordic.h +openairITS/mac/DOT11/include/linux/crc8.h +openairITS/mac/DOT11/include/linux/eeprom_93cx6.h +openairITS/mac/DOT11/include/linux/export.h +openairITS/mac/DOT11/include/linux/ieee80211.h +openairITS/mac/DOT11/include/linux/kfifo.h +openairITS/mac/DOT11/include/linux/math64.h +openairITS/mac/DOT11/include/linux/nl80211.h +openairITS/mac/DOT11/include/linux/of.h +openairITS/mac/DOT11/include/linux/pci-aspm.h +openairITS/mac/DOT11/include/linux/pci_ids.h +openairITS/mac/DOT11/include/linux/pm_qos.h +openairITS/mac/DOT11/include/linux/pm_qos_params.h +openairITS/mac/DOT11/include/linux/pm_runtime.h +openairITS/mac/DOT11/include/linux/printk.h +openairITS/mac/DOT11/include/linux/rfkill.h +openairITS/mac/DOT11/include/linux/rfkill_backport.h +openairITS/mac/DOT11/include/linux/semaphore.h +openairITS/mac/DOT11/include/linux/tracepoint.h +openairITS/mac/DOT11/include/linux/wireless.h +openairITS/mac/DOT11/include/linux/wl12xx.h +openairITS/mac/DOT11/include/N/pcmcia/cistpl.h +openairITS/mac/DOT11/include/N/trace/define_trace.h +openairITS/mac/DOT11/include/net/cfg80211-wext.h +openairITS/mac/DOT11/include/net/cfg80211.h +openairITS/mac/DOT11/include/net/ieee80211_radiotap.h +openairITS/mac/DOT11/include/net/lib80211.h +openairITS/mac/DOT11/include/net/mac80211.h +openairITS/mac/DOT11/include/net/net_namespace.h +openairITS/mac/DOT11/include/net/regulatory.h +openairITS/mac/DOT11/net/mac80211/aes_ccm.c +openairITS/mac/DOT11/net/mac80211/aes_ccm.h +openairITS/mac/DOT11/net/mac80211/aes_cmac.c +openairITS/mac/DOT11/net/mac80211/aes_cmac.h +openairITS/mac/DOT11/net/mac80211/agg-rx.c +openairITS/mac/DOT11/net/mac80211/agg-tx.c +openairITS/mac/DOT11/net/mac80211/cfg.c +openairITS/mac/DOT11/net/mac80211/cfg.h +openairITS/mac/DOT11/net/mac80211/chan.c +openairITS/mac/DOT11/net/mac80211/debugfs.c +openairITS/mac/DOT11/net/mac80211/debugfs.h +openairITS/mac/DOT11/net/mac80211/debugfs_key.c +openairITS/mac/DOT11/net/mac80211/debugfs_key.h +openairITS/mac/DOT11/net/mac80211/debugfs_netdev.c +openairITS/mac/DOT11/net/mac80211/debugfs_netdev.h +openairITS/mac/DOT11/net/mac80211/debugfs_sta.c +openairITS/mac/DOT11/net/mac80211/debugfs_sta.h +openairITS/mac/DOT11/net/mac80211/driver-ops.h +openairITS/mac/DOT11/net/mac80211/driver-trace.c +openairITS/mac/DOT11/net/mac80211/driver-trace.h +openairITS/mac/DOT11/net/mac80211/event.c +openairITS/mac/DOT11/net/mac80211/ht.c +openairITS/mac/DOT11/net/mac80211/ibss.c +openairITS/mac/DOT11/net/mac80211/ieee80211_i.h +openairITS/mac/DOT11/net/mac80211/iface.c +openairITS/mac/DOT11/net/mac80211/key.c +openairITS/mac/DOT11/net/mac80211/key.h +openairITS/mac/DOT11/net/mac80211/led.c +openairITS/mac/DOT11/net/mac80211/led.h +openairITS/mac/DOT11/net/mac80211/main.c +openairITS/mac/DOT11/net/mac80211/mesh.c +openairITS/mac/DOT11/net/mac80211/mesh.h +openairITS/mac/DOT11/net/mac80211/mesh_hwmp.c +openairITS/mac/DOT11/net/mac80211/mesh_pathtbl.c +openairITS/mac/DOT11/net/mac80211/mesh_plink.c +openairITS/mac/DOT11/net/mac80211/michael.c +openairITS/mac/DOT11/net/mac80211/michael.h +openairITS/mac/DOT11/net/mac80211/mlme.c +openairITS/mac/DOT11/net/mac80211/modules.order +openairITS/mac/DOT11/net/mac80211/offchannel.c +openairITS/mac/DOT11/net/mac80211/pm.c +openairITS/mac/DOT11/net/mac80211/rate.c +openairITS/mac/DOT11/net/mac80211/rate.h +openairITS/mac/DOT11/net/mac80211/rc80211_minstrel.c +openairITS/mac/DOT11/net/mac80211/rc80211_minstrel.h +openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_debugfs.c +openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_ht.c +openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_ht.h +openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_ht_debugfs.c +openairITS/mac/DOT11/net/mac80211/rc80211_pid.h +openairITS/mac/DOT11/net/mac80211/rc80211_pid_algo.c +openairITS/mac/DOT11/net/mac80211/rc80211_pid_debugfs.c +openairITS/mac/DOT11/net/mac80211/rx.c +openairITS/mac/DOT11/net/mac80211/scan.c +openairITS/mac/DOT11/net/mac80211/spectmgmt.c +openairITS/mac/DOT11/net/mac80211/sta_info.c +openairITS/mac/DOT11/net/mac80211/sta_info.h +openairITS/mac/DOT11/net/mac80211/status.c +openairITS/mac/DOT11/net/mac80211/tkip.c +openairITS/mac/DOT11/net/mac80211/tkip.h +openairITS/mac/DOT11/net/mac80211/tx.c +openairITS/mac/DOT11/net/mac80211/util.c +openairITS/mac/DOT11/net/mac80211/wep.c +openairITS/mac/DOT11/net/mac80211/wep.h +openairITS/mac/DOT11/net/mac80211/wme.c +openairITS/mac/DOT11/net/mac80211/wme.h +openairITS/mac/DOT11/net/mac80211/work.c +openairITS/mac/DOT11/net/mac80211/wpa.c +openairITS/mac/DOT11/net/mac80211/wpa.h +openairITS/mac/DOT11/net/wireless/chan.c +openairITS/mac/DOT11/net/wireless/core.c +openairITS/mac/DOT11/net/wireless/core.h +openairITS/mac/DOT11/net/wireless/db.txt +openairITS/mac/DOT11/net/wireless/debugfs.c +openairITS/mac/DOT11/net/wireless/debugfs.h +openairITS/mac/DOT11/net/wireless/ethtool.c +openairITS/mac/DOT11/net/wireless/ethtool.h +openairITS/mac/DOT11/net/wireless/genregdb.awk +openairITS/mac/DOT11/net/wireless/ibss.c +openairITS/mac/DOT11/net/wireless/lib80211.c +openairITS/mac/DOT11/net/wireless/lib80211_crypt_ccmp.c +openairITS/mac/DOT11/net/wireless/lib80211_crypt_tkip.c +openairITS/mac/DOT11/net/wireless/lib80211_crypt_wep.c +openairITS/mac/DOT11/net/wireless/mesh.c +openairITS/mac/DOT11/net/wireless/mlme.c +openairITS/mac/DOT11/net/wireless/modules.order +openairITS/mac/DOT11/net/wireless/nl80211.c +openairITS/mac/DOT11/net/wireless/nl80211.h +openairITS/mac/DOT11/net/wireless/radiotap.c +openairITS/mac/DOT11/net/wireless/reg.c +openairITS/mac/DOT11/net/wireless/reg.h +openairITS/mac/DOT11/net/wireless/regdb.h +openairITS/mac/DOT11/net/wireless/scan.c +openairITS/mac/DOT11/net/wireless/sme.c +openairITS/mac/DOT11/net/wireless/sysfs.c +openairITS/mac/DOT11/net/wireless/sysfs.h +openairITS/mac/DOT11/net/wireless/util.c +openairITS/mac/DOT11/net/wireless/wext-compat.c +openairITS/mac/DOT11/net/wireless/wext-compat.h +openairITS/mac/DOT11/net/wireless/wext-core.c +openairITS/mac/DOT11/net/wireless/wext-priv.c +openairITS/mac/DOT11/net/wireless/wext-proc.c +openairITS/mac/DOT11/net/wireless/wext-sme.c +openairITS/mac/DOT11/net/wireless/wext-spy.c +openairITS/mac/DOT11/scripts/admin-clean.sh +openairITS/mac/DOT11/scripts/admin-refresh.sh +openairITS/mac/DOT11/scripts/admin-update.sh +openairITS/mac/DOT11/scripts/alx-enable +openairITS/mac/DOT11/scripts/athenable +openairITS/mac/DOT11/scripts/athload +openairITS/mac/DOT11/scripts/b43enable +openairITS/mac/DOT11/scripts/b43load +openairITS/mac/DOT11/scripts/btunload.sh +openairITS/mac/DOT11/scripts/check_config.sh +openairITS/mac/DOT11/scripts/check_depmod +openairITS/mac/DOT11/scripts/compress_modules +openairITS/mac/DOT11/scripts/driver-select +openairITS/mac/DOT11/scripts/gen-compat-autoconf.sh +openairITS/mac/DOT11/scripts/gen-stable-release.sh +openairITS/mac/DOT11/scripts/iwl-enable +openairITS/mac/DOT11/scripts/iwl-load +openairITS/mac/DOT11/scripts/madwifi-unload +openairITS/mac/DOT11/scripts/modlib.sh +openairITS/mac/DOT11/scripts/skip-colors +openairITS/mac/DOT11/scripts/unload.sh +openairITS/mac/DOT11/scripts/update-initramfs +openairITS/mac/DOT11/scripts/wlunload.sh +openairITS/mac/DOT11/code-metrics.txt +openairITS/mac/DOT11/compat_base_tree +openairITS/mac/DOT11/compat_base_tree_version +openairITS/mac/DOT11/compat_version +openairITS/mac/DOT11/config.mk +openairITS/mac/DOT11/COPYRIGHT +openairITS/mac/DOT11/MAINTAINERS +openairITS/mac/DOT11/README +openairITS/phy/DOT11/commonvars.h +openairITS/phy/DOT11/crc32.c +openairITS/phy/DOT11/data_detection.c +openairITS/phy/DOT11/defs.h +openairITS/phy/DOT11/generate_STSLTS_corr.m +openairITS/phy/DOT11/initial_sync.c +openairITS/phy/DOT11/interleaver.c +openairITS/phy/DOT11/phy_tx_start.c +openairITS/phy/DOT11/scrambler.c +openairITS/phy/DOT11/STS_LTS_F.h +openairITS/phy/DOT11/txvars.h +openairITS/phy/DRIVERS/ieee80211p-driver.c +openairITS/phy/DRIVERS/ieee80211p-driver.h +openairITS/phy/DRIVERS/ieee80211p-netlinkapi.c +openairITS/phy/DRIVERS/ieee80211p-netlinkapi.h +openairITS/phy/DRIVERS/ieee80211p-softmodem.c +openairITS/phy/SIMULATION/PER_PLOTS/errors_0_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_0_256.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_1_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_1_256.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_2_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_2_256.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_3_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_3_256.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_4_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_4_256.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_5_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/errors_5_256.m +openairITS/phy/SIMULATION/PER_PLOTS/plots.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_0_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_0_256.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_1_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_1_256.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_2_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_2_256.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_3_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_3_256.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_4_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_4_256.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_5_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_5_256.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_0_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_0_256.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_1_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_1_256.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_2_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_2_256.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_3_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_3_256.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_4_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_4_256.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_5_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/SNR_5_256.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_0_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_0_256.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_1_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_1_256.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_2_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_2_256.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_3_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_3_256.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_4_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_4_256.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_5_1024.m +openairITS/phy/SIMULATION/PER_PLOTS/trials_5_256.m +openairITS/phy/SIMULATION/dot11sim.c +openairITS/ieee80211p_compile_modules.sh +openairITS/ieee80211p_configure_interface.sh +openairITS/ieee80211p_insert_modules.sh +openairITS/ieee80211p_setup_vars.sh +svn2git/authors.txt +svn2git/authors_original.txt +svn2git/authors_original_java_output.txt +svn2git/check_diff_author.sh +svn2git/git-author-rewrite.sh +svn2git/README.txt +targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c +targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h +targets/ARCH/COMMON/common_lib.h +targets/ARCH/COMMON/COPYING +targets/ARCH/ETHERNET/USERSPACE/LIB/COPYING +targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c +targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk +targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd +targets/ARCH/EXMIMO/BITSTREAM/program_fpga +targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd +targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd +targets/ARCH/EXMIMO/DEFS/COPYING +targets/ARCH/EXMIMO/DEFS/openair_device.h +targets/ARCH/EXMIMO/DEFS/pcie_interface.h +targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/COPYING +targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h +targets/ARCH/EXMIMO/DRIVER/eurecom/do_reenumerate_expressmimo.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/do_reinsert_driver.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c +targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h +targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c +targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c +targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c +targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/COPYING +targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reenumerate_expressmimo.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reinsert_driver.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/test_script.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h +targets/ARCH/EXMIMO/DRIVER/telecomparistech/COPYING +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c +targets/ARCH/EXMIMO/DRIVER/readme.txt +targets/ARCH/EXMIMO/USERSPACE/LIB/COPYING +targets/ARCH/EXMIMO/USERSPACE/LIB/example.c +targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c +targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h +targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c +targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/COPYING +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo1 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v9 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/COPYING +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m +targets/ARCH/USRP/USERSPACE/LIB/COPYING +targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +targets/COMMON/COPYING +targets/COMMON/create_tasks.c +targets/COMMON/create_tasks.h +targets/DOCS/images/oai_logo.png +targets/DOCS/api_icic.xml +targets/DOCS/Doxyfile +targets/DOCS/oaiemu.doc +targets/DOCS/oaisim_walkthrough.pdf +targets/DOCS/openair_header.tex +targets/DOCS/path_loss_oaisim.xlsx +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/COPYING +targets/PROJECTS/E-MBMS/build_all.bash +targets/PROJECTS/E-MBMS/enb.conf +targets/PROJECTS/E-MBMS/start_enb.bash +targets/PROJECTS/E-MBMS/start_ue.bash +targets/PROJECTS/E-MBMS/utils.bash +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.remote.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.centos.nord.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.memphis.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.generic.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.on.enb.example.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.epc_eur.local.exmimo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml +targets/PROJECTS/GENERIC-LTE-EPC/COPYING +targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash +targets/PROJECTS/GENERIC-LTE-EPC/networks.bash +targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash +targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash +targets/PROJECTS/GENERIC-LTE-EPC/utils.bash +targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash +targets/PROJECTS/LOCALIZATION/filesave0811.mat +targets/PROJECTS/LOCALIZATION/generation.m +targets/PROJECTS/LOCALIZATION/initial_sync.m +targets/PROJECTS/LOCALIZATION/initparams.m +targets/PROJECTS/LOCALIZATION/plots.m +targets/PROJECTS/LOCALIZATION/recup.m +targets/PROJECTS/LOCALIZATION/where2.m +targets/PROJECTS/LOCALIZATION/where2_v1_final.mat +targets/PROJECTS/LOCALIZATION/where2_vf.m +targets/PROJECTS/TDDREC/v0/alterproj.m +targets/PROJECTS/TDDREC/v0/beamforming.m +targets/PROJECTS/TDDREC/v0/calibration.m +targets/PROJECTS/TDDREC/v0/genorthqpskseq.m +targets/PROJECTS/TDDREC/v0/genrandpskseq.m +targets/PROJECTS/TDDREC/v0/initparams.m +targets/PROJECTS/TDDREC/v0/initparams2.m +targets/PROJECTS/TDDREC/v0/ofdm_mod.m +targets/PROJECTS/TDDREC/v0/readme.txt +targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m +targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m +targets/PROJECTS/TDDREC/v0/runmeas_mimo.m +targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m +targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m +targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m +targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m +targets/PROJECTS/TDDREC/f_ch_est.m +targets/PROJECTS/TDDREC/f_ofdm_mod.m +targets/PROJECTS/TDDREC/f_ofdm_rx.m +targets/PROJECTS/TDDREC/f_ofdm_tx.m +targets/PROJECTS/TDDREC/f_tls_ap.m +targets/PROJECTS/TDDREC/f_tls_diag.m +targets/PROJECTS/TDDREC/f_tls_svd.m +targets/PROJECTS/TDDREC/s_beamforming.m +targets/PROJECTS/TDDREC/s_calib.m +targets/PROJECTS/TDDREC/s_draw_F.m +targets/PROJECTS/TDDREC/s_init_params.m +targets/PROJECTS/TDDREC/s_run_meas.m +targets/PROJECTS/COPYING +targets/RT/LAUNCH_SCRIPTS/load_module.sh +targets/RT/LAUNCH_SCRIPTS/nas_enb.sh +targets/RT/LAUNCH_SCRIPTS/nas_ue.sh +targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh +targets/RT/LAUNCH_SCRIPTS/start_emos.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh +targets/RT/LAUNCH_SCRIPTS/start_rf.sh +targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh +targets/RT/LAUNCH_SCRIPTS/start_ue.sh +targets/RT/LAUNCH_SCRIPTS/start_ue2.sh +targets/RT/LAUNCH_SCRIPTS/stop_rf.sh +targets/RT/USER/TOOLS/thread_ipc.c +targets/RT/USER/TOOLS/thread_ipc.h +targets/RT/USER/condtest.c +targets/RT/USER/COPYING +targets/RT/USER/dot11.c +targets/RT/USER/emos-raw.c +targets/RT/USER/eNB.gtkw +targets/RT/USER/eNB_exmimo2.gtkw +targets/RT/USER/exmimo2_2arxg.lime +targets/RT/USER/exmimo2_2brxg.lime +targets/RT/USER/ieee80211p-softmodem.c +targets/RT/USER/init_b200.sh +targets/RT/USER/init_exmimo.sh +targets/RT/USER/init_exmimo2.sh +targets/RT/USER/init_rtai.sh +targets/RT/USER/lte-softmodem.c +targets/RT/USER/lte-ue.c +targets/RT/USER/make_for_usrp.sh +targets/RT/USER/msg_helper.c +targets/RT/USER/msg_many.c +targets/RT/USER/msg_many.h +targets/RT/USER/rrh.c +targets/RT/USER/rt_wrapper.c +targets/RT/USER/rt_wrapper.h +targets/RT/USER/sched_dlsch.c +targets/RT/USER/sched_rx_pdsch.c +targets/RT/USER/sched_ulsch.c +targets/RT/USER/sleeptest.c +targets/RT/USER/stats.c +targets/RT/USER/stats.fd +targets/RT/USER/stats.h +targets/RT/USER/synctest.c +targets/RT/USER/ue_exmimo2.gtkw +targets/SCRIPTS/PROFILING/gprof2dot.py +targets/SCRIPTS/PROFILING/profoai.sh +targets/SCRIPTS/asn1_generate_rrc_messaging_c_code.bash +targets/SCRIPTS/install_asn1.sh +targets/SCRIPTS/install_asn1c_0.9.24.modified.bash +targets/SCRIPTS/msc_gen.py +targets/SCRIPTS/svn-merge-meld.py +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 +targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml +targets/SIMU/EXAMPLES/OSD/README.txt +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas +targets/SIMU/PROC/SCRIPT/Run.py +targets/SIMU/PROC/channel_sim_proc.c +targets/SIMU/PROC/channel_sim_proc.h +targets/SIMU/PROC/COPYING +targets/SIMU/PROC/interface.h +targets/SIMU/PROC/Process.c +targets/SIMU/PROC/Process.h +targets/SIMU/PROC/Tsync.h +targets/SIMU/USER/files/MI_16qam.csv +targets/SIMU/USER/files/MI_16qam.txt +targets/SIMU/USER/files/MI_4qam.csv +targets/SIMU/USER/files/MI_4qam.txt +targets/SIMU/USER/files/MI_64qam.csv +targets/SIMU/USER/files/MI_64qam.txt +targets/SIMU/USER/channel_sim.c +targets/SIMU/USER/COPYING +targets/SIMU/USER/cor_SF_sim.c +targets/SIMU/USER/cor_SF_sim.h +targets/SIMU/USER/event_handler.c +targets/SIMU/USER/event_handler.h +targets/SIMU/USER/init_lte.c +targets/SIMU/USER/init_lte.h +targets/SIMU/USER/oaisim.c +targets/SIMU/USER/oaisim.h +targets/SIMU/USER/oaisim_config.c +targets/SIMU/USER/oaisim_config.h +targets/SIMU/USER/oaisim_functions.c +targets/SIMU/USER/oaisim_functions.h +targets/SIMU/USER/oaisim_pad.c +targets/SIMU/USER/phy_procedures_sim_form.c +targets/SIMU/USER/phy_procedures_sim_form.fd +targets/SIMU/USER/phy_procedures_sim_form.h +targets/SIMU/USER/plot_results.m +targets/SIMU/USER/sinr_sim.c +targets/SIMU/USER/threadpool.c +targets/SIMU/USER/threadpool.h +targets/SIMU/USER/valgrind.sh +targets/TEST/AT_COMMANDS/oaisim.c +targets/TEST/OAI/case01.py +targets/TEST/OAI/case02.py +targets/TEST/OAI/case03.py +targets/TEST/OAI/case04.py +targets/TEST/OAI/case05.py +targets/TEST/OAI/case11.py +targets/TEST/OAI/case12.py +targets/TEST/OAI/case13.py +targets/TEST/OAI/core.py +targets/TEST/OAI/log.py +targets/TEST/OAI/openair.py +targets/TEST/OAI/README +targets/TEST/OAI/test01.py +targets/TEST/OAI/test02.py +targets/TEST/PACKET_TRACER/messages/Msg4.txt +targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt +targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt +targets/TEST/PACKET_TRACER/messages/sib1.txt +targets/TEST/PACKET_TRACER/messages/sib2.txt +targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt +targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt +targets/TEST/PACKET_TRACER/messages/sib3.txt +targets/TEST/PACKET_TRACER/pt.c +targets/TEST/PACKET_TRACER/README.txt +targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt +targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c +targets/TEST/PDCP/readme.txt +targets/TEST/PDCP/test_pdcp.c +targets/TEST/PDCP/test_pdcp.h +targets/TEST/PDCP/test_util.h +targets/TEST/PDCP/todo.txt +targets/TEST/RLC_AM_V9.3.0/oaisim.c +targets/TEST/RLC_UM_V9.3.0/oaisim.c +targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp +targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp +targets/TEST/ROHDE_SCHWARZ/TcpClient.h +targets/build_helper.bash +targets/build_oai.bash +targets/COPYING +targets/itti_vcd_tasks.sav +targets/Makerules +targets/perf_oai.bash +targets/README.txt +COPYING +maketags +oaienv +README.txt \ No newline at end of file diff --git a/oai5g_development.includes b/oai5g_development.includes new file mode 100644 index 0000000000..1fbdd1b648 --- /dev/null +++ b/oai5g_development.includes @@ -0,0 +1,182 @@ +common/utils +common/utils/collection +common/utils/collection/hashtable +common/utils/itti +common/utils/itti_analyzer/common +common/utils/itti_analyzer/libbuffers +common/utils/itti_analyzer/libparser +common/utils/itti_analyzer/libresolver +common/utils/itti_analyzer/libui +common/utils/msc +openair-cn/COMMON +openair-cn/GTPV1-U +openair-cn/GTPV1-U/GTPUAH +openair-cn/GTPV1-U/nw-gtpv1u/include +openair-cn/GTPV1-U/nw-gtpv1u/shared +openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld +openair-cn/GTPV2-C/nwgtpv2c-0.11/include +openair-cn/GTPV2-C/nwgtpv2c-0.11/shared +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping +openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld +openair-cn/INTERTASK_INTERFACE +openair-cn/MME_APP +openair-cn/NAS +openair-cn/NAS/EURECOM-NAS/src +openair-cn/NAS/EURECOM-NAS/src/api/mme +openair-cn/NAS/EURECOM-NAS/src/api/network +openair-cn/NAS/EURECOM-NAS/src/api/user +openair-cn/NAS/EURECOM-NAS/src/api/usim +openair-cn/NAS/EURECOM-NAS/src/emm +openair-cn/NAS/EURECOM-NAS/src/emm/msg +openair-cn/NAS/EURECOM-NAS/src/emm/sap +openair-cn/NAS/EURECOM-NAS/src/esm +openair-cn/NAS/EURECOM-NAS/src/esm/msg +openair-cn/NAS/EURECOM-NAS/src/esm/sap +openair-cn/NAS/EURECOM-NAS/src/ies +openair-cn/NAS/EURECOM-NAS/src/include +openair-cn/NAS/EURECOM-NAS/src/util +openair-cn/NAS/EURECOM-NAS/tools +openair-cn/NAS/EURECOM-NAS/tst/as_simulator +openair-cn/NAS/EURECOM-NAS/tst/network +openair-cn/NAS/EURECOM-NAS/tst/user +openair-cn/OAI_EPC +openair-cn/OAI_SGW +openair-cn/OAISIM_MME +openair-cn/OPENAIRHSS/access_restriction +openair-cn/OPENAIRHSS/auc +openair-cn/OPENAIRHSS/db +openair-cn/OPENAIRHSS/s6a +openair-cn/OPENAIRHSS/tests +openair-cn/OPENAIRHSS/utils +openair-cn/S11 +openair-cn/S1AP +openair-cn/S6A +openair-cn/SCTP +openair-cn/SECU +openair-cn/SGW-LITE +openair-cn/TEST +openair-cn/UDP +openair-cn/UTILS +openair-cn/UTILS/HASHTABLE +openair1/MAC_INTERFACE +openair1/PHY +openair1/PHY/CODING +openair1/PHY/INIT +openair1/PHY/LTE_ESTIMATION +openair1/PHY/LTE_REFSIG +openair1/PHY/LTE_TRANSPORT +openair1/PHY/MODULATION +openair1/PHY/TOOLS +openair1/SCHED +openair1/SIMULATION/ETH_TRANSPORT +openair1/SIMULATION/LTE_PHY +openair1/SIMULATION/RF +openair1/SIMULATION/TOOLS +openair2/COMMON +openair2/DOCS/TEMPLATES/CODE +openair2/ENB_APP +openair2/LAYER2 +openair2/LAYER2/MAC +openair2/LAYER2/PDCP_v10.1.0 +openair2/LAYER2/RLC +openair2/LAYER2/RLC/AM_v9.3.0 +openair2/LAYER2/RLC/TM_v9.3.0 +openair2/LAYER2/RLC/UM_v9.3.0 +openair2/NAS +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL +openair2/NAS/DRIVER/CELLULAR/NASMT +openair2/NAS/DRIVER/CELLULAR/NASRG +openair2/NAS/SIMU_CELLULAR +openair2/NETWORK_DRIVER/LITE +openair2/NETWORK_DRIVER/MESH +openair2/NETWORK_DRIVER/UE_IP +openair2/PHY_INTERFACE +openair2/RRC/L2_INTERFACE +openair2/RRC/LITE +openair2/RRC/LITE/MESSAGES +openair2/RRC/NAS +openair2/RRM_4_RRC_LITE/src +openair2/RRM_4_RRC_LITE/src/com +openair2/RRM_4_RRC_LITE/src/com/rrc +openair2/RRM_4_RRC_LITE/src/com/rrm +openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4 +openair2/RRM_4_RRC_LITE/src/foreign/sql +openair2/RRM_4_RRC_LITE/src/foreign/tcpip +openair2/RRM_4_RRC_LITE/src/radio_resources +openair2/RRM_4_RRC_LITE/src/test +openair2/UTIL +openair2/UTIL/AT_COMMANDS +openair2/UTIL/BIGPHYS +openair2/UTIL/CLI +openair2/UTIL/FIFO +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack +openair2/UTIL/LFDS/liblfds6.1.1/test/src +openair2/UTIL/LISTS +openair2/UTIL/LOG +openair2/UTIL/MATH +openair2/UTIL/MEM +openair2/UTIL/OCG +openair2/UTIL/OMG +openair2/UTIL/OMV +openair2/UTIL/OPT +openair2/UTIL/OSA +openair2/UTIL/OTG +openair2/UTIL/TIMER +openair2/UTIL/TRACE +openair2/X2AP +openair3/DOCS/TEMPLATES/CODE +openair3/MESH +openair3/MESH/RRM +openair3/MESH/RRM/EMUL +openair3/MESH/RRM/GRAPH +openair3/PMIPv6/freeradius-client-1.1.6 +openair3/PMIPv6/freeradius-client-1.1.6/include +openair3/PMIPv6/freeradius-client-1.1.6/lib +openair3/PMIPv6/freeradius-client-1.1.6/src +openair3/PMIPv6/pmipv6-daemon-umip/include +openair3/PMIPv6/pmipv6-daemon-umip/include/linux +openair3/PMIPv6/pmipv6-daemon-umip/include/netinet +openair3/PMIPv6/pmipv6-daemon-umip/src +openair3/PMIPv6/pmipv6-daemon-umip/src/pmip +openair3/RAL-LTE/INTERFACE-802.21/INCLUDE +openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE +openair3/RAL-LTE/LTE_RAL_UE/INCLUDE +openair3/RAL-LTE/RAL-DUMMY/INCLUDE +openairITS/mac/DOT11/include/crypto +openairITS/mac/DOT11/include/linux +openairITS/mac/DOT11/include/linux/bcma +openairITS/mac/DOT11/include/linux/spi +openairITS/mac/DOT11/include/linux/ssb +openairITS/mac/DOT11/include/linux/unaligned +openairITS/mac/DOT11/include/linux/usb +openairITS/mac/DOT11/include/N/pcmcia +openairITS/mac/DOT11/include/N/trace +openairITS/mac/DOT11/include/net +openairITS/mac/DOT11/net/mac80211 +openairITS/mac/DOT11/net/wireless +openairITS/phy/DOT11 +openairITS/phy/DRIVERS +targets/ARCH/BLADERF/USERSPACE/LIB +targets/ARCH/COMMON +targets/ARCH/ETHERNET/USERSPACE/LIB +targets/ARCH/EXMIMO/DEFS +targets/ARCH/EXMIMO/DRIVER/eurecom +targets/ARCH/EXMIMO/DRIVER/exmimo3 +targets/ARCH/EXMIMO/DRIVER/telecomparistech +targets/ARCH/EXMIMO/USERSPACE/LIB +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT +targets/COMMON +targets/RT/USER +targets/RT/USER/TOOLS +targets/SIMU/PROC +targets/SIMU/USER +targets/TEST/PDCP +targets/TEST/ROHDE_SCHWARZ \ No newline at end of file From 930e5364e91815e5611401033b8e9a6cc26f2e01 Mon Sep 17 00:00:00 2001 From: kogo Date: Wed, 26 Jul 2017 18:13:31 +0200 Subject: [PATCH 003/125] SIB23 reads successfullt from config file -- done testing --- openair2/ENB_APP/enb_config.c | 8 +++++--- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 13 +++++++------ 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 39c181319a..328b320666 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -2485,8 +2485,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ue_TransmissionMode); break; } - - setting_br13 = config_setting_get_member(setting_enb, ENB_CONFIG_STRING_BR); +#ifdef Rel14 + setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); if (setting_br13 != NULL) { int hyperSFN_r13; @@ -2704,11 +2704,13 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { else RRC_CONFIGURATION_REQ(msg_p).prach_ConfigCommon_v1310[j] = TRUE; } - else +#endif + else RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; } } + setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); if (setting_srb1 != NULL) { diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 01c95845d6..3cc3932616 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -540,7 +540,6 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 = configuration->si_WindowLength_BR_r13[CC_id]; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 = configuration->si_RepetitionPattern_r13[CC_id]; // 0 @@ -587,15 +586,14 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 - = configuration->si_HoppingConfigCommon_r13[CC_id]; + + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 = configuration->si_HoppingConfigCommon_r13[CC_id]; if (configuration->si_ValidityTime_r13[CC_id]) { sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); - *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 - = *configuration->si_ValidityTime_r13[CC_id]; + *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id]; } else sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; @@ -650,6 +648,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, { sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } else { @@ -920,7 +919,8 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->rach_maxHARQ_Msg3Tx[CC_id]) { (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); - *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = configuration->rach_maxHARQ_Msg3Tx[CC_id]; // to be re-initialized when we find the enum + *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = *configuration->preambleTransMax_CE_r13[CC_id]; // to be re-initialized when we find the enum + printf("[KOGO][DEBUGGING]: preamble trans max: %ld\n", *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13); } else (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; @@ -1076,6 +1076,7 @@ uint8_t do_SIB23(uint8_t Mod_id, { (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = configuration->mpdcch_startSF_CSS_RA_r13_val[CC_id]; + printf("[KOGO][DEBUGGING]: mpdcch start SF RA r13 val: %ld\n", (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13); } else { From 1d8833c743480b8a83628f29132f2c9916853d08 Mon Sep 17 00:00:00 2001 From: kogo Date: Wed, 26 Jul 2017 19:52:00 +0200 Subject: [PATCH 004/125] updated SIB1 ,, added BR option --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 523 +++++++++++++------------- openair2/RRC/LITE/MESSAGES/asn1_msg.h | 8 +- 2 files changed, 278 insertions(+), 253 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 3cc3932616..e594b8b0e8 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -288,7 +288,10 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich } uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, - int Mod_id,int CC_id + int Mod_id,int CC_id +#ifdef Rel14 + , BOOLEAN_t brOption +#endif #if defined(ENABLE_ITTI) , RrcConfigurationReq *configuration #endif @@ -302,10 +305,21 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, SchedulingInfo_t schedulingInfo; SIB_Type_t sib_type; - uint8_t *buffer = carrier->SIB1; + uint8_t *buffer; BCCH_DL_SCH_Message_t *bcch_message = &carrier->siblock1; - SystemInformationBlockType1_BR_r13_t **sib1_br = &carrier->sib1; - + SystemInformationBlockType1_BR_r13_t **sib1_br; +#ifdef Rel14 + if(brOption) + { + buffer = carrier->SIB1_BR; + sib1_br = &carrier->sib1_BR; + } + else +#endif + { + buffer = carrier->SIB1; + sib1_br = &carrier->sib1; + } memset(bcch_message,0,sizeof(BCCH_DL_SCH_Message_t)); bcch_message->message.present = BCCH_DL_SCH_MessageType_PR_c1; @@ -455,318 +469,323 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, (*sib1_br)->si_WindowLength = SystemInformationBlockType1__si_WindowLength_ms20; (*sib1_br)->systemInfoValueTag = 0; - (*sib1_br)->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v890_IEs_t)); + (*sib1_br)->nonCriticalExtension = NULL; +#ifdef Rel14 + if(brOption) + { + (*sib1_br)->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v890_IEs_t)); - SystemInformationBlockType1_v890_IEs_t *sib1_br_890 = (*sib1_br)->nonCriticalExtension; - sib1_br_890->lateNonCriticalExtension = NULL; - sib1_br_890->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v920_IEs_t)); - memset(sib1_br_890->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v920_IEs_t)); + SystemInformationBlockType1_v890_IEs_t *sib1_br_890 = (*sib1_br)->nonCriticalExtension; + sib1_br_890->lateNonCriticalExtension = NULL; + sib1_br_890->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v920_IEs_t)); + memset(sib1_br_890->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v920_IEs_t)); - SystemInformationBlockType1_v920_IEs_t *sib1_br_920 = (*sib1_br_890).nonCriticalExtension; - sib1_br_920->ims_EmergencySupport_r9 = NULL; // ptr - sib1_br_920->cellSelectionInfo_v920 = NULL; - sib1_br_920->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1130_IEs_t)); - memset(sib1_br_920->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1130_IEs_t)); + SystemInformationBlockType1_v920_IEs_t *sib1_br_920 = (*sib1_br_890).nonCriticalExtension; + sib1_br_920->ims_EmergencySupport_r9 = NULL; // ptr + sib1_br_920->cellSelectionInfo_v920 = NULL; + sib1_br_920->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1130_IEs_t)); + memset(sib1_br_920->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1130_IEs_t)); - //////Rel11 - SystemInformationBlockType1_v1130_IEs_t *sib1_br_1130 = sib1_br_920->nonCriticalExtension; - - sib1_br_1130->tdd_Config_v1130 = NULL; // ptr - sib1_br_1130->cellSelectionInfo_v1130 = NULL; // ptr - sib1_br_1130->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1250_IEs_t)); - memset(sib1_br_1130->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1250_IEs_t)); - - - ///Rel12 - SystemInformationBlockType1_v1250_IEs_t *sib1_br_1250 = sib1_br_1130->nonCriticalExtension; - sib1_br_1250->cellAccessRelatedInfo_v1250.category0Allowed_r12 = NULL; // long* - sib1_br_1250->cellSelectionInfo_v1250 = NULL; - sib1_br_1250->freqBandIndicatorPriority_r12 = 0; // long* // FIXME - sib1_br_1250->nonCriticalExtension = NULL; + //////Rel11 + SystemInformationBlockType1_v1130_IEs_t *sib1_br_1130 = sib1_br_920->nonCriticalExtension; + sib1_br_1130->tdd_Config_v1130 = NULL; // ptr + sib1_br_1130->cellSelectionInfo_v1130 = NULL; // ptr + sib1_br_1130->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1250_IEs_t)); + memset(sib1_br_1130->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1250_IEs_t)); + ///Rel12 + SystemInformationBlockType1_v1250_IEs_t *sib1_br_1250 = sib1_br_1130->nonCriticalExtension; + sib1_br_1250->cellAccessRelatedInfo_v1250.category0Allowed_r12 = NULL; // long* + sib1_br_1250->cellSelectionInfo_v1250 = NULL; + sib1_br_1250->freqBandIndicatorPriority_r12 = 0; // long* // FIXME + sib1_br_1250->nonCriticalExtension = NULL; ////Rel1310 + /// #if defined(ENABLE_ITTI) - if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) - { - sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; + if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) + { + sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; - if (configuration->hyperSFN_r13[CC_id]) - { - sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type - memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_br_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_br_1310->hyperSFN_r13->size = 2; - sib1_br_1310->hyperSFN_r13->bits_unused = 6; - } - else - sib1_br_1310->hyperSFN_r13 = NULL; + if (configuration->hyperSFN_r13[CC_id]) + { + sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_br_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_br_1310->hyperSFN_r13->size = 2; + sib1_br_1310->hyperSFN_r13->bits_unused = 6; + } + else + sib1_br_1310->hyperSFN_r13 = NULL; - if (configuration->eDRX_Allowed_r13[CC_id]) - { - sib1_br_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); - *sib1_br_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; - } - else - sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* + if (configuration->eDRX_Allowed_r13[CC_id]) + { + sib1_br_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); + *sib1_br_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; + } + else + sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* - if (configuration->cellSelectionInfoCE_r13[CC_id]) - { - sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); - memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); - sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long - if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) - { - sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); - *sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; - } - else - sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; - } - else - sib1_br_1310->cellSelectionInfoCE_r13 = NULL; + if (configuration->cellSelectionInfoCE_r13[CC_id]) + { + sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long + if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) + { + sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); + *sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; + } + else + sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; + } + else + sib1_br_1310->cellSelectionInfoCE_r13 = NULL; - if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 - = configuration->si_WindowLength_BR_r13[CC_id]; // 0 + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = configuration->si_WindowLength_BR_r13[CC_id]; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 - = configuration->si_RepetitionPattern_r13[CC_id]; // 0 + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = configuration->si_RepetitionPattern_r13[CC_id]; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); - SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); - memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); - schedulinginfo_br_13->si_Narrowband_r13 = 1; - schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); + SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); + memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); + schedulinginfo_br_13->si_Narrowband_r13 = 1; + schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, - sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); - if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; - } - else - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + } + else + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); - memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; - } + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); + memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; + } - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], - 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], + 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 = configuration->si_HoppingConfigCommon_r13[CC_id]; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 = configuration->si_HoppingConfigCommon_r13[CC_id]; - if (configuration->si_ValidityTime_r13[CC_id]) - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); - *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id]; - } - else - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; + if (configuration->si_ValidityTime_r13[CC_id]) + { + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id]; + } + else + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); - } - else - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + } + else + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; - sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - /////Rel1320 - SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; - + /////Rel1320 + SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; - if (configuration->freqHoppingParametersDL_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + + if (configuration->freqHoppingParametersDL_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; - } - else - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; + if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; + } + else + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } - else - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } + if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } - else - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } - - if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) - { + } + else + { + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; - } - else - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) + { - } - else - sib1_br_1320->freqHoppingParametersDL_r13 = NULL; + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; + } + else + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; - sib1_br_1320->nonCriticalExtension = NULL; - } + } + else + sib1_br_1320->freqHoppingParametersDL_r13 = NULL; + + sib1_br_1320->nonCriticalExtension = NULL; + } #else - sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; + sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; - sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type - memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); - memset(sib1_br_1310->hyperSFN_r13->buf, 0, 2*sizeof(uint8_t)); - sib1_br_1310->hyperSFN_r13->size = 2; - sib1_br_1310->hyperSFN_r13->bits_unused = 6; + sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memset(sib1_br_1310->hyperSFN_r13->buf, 0, 2*sizeof(uint8_t)); + sib1_br_1310->hyperSFN_r13->size = 2; + sib1_br_1310->hyperSFN_r13->bits_unused = 6; - sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* - sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); - memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); - sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; // (Q_RxLevMin_t) long - sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; // (Q_RxLevMin_t) *long + sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* + sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; // (Q_RxLevMin_t) long + sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; // (Q_RxLevMin_t) *long - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_WindowLength_BR_r13_ms20; // 0 + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_WindowLength_BR_r13_ms20; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_RepetitionPattern_r13_everyRF; // 0 + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_RepetitionPattern_r13_everyRF; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); - SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); - memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); - schedulinginfo_br_13->si_Narrowband_r13 = 1; - schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); + SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); + memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); + schedulinginfo_br_13->si_Narrowband_r13 = 1; + schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, - sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, 0, 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, 0, 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, 0, - 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = 1; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_HoppingConfigCommon_r13_on; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, 0, + 2 * sizeof(uint8_t)); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = 1; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_HoppingConfigCommon_r13_on; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); - *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_ValidityTime_r13_true; + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_ValidityTime_r13_true; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; + ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); - sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - /////Rel1320 - SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; - sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + /////Rel1320 + SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; + sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__mpdcch_pdsch_HoppingNB_r13_nb2; + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__mpdcch_pdsch_HoppingNB_r13_nb2; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13__interval_FDD_r13_int1; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13__interval_FDD_r13_int1; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13__interval_FDD_r13_int2; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13__interval_FDD_r13_int2; - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = 1; + sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = 1; - sib1_br_1320->nonCriticalExtension = NULL; -#endif + sib1_br_1320->nonCriticalExtension = NULL; + +#endif // ITTI ENABLED + } +#endif // Rel14 #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message); #endif diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h index 9f978dc797..0fa812824d 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.h @@ -77,7 +77,13 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich @param configuration Pointer Configuration Request structure @return size of encoded bit stream in bytes*/ -uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,int Mod_id,int CC_id, RrcConfigurationReq *configuration +uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,int Mod_id,int CC_id +#ifdef Rel14 + , BOOLEAN_t brOption +#endif +#if defined(ENABLE_ITTI) + ,RrcConfigurationReq *configuration +#endif ); /** From 64ee15062fecf27d426ec3811f733ca28f22055f Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Wed, 26 Jul 2017 16:49:17 -0700 Subject: [PATCH 005/125] added selection of LTE or BL/CE SIB1/2 configuration --- openair2/COMMON/rrc_messages_types.h | 196 +- openair2/ENB_APP/enb_config.c | 4602 +++++++++++++++---------- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 2196 ++++++------ openair2/RRC/LITE/MESSAGES/asn1_msg.h | 14 +- openair2/RRC/LITE/defs.h | 3 +- openair2/RRC/LITE/rrc_eNB.c | 64 +- 6 files changed, 4117 insertions(+), 2958 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 91ac072384..0267095f7b 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -83,15 +83,85 @@ typedef struct RrcStateInd_s { Rrc_Sub_State_t sub_state; } RrcStateInd; +typedef struct RadioResourceConfig_s { + long prach_root; + long prach_config_index; + BOOLEAN_t prach_high_speed; + long prach_zero_correlation; + long prach_freq_offset; + long pucch_delta_shift; + long pucch_nRB_CQI; + long pucch_nCS_AN; +#if !defined(Rel10) && !defined(Rel14) + long pucch_n1_AN; +#endif + long pdsch_referenceSignalPower; + long pdsch_p_b; + long pusch_n_SB; + long pusch_hoppingMode; + long pusch_hoppingOffset; + BOOLEAN_t pusch_enable64QAM; + BOOLEAN_t pusch_groupHoppingEnabled; + long pusch_groupAssignment; + BOOLEAN_t pusch_sequenceHoppingEnabled; + long pusch_nDMRS1; + long phich_duration; + long phich_resource; + BOOLEAN_t srs_enable; + long srs_BandwidthConfig; + long srs_SubframeConfig; + BOOLEAN_t srs_ackNackST; + BOOLEAN_t srs_MaxUpPts; + long pusch_p0_Nominal; + long pusch_alpha; + long pucch_p0_Nominal; + long msg3_delta_Preamble; + long ul_CyclicPrefixLength; + e_DeltaFList_PUCCH__deltaF_PUCCH_Format1 pucch_deltaF_Format1; + e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b pucch_deltaF_Format1b; + e_DeltaFList_PUCCH__deltaF_PUCCH_Format2 pucch_deltaF_Format2; + e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a pucch_deltaF_Format2a; + e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b pucch_deltaF_Format2b; + long rach_numberOfRA_Preambles; + BOOLEAN_t rach_preamblesGroupAConfig; + long rach_sizeOfRA_PreamblesGroupA; + long rach_messageSizeGroupA; + e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB rach_messagePowerOffsetGroupB; + long rach_powerRampingStep; + long rach_preambleInitialReceivedTargetPower; + long rach_preambleTransMax; + long rach_raResponseWindowSize; + long rach_macContentionResolutionTimer; + long rach_maxHARQ_Msg3Tx; + long bcch_modificationPeriodCoeff; + long pcch_defaultPagingCycle; + long pcch_nB; + long ue_TimersAndConstants_t300; + long ue_TimersAndConstants_t301; + long ue_TimersAndConstants_t310; + long ue_TimersAndConstants_t311; + long ue_TimersAndConstants_n310; + long ue_TimersAndConstants_n311; + long ue_TransmissionMode; +#ifdef Rel14 + //SIB2 BR Options + long* preambleTransMax_CE_r13; + BOOLEAN_t prach_ConfigCommon_v1310; + BOOLEAN_t* mpdcch_startSF_CSS_RA_r13; + long mpdcch_startSF_CSS_RA_r13_val; + long* prach_HoppingOffset_r13; +#endif +} RadioResourceConfig; + // eNB: ENB_APP -> RRC messages typedef struct RrcConfigurationReq_s { - uint32_t cell_identity; + uint32_t cell_identity; - uint16_t tac; + uint16_t tac; - uint16_t mcc; - uint16_t mnc; - uint8_t mnc_digit_length; + uint16_t mcc; + uint16_t mnc; + uint8_t mnc_digit_length; paging_drx_t default_drx; @@ -107,102 +177,44 @@ typedef struct RrcConfigurationReq_s { int16_t Nid_cell[MAX_NUM_CCs];// for testing, change later int16_t N_RB_DL[MAX_NUM_CCs];// for testing, change later int nb_antenna_ports[MAX_NUM_CCs]; - long prach_root[MAX_NUM_CCs]; - long prach_config_index[MAX_NUM_CCs]; - BOOLEAN_t prach_high_speed[MAX_NUM_CCs]; - long prach_zero_correlation[MAX_NUM_CCs]; - long prach_freq_offset[MAX_NUM_CCs]; - long pucch_delta_shift[MAX_NUM_CCs]; - long pucch_nRB_CQI[MAX_NUM_CCs]; - long pucch_nCS_AN[MAX_NUM_CCs]; -#if !defined(Rel10) && !defined(Rel14) - long pucch_n1_AN[MAX_NUM_CCs]; -#endif - long pdsch_referenceSignalPower[MAX_NUM_CCs]; - long pdsch_p_b[MAX_NUM_CCs]; - long pusch_n_SB[MAX_NUM_CCs]; - long pusch_hoppingMode[MAX_NUM_CCs]; - long pusch_hoppingOffset[MAX_NUM_CCs]; - BOOLEAN_t pusch_enable64QAM[MAX_NUM_CCs]; - BOOLEAN_t pusch_groupHoppingEnabled[MAX_NUM_CCs]; - long pusch_groupAssignment[MAX_NUM_CCs]; - BOOLEAN_t pusch_sequenceHoppingEnabled[MAX_NUM_CCs]; - long pusch_nDMRS1[MAX_NUM_CCs]; - long phich_duration[MAX_NUM_CCs]; - long phich_resource[MAX_NUM_CCs]; - BOOLEAN_t srs_enable[MAX_NUM_CCs]; - long srs_BandwidthConfig[MAX_NUM_CCs]; - long srs_SubframeConfig[MAX_NUM_CCs]; - BOOLEAN_t srs_ackNackST[MAX_NUM_CCs]; - BOOLEAN_t srs_MaxUpPts[MAX_NUM_CCs]; - long pusch_p0_Nominal[MAX_NUM_CCs]; - long pusch_alpha[MAX_NUM_CCs]; - long pucch_p0_Nominal[MAX_NUM_CCs]; - long msg3_delta_Preamble[MAX_NUM_CCs]; - long ul_CyclicPrefixLength[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format1 pucch_deltaF_Format1[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b pucch_deltaF_Format1b[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format2 pucch_deltaF_Format2[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a pucch_deltaF_Format2a[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b pucch_deltaF_Format2b[MAX_NUM_CCs]; - long rach_numberOfRA_Preambles[MAX_NUM_CCs]; - BOOLEAN_t rach_preamblesGroupAConfig[MAX_NUM_CCs]; - long rach_sizeOfRA_PreamblesGroupA[MAX_NUM_CCs]; - long rach_messageSizeGroupA[MAX_NUM_CCs]; - e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB rach_messagePowerOffsetGroupB[MAX_NUM_CCs]; - long rach_powerRampingStep[MAX_NUM_CCs]; - long rach_preambleInitialReceivedTargetPower[MAX_NUM_CCs]; - long rach_preambleTransMax[MAX_NUM_CCs]; - long rach_raResponseWindowSize[MAX_NUM_CCs]; - long rach_macContentionResolutionTimer[MAX_NUM_CCs]; - long rach_maxHARQ_Msg3Tx[MAX_NUM_CCs]; - long bcch_modificationPeriodCoeff[MAX_NUM_CCs]; - long pcch_defaultPagingCycle[MAX_NUM_CCs]; - long pcch_nB[MAX_NUM_CCs]; - long ue_TimersAndConstants_t300[MAX_NUM_CCs]; - long ue_TimersAndConstants_t301[MAX_NUM_CCs]; - long ue_TimersAndConstants_t310[MAX_NUM_CCs]; - long ue_TimersAndConstants_t311[MAX_NUM_CCs]; - long ue_TimersAndConstants_n310[MAX_NUM_CCs]; - long ue_TimersAndConstants_n311[MAX_NUM_CCs]; - long ue_TransmissionMode[MAX_NUM_CCs]; + RadioResourceConfig radioresourceconfig[MAX_NUM_CCs]; + + +#ifdef Rel14 + + RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs]; //MIB - long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs]; + long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs]; //SIB1 BR options - uint16_t* hyperSFN_r13[MAX_NUM_CCs]; - long* eDRX_Allowed_r13[MAX_NUM_CCs]; - BOOLEAN_t cellSelectionInfoCE_r13[MAX_NUM_CCs]; - long q_RxLevMinCE_r13[MAX_NUM_CCs]; - long* q_QualMinRSRQ_CE_r13[MAX_NUM_CCs]; - BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13[MAX_NUM_CCs]; - long si_WindowLength_BR_r13[MAX_NUM_CCs]; - long si_RepetitionPattern_r13[MAX_NUM_CCs]; - BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13[MAX_NUM_CCs]; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13[MAX_NUM_CCs]; - uint16_t fdd_UplinkSubframeBitmapBR_r13[MAX_NUM_CCs]; - long startSymbolBR_r13[MAX_NUM_CCs]; - long si_HoppingConfigCommon_r13[MAX_NUM_CCs]; - long* si_ValidityTime_r13[MAX_NUM_CCs]; - BOOLEAN_t freqHoppingParametersDL_r13[MAX_NUM_CCs]; - long* mpdcch_pdsch_HoppingNB_r13[MAX_NUM_CCs]; - BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13[MAX_NUM_CCs]; - long interval_DLHoppingConfigCommonModeA_r13_val[MAX_NUM_CCs]; - BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13[MAX_NUM_CCs]; - long interval_DLHoppingConfigCommonModeB_r13_val[MAX_NUM_CCs]; - long* mpdcch_pdsch_HoppingOffset_r13[MAX_NUM_CCs]; + uint16_t* hyperSFN_r13[MAX_NUM_CCs]; + long* eDRX_Allowed_r13[MAX_NUM_CCs]; + BOOLEAN_t cellSelectionInfoCE_r13[MAX_NUM_CCs]; + long q_RxLevMinCE_r13[MAX_NUM_CCs]; + long* q_QualMinRSRQ_CE_r13[MAX_NUM_CCs]; + BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13[MAX_NUM_CCs]; + long si_WindowLength_BR_r13[MAX_NUM_CCs]; + long si_RepetitionPattern_r13[MAX_NUM_CCs]; + BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13[MAX_NUM_CCs]; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13[MAX_NUM_CCs]; + uint16_t fdd_UplinkSubframeBitmapBR_r13[MAX_NUM_CCs]; + long startSymbolBR_r13[MAX_NUM_CCs]; + long si_HoppingConfigCommon_r13[MAX_NUM_CCs]; + long* si_ValidityTime_r13[MAX_NUM_CCs]; + BOOLEAN_t freqHoppingParametersDL_r13[MAX_NUM_CCs]; + long* mpdcch_pdsch_HoppingNB_r13[MAX_NUM_CCs]; + BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13[MAX_NUM_CCs]; + long interval_DLHoppingConfigCommonModeA_r13_val[MAX_NUM_CCs]; + BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13[MAX_NUM_CCs]; + long interval_DLHoppingConfigCommonModeB_r13_val[MAX_NUM_CCs]; + long* mpdcch_pdsch_HoppingOffset_r13[MAX_NUM_CCs]; - //SIB2 BR Options - long* preambleTransMax_CE_r13[MAX_NUM_CCs]; - BOOLEAN_t prach_ConfigCommon_v1310[MAX_NUM_CCs]; - BOOLEAN_t* mpdcch_startSF_CSS_RA_r13[MAX_NUM_CCs]; - long mpdcch_startSF_CSS_RA_r13_val[MAX_NUM_CCs]; - long* prach_HoppingOffset_r13[MAX_NUM_CCs]; +#endif } RrcConfigurationReq; // UE: NAS -> RRC messages diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 39c181319a..41a1255d14 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -299,14 +299,14 @@ #define CONFIG_STRING_RU_MAX_RXGAIN "max_rxgain" #define CONFIG_STRING_RU_IF_COMPRESSION "if_compression" -#define ENB_CONFIG_STRING_BR "br_parameters" +#define ENB_CONFIG_STRING_BR "br_parameters" #define ENB_CONFIG_STRING_schedulingInfoSIB1 "schedulingInfoSIB1_BR_r13" -#define ENB_CONFIG_STRING_HYPERSFN "hyperSFN_r13" -#define ENB_CONFIG_STRING_EDRX_ALLOWED "eDRX_Allowed_r13" +#define ENB_CONFIG_STRING_HYPERSFN "hyperSFN_r13" +#define ENB_CONFIG_STRING_EDRX_ALLOWED "eDRX_Allowed_r13" #define ENB_CONFIG_STRING_CELLSELECTIONINFOCE "cellSelectionInfoCE_r13" -#define ENB_CONFIG_STRING_Q_RXLEVMINCE "q_RxLevMinCE_r13" -#define ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE "q_QualMinRSRQ_CE_r13" +#define ENB_CONFIG_STRING_Q_RXLEVMINCE "q_RxLevMinCE_r13" +#define ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE "q_QualMinRSRQ_CE_r13" #define ENB_CONFIG_STRING_BRAccessRelatedInfo "bandwidthReducedAccessRelatedInfo_r13" #define ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR "si_WindowLength_BR_r13" @@ -314,9 +314,9 @@ #define ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR "fdd_DownlinkOrTddSubframeBitmapBR_r13" #define ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" #define ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR "fdd_UplinkSubframeBitmapBR_r13" -#define ENB_CONFIG_STRING_STARTSYMBOLBR "startSymbolBR_r13" +#define ENB_CONFIG_STRING_STARTSYMBOLBR "startSymbolBR_r13" #define ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON "si_HoppingConfigCommon_r13" -#define ENB_CONFIG_STRING_SI_VALIDITYTIME "si_ValidityTime_r13" +#define ENB_CONFIG_STRING_SI_VALIDITYTIME "si_ValidityTime_r13" #define ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL "freqHoppingParametersDL_r13" #define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB "mpdcch_pdsch_HoppingNB_r13" #define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEA "interval_DLHoppingConfigCommonModeA_r13" @@ -565,15 +565,15 @@ void RCconfig_RU() { } if ( !( - config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_NB_TX, &nb_tx) - && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_NB_RX, &nb_rx) - && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_ATT_TX, &att_tx) - && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_ATT_RX, &att_rx) - && config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_RF,(const char **)&local_rf) - )) { + config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_NB_TX, &nb_tx) + && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_NB_RX, &nb_rx) + && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_ATT_TX, &att_tx) + && config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_ATT_RX, &att_rx) + && config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_RF,(const char **)&local_rf) + )) { AssertFatal (0, - "Failed to parse configuration file %s, RU %d config !\n", - RC.config_file_name, j); + "Failed to parse configuration file %s, RU %d config !\n", + RC.config_file_name, j); continue; // FIXME will prevent segfaults below, not sure what happens at function exit... } @@ -728,9 +728,9 @@ void RCconfig_L1() { printf("RU %d: Transport %s\n",j,tr_n_preference); if (!(config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_TRANSPORT_N_PREFERENCE, (const char **)&tr_n_preference))) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); } if (strcmp(tr_n_preference, "local_mac") == 0) { @@ -914,7 +914,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_setting_t *setting_otg = NULL; config_setting_t *subsetting_otg = NULL; #if defined(Rel14) - config_setting_t *setting_br13 = NULL; + config_setting_t *setting_br13 = NULL; #endif // REL14 int parse_errors = 0; int num_enbs = 0; @@ -958,7 +958,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int rx_gain = 0; libconfig_int prach_root = 0; libconfig_int prach_config_index = 0; - const char* prach_high_speed = NULL; + const char* prach_high_speed = NULL; libconfig_int prach_zero_correlation = 0; libconfig_int prach_freq_offset = 0; libconfig_int pucch_delta_shift = 0; @@ -1076,32 +1076,32 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_destroy(&cfg); AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); } - } - else { - config_destroy(&cfg); - AssertFatal(0, "No eNB configuration file provided!\n"); - } + } + else { + config_destroy(&cfg); + AssertFatal(0, "No eNB configuration file provided!\n"); + } #if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { - asn_debug = 0; - asn1_xer_print = 0; - } - else if (strcasecmp(astring, ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { - asn_debug = 1; - asn1_xer_print = 1; - } - else if (strcasecmp(astring, ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { - asn_debug = 1; - asn1_xer_print = 2; - } - else { - asn_debug = 0; - asn1_xer_print = 0; - } - } + asn_debug = 0; + asn1_xer_print = 0; + } + else if (strcasecmp(astring, ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { + asn_debug = 1; + asn1_xer_print = 1; + } + else if (strcasecmp(astring, ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { + asn_debug = 1; + asn1_xer_print = 2; + } + else { + asn_debug = 0; + asn1_xer_print = 0; + } + } #endif @@ -1169,7 +1169,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTD, &local_s_portd) && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTD, &remote_s_portd) ) - ) { + ) { AssertFatal (0, "Failed to parse eNB configuration file %s, %u th enb\n", RC.config_file_name, i); @@ -1364,31 +1364,31 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } #ifdef Rel14 - if (!pbch_repetition) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; - } - else if (strcmp(pbch_repetition, "FALSE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", - RC.config_file_name, i, pbch_repetition); + if (!pbch_repetition) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); + else if (strcmp(pbch_repetition, "TRUE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; + } + else if (strcmp(pbch_repetition, "FALSE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", + RC.config_file_name, i, pbch_repetition); } #endif @@ -1411,16 +1411,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, N_RB_DL); } - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; - } - else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, i, frame_type); + if (strcmp(frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; + } + else if (strcmp(frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + RC.config_file_name, i, frame_type); } @@ -1441,16 +1441,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); } @@ -1483,14 +1483,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; - RRC_CONFIGURATION_REQ (msg_p).prach_root[j] = prach_root; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; if ((prach_root <0) || (prach_root > 1023)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", RC.config_file_name, i, prach_root); - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j] = prach_config_index; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; if ((prach_config_index <0) || (prach_config_index > 63)) AssertFatal (0, @@ -1502,24 +1502,24 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prach_high_speed[j] = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prach_high_speed[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); - RRC_CONFIGURATION_REQ (msg_p).prach_zero_correlation[j] =prach_zero_correlation; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", RC.config_file_name, i, prach_zero_correlation); - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j] = prach_freq_offset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; if ((prach_freq_offset <0) || (prach_freq_offset > 94)) AssertFatal (0, @@ -1527,1188 +1527,2252 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, prach_freq_offset); - RRC_CONFIGURATION_REQ (msg_p).pucch_delta_shift[j] = pucch_delta_shift-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", RC.config_file_name, i, pucch_delta_shift); - RRC_CONFIGURATION_REQ (msg_p).pucch_nRB_CQI[j] = pucch_nRB_CQI; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); - RRC_CONFIGURATION_REQ (msg_p).pucch_nCS_AN[j] = pucch_nCS_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); #if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).pucch_n1_AN[j] = pucch_n1_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); #endif - RRC_CONFIGURATION_REQ (msg_p).pdsch_referenceSignalPower[j] = pdsch_referenceSignalPower; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; + + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; + + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; + + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; + + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; + + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; + + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); - RRC_CONFIGURATION_REQ (msg_p).pdsch_p_b[j] = pdsch_p_b; - - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); - - RRC_CONFIGURATION_REQ (msg_p).pusch_n_SB[j] = pusch_n_SB; - - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); - - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); - - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingOffset[j] = pusch_hoppingOffset; - - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); - - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_enable64QAM[j] = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_enable64QAM[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); - - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_groupHoppingEnabled[j] = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_groupHoppingEnabled[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); - - - RRC_CONFIGURATION_REQ (msg_p).pusch_groupAssignment[j] = pusch_groupAssignment; - - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); - - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_sequenceHoppingEnabled[j] = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_sequenceHoppingEnabled[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).pusch_nDMRS1[j] = pusch_nDMRS1; //cyclic_shift in RRC! - - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); - - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).phich_duration[j] = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).phich_duration[j] = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); - - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).phich_resource[j] = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); - - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ(msg_p).phich_resource[j], phich_resource, - RRC_CONFIGURATION_REQ(msg_p).phich_duration[j], phich_duration); - - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).srs_enable[j] = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).srs_enable[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); - - if (RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] == TRUE) { - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) - )) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", - RC.config_file_name, i); - - RRC_CONFIGURATION_REQ (msg_p).srs_BandwidthConfig[j] = srs_BandwidthConfig; - - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); - - RRC_CONFIGURATION_REQ (msg_p).srs_SubframeConfig[j] = srs_SubframeConfig; - - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); - - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).srs_ackNackST[j] = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).srs_ackNackST[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); - - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).srs_MaxUpPts[j] = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).srs_MaxUpPts[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } - - RRC_CONFIGURATION_REQ(msg_p).pusch_p0_Nominal[j] = pusch_p0_Nominal; - - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); - -#ifndef Rel14 - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1; - } -#else - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pusch_alpha[j] = Alpha_r12_al1; - } -#endif - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); - - RRC_CONFIGURATION_REQ(msg_p).pucch_p0_Nominal[j] = pucch_p0_Nominal; - - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); - - RRC_CONFIGURATION_REQ(msg_p).msg3_delta_Preamble[j] = msg3_delta_Preamble; - - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); - - - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); - - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); - - - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); - - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); - - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); - - - - - RRC_CONFIGURATION_REQ(msg_p).rach_numberOfRA_Preambles[j] = (rach_numberOfRA_Preambles / 4) - 1; - - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); - - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).rach_preamblesGroupAConfig[j] = TRUE; - - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", - RC.config_file_name, i); - - RRC_CONFIGURATION_REQ (msg_p).rach_sizeOfRA_PreamblesGroupA[j] = (rach_sizeOfRA_PreamblesGroupA/4)-1; - - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - - - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; - - case 144: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; - - case 208: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } - - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); - - } - else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).rach_preamblesGroupAConfig[j] = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); - - RRC_CONFIGURATION_REQ (msg_p).rach_preambleInitialReceivedTargetPower[j] = (rach_preambleInitialReceivedTargetPower+120)/2; - - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - - - RRC_CONFIGURATION_REQ (msg_p).rach_powerRampingStep[j] = rach_powerRampingStep/2; - - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); - - - - switch (rach_preambleTransMax) { -#ifndef Rel14 - case 3: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; - -#else - - case 3: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n200; - break; -#endif - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - RRC_CONFIGURATION_REQ (msg_p).rach_raResponseWindowSize[j] = (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; + + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + +#ifndef Rel14 + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } +#else + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; + } +#endif + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; + + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; + + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); + + + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); + + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); + + + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); + + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); + + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); + + + + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; + + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - RRC_CONFIGURATION_REQ (msg_p).rach_macContentionResolutionTimer[j] = (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).rach_maxHARQ_Msg3Tx[j] = rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf32; + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; break; - case 64: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf64; + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; break; - case 128: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf128; + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; break; case 256: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf256; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; break; default: AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); break; } - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pcch_nB[j] = PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; } - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; } - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; } - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms0; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms200; - break; - - case 500: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; } - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms1000; - break; - - case 3110: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms20000; - break; - - case 31100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms30000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; } - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n20; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; } - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n10; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; } - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; } - - setting_br13 = config_setting_get_member(setting_enb, ENB_CONFIG_STRING_BR); - if (setting_br13 != NULL) - { - int hyperSFN_r13; - int eDRX_Allowed_r13; - int q_RxLevMinCE_r13; - int q_QualMinRSRQ_CE_r13; - int si_WindowLength_BR_r13; - int si_RepetitionPattern_r13; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - int startSymbolBR_r13; - int si_HoppingConfigCommon_r13; - int si_ValidityTime_r13; - int mpdcch_pdsch_HoppingNB_r13; - int interval_DLHoppingConfigCommonModeA_r13_val; - int interval_DLHoppingConfigCommonModeB_r13_val; - int mpdcch_pdsch_HoppingOffset_r13; - int preambleTransMax_CE_r13; - int mpdcch_startSF_CSS_RA_r13_val; - int prach_HoppingOffset_r13; - int schedulingInfoSIB1_BR_r13; - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13; + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); + + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", - RC.config_file_name, i); - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; - + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j] = calloc(1, sizeof(uint16_t)); - *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j] = (uint16_t)hyperSFN_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j] = NULL; + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j] = eDRX_Allowed_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j] = NULL; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", - RC.config_file_name, i); - } - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j] = q_RxLevMinCE_r13; + switch (rach_preambleTransMax) { +#ifndef Rel14 + _ case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j] = q_QualMinRSRQ_CE_r13; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j] = NULL; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || - !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; - } - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; - } - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; +#else - - + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; + break; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; + break; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; + break; - /////SIB2 Parameters + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; + break; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).preambleTransMax_CE_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).preambleTransMax_CE_r13[j] = preambleTransMax_CE_r13; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; + break; - } - else - RRC_CONFIGURATION_REQ(msg_p).preambleTransMax_CE_r13[j] = NULL; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; + break; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).prach_ConfigCommon_v1310[j] = TRUE; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; + break; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) - { - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", - RC.config_file_name, i); + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; + break; - } - RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = calloc(1, sizeof(BOOLEAN_t)); - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = FALSE; - else - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = TRUE; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; + break; +#endif - RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13_val[j] = mpdcch_startSF_CSS_RA_r13_val; - - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_startSF_CSS_RA_r13[j] = NULL; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).prach_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).prach_HoppingOffset_r13[j] = prach_HoppingOffset_r13; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - } - else - RRC_CONFIGURATION_REQ(msg_p).prach_HoppingOffset_r13[j] = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).prach_ConfigCommon_v1310[j] = TRUE; - } - else - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; - } + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + switch (pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; + } + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + switch (ue_TimersAndConstants_t300) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; + + } + + switch (ue_TimersAndConstants_t301) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; + + } + + switch (ue_TimersAndConstants_t310) { + case 0: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; + + case 500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; + + } + + switch (ue_TimersAndConstants_t311) { + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; + + case 3110: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; + + case 5000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; + + case 10000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; + + case 15000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; + + case 20000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; + + case 31100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TimersAndConstants_n310) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; + + } + + switch (ue_TimersAndConstants_n311) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } +#ifdef Rel14 + setting_br13 = config_setting_get_member(setting_enb, ENB_CONFIG_STRING_BR); + + if (setting_br13 != NULL) { + + // Rel8 RadioResourceConfigCommon Parameters + if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) +#if !defined(Rel10) && !defined(Rel14) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) +#endif + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + )) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); + +#if !defined(Rel10) && !defined(Rel14) + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN; + + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); + +#endif + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; + + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; + + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; + + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; + + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; + + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; + + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); + + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); + + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; + + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + +#ifndef Rel14 + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } +#else + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; + } +#endif + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; + + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; + + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); + + + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); + + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); + + + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); + + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); + + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); + + + + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + + if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + + + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; + + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; + + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } + + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); + + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; + + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); + + + + switch (rach_preambleTransMax) { +#ifndef Rel14 + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; + +#else + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; + break; +#endif + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + switch (pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; + } + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + switch (ue_TimersAndConstants_t300) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; + + } + + switch (ue_TimersAndConstants_t301) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; + + } + + switch (ue_TimersAndConstants_t310) { + case 0: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; + + case 500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; + + } + + switch (ue_TimersAndConstants_t311) { + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; + + case 3110: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; + + case 5000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; + + case 10000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; + + case 15000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; + + case 20000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; + + case 31100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TimersAndConstants_n310) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; + + } + + switch (ue_TimersAndConstants_n311) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } + + int hyperSFN_r13; + int eDRX_Allowed_r13; + int q_RxLevMinCE_r13; + int q_QualMinRSRQ_CE_r13; + int si_WindowLength_BR_r13; + int si_RepetitionPattern_r13; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + int startSymbolBR_r13; + int si_HoppingConfigCommon_r13; + int si_ValidityTime_r13; + int mpdcch_pdsch_HoppingNB_r13; + int interval_DLHoppingConfigCommonModeA_r13_val; + int interval_DLHoppingConfigCommonModeB_r13_val; + int mpdcch_pdsch_HoppingOffset_r13; + int preambleTransMax_CE_r13; + int mpdcch_startSF_CSS_RA_r13_val; + int prach_HoppingOffset_r13; + int schedulingInfoSIB1_BR_r13; + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13; + + + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", + RC.config_file_name, i); + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || + !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + + + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + + /////SIB2 Parameters + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + } + else + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + } +#endif } - + setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); if (setting_srb1 != NULL) { @@ -2870,27 +3934,27 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; - } - else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; + } + else if (srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_timer_poll_retransmit); + } - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; - } - else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", - RC.config_file_name, i, srb1_timer_status_prohibit); + if (srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; + } + else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + RC.config_file_name, i, srb1_timer_status_prohibit); } switch (srb1_timer_reordering) { @@ -3021,15 +4085,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } + RC.config_file_name, i, srb1_timer_reordering); + } - } - else { - rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; - rrc->srb1_timer_reordering = T_Reordering_ms35; - rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; - rrc->srb1_poll_pdu = PollPDU_p4; + } + else { + rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; + rrc->srb1_timer_reordering = T_Reordering_ms35; + rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; + rrc->srb1_poll_pdu = PollPDU_p4; rrc->srb1_poll_byte = PollByte_kBinfinity; rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; } @@ -3038,28 +4102,28 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_CONTROLLER_CONFIG); if (subsetting != NULL) { - if ( ( - config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_INTERFACE_NAME, - (const char **)&flexran_agent_interface_name) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_IPV4_ADDRESS, - (const char **)&flexran_agent_ipv4_address) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_PORT, - &flexran_agent_port) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_CACHE, - (const char **)&flexran_agent_cache) - ) - ) { - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_interface_name = strdup(flexran_agent_interface_name); - cidr = flexran_agent_ipv4_address; - address = strtok(cidr, "/"); - //enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address = strdup(address); - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO (address, enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB Agent !\n" ); - } + if ( ( + config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_INTERFACE_NAME, + (const char **)&flexran_agent_interface_name) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_IPV4_ADDRESS, + (const char **)&flexran_agent_ipv4_address) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_PORT, + &flexran_agent_port) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_CACHE, + (const char **)&flexran_agent_cache) + ) + ) { + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_interface_name = strdup(flexran_agent_interface_name); + cidr = flexran_agent_ipv4_address; + address = strtok(cidr, "/"); + //enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address = strdup(address); + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO (address, enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB Agent !\n" ); + } - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_port = flexran_agent_port; - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_cache = strdup(flexran_agent_cache); - } + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_port = flexran_agent_port; + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_cache = strdup(flexran_agent_cache); + } } */ @@ -3068,695 +4132,695 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { setting_otg = config_setting_get_member (setting_enb, ENB_CONF_STRING_OTG_CONFIG); if (setting_otg != NULL) { - num_otg_elements = config_setting_length(setting_otg); - printf("num otg elements %d \n", num_otg_elements); - enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements = 0; + num_otg_elements = config_setting_length(setting_otg); + printf("num otg elements %d \n", num_otg_elements); + enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements = 0; - for (j = 0; j < num_otg_elements; j++) { - subsetting_otg=config_setting_get_elem(setting_otg, j); + for (j = 0; j < num_otg_elements; j++) { + subsetting_otg=config_setting_get_elem(setting_otg, j); - if (config_setting_lookup_int(subsetting_otg, ENB_CONF_STRING_OTG_UE_ID, &otg_ue_id)) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = otg_ue_id; - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = 1; - } + if (config_setting_lookup_int(subsetting_otg, ENB_CONF_STRING_OTG_UE_ID, &otg_ue_id)) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = otg_ue_id; + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = 1; + } - if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_APP_TYPE, (const char **)&otg_app_type)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = map_str_to_int(otg_app_type_names,otg_app_type))== -1) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = BCBR; - } - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = NO_PREDEFINED_TRAFFIC; // 0 - } + if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_APP_TYPE, (const char **)&otg_app_type)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = map_str_to_int(otg_app_type_names,otg_app_type))== -1) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = BCBR; + } + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = NO_PREDEFINED_TRAFFIC; // 0 + } - if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_BG_TRAFFIC, (const char **)&otg_bg_traffic)) { + if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_BG_TRAFFIC, (const char **)&otg_bg_traffic)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = map_str_to_int(switch_names,otg_bg_traffic)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j]=0; - } - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = 0; - printf("otg bg %s\n", otg_bg_traffic); - } + if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = map_str_to_int(switch_names,otg_bg_traffic)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j]=0; + } + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = 0; + printf("otg bg %s\n", otg_bg_traffic); + } - enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements+=1; + enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements+=1; - } + } } // log_config subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_LOG_CONFIG); if (subsetting != NULL) { - // global - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_LEVEL, (const char **) &glog_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_level = map_str_to_int(log_level_names, glog_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - } + // global + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_LEVEL, (const char **) &glog_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_level = map_str_to_int(log_level_names, glog_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + } - //printf( "\tGlobal log level :\t%s->%d\n",glog_level, enb_properties_loc.properties[enb_properties_loc_index]->glog_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - } + //printf( "\tGlobal log level :\t%s->%d\n",glog_level, enb_properties_loc.properties[enb_properties_loc_index]->glog_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,(const char **) &glog_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = map_str_to_int(log_verbosity_names, glog_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,(const char **) &glog_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = map_str_to_int(log_verbosity_names, glog_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + } - //printf( "\tGlobal log verbosity:\t%s->%d\n",glog_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - } + //printf( "\tGlobal log verbosity:\t%s->%d\n",glog_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + } - // HW - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_LEVEL, (const char **) &hw_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = map_str_to_int(log_level_names,hw_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - } + // HW + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_LEVEL, (const char **) &hw_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = map_str_to_int(log_level_names,hw_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + } - //printf( "\tHW log level :\t%s->%d\n",hw_log_level,enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - } + //printf( "\tHW log level :\t%s->%d\n",hw_log_level,enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_VERBOSITY, (const char **) &hw_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = map_str_to_int(log_verbosity_names,hw_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_VERBOSITY, (const char **) &hw_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = map_str_to_int(log_verbosity_names,hw_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + } - //printf( "\tHW log verbosity:\t%s->%d\n",hw_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - } + //printf( "\tHW log verbosity:\t%s->%d\n",hw_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + } - // phy - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_LEVEL,(const char **) &phy_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = map_str_to_int(log_level_names,phy_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - } + // phy + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_LEVEL,(const char **) &phy_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = map_str_to_int(log_level_names,phy_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + } - //printf( "\tPHY log level :\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - } + //printf( "\tPHY log level :\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_VERBOSITY, (const char **)&phy_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = map_str_to_int(log_verbosity_names,phy_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_VERBOSITY, (const char **)&phy_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = map_str_to_int(log_verbosity_names,phy_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + } - //printf( "\tPHY log verbosity:\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - } + //printf( "\tPHY log verbosity:\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + } - //mac - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_LEVEL, (const char **)&mac_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = map_str_to_int(log_level_names,mac_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - } + //mac + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_LEVEL, (const char **)&mac_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = map_str_to_int(log_level_names,mac_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + } - //printf( "\tMAC log level :\t%s->%d\n",mac_log_level,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - } + //printf( "\tMAC log level :\t%s->%d\n",mac_log_level,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_VERBOSITY, (const char **)&mac_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = map_str_to_int(log_verbosity_names,mac_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_VERBOSITY, (const char **)&mac_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = map_str_to_int(log_verbosity_names,mac_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + } - //printf( "\tMAC log verbosity:\t%s->%d\n",mac_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - } + //printf( "\tMAC log verbosity:\t%s->%d\n",mac_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + } - //rlc - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_LEVEL, (const char **)&rlc_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = map_str_to_int(log_level_names,rlc_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - } + //rlc + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_LEVEL, (const char **)&rlc_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = map_str_to_int(log_level_names,rlc_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + } - //printf( "\tRLC log level :\t%s->%d\n",rlc_log_level, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - } + //printf( "\tRLC log level :\t%s->%d\n",rlc_log_level, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_VERBOSITY, (const char **)&rlc_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = map_str_to_int(log_verbosity_names,rlc_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_VERBOSITY, (const char **)&rlc_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = map_str_to_int(log_verbosity_names,rlc_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + } - //printf( "\tRLC log verbosity:\t%s->%d\n",rlc_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - } + //printf( "\tRLC log verbosity:\t%s->%d\n",rlc_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + } - //pdcp - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_LEVEL, (const char **)&pdcp_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = map_str_to_int(log_level_names,pdcp_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - } + //pdcp + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_LEVEL, (const char **)&pdcp_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = map_str_to_int(log_level_names,pdcp_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + } - //printf( "\tPDCP log level :\t%s->%d\n",pdcp_log_level, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - } + //printf( "\tPDCP log level :\t%s->%d\n",pdcp_log_level, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_VERBOSITY, (const char **)&pdcp_log_verbosity)) { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = map_str_to_int(log_verbosity_names,pdcp_log_verbosity); - //printf( "\tPDCP log verbosity:\t%s->%d\n",pdcp_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_VERBOSITY, (const char **)&pdcp_log_verbosity)) { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = map_str_to_int(log_verbosity_names,pdcp_log_verbosity); + //printf( "\tPDCP log verbosity:\t%s->%d\n",pdcp_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; + } - //rrc - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_LEVEL, (const char **)&rrc_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = map_str_to_int(log_level_names,rrc_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - } + //rrc + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_LEVEL, (const char **)&rrc_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = map_str_to_int(log_level_names,rrc_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + } - //printf( "\tRRC log level :\t%s->%d\n",rrc_log_level,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - } + //printf( "\tRRC log level :\t%s->%d\n",rrc_log_level,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_VERBOSITY, (const char **)&rrc_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = map_str_to_int(log_verbosity_names,rrc_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_VERBOSITY, (const char **)&rrc_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = map_str_to_int(log_verbosity_names,rrc_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + } - //printf( "\tRRC log verbosity:\t%s->%d\n",rrc_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - } + //printf( "\tRRC log verbosity:\t%s->%d\n",rrc_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_LEVEL, (const char **)>pu_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = map_str_to_int(log_level_names,gtpu_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_LEVEL, (const char **)>pu_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = map_str_to_int(log_level_names,gtpu_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + } - //printf( "\tGTPU log level :\t%s->%d\n",gtpu_log_level,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - } + //printf( "\tGTPU log level :\t%s->%d\n",gtpu_log_level,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_VERBOSITY, (const char **)>pu_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = map_str_to_int(log_verbosity_names,gtpu_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_VERBOSITY, (const char **)>pu_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = map_str_to_int(log_verbosity_names,gtpu_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + } - //printf( "\tGTPU log verbosity:\t%s->%d\n",gtpu_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - } + //printf( "\tGTPU log verbosity:\t%s->%d\n",gtpu_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_LEVEL, (const char **)&udp_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = map_str_to_int(log_level_names,udp_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_LEVEL, (const char **)&udp_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = map_str_to_int(log_level_names,udp_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + } - //printf( "\tUDP log level :\t%s->%d\n",udp_log_level,enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - } + //printf( "\tUDP log level :\t%s->%d\n",udp_log_level,enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_VERBOSITY, (const char **)&udp_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = map_str_to_int(log_verbosity_names,udp_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_VERBOSITY, (const char **)&udp_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = map_str_to_int(log_verbosity_names,udp_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + } - //printf( "\tUDP log verbosity:\t%s->%d\n",udp_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - } + //printf( "\tUDP log verbosity:\t%s->%d\n",udp_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_LEVEL, (const char **)&osa_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = map_str_to_int(log_level_names,osa_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_LEVEL, (const char **)&osa_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = map_str_to_int(log_level_names,osa_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + } - //printf( "\tOSA log level :\t%s->%d\n",osa_log_level,enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - } + //printf( "\tOSA log level :\t%s->%d\n",osa_log_level,enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + } - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_VERBOSITY, (const char **)&osa_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = map_str_to_int(log_verbosity_names,osa_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_VERBOSITY, (const char **)&osa_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = map_str_to_int(log_verbosity_names,osa_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } - //printf( "\tOSA log verbosity:\t%s->%d\n",osa_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gosa_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } + //printf( "\tOSA log verbosity:\t%s->%d\n",osa_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gosa_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } } else { // not configuration is given - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; } */ break; + } } } } } -} -int RCconfig_gtpu() { - config_t cfg; - config_setting_t *setting = NULL; - config_setting_t *subsetting = NULL; - config_setting_t *setting_enb = NULL; - int num_enbs = 0; - libconfig_int enb_id = 0; + int RCconfig_gtpu() { + config_t cfg; + config_setting_t *setting = NULL; + config_setting_t *subsetting = NULL; + config_setting_t *setting_enb = NULL; + int num_enbs = 0; + libconfig_int enb_id = 0; - char* enb_interface_name_for_S1U = NULL; - char* enb_ipv4_address_for_S1U = NULL; - libconfig_int enb_port_for_S1U = 0; - char *address = NULL; - char *cidr = NULL; - char *astring = NULL; + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + libconfig_int enb_port_for_S1U = 0; + char *address = NULL; + char *cidr = NULL; + char *astring = NULL; - // for no gcc warnings - (void)astring; + // for no gcc warnings + (void)astring; - LOG_I(GTPU,"Configuring GTPu\n"); + LOG_I(GTPU,"Configuring GTPu\n"); - config_init(&cfg); + config_init(&cfg); - if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. - if (! config_read_file(&cfg, RC.config_file_name)) { + if (RC.config_file_name != NULL) { + // Read the file. If there is an error, report it and exit. + if (! config_read_file(&cfg, RC.config_file_name)) { + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + } + } else { config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + AssertFatal (0, "No eNB configuration file provided!\n"); } - } else { - config_destroy(&cfg); - AssertFatal (0, "No eNB configuration file provided!\n"); - } - // Get list of active eNBs, (only these will be configured) - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); + // Get list of active eNBs, (only these will be configured) + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - if (setting != NULL) { - num_enbs = config_setting_length(setting); - setting_enb = config_setting_get_elem(setting, 0); - } - - if (num_enbs>0) { - // Output a list of all eNBs. - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - if (setting != NULL) { + num_enbs = config_setting_length(setting); + setting_enb = config_setting_get_elem(setting, 0); + } + + if (num_enbs>0) { + // Output a list of all eNBs. + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); + + if (setting != NULL) { - setting_enb = config_setting_get_elem(setting, 0); - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + setting_enb = config_setting_get_elem(setting, 0); + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - if (subsetting != NULL) { - if ( (config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, - (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, - (const char **)&enb_ipv4_address_for_S1U) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, - &enb_port_for_S1U) - ) - ) { + if (subsetting != NULL) { + if ( (config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + (const char **)&enb_interface_name_for_S1U) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + (const char **)&enb_ipv4_address_for_S1U) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, + &enb_port_for_S1U) + ) + ) { - cidr = enb_ipv4_address_for_S1U; - address = strtok(cidr, "/"); + cidr = enb_ipv4_address_for_S1U; + address = strtok(cidr, "/"); - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); - LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up); + LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up); + + } + + RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U; } - - RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U; - } } } } -} -int RCconfig_S1(MessageDef *msg_p, uint32_t i) { - config_t cfg; - config_setting_t *setting = NULL; - config_setting_t *subsetting = NULL; - config_setting_t *setting_mme_addresses = NULL; - config_setting_t *setting_mme_address = NULL; - config_setting_t *setting_enb = NULL; - config_setting_t *setting_otg = NULL; - config_setting_t *subsetting_otg = NULL; - int parse_errors = 0; - int num_enbs = 0; - int num_mme_address = 0; - int num_otg_elements = 0; - int num_component_carriers = 0; - int j = 0; - libconfig_int enb_id = 0; + int RCconfig_S1(MessageDef *msg_p, uint32_t i) { + config_t cfg; + config_setting_t *setting = NULL; + config_setting_t *subsetting = NULL; + config_setting_t *setting_mme_addresses = NULL; + config_setting_t *setting_mme_address = NULL; + config_setting_t *setting_enb = NULL; + config_setting_t *setting_otg = NULL; + config_setting_t *subsetting_otg = NULL; + int parse_errors = 0; + int num_enbs = 0; + int num_mme_address = 0; + int num_otg_elements = 0; + int num_component_carriers = 0; + int j = 0; + libconfig_int enb_id = 0; - const char* cell_type = NULL; - const char* tac = 0; - const char* enb_name = NULL; - const char* mcc = 0; - const char* mnc = 0; + const char* cell_type = NULL; + const char* tac = 0; + const char* enb_name = NULL; + const char* mcc = 0; + const char* mnc = 0; - libconfig_int my_int; + libconfig_int my_int; - char* if_name = NULL; - char* ipv4 = NULL; - char* ipv4_remote = NULL; - char* ipv6 = NULL; - char* local_rf = NULL; - char* preference = NULL; - char* active = NULL; + char* if_name = NULL; + char* ipv4 = NULL; + char* ipv4_remote = NULL; + char* ipv6 = NULL; + char* local_rf = NULL; + char* preference = NULL; + char* active = NULL; - char* tr_preference = NULL; - libconfig_int local_port = 0; - libconfig_int remote_port = 0; - const char* active_enb[MAX_ENB]; - char* enb_interface_name_for_S1U = NULL; - char* enb_ipv4_address_for_S1U = NULL; - libconfig_int enb_port_for_S1U = 0; - char* enb_interface_name_for_S1_MME = NULL; - char* enb_ipv4_address_for_S1_MME = NULL; - char *address = NULL; - char *cidr = NULL; - char *astring = NULL; + char* tr_preference = NULL; + libconfig_int local_port = 0; + libconfig_int remote_port = 0; + const char* active_enb[MAX_ENB]; + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + libconfig_int enb_port_for_S1U = 0; + char* enb_interface_name_for_S1_MME = NULL; + char* enb_ipv4_address_for_S1_MME = NULL; + char *address = NULL; + char *cidr = NULL; + char *astring = NULL; - // for no gcc warnings - (void)astring; - (void)my_int; + // for no gcc warnings + (void)astring; + (void)my_int; - memset((char*)active_enb, 0 , MAX_ENB * sizeof(char*)); + memset((char*)active_enb, 0 , MAX_ENB * sizeof(char*)); - config_init(&cfg); + config_init(&cfg); - if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. - if (! config_read_file(&cfg, RC.config_file_name)) { + if (RC.config_file_name != NULL) { + // Read the file. If there is an error, report it and exit. + if (! config_read_file(&cfg, RC.config_file_name)) { + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + } + } else { config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + AssertFatal (0, "No eNB configuration file provided!\n"); } - } else { - config_destroy(&cfg); - AssertFatal (0, "No eNB configuration file provided!\n"); - } #if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) - if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { - if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { - asn_debug = 0; - asn1_xer_print = 0; - } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { - asn_debug = 1; - asn1_xer_print = 1; - } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { - asn_debug = 1; - asn1_xer_print = 2; - } else { - asn_debug = 0; - asn1_xer_print = 0; + if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { + if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { + asn_debug = 0; + asn1_xer_print = 0; + } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { + asn_debug = 1; + asn1_xer_print = 1; + } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { + asn_debug = 1; + asn1_xer_print = 2; + } else { + asn_debug = 0; + asn1_xer_print = 0; + } } - } #endif - // Get list of active eNBs, (only these will be configured) - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); + // Get list of active eNBs, (only these will be configured) + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - if (setting != NULL) { - num_enbs = config_setting_length(setting); - setting_enb = config_setting_get_elem(setting, i); - active_enb[i] = config_setting_get_string (setting_enb); - AssertFatal (active_enb[i] != NULL, - "Failed to parse config file %s, %uth attribute %s \n", - RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); - active_enb[i] = strdup(active_enb[i]); - } - - - if (num_enbs>0) { - // Output a list of all eNBs. - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - if (setting != NULL) { num_enbs = config_setting_length(setting); + setting_enb = config_setting_get_elem(setting, i); + active_enb[i] = config_setting_get_string (setting_enb); + AssertFatal (active_enb[i] != NULL, + "Failed to parse config file %s, %uth attribute %s \n", + RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); + active_enb[i] = strdup(active_enb[i]); + } + + + if (num_enbs>0) { + // Output a list of all eNBs. + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); + + if (setting != NULL) { + num_enbs = config_setting_length(setting); - for (i = 0; i < num_enbs; i++) { - setting_enb = config_setting_get_elem(setting, i); + for (i = 0; i < num_enbs; i++) { + setting_enb = config_setting_get_elem(setting, i); - if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { - // Calculate a default eNB ID + if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { + // Calculate a default eNB ID # if defined(ENABLE_USE_MME) - uint32_t hash; + uint32_t hash; - hash = s1ap_generate_eNB_id (); - enb_id = i + (hash & 0xFFFF8); + hash = s1ap_generate_eNB_id (); + enb_id = i + (hash & 0xFFFF8); # else - enb_id = i; + enb_id = i; # endif - } + } - if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) + if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } - // search if in active list - for (j=0; j < num_enbs; j++) { - if (strcmp(active_enb[j], enb_name) == 0) { + // search if in active list + for (j=0; j < num_enbs; j++) { + if (strcmp(active_enb[j], enb_name) == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id; + S1AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id; - if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB; - } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", - RC.config_file_name, i, cell_type); - } - - S1AP_REGISTER_ENB_REQ (msg_p).eNB_name = strdup(enb_name); - S1AP_REGISTER_ENB_REQ (msg_p).tac = (uint16_t)atoi(tac); - S1AP_REGISTER_ENB_REQ (msg_p).mcc = (uint16_t)atoi(mcc); - S1AP_REGISTER_ENB_REQ (msg_p).mnc = (uint16_t)atoi(mnc); - S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(mnc); - S1AP_REGISTER_ENB_REQ (msg_p).default_drx = 0; - AssertFatal((S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) || - (S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3), - "BAD MNC DIGIT LENGTH %d", - S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length); - - - - setting_mme_addresses = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_MME_IP_ADDRESS); - num_mme_address = config_setting_length(setting_mme_addresses); - S1AP_REGISTER_ENB_REQ (msg_p).nb_mme = 0; - - for (j = 0; j < num_mme_address; j++) { - setting_mme_address = config_setting_get_elem(setting_mme_addresses, j); - - if ( !( - config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV4_ADDRESS, (const char **)&ipv4) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV6_ADDRESS, (const char **)&ipv6) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, (const char **)&active) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, (const char **)&preference) - ) - ) { + if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB; + } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb %u th mme address !\n", - RC.config_file_name, i, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", + RC.config_file_name, i, cell_type); } + + S1AP_REGISTER_ENB_REQ (msg_p).eNB_name = strdup(enb_name); + S1AP_REGISTER_ENB_REQ (msg_p).tac = (uint16_t)atoi(tac); + S1AP_REGISTER_ENB_REQ (msg_p).mcc = (uint16_t)atoi(mcc); + S1AP_REGISTER_ENB_REQ (msg_p).mnc = (uint16_t)atoi(mnc); + S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(mnc); + S1AP_REGISTER_ENB_REQ (msg_p).default_drx = 0; + AssertFatal((S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) || + (S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3), + "BAD MNC DIGIT LENGTH %d", + S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length); + + - S1AP_REGISTER_ENB_REQ (msg_p).nb_mme += 1; + setting_mme_addresses = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_MME_IP_ADDRESS); + num_mme_address = config_setting_length(setting_mme_addresses); + S1AP_REGISTER_ENB_REQ (msg_p).nb_mme = 0; - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4_address,ipv4); - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6_address,ipv6); + for (j = 0; j < num_mme_address; j++) { + setting_mme_address = config_setting_get_elem(setting_mme_addresses, j); - if (strcmp(active, "yes") == 0) { + if ( !( + config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV4_ADDRESS, (const char **)&ipv4) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV6_ADDRESS, (const char **)&ipv6) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, (const char **)&active) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, (const char **)&preference) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb %u th mme address !\n", + RC.config_file_name, i, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + + S1AP_REGISTER_ENB_REQ (msg_p).nb_mme += 1; + + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4_address,ipv4); + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6_address,ipv6); + + if (strcmp(active, "yes") == 0) { #if defined(ENABLE_USE_MME) - EPC_MODE_ENABLED = 1; + EPC_MODE_ENABLED = 1; #endif - } - if (strcmp(preference, "ipv4") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - } else if (strcmp(preference, "ipv6") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; - } else if (strcmp(preference, "no") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } + if (strcmp(preference, "ipv4") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + } else if (strcmp(preference, "ipv6") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } else if (strcmp(preference, "no") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } } - } - // SCTP SETTING - S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS; - S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = SCTP_IN_STREAMS; + // SCTP SETTING + S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS; + S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = SCTP_IN_STREAMS; # if defined(ENABLE_USE_MME) - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SCTP_CONFIG); + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SCTP_CONFIG); - if (subsetting != NULL) { - if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_INSTREAMS, &my_int) )) { - S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)my_int; - } + if (subsetting != NULL) { + if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_INSTREAMS, &my_int) )) { + S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)my_int; + } - if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_OUTSTREAMS, &my_int) )) { - S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)my_int; + if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_OUTSTREAMS, &my_int) )) { + S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)my_int; + } } - } #endif - // NETWORK_INTERFACES - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + // NETWORK_INTERFACES + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - if (subsetting != NULL) { - if ( ( - config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, - (const char **)&enb_interface_name_for_S1_MME) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME, - (const char **)&enb_ipv4_address_for_S1_MME) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, - (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, - (const char **)&enb_ipv4_address_for_S1U) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, - &enb_port_for_S1U) - ) - ) { - // S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1U = strdup(enb_interface_name_for_S1U); - cidr = enb_ipv4_address_for_S1U; - address = strtok(cidr, "/"); + if (subsetting != NULL) { + if ( ( + config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, + (const char **)&enb_interface_name_for_S1_MME) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME, + (const char **)&enb_ipv4_address_for_S1_MME) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + (const char **)&enb_interface_name_for_S1U) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + (const char **)&enb_ipv4_address_for_S1U) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, + &enb_port_for_S1U) + ) + ) { + // S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1U = strdup(enb_interface_name_for_S1U); + cidr = enb_ipv4_address_for_S1U; + address = strtok(cidr, "/"); - S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv6 = 0; - S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv6 = 0; + S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4 = 1; - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address); + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address); - /* - in_addr_t ipv4_address; + /* + in_addr_t ipv4_address; - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); - } - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, inet_ntoa(ipv4_address)); - // S1AP_REGISTER_ENB_REQ (msg_p).enb_port_for_S1U = enb_port_for_S1U; + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); + } + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, inet_ntoa(ipv4_address)); + // S1AP_REGISTER_ENB_REQ (msg_p).enb_port_for_S1U = enb_port_for_S1U; - S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1_MME = strdup(enb_interface_name_for_S1_MME); - cidr = enb_ipv4_address_for_S1_MME; - address = strtok(cidr, "/"); + S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1_MME = strdup(enb_interface_name_for_S1_MME); + cidr = enb_ipv4_address_for_S1_MME; + address = strtok(cidr, "/"); - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, S1AP_REGISTER_ENB_REQ(msg_p).enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" ); + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, S1AP_REGISTER_ENB_REQ(msg_p).enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" ); + } + */ } - */ } - } - break; + break; + } } } } } } -} -void RCConfig(const char *config_file_name) { + void RCConfig(const char *config_file_name) { - config_t cfg; - config_setting_t *setting = NULL; - config_setting_t *setting_enb = NULL; - config_setting_t *setting_component_carriers = NULL; - config_init(&cfg); + config_t cfg; + config_setting_t *setting = NULL; + config_setting_t *setting_enb = NULL; + config_setting_t *setting_component_carriers = NULL; + config_init(&cfg); - if (config_file_name != NULL) { - - RC.config_file_name = config_file_name; - if (! config_read_file(&cfg, RC.config_file_name)) { - config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); - } - // Get num eNB instances - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - - if (setting != NULL) RC.nb_inst = config_setting_length(setting); - if (RC.nb_inst > 0) { - printf("Number of eNB RRC instances %d\n",RC.nb_inst); - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int)); - for (int i=0;i 0) { + printf("Number of eNB RRC instances %d\n",RC.nb_inst); + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); + RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int)); + for (int i=0;i @@ -119,12 +119,12 @@ extern RAN_CONTEXT_t RC; uint16_t two_tier_hexagonal_cellIds[7] = {0,1,2,4,5,7,8}; uint16_t two_tier_hexagonal_adjacent_cellIds[7][6] = {{1,2,4,5,7,8}, // CellId 0 - {11,18,2,0,8,15}, // CellId 1 - {18,13,3,4,0,1}, // CellId 2 - {2,3,14,6,5,0}, // CellId 4 - {0,4,6,16,9,7}, // CellId 5 - {8,0,5,9,17,12}, // CellId 7 - {15,1,0,7,12,10} + {11,18,2,0,8,15}, // CellId 1 + {18,13,3,4,0,1}, // CellId 2 + {2,3,14,6,5,0}, // CellId 4 + {0,4,6,16,9,7}, // CellId 5 + {8,0,5,9,17,12}, // CellId 7 + {15,1,0,7,12,10} };// CellId 8 /* @@ -234,10 +234,10 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich AssertFatal(phich_Resource <= PHICH_Config__phich_Duration_extended,"Illegal phich_Duration\n"); mib->message.phich_Config.phich_Duration = phich_duration; LOG_I(RRC,"[MIB] systemBandwidth %x, phich_duration %x, phich_resource %x,sfn %x\n", - (uint32_t)mib->message.dl_Bandwidth, - (uint32_t)phich_duration, - (uint32_t)phich_Resource, - (uint32_t)sfn); + (uint32_t)mib->message.dl_Bandwidth, + (uint32_t)phich_duration, + (uint32_t)phich_Resource, + (uint32_t)sfn); mib->message.systemFrameNumber.buf = &sfn; mib->message.systemFrameNumber.size = 1; @@ -261,24 +261,24 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich enc_rval.failed_type->name, enc_rval.encoded); /* -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { + #if defined(ENABLE_ITTI) + # if !defined(DISABLE_XER_SPRINT) + { char message_string[20000]; size_t message_string_size; if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_BCCH_BCH_Message, (void *) &mib)) > 0) { - MessageDef *msg_p; + MessageDef *msg_p; - msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB, RRC_DL_BCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_bcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_bcch.text, message_string, message_string_size); + msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB, RRC_DL_BCCH, message_string_size + sizeof (IttiMsgText)); + msg_p->ittiMsg.rrc_dl_bcch.size = message_string_size; + memcpy(&msg_p->ittiMsg.rrc_dl_bcch.text, message_string, message_string_size); - itti_send_msg_to_task(TASK_UNKNOWN, enb_module_idP, msg_p); + itti_send_msg_to_task(TASK_UNKNOWN, enb_module_idP, msg_p); } - } -# endif -#endif + } + # endif + #endif */ if (enc_rval.encoded==-1) { return(-1); @@ -292,7 +292,10 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, #if defined(ENABLE_ITTI) , RrcConfigurationReq *configuration #endif - ) +#ifdef Rel14 + , int br_flag +#endif + ) { // SystemInformation_t systemInformation; @@ -301,18 +304,32 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, asn_enc_rval_t enc_rval; SchedulingInfo_t schedulingInfo; SIB_Type_t sib_type; + uint8_t *buffer; + BCCH_DL_SCH_Message_t *bcch_message; + SystemInformationBlockType1_t **sib1; - uint8_t *buffer = carrier->SIB1; - BCCH_DL_SCH_Message_t *bcch_message = &carrier->siblock1; - SystemInformationBlockType1_BR_r13_t **sib1_br = &carrier->sib1; - - +#ifdef Rel14 + if (br_flag==0) { + buffer = carrier->SIB1; + bcch_message = &carrier->siblock1; + sib1 = &carrier->sib1; + } + else { + buffer = carrier->SIB1_BR; + bcch_message = &carrier->siblock1_BR; + sib1 = &carrier->sib1_BR; + } +#else + buffer = carrier->SIB1; + bcch_message = &carrier->siblock1; + sib1 = &carrier->sib1; +#endif memset(bcch_message,0,sizeof(BCCH_DL_SCH_Message_t)); bcch_message->message.present = BCCH_DL_SCH_MessageType_PR_c1; bcch_message->message.choice.c1.present = BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1; // memcpy(&bcch_message.message.choice.c1.choice.systemInformationBlockType1,sib1,sizeof(SystemInformationBlockType1_t)); - *sib1_br = &bcch_message->message.choice.c1.choice.systemInformationBlockType1; + *sib1 = &bcch_message->message.choice.c1.choice.systemInformationBlockType1; memset(&PLMN_identity_info,0,sizeof(PLMN_IdentityInfo_t)); memset(&schedulingInfo,0,sizeof(SchedulingInfo_t)); @@ -373,410 +390,414 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, //assign_enum(&PLMN_identity_info.cellReservedForOperatorUse,PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved); PLMN_identity_info.cellReservedForOperatorUse=PLMN_IdentityInfo__cellReservedForOperatorUse_notReserved; - ASN_SEQUENCE_ADD(&(*sib1_br)->cellAccessRelatedInfo.plmn_IdentityList.list, &PLMN_identity_info); + ASN_SEQUENCE_ADD(&(*sib1)->cellAccessRelatedInfo.plmn_IdentityList.list, &PLMN_identity_info); - // 16 bits - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf = MALLOC(2); + // 16 bits + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf = MALLOC(2); #if defined(ENABLE_ITTI) - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = (configuration->tac >> 8) & 0xff; - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = (configuration->tac >> 0) & 0xff; + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = (configuration->tac >> 8) & 0xff; + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = (configuration->tac >> 0) & 0xff; #else - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = 0x00; - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = 0x01; + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[0] = 0x00; + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.buf[1] = 0x01; #endif - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.size = 2; - (*sib1_br)->cellAccessRelatedInfo.trackingAreaCode.bits_unused = 0; + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.size = 2; + (*sib1)->cellAccessRelatedInfo.trackingAreaCode.bits_unused = 0; - // 28 bits - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf = MALLOC(8); + // 28 bits + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf = MALLOC(8); #if defined(ENABLE_ITTI) - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[0] = (configuration->cell_identity >> 20) & 0xff; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[1] = (configuration->cell_identity >> 12) & 0xff; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[2] = (configuration->cell_identity >> 4) & 0xff; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[3] = (configuration->cell_identity << 4) & 0xf0; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[0] = (configuration->cell_identity >> 20) & 0xff; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[1] = (configuration->cell_identity >> 12) & 0xff; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[2] = (configuration->cell_identity >> 4) & 0xff; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[3] = (configuration->cell_identity << 4) & 0xf0; #else - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[0] = 0x00; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[1] = 0x00; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[2] = 0x00; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.buf[3] = 0x10; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[0] = 0x00; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[1] = 0x00; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[2] = 0x00; + (*sib1)->cellAccessRelatedInfo.cellIdentity.buf[3] = 0x10; #endif - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.size = 4; - (*sib1_br)->cellAccessRelatedInfo.cellIdentity.bits_unused = 4; + (*sib1)->cellAccessRelatedInfo.cellIdentity.size = 4; + (*sib1)->cellAccessRelatedInfo.cellIdentity.bits_unused = 4; - // assign_enum(&(*sib1)->cellAccessRelatedInfo.cellBarred,SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred); - (*sib1_br)->cellAccessRelatedInfo.cellBarred = SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred; + // assign_enum(&(*sib1)->cellAccessRelatedInfo.cellBarred,SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred); + (*sib1)->cellAccessRelatedInfo.cellBarred = SystemInformationBlockType1__cellAccessRelatedInfo__cellBarred_notBarred; - // assign_enum(&(*sib1)->cellAccessRelatedInfo.intraFreqReselection,SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_allowed); - (*sib1_br)->cellAccessRelatedInfo.intraFreqReselection = SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_notAllowed; - (*sib1_br)->cellAccessRelatedInfo.csg_Indication = 0; + // assign_enum(&(*sib1)->cellAccessRelatedInfo.intraFreqReselection,SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_allowed); + (*sib1)->cellAccessRelatedInfo.intraFreqReselection = SystemInformationBlockType1__cellAccessRelatedInfo__intraFreqReselection_notAllowed; + (*sib1)->cellAccessRelatedInfo.csg_Indication = 0; - (*sib1_br)->cellSelectionInfo.q_RxLevMin = -65; - (*sib1_br)->cellSelectionInfo.q_RxLevMinOffset = NULL; - //(*sib1)->p_Max = CALLOC(1, sizeof(P_Max_t)); - //*((*sib1)->p_Max) = 23; - (*sib1_br)->freqBandIndicator = + (*sib1)->cellSelectionInfo.q_RxLevMin = -65; + (*sib1)->cellSelectionInfo.q_RxLevMinOffset = NULL; + //(*sib1)->p_Max = CALLOC(1, sizeof(P_Max_t)); + //*((*sib1)->p_Max) = 23; + (*sib1)->freqBandIndicator = #if defined(ENABLE_ITTI) - configuration->eutra_band[CC_id]; + configuration->eutra_band[CC_id]; #else - 7; + 7; #endif - schedulingInfo.si_Periodicity = SchedulingInfo__si_Periodicity_rf8; + schedulingInfo.si_Periodicity = SchedulingInfo__si_Periodicity_rf8; - // This is for SIB2/3 - sib_type = SIB_Type_sibType3; - ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list, &sib_type); - ASN_SEQUENCE_ADD(&(*sib1_br)->schedulingInfoList.list, &schedulingInfo); + // This is for SIB2/3 + sib_type = SIB_Type_sibType3; + ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list, &sib_type); + ASN_SEQUENCE_ADD(&(*sib1)->schedulingInfoList.list, &schedulingInfo); - // ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,NULL); + // ASN_SEQUENCE_ADD(&schedulingInfo.sib_MappingInfo.list,NULL); #if defined(ENABLE_ITTI) - if (configuration->frame_type[CC_id] == TDD) + if (configuration->frame_type[CC_id] == TDD) #endif + { + (*sib1)->tdd_Config = CALLOC(1, sizeof(struct TDD_Config)); + + (*sib1)->tdd_Config->subframeAssignment = +#if defined(ENABLE_ITTI) + configuration->tdd_config[CC_id]; +#else + 3; // +kogo this was frame_parms->tdd_config +#endif + + (*sib1)->tdd_Config->specialSubframePatterns = +#if defined(ENABLE_ITTI) + configuration->tdd_config_s[CC_id]; +#else + 0; // +kogo this was frame_parms->tdd_config_S; +#endif + } + + (*sib1)->si_WindowLength = SystemInformationBlockType1__si_WindowLength_ms20; + (*sib1)->systemInfoValueTag = 0; + +#ifdef Rel14 + (*sib1)->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v890_IEs_t)); + + SystemInformationBlockType1_v890_IEs_t *sib1_890 = (*sib1)->nonCriticalExtension; + sib1_890->lateNonCriticalExtension = NULL; + sib1_890->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v920_IEs_t)); + memset(sib1_890->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v920_IEs_t)); + + SystemInformationBlockType1_v920_IEs_t *sib1_920 = (*sib1_890).nonCriticalExtension; + sib1_920->ims_EmergencySupport_r9 = NULL; // ptr + sib1_920->cellSelectionInfo_v920 = NULL; + sib1_920->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1130_IEs_t)); + memset(sib1_920->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1130_IEs_t)); + + //////Rel11 + SystemInformationBlockType1_v1130_IEs_t *sib1_1130 = sib1_920->nonCriticalExtension; + + sib1_1130->tdd_Config_v1130 = NULL; // ptr + sib1_1130->cellSelectionInfo_v1130 = NULL; // ptr + sib1_1130->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1250_IEs_t)); + memset(sib1_1130->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1250_IEs_t)); + + + ///Rel12 + SystemInformationBlockType1_v1250_IEs_t *sib1_1250 = sib1_1130->nonCriticalExtension; + sib1_1250->cellAccessRelatedInfo_v1250.category0Allowed_r12 = NULL; // long* + sib1_1250->cellSelectionInfo_v1250 = NULL; + sib1_1250->freqBandIndicatorPriority_r12 = 0; // long* // FIXME + sib1_1250->nonCriticalExtension = NULL; + + + + + ////Rel1310 +#if defined(ENABLE_ITTI) + if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) + { + sib1_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + memset(sib1_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + SystemInformationBlockType1_v1310_IEs_t *sib1_1310 = sib1_1250->nonCriticalExtension; + + + if (configuration->hyperSFN_r13[CC_id]) { - (*sib1_br)->tdd_Config = CALLOC(1, sizeof(struct TDD_Config)); - - (*sib1_br)->tdd_Config->subframeAssignment = -#if defined(ENABLE_ITTI) - configuration->tdd_config[CC_id]; -#else - 3; // +kogo this was frame_parms->tdd_config -#endif - - (*sib1_br)->tdd_Config->specialSubframePatterns = -#if defined(ENABLE_ITTI) - configuration->tdd_config_s[CC_id]; -#else - 0; // +kogo this was frame_parms->tdd_config_S; -#endif + sib1_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_1310->hyperSFN_r13->size = 2; + sib1_1310->hyperSFN_r13->bits_unused = 6; } + else + sib1_1310->hyperSFN_r13 = NULL; - (*sib1_br)->si_WindowLength = SystemInformationBlockType1__si_WindowLength_ms20; - (*sib1_br)->systemInfoValueTag = 0; - (*sib1_br)->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v890_IEs_t)); - - SystemInformationBlockType1_v890_IEs_t *sib1_br_890 = (*sib1_br)->nonCriticalExtension; - sib1_br_890->lateNonCriticalExtension = NULL; - sib1_br_890->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v920_IEs_t)); - memset(sib1_br_890->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v920_IEs_t)); - - SystemInformationBlockType1_v920_IEs_t *sib1_br_920 = (*sib1_br_890).nonCriticalExtension; - sib1_br_920->ims_EmergencySupport_r9 = NULL; // ptr - sib1_br_920->cellSelectionInfo_v920 = NULL; - sib1_br_920->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1130_IEs_t)); - memset(sib1_br_920->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1130_IEs_t)); - - //////Rel11 - SystemInformationBlockType1_v1130_IEs_t *sib1_br_1130 = sib1_br_920->nonCriticalExtension; - - sib1_br_1130->tdd_Config_v1130 = NULL; // ptr - sib1_br_1130->cellSelectionInfo_v1130 = NULL; // ptr - sib1_br_1130->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1250_IEs_t)); - memset(sib1_br_1130->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1250_IEs_t)); - - - ///Rel12 - SystemInformationBlockType1_v1250_IEs_t *sib1_br_1250 = sib1_br_1130->nonCriticalExtension; - sib1_br_1250->cellAccessRelatedInfo_v1250.category0Allowed_r12 = NULL; // long* - sib1_br_1250->cellSelectionInfo_v1250 = NULL; - sib1_br_1250->freqBandIndicatorPriority_r12 = 0; // long* // FIXME - sib1_br_1250->nonCriticalExtension = NULL; - - - - - ////Rel1310 -#if defined(ENABLE_ITTI) - if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) + if (configuration->eDRX_Allowed_r13[CC_id]) { - sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; + sib1_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); + *sib1_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; + } + else + sib1_1310->eDRX_Allowed_r13 = NULL; // long* + + if (configuration->cellSelectionInfoCE_r13[CC_id]) + { + sib1_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long + if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) + { + sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); + *sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; + } + else + sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; + } + else + sib1_1310->cellSelectionInfoCE_r13 = NULL; + + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = configuration->si_WindowLength_BR_r13[CC_id]; // 0 - if (configuration->hyperSFN_r13[CC_id]) - { - sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type - memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_br_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_br_1310->hyperSFN_r13->size = 2; - sib1_br_1310->hyperSFN_r13->bits_unused = 6; - } - else - sib1_br_1310->hyperSFN_r13 = NULL; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = configuration->si_RepetitionPattern_r13[CC_id]; // 0 - if (configuration->eDRX_Allowed_r13[CC_id]) - { - sib1_br_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); - *sib1_br_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; - } - else - sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); + SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); + memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); + schedulinginfo_br_13->si_Narrowband_r13 = 1; + schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); - if (configuration->cellSelectionInfoCE_r13[CC_id]) - { - sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); - memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); - sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long - if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) - { - sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); - *sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; - } - else - sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; - } - else - sib1_br_1310->cellSelectionInfoCE_r13 = NULL; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); - if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 - = configuration->si_WindowLength_BR_r13[CC_id]; // 0 + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + } + else + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; + } + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], + 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 - = configuration->si_RepetitionPattern_r13[CC_id]; // 0 + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 + = configuration->si_HoppingConfigCommon_r13[CC_id]; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); - SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); - memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); - schedulinginfo_br_13->si_Narrowband_r13 = 1; - schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + if (configuration->si_ValidityTime_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 + = *configuration->si_ValidityTime_r13[CC_id]; + } + else + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, - sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + } + else + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; - if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + sib1_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + memset(sib1_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; - } - else - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); - memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; - } - - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], - 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; - - - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 - = configuration->si_HoppingConfigCommon_r13[CC_id]; - - if (configuration->si_ValidityTime_r13[CC_id]) - { - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); - *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 - = *configuration->si_ValidityTime_r13[CC_id]; - } - else - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; - - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); - } - else - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; - - sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - - /////Rel1320 - SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; + /////Rel1320 + SystemInformationBlockType1_v1320_IEs_t *sib1_1320 = sib1_1310->nonCriticalExtension; - if (configuration->freqHoppingParametersDL_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + if (configuration->freqHoppingParametersDL_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; - } - else - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; + if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; + } + else + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } - else - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } + if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } - else - { - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } + if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } - if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) - { + if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) + { - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; - } - else - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; + } + else + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; - } - else - sib1_br_1320->freqHoppingParametersDL_r13 = NULL; + } + else + sib1_1320->freqHoppingParametersDL_r13 = NULL; - sib1_br_1320->nonCriticalExtension = NULL; + sib1_1320->nonCriticalExtension = NULL; } #else - sib1_br_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - memset(sib1_br_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); - SystemInformationBlockType1_v1310_IEs_t *sib1_br_1310 = sib1_br_1250->nonCriticalExtension; + sib1_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + memset(sib1_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); + SystemInformationBlockType1_v1310_IEs_t *sib1_1310 = sib1_1250->nonCriticalExtension; - sib1_br_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type - memset(sib1_br_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); - memset(sib1_br_1310->hyperSFN_r13->buf, 0, 2*sizeof(uint8_t)); - sib1_br_1310->hyperSFN_r13->size = 2; - sib1_br_1310->hyperSFN_r13->bits_unused = 6; + sib1_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memset(sib1_1310->hyperSFN_r13->buf, 0, 2*sizeof(uint8_t)); + sib1_1310->hyperSFN_r13->size = 2; + sib1_1310->hyperSFN_r13->bits_unused = 6; - sib1_br_1310->eDRX_Allowed_r13 = NULL; // long* - sib1_br_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); - memset(sib1_br_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); - sib1_br_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; // (Q_RxLevMin_t) long - sib1_br_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; // (Q_RxLevMin_t) *long + sib1_1310->eDRX_Allowed_r13 = NULL; // long* + sib1_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; // (Q_RxLevMin_t) long + sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; // (Q_RxLevMin_t) *long - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_WindowLength_BR_r13_ms20; // 0 + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_WindowLength_BR_r13_ms20; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_RepetitionPattern_r13_everyRF; // 0 + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_RepetitionPattern_r13_everyRF; // 0 - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); schedulinginfo_br_13->si_Narrowband_r13 = 1; schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, - sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, 0, 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, 0, 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, 0, - 2 * sizeof(uint8_t)); - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = 1; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_HoppingConfigCommon_r13_on; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, 0, + 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = 1; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_HoppingConfigCommon_r13_on; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); - memset(sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); - *sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_ValidityTime_r13_true; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_ValidityTime_r13_true; - sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; - ASN_SEQUENCE_ADD(&sib1_br_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); - sib1_br_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); - memset(sib1_br_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + sib1_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); + memset(sib1_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); /////Rel1320 - SystemInformationBlockType1_v1320_IEs_t *sib1_br_1320 = sib1_br_1310->nonCriticalExtension; - sib1_br_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + SystemInformationBlockType1_v1320_IEs_t *sib1_1320 = sib1_1310->nonCriticalExtension; + sib1_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__mpdcch_pdsch_HoppingNB_r13_nb2; + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__mpdcch_pdsch_HoppingNB_r13_nb2; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13__interval_FDD_r13_int1; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13__interval_FDD_r13_int1; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - memset(sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; - sib1_br_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13__interval_FDD_r13_int2; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13__interval_FDD_r13_int2; - sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); - *sib1_br_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = 1; + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = 1; - sib1_br_1320->nonCriticalExtension = NULL; + sib1_1320->nonCriticalExtension = NULL; #endif +#endif + #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message, - (void*)bcch_message, - buffer, - 100); + (void*)bcch_message, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -809,11 +830,14 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, uint8_t do_SIB23(uint8_t Mod_id, - int CC_id + int CC_id #if defined(ENABLE_ITTI) - , RrcConfigurationReq *configuration + , RrcConfigurationReq *configuration #endif - ) +#ifdef Rel14 + , int br_flag +#endif + ) { struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part; #if defined(Rel10) || defined(Rel14) @@ -824,13 +848,31 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif asn_enc_rval_t enc_rval; - uint8_t *buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23; - BCCH_DL_SCH_Message_t *bcch_message = &RC.rrc[Mod_id]->carrier[CC_id].systemInformation; - SystemInformationBlockType2_t **sib2_br = &RC.rrc[Mod_id]->carrier[CC_id].sib2; - SystemInformationBlockType3_t **sib3 = &RC.rrc[Mod_id]->carrier[CC_id].sib3; + + BCCH_DL_SCH_Message_t *bcch_message = &RC.rrc[Mod_id]->carrier[CC_id].systemInformation; + uint8_t *buffer; + SystemInformationBlockType2_t **sib2; + RadioResourceConfig *rrconfig; +#ifdef Rel14 + if (br_flag == 0) { + buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23; + sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2; + rrconfig = &configuration->radioresourceconfig[CC_id]; + } + else { + buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23_BR; + sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2_BR; + rrconfig = &configuration->radioresourceconfig_BR[CC_id]; + } +#else + buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23; + sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2; + rrconfig = &configuration->radioresourceconfig[CC_id]; +#endif + SystemInformationBlockType3_t **sib3 = &RC.rrc[Mod_id]->carrier[CC_id].sib3; #if defined(Rel10) || defined(Rel14) - SystemInformationBlockType13_r9_t **sib13 = &RC.rrc[Mod_id]->carrier[CC_id].sib13; - uint8_t MBMS_flag = RC.rrc[Mod_id]->carrier[CC_id].MBMS_flag; + SystemInformationBlockType13_r9_t **sib13 = &RC.rrc[Mod_id]->carrier[CC_id].sib13; + uint8_t MBMS_flag = RC.rrc[Mod_id]->carrier[CC_id].MBMS_flag; #endif if (bcch_message) { @@ -840,8 +882,8 @@ uint8_t do_SIB23(uint8_t Mod_id, exit(-1); } - if (!sib2_br) { - LOG_E(RRC,"[eNB %d] sib2_br is null, exiting\n", Mod_id); + if (!sib2) { + LOG_E(RRC,"[eNB %d] sib2 is null, exiting\n", Mod_id); exit(-1); } @@ -851,7 +893,7 @@ uint8_t do_SIB23(uint8_t Mod_id, } #if defined(Rel10) || defined(Rel14) - LOG_I(RRC,"[eNB %d] Configuration sib2_br/3, MBMS = %d\n", Mod_id, MBMS_flag); + LOG_I(RRC,"[eNB %d] Configuration sib2/3, MBMS = %d\n", Mod_id, MBMS_flag); #else LOG_I(RRC,"[eNB %d] Configuration SIB2/3\n", Mod_id); #endif @@ -863,7 +905,7 @@ uint8_t do_SIB23(uint8_t Mod_id, sib2_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2; sib3_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3; - *sib2_br = &sib2_part->choice.sib2; + *sib2 = &sib2_part->choice.sib2; *sib3 = &sib3_part->choice.sib3; #if defined(Rel10) || defined(Rel14) @@ -879,54 +921,54 @@ uint8_t do_SIB23(uint8_t Mod_id, // sib2 - (*sib2_br)->ac_BarringInfo = NULL; + (*sib2)->ac_BarringInfo = NULL; #if defined(Rel10) || defined(Rel14) #if 0 - (*sib2_br)->ssac_BarringForMMTEL_Voice_r9 = NULL; - (*sib2_br)->ssac_BarringForMMTEL_Video_r9 = NULL; - (*sib2_br)->ac_BarringForCSFB_r10 = NULL; + (*sib2)->ssac_BarringForMMTEL_Voice_r9 = NULL; + (*sib2)->ssac_BarringForMMTEL_Video_r9 = NULL; + (*sib2)->ac_BarringForCSFB_r10 = NULL; #endif - (*sib2_br)->ext1 = NULL; - (*sib2_br)->ext2 = NULL; + (*sib2)->ext1 = NULL; + (*sib2)->ext2 = NULL; #endif #if defined(ENABLE_ITTI) - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = configuration->rach_numberOfRA_Preambles[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = rrconfig->rach_numberOfRA_Preambles; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; - if (configuration->rach_preamblesGroupAConfig[CC_id]) { - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig + if (rrconfig->rach_preamblesGroupAConfig) { + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = CALLOC(1,sizeof(struct RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig)); - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->sizeOfRA_PreamblesGroupA - = configuration->rach_sizeOfRA_PreamblesGroupA[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messageSizeGroupA - = configuration->rach_messageSizeGroupA[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messagePowerOffsetGroupB - = configuration->rach_messagePowerOffsetGroupB[CC_id]; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->sizeOfRA_PreamblesGroupA + = rrconfig->rach_sizeOfRA_PreamblesGroupA; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messageSizeGroupA + = rrconfig->rach_messageSizeGroupA; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig->messagePowerOffsetGroupB + = rrconfig->rach_messagePowerOffsetGroupB; } - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep = configuration->rach_powerRampingStep[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower = configuration->rach_preambleInitialReceivedTargetPower[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax = configuration->rach_preambleTransMax[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize = configuration->rach_raResponseWindowSize[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer = configuration->rach_macContentionResolutionTimer[CC_id]; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = configuration->rach_maxHARQ_Msg3Tx[CC_id]; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep = rrconfig->rach_powerRampingStep; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower = rrconfig->rach_preambleInitialReceivedTargetPower; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax = rrconfig->rach_preambleTransMax; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize = rrconfig->rach_raResponseWindowSize; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer = rrconfig->rach_macContentionResolutionTimer; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = rrconfig->rach_maxHARQ_Msg3Tx; // LTE-M +kogo - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); - memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); + memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); - if (configuration->rach_maxHARQ_Msg3Tx[CC_id]) - { - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); - *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = configuration->rach_maxHARQ_Msg3Tx[CC_id]; // to be re-initialized when we find the enum - } + if (rrconfig->rach_maxHARQ_Msg3Tx) + { + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); + *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = rrconfig->rach_maxHARQ_Msg3Tx; // to be re-initialized when we find the enum + } else - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); - memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); + memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t)); @@ -936,161 +978,161 @@ uint8_t do_SIB23(uint8_t Mod_id, rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); -//--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); + //--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo // BCCH-Config - (*sib2_br)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff - = configuration->bcch_modificationPeriodCoeff[CC_id]; + (*sib2)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff + = rrconfig->bcch_modificationPeriodCoeff; // PCCH-Config - (*sib2_br)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle - = configuration->pcch_defaultPagingCycle[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pcch_Config.nB - = configuration->pcch_nB[CC_id]; + (*sib2)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle + = rrconfig->pcch_defaultPagingCycle; + (*sib2)->radioResourceConfigCommon.pcch_Config.nB + = rrconfig->pcch_nB; // PRACH-Config - (*sib2_br)->radioResourceConfigCommon.prach_Config.rootSequenceIndex - = configuration->prach_root[CC_id]; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex - = configuration->prach_config_index[CC_id]; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag - = configuration->prach_high_speed[CC_id]; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig - = configuration->prach_zero_correlation[CC_id]; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset - = configuration->prach_freq_offset[CC_id]; + (*sib2)->radioResourceConfigCommon.prach_Config.rootSequenceIndex + = rrconfig->prach_root; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex + = rrconfig->prach_config_index; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag + = rrconfig->prach_high_speed; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig + = rrconfig->prach_zero_correlation; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset + = rrconfig->prach_freq_offset; // PDSCH-Config - (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower - = configuration->pdsch_referenceSignalPower[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b - = configuration->pdsch_p_b[CC_id]; + (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower + = rrconfig->pdsch_referenceSignalPower; + (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b + = rrconfig->pdsch_p_b; // PUSCH-Config - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB - = configuration->pusch_n_SB[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode - = configuration->pusch_hoppingMode[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset - = configuration->pusch_hoppingOffset[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM - = configuration->pusch_enable64QAM[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled - = configuration->pusch_groupHoppingEnabled[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH - = configuration->pusch_groupAssignment[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled - = configuration->pusch_sequenceHoppingEnabled[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift - = configuration->pusch_nDMRS1[CC_id]; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB + = rrconfig->pusch_n_SB; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode + = rrconfig->pusch_hoppingMode; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset + = rrconfig->pusch_hoppingOffset; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM + = rrconfig->pusch_enable64QAM; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled + = rrconfig->pusch_groupHoppingEnabled; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH + = rrconfig->pusch_groupAssignment; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled + = rrconfig->pusch_sequenceHoppingEnabled; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift + = rrconfig->pusch_nDMRS1; // PUCCH-Config - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift - = configuration->pucch_delta_shift[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI - = configuration->pucch_nRB_CQI[CC_id]; - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN - = configuration->pucch_nCS_AN[CC_id]; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift + = rrconfig->pucch_delta_shift; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI + = rrconfig->pucch_nRB_CQI; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN + = rrconfig->pucch_nCS_AN; #if !defined(Rel10) && !defined(Rel14) - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN - = configuration->pucch_n1_AN[CC_id]; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN + = rrconfig->pucch_n1_AN; #endif // SRS Config - if (configuration->srs_enable[CC_id]==1) { - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + if (rrconfig->srs_enable == 1) { + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present = SoundingRS_UL_ConfigCommon_PR_setup; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig - = configuration->srs_BandwidthConfig[CC_id]; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig - = configuration->srs_SubframeConfig[CC_id]; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission - = configuration->srs_ackNackST[CC_id]; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig + = rrconfig->srs_BandwidthConfig; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig + = rrconfig->srs_SubframeConfig; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission + = rrconfig->srs_ackNackST; - if (configuration->srs_MaxUpPts[CC_id]) { - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts - = CALLOC(1,sizeof(long)); - *(*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts=1; + if (rrconfig->srs_MaxUpPts) { + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts + = CALLOC(1,sizeof(long)); + *(*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts=1; } else { - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts = NULL; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts = NULL; } RC.rrc[Mod_id]->srs_enable[CC_id] = 1; } else { RC.rrc[Mod_id]->srs_enable[CC_id] = 0; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; } // uplinkPowerControlCommon - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH - = configuration->pusch_p0_Nominal[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH - = configuration->pucch_p0_Nominal[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha - = configuration->pusch_alpha[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1 - = configuration->pucch_deltaF_Format1[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b - = configuration->pucch_deltaF_Format1b[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2 - = configuration->pucch_deltaF_Format2[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a - = configuration->pucch_deltaF_Format2a[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b - = configuration->pucch_deltaF_Format2b[CC_id]; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 - = configuration->msg3_delta_Preamble[CC_id]; - (*sib2_br)->radioResourceConfigCommon.ul_CyclicPrefixLength - = configuration->ul_CyclicPrefixLength[CC_id]; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH + = rrconfig->pusch_p0_Nominal; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH + = rrconfig->pucch_p0_Nominal; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha + = rrconfig->pusch_alpha; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1 + = rrconfig->pucch_deltaF_Format1; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b + = rrconfig->pucch_deltaF_Format1b; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2 + = rrconfig->pucch_deltaF_Format2; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a + = rrconfig->pucch_deltaF_Format2a; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b + = rrconfig->pucch_deltaF_Format2b; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 + = rrconfig->msg3_delta_Preamble; + (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength + = rrconfig->ul_CyclicPrefixLength; // LTE-M - +Kogo - (*sib2_br)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - memset((*sib2_br)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); - (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; - (*sib2_br)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; - if (configuration->prach_ConfigCommon_v1310[CC_id]) - { - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); + if (rrconfig->prach_ConfigCommon_v1310) + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); RSRP_Range_t rsrp_range = 60; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL; - if (configuration->mpdcch_startSF_CSS_RA_r13[CC_id]) - { - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + if (rrconfig->mpdcch_startSF_CSS_RA_r13) + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - if (*configuration->mpdcch_startSF_CSS_RA_r13[CC_id]) - { - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = configuration->mpdcch_startSF_CSS_RA_r13_val[CC_id]; - } - else - { - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = configuration->mpdcch_startSF_CSS_RA_r13_val[CC_id]; - } - } + if (*rrconfig->mpdcch_startSF_CSS_RA_r13) + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; + } + } - if (configuration->prach_HoppingOffset_r13[CC_id]) - { - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *configuration->prach_HoppingOffset_r13[CC_id]; - } + if (rrconfig->prach_HoppingOffset_r13) + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *rrconfig->prach_HoppingOffset_r13; + } else - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t)); memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); @@ -1107,60 +1149,60 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); - } + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + } else - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); long pucch_info_value1 = 0; long pucch_info_value2 = 2; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; -//----------------------------------------------------------------------------------------------------------------------------------------- + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + //----------------------------------------------------------------------------------------------------------------------------------------- // UE Timers and Constants - (*sib2_br)->ue_TimersAndConstants.t300 - = configuration->ue_TimersAndConstants_t300[CC_id]; - (*sib2_br)->ue_TimersAndConstants.t301 - = configuration->ue_TimersAndConstants_t301[CC_id]; - (*sib2_br)->ue_TimersAndConstants.t310 - = configuration->ue_TimersAndConstants_t310[CC_id]; - (*sib2_br)->ue_TimersAndConstants.n310 - = configuration->ue_TimersAndConstants_n310[CC_id]; - (*sib2_br)->ue_TimersAndConstants.t311 - = configuration->ue_TimersAndConstants_t311[CC_id]; - (*sib2_br)->ue_TimersAndConstants.n311 - = configuration->ue_TimersAndConstants_n311[CC_id]; + (*sib2)->ue_TimersAndConstants.t300 + = rrconfig->ue_TimersAndConstants_t300; + (*sib2)->ue_TimersAndConstants.t301 + = rrconfig->ue_TimersAndConstants_t301; + (*sib2)->ue_TimersAndConstants.t310 + = rrconfig->ue_TimersAndConstants_t310; + (*sib2)->ue_TimersAndConstants.n310 + = rrconfig->ue_TimersAndConstants_n310; + (*sib2)->ue_TimersAndConstants.t311 + = rrconfig->ue_TimersAndConstants_t311; + (*sib2)->ue_TimersAndConstants.n311 + = rrconfig->ue_TimersAndConstants_n311; #else puts("This is a test that #define ITTI is not working"); - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles=RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep=RACH_ConfigCommon__powerRampingParameters__powerRampingStep_dB2; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower= + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles=RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep=RACH_ConfigCommon__powerRampingParameters__powerRampingStep_dB2; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower= RACH_ConfigCommon__powerRampingParameters__preambleInitialReceivedTargetPower_dBm_100; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax=RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize=RACH_ConfigCommon__ra_SupervisionInfo__ra_ResponseWindowSize_sf10; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer= + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax=RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.ra_ResponseWindowSize=RACH_ConfigCommon__ra_SupervisionInfo__ra_ResponseWindowSize_sf10; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer= RACH_ConfigCommon__ra_SupervisionInfo__mac_ContentionResolutionTimer_sf48; - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = 4; + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = 4; // LTE-M +kogo - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); - memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); - *(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = PreambleTransMax_n5; // to be re-initialized when we find the enum - (*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); - memset((*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); + memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); + *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = PreambleTransMax_n5; // to be re-initialized when we find the enum + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); + memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t)); @@ -1170,89 +1212,89 @@ uint8_t do_SIB23(uint8_t Mod_id, rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); -//--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); + //--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo // BCCH-Config - (*sib2_br)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff=BCCH_Config__modificationPeriodCoeff_n2; + (*sib2)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff=BCCH_Config__modificationPeriodCoeff_n2; // PCCH-Config - (*sib2_br)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; - (*sib2_br)->radioResourceConfigCommon.pcch_Config.nB=PCCH_Config__nB_oneT; + (*sib2)->radioResourceConfigCommon.pcch_Config.defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + (*sib2)->radioResourceConfigCommon.pcch_Config.nB=PCCH_Config__nB_oneT; // PRACH-Config - (*sib2_br)->radioResourceConfigCommon.prach_Config.rootSequenceIndex=Mod_id;//0;//384; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex = 0;//3; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag = 0; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig = 1;//12; - (*sib2_br)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset = 2; + (*sib2)->radioResourceConfigCommon.prach_Config.rootSequenceIndex=Mod_id;//0;//384; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex = 0;//3; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag = 0; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig = 1;//12; + (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset = 2; // PDSCH-Config - (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=0; // corresponds to 24.7 dBm 5 MHz/ 27.7 10 MHz/ 30.7 20 MHz + (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower=0; // corresponds to 24.7 dBm 5 MHz/ 27.7 10 MHz/ 30.7 20 MHz - (*sib2_br)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b=0; // this is different ,, + (*sib2)->radioResourceConfigCommon.pdsch_ConfigCommon.p_b=0; // this is different ,, // PUSCH-Config - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB=1; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode=PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset=0; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM=0; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled=1; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH=0; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled=0; - (*sib2_br)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift=0; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB=1; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode=PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset=0; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM=0; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled=1; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH=0; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled=0; + (*sib2)->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift=0; // PUCCH-Config - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift=PUCCH_ConfigCommon__deltaPUCCH_Shift_ds1; - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI = 1; - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN = 0; - (*sib2_br)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN = 32; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift=PUCCH_ConfigCommon__deltaPUCCH_Shift_ds1; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nRB_CQI = 1; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN = 0; + (*sib2)->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN = 32; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; - (*sib2_br)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present=SoundingRS_UL_ConfigCommon_PR_release; + (*sib2)->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.release=0; // uplinkPowerControlCommon - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH = -108; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH = -108; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha=UplinkPowerControlCommon__alpha_al1; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1=DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b=DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUSCH = -108; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.p0_NominalPUCCH = -108; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.alpha=UplinkPowerControlCommon__alpha_al1; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1=DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b=DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2=DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2=DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a=DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a=DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b=DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b=DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - (*sib2_br)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 = 6; + (*sib2)->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 = 6; - (*sib2_br)->radioResourceConfigCommon.ul_CyclicPrefixLength=UL_CyclicPrefixLength_len1; + (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength=UL_CyclicPrefixLength_len1; // LTE-M - +Kogo - (*sib2_br)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - memset((*sib2_br)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); - (*sib2_br)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; - (*sib2_br)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); RSRP_Range_t rsrp_range = 60; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13__fdd_r13_v5; - (*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13__fdd_r13_v5; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t)); memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); @@ -1269,38 +1311,38 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); - memset((*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); long pucch_info_value1 = 0; long pucch_info_value2 = 2; - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); - ASN_SEQUENCE_ADD(&(*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - (*sib2_br)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; -//----------------------------------------------------------------------------------------------------------------------------------------- + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + //----------------------------------------------------------------------------------------------------------------------------------------- - (*sib2_br)->ue_TimersAndConstants.t300=UE_TimersAndConstants__t300_ms1000; + (*sib2)->ue_TimersAndConstants.t300=UE_TimersAndConstants__t300_ms1000; - (*sib2_br)->ue_TimersAndConstants.t301=UE_TimersAndConstants__t301_ms1000; + (*sib2)->ue_TimersAndConstants.t301=UE_TimersAndConstants__t301_ms1000; - (*sib2_br)->ue_TimersAndConstants.t310=UE_TimersAndConstants__t310_ms1000; + (*sib2)->ue_TimersAndConstants.t310=UE_TimersAndConstants__t310_ms1000; - (*sib2_br)->ue_TimersAndConstants.n310=UE_TimersAndConstants__n310_n20; + (*sib2)->ue_TimersAndConstants.n310=UE_TimersAndConstants__n310_n20; - (*sib2_br)->ue_TimersAndConstants.t311=UE_TimersAndConstants__t311_ms10000; + (*sib2)->ue_TimersAndConstants.t311=UE_TimersAndConstants__t311_ms10000; - (*sib2_br)->ue_TimersAndConstants.n311=UE_TimersAndConstants__n311_n1; + (*sib2)->ue_TimersAndConstants.n311=UE_TimersAndConstants__n311_n1; #endif - (*sib2_br)->freqInfo.additionalSpectrumEmission = 1; - (*sib2_br)->freqInfo.ul_CarrierFreq = NULL; - (*sib2_br)->freqInfo.ul_Bandwidth = NULL; + (*sib2)->freqInfo.additionalSpectrumEmission = 1; + (*sib2)->freqInfo.ul_CarrierFreq = NULL; + (*sib2)->freqInfo.ul_Bandwidth = NULL; // (*sib2)->mbsfn_SubframeConfigList = NULL; #if defined(Rel10) || defined(Rel14) @@ -1308,8 +1350,8 @@ uint8_t do_SIB23(uint8_t Mod_id, if (MBMS_flag > 0) { LOG_I(RRC,"Adding MBSFN subframe Configuration 1 to SIB2\n"); MBSFN_SubframeConfig_t *sib2_mbsfn_SubframeConfig1; - (*sib2_br)->mbsfn_SubframeConfigList = CALLOC(1,sizeof(struct MBSFN_SubframeConfigList)); - MBSFNSubframeConfigList = (*sib2_br)->mbsfn_SubframeConfigList; + (*sib2)->mbsfn_SubframeConfigList = CALLOC(1,sizeof(struct MBSFN_SubframeConfigList)); + MBSFNSubframeConfigList = (*sib2)->mbsfn_SubframeConfigList; sib2_mbsfn_SubframeConfig1= CALLOC(1,sizeof(*sib2_mbsfn_SubframeConfig1)); memset((void*)sib2_mbsfn_SubframeConfig1,0,sizeof(*sib2_mbsfn_SubframeConfig1)); @@ -1346,10 +1388,10 @@ uint8_t do_SIB23(uint8_t Mod_id, } #else // no MBMS transmission - (*sib2_br)->mbsfn_SubframeConfigList = NULL; + (*sib2)->mbsfn_SubframeConfigList = NULL; #endif - (*sib2_br)->timeAlignmentTimerCommon=TimeAlignmentTimer_infinity;//TimeAlignmentTimer_sf5120; + (*sib2)->timeAlignmentTimerCommon=TimeAlignmentTimer_infinity;//TimeAlignmentTimer_sf5120; /// (*SIB3) #if defined(Rel10) || defined(Rel14) @@ -1450,8 +1492,8 @@ uint8_t do_SIB23(uint8_t Mod_id, bcch_message->message.choice.c1.present = BCCH_DL_SCH_MessageType__c1_PR_systemInformation; /* memcpy((void*)&bcch_message.message.choice.c1.choice.systemInformation, - (void*)systemInformation, - sizeof(SystemInformation_t));*/ + (void*)systemInformation, + sizeof(SystemInformation_t));*/ bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.present = SystemInformation__criticalExtensions_PR_systemInformation_r8; @@ -1460,9 +1502,9 @@ uint8_t do_SIB23(uint8_t Mod_id, // asn_set_empty(&systemInformation->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list);//.size=0; // systemInformation->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count=0; ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, - sib2_part); + sib2_part); ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, - sib3_part); + sib3_part); #if defined(Rel10) || defined(Rel14) if (MBMS_flag > 0) { @@ -1476,11 +1518,11 @@ uint8_t do_SIB23(uint8_t Mod_id, xer_fprint(stdout, &asn_DEF_BCCH_DL_SCH_Message, (void*)bcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_DL_SCH_Message, - (void*)bcch_message, - buffer, - 900); + (void*)bcch_message, + buffer, + 900); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) @@ -1566,11 +1608,11 @@ uint8_t do_RRCConnectionRequest(uint8_t Mod_id, uint8_t *buffer,uint8_t *rv) enc_rval = uper_encode_to_buffer(&asn_DEF_UL_CCCH_Message, - (void*)&ul_ccch_msg, - buffer, - 100); + (void*)&ul_ccch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -1620,12 +1662,12 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin rrcConnectionSetupComplete->criticalExtensions.choice.c1.present = RRCConnectionSetupComplete__criticalExtensions__c1_PR_rrcConnectionSetupComplete_r8; rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.nonCriticalExtension=CALLOC(1, - sizeof(*rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.nonCriticalExtension)); + sizeof(*rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.nonCriticalExtension)); if(usim_test == 0) - rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.selectedPLMN_Identity= 2; + rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.selectedPLMN_Identity= 2; else - rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.selectedPLMN_Identity= 1; + rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.selectedPLMN_Identity= 1; rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.registeredMME = NULL;//calloc(1,sizeof(*rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.registeredMME)); @@ -1639,7 +1681,7 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin */ memset(&rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.dedicatedInfoNAS,0,sizeof(OCTET_STRING_t)); OCTET_STRING_fromBuf(&rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.dedicatedInfoNAS, - dedicatedInfoNAS, dedicatedInfoNASLength); + dedicatedInfoNAS, dedicatedInfoNASLength); /* rrcConnectionSetupComplete->criticalExtensions.choice.c1.choice.rrcConnectionSetupComplete_r8.registeredMME->mmec.buf = calloc(1,1); @@ -1649,11 +1691,11 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin */ enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, - (void*)&ul_dcch_msg, - buffer, - 100); + (void*)&ul_dcch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -1685,10 +1727,10 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin //------------------------------------------------------------------------------ uint8_t do_RRCConnectionReconfigurationComplete( - const protocol_ctxt_t* const ctxt_pP, - uint8_t* buffer, - const uint8_t Transaction_id -) + const protocol_ctxt_t* const ctxt_pP, + uint8_t* buffer, + const uint8_t Transaction_id + ) //------------------------------------------------------------------------------ { @@ -1711,11 +1753,11 @@ do_RRCConnectionReconfigurationComplete( rrcConnectionReconfigurationComplete->criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.nonCriticalExtension=NULL; enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, - (void*)&ul_dcch_msg, - buffer, - 100); + (void*)&ul_dcch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -1745,42 +1787,42 @@ do_RRCConnectionReconfigurationComplete( uint8_t do_RRCConnectionSetup_BR( - const protocol_ctxt_t* const ctxt_pP, - rrc_eNB_ue_context_t* const ue_context_pP, - int CC_id, - uint8_t* const buffer, - const uint8_t transmission_mode, - const uint8_t Transaction_id, - SRB_ToAddModList_t **SRB_configList, - struct PhysicalConfigDedicated **physicalConfigDedicated) + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + int CC_id, + uint8_t* const buffer, + const uint8_t transmission_mode, + const uint8_t Transaction_id, + SRB_ToAddModList_t **SRB_configList, + struct PhysicalConfigDedicated **physicalConfigDedicated) { - asn_enc_rval_t enc_rval; - uint8_t ecause=0; - eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id]; - rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id]; + asn_enc_rval_t enc_rval; + uint8_t ecause=0; + eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id]; + rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id]; - long* logicalchannelgroup = NULL; - struct SRB_ToAddMod* SRB1_config = NULL; - struct SRB_ToAddMod__rlc_Config* SRB1_rlc_config = NULL; - struct SRB_ToAddMod__logicalChannelConfig* SRB1_lchan_config = NULL; - struct LogicalChannelConfig__ul_SpecificParameters* SRB1_ul_SpecificParameters = NULL; + long* logicalchannelgroup = NULL; + struct SRB_ToAddMod* SRB1_config = NULL; + struct SRB_ToAddMod__rlc_Config* SRB1_rlc_config = NULL; + struct SRB_ToAddMod__logicalChannelConfig* SRB1_lchan_config = NULL; + struct LogicalChannelConfig__ul_SpecificParameters* SRB1_ul_SpecificParameters = NULL; - #ifdef CBA - struct PUSCH_CBAConfigDedicated_vlola* pusch_CBAConfigDedicated_vlola = NULL; - long* betaOffset_CBA_Index = NULL; - long* cShift_CBA = NULL; - #endif - PhysicalConfigDedicated_t* physicalConfigDedicated2 = NULL; +#ifdef CBA + struct PUSCH_CBAConfigDedicated_vlola* pusch_CBAConfigDedicated_vlola = NULL; + long* betaOffset_CBA_Index = NULL; + long* cShift_CBA = NULL; +#endif + PhysicalConfigDedicated_t* physicalConfigDedicated2 = NULL; - DL_CCCH_Message_t dl_ccch_msg; + DL_CCCH_Message_t dl_ccch_msg; - RRCConnectionSetup_t* rrcConnectionSetup = NULL; + RRCConnectionSetup_t* rrcConnectionSetup = NULL; - memset((void *)&dl_ccch_msg,0,sizeof(DL_CCCH_Message_t)); - dl_ccch_msg.message.present = DL_CCCH_MessageType_PR_c1; - dl_ccch_msg.message.choice.c1.present = DL_CCCH_MessageType__c1_PR_rrcConnectionSetup; - rrcConnectionSetup = &dl_ccch_msg.message.choice.c1.choice.rrcConnectionSetup; + memset((void *)&dl_ccch_msg,0,sizeof(DL_CCCH_Message_t)); + dl_ccch_msg.message.present = DL_CCCH_MessageType_PR_c1; + dl_ccch_msg.message.choice.c1.present = DL_CCCH_MessageType__c1_PR_rrcConnectionSetup; + rrcConnectionSetup = &dl_ccch_msg.message.choice.c1.choice.rrcConnectionSetup; // RRCConnectionSetup // Configure SRB1 @@ -1895,7 +1937,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->uplinkPowerControlDedicated->p0_UE_PUCCH = 0; // 0 dB physicalConfigDedicated2->uplinkPowerControlDedicated->pSRS_Offset = 0; // 0 dB physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient = CALLOC(1, - sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient)); + sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient)); // assign_enum(physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient,FilterCoefficient_fc4); // fc4 dB *physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient=FilterCoefficient_fc4; // fc4 dB @@ -1915,7 +1957,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; - /* + /* physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup; physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_pmi_ConfigIndex = 0; // Icqi/pmi @@ -1924,50 +1966,50 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.ri_ConfigIndex=NULL; physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.simultaneousAckNackAndCQI=0; - */ + */ /// TODO to be reviewed if (rrc->srs_enable[CC_id]) { physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; + SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; + SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; if (carrier->sib1->tdd_Config==NULL) { // FDD if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present - == SoundingRS_UL_ConfigCommon_PR_setup) - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) - LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); if (ue_context_pP->local_uid >=20) - LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", - ue_context_pP->local_uid); + LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); //the current code will allow for 20 UEs - to be revised for more physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; } else { if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present - == SoundingRS_UL_ConfigCommon_PR_setup) - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) { - LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, - carrier->sib1->tdd_Config->subframeAssignment); - } + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) { + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, + carrier->sib1->tdd_Config->subframeAssignment); + } if (ue_context_pP->local_uid >=6) - LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n", - ue_context_pP->local_uid); + LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=17+ue_context_pP->local_uid/2; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; } LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid, - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift= - SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; + SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; } //AntennaInfoDedicated @@ -1987,34 +2029,34 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm2; break; /* - case 3: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1, - sizeof(*physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction)); - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = + case 3: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1, + sizeof(*physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction)); + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = AntennaInfoDedicated__codebookSubsetRestriction_PR_n2TxAntenna_tm3; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf= MALLOC(1); - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf[0] = 0xc0; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf= MALLOC(1); + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf[0] = 0xc0; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; - break; + break; - case 4: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; + case 4: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; - case 5: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; + case 5: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; - case 6: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; + case 6: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; - case 7: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; + case 7: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; */ } @@ -2033,17 +2075,17 @@ do_RRCConnectionSetup_BR( switch (carrier->sib1->tdd_Config->subframeAssignment) { case 1: physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+(ue_context_pP->local_uid&1)+(( - ue_context_pP->local_uid&3)>>1)*5; // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 7 for UE2, 8 for UE3 , 2 for UE4 etc..) + ue_context_pP->local_uid&3)>>1)*5; // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 7 for UE2, 8 for UE3 , 2 for UE4 etc..) break; case 3: physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+ - (ue_context_pP->local_uid%3); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) + (ue_context_pP->local_uid%3); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) break; case 4: physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+ - (ue_context_pP->local_uid&1); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) + (ue_context_pP->local_uid&1); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) break; default: @@ -2070,7 +2112,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); -// memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) + // memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); epdcch_setconfig_r11->setConfigId_r11 = 0; epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; @@ -2140,11 +2182,11 @@ do_RRCConnectionSetup_BR( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, - (void*)&dl_ccch_msg, - buffer, - 100); + (void*)&dl_ccch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -2167,7 +2209,7 @@ do_RRCConnectionSetup_BR( #ifdef USER_MODE LOG_D(RRC,"RRCConnectionSetup Encoded %d bits (%d bytes), ecause %d\n", - enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); + enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); #endif // FREEMEM(SRB_list); @@ -2183,14 +2225,14 @@ do_RRCConnectionSetup_BR( //------------------------------------------------------------------------------ uint8_t do_RRCConnectionSetup( - const protocol_ctxt_t* const ctxt_pP, - rrc_eNB_ue_context_t* const ue_context_pP, - int CC_id, - uint8_t* const buffer, - const uint8_t transmission_mode, - const uint8_t Transaction_id, - SRB_ToAddModList_t **SRB_configList, - struct PhysicalConfigDedicated **physicalConfigDedicated) + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + int CC_id, + uint8_t* const buffer, + const uint8_t transmission_mode, + const uint8_t Transaction_id, + SRB_ToAddModList_t **SRB_configList, + struct PhysicalConfigDedicated **physicalConfigDedicated) { asn_enc_rval_t enc_rval; @@ -2334,7 +2376,7 @@ do_RRCConnectionSetup( physicalConfigDedicated2->uplinkPowerControlDedicated->p0_UE_PUCCH = 0; // 0 dB physicalConfigDedicated2->uplinkPowerControlDedicated->pSRS_Offset = 0; // 0 dB physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient = CALLOC(1, - sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient)); + sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient)); // assign_enum(physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient,FilterCoefficient_fc4); // fc4 dB *physicalConfigDedicated2->uplinkPowerControlDedicated->filterCoefficient=FilterCoefficient_fc4; // fc4 dB @@ -2371,7 +2413,7 @@ do_RRCConnectionSetup( physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; - /* + /* physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup; physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_pmi_ConfigIndex = 0; // Icqi/pmi @@ -2380,15 +2422,15 @@ do_RRCConnectionSetup( physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.ri_ConfigIndex=NULL; physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.simultaneousAckNackAndCQI=0; - */ + */ //soundingRS-UL-ConfigDedicated if (rrc->srs_enable[CC_id]==1) { physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; + SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; + SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; if (carrier->sib1->tdd_Config==NULL) { // FDD @@ -2423,7 +2465,7 @@ do_RRCConnectionSetup( physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift= - SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; + SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; } @@ -2444,34 +2486,34 @@ do_RRCConnectionSetup( physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm2; break; /* - case 3: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1, - sizeof(*physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction)); - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = + case 3: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1, + sizeof(*physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction)); + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = AntennaInfoDedicated__codebookSubsetRestriction_PR_n2TxAntenna_tm3; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf= MALLOC(1); - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf[0] = 0xc0; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; - physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf= MALLOC(1); + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.buf[0] = 0xc0; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; - break; + break; - case 4: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; + case 4: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; - case 5: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; + case 5: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; - case 6: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; + case 6: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; - case 7: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; + case 7: + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; */ } @@ -2490,17 +2532,17 @@ do_RRCConnectionSetup( switch (carrier->sib1->tdd_Config->subframeAssignment) { case 1: physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+(ue_context_pP->local_uid&1)+(( - ue_context_pP->local_uid&3)>>1)*5; // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 7 for UE2, 8 for UE3 , 2 for UE4 etc..) + ue_context_pP->local_uid&3)>>1)*5; // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 7 for UE2, 8 for UE3 , 2 for UE4 etc..) break; case 3: physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+ - (ue_context_pP->local_uid%3); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) + (ue_context_pP->local_uid%3); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) break; case 4: physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 7+ - (ue_context_pP->local_uid&1); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) + (ue_context_pP->local_uid&1); // Isr = 5 (every 10 subframes, offset=2 for UE0, 3 for UE1, 3 for UE2, 2 for UE3 , etc..) break; default: @@ -2538,11 +2580,11 @@ do_RRCConnectionSetup( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, - (void*)&dl_ccch_msg, - buffer, - 100); + (void*)&dl_ccch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -2565,7 +2607,7 @@ do_RRCConnectionSetup( #ifdef USER_MODE LOG_D(RRC,"RRCConnectionSetup Encoded %d bits (%d bytes), ecause %d\n", - enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); + enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); #endif // FREEMEM(SRB_list); @@ -2580,12 +2622,12 @@ do_RRCConnectionSetup( //------------------------------------------------------------------------------ uint8_t do_SecurityModeCommand( - const protocol_ctxt_t* const ctxt_pP, - uint8_t* const buffer, - const uint8_t Transaction_id, - const uint8_t cipheringAlgorithm, - const uint8_t integrityProtAlgorithm -) + const protocol_ctxt_t* const ctxt_pP, + uint8_t* const buffer, + const uint8_t Transaction_id, + const uint8_t cipheringAlgorithm, + const uint8_t integrityProtAlgorithm + ) //------------------------------------------------------------------------------ { DL_DCCH_Message_t dl_dcch_msg; @@ -2611,11 +2653,11 @@ do_SecurityModeCommand( xer_fprint(stdout, &asn_DEF_DL_DCCH_Message, (void*)&dl_dcch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, - (void*)&dl_dcch_msg, - buffer, - 100); + (void*)&dl_dcch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -2638,16 +2680,16 @@ do_SecurityModeCommand( #ifdef USER_MODE LOG_D(RRC,"[eNB %d] securityModeCommand for UE %x Encoded %d bits (%d bytes)\n", - ctxt_pP->module_id, - ctxt_pP->rnti, - enc_rval.encoded, - (enc_rval.encoded+7)/8); + ctxt_pP->module_id, + ctxt_pP->rnti, + enc_rval.encoded, + (enc_rval.encoded+7)/8); #endif if (enc_rval.encoded==-1) { LOG_E(RRC,"[eNB %d] ASN1 : securityModeCommand encoding failed for UE %x\n", - ctxt_pP->module_id, - ctxt_pP->rnti); + ctxt_pP->module_id, + ctxt_pP->rnti); return(-1); } @@ -2659,10 +2701,10 @@ do_SecurityModeCommand( //------------------------------------------------------------------------------ uint8_t do_UECapabilityEnquiry( - const protocol_ctxt_t* const ctxt_pP, - uint8_t* const buffer, - const uint8_t Transaction_id -) + const protocol_ctxt_t* const ctxt_pP, + uint8_t* const buffer, + const uint8_t Transaction_id + ) //------------------------------------------------------------------------------ { @@ -2683,17 +2725,17 @@ do_UECapabilityEnquiry( UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8; dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.count=0; ASN_SEQUENCE_ADD(&dl_dcch_msg.message.choice.c1.choice.ueCapabilityEnquiry.criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list, - &rat); + &rat); #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_DL_DCCH_Message, (void*)&dl_dcch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, - (void*)&dl_dcch_msg, - buffer, - 100); + (void*)&dl_dcch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -2716,16 +2758,16 @@ do_UECapabilityEnquiry( #ifdef USER_MODE LOG_D(RRC,"[eNB %d] UECapabilityRequest for UE %x Encoded %d bits (%d bytes)\n", - ctxt_pP->module_id, - ctxt_pP->rnti, - enc_rval.encoded, - (enc_rval.encoded+7)/8); + ctxt_pP->module_id, + ctxt_pP->rnti, + enc_rval.encoded, + (enc_rval.encoded+7)/8); #endif if (enc_rval.encoded==-1) { LOG_E(RRC,"[eNB %d] ASN1 : UECapabilityRequest encoding failed for UE %x\n", - ctxt_pP->module_id, - ctxt_pP->rnti); + ctxt_pP->module_id, + ctxt_pP->rnti); return(-1); } @@ -2734,251 +2776,251 @@ do_UECapabilityEnquiry( uint16_t do_RRCConnectionReconfiguration_BR( - const protocol_ctxt_t* const ctxt_pP, - uint8_t *buffer, - uint8_t Transaction_id, - SRB_ToAddModList_t *SRB_list, - DRB_ToAddModList_t *DRB_list, - DRB_ToReleaseList_t *DRB_list2, - struct SPS_Config *sps_Config, - struct PhysicalConfigDedicated *physicalConfigDedicated, - MeasObjectToAddModList_t *MeasObj_list, - ReportConfigToAddModList_t *ReportConfig_list, - QuantityConfig_t *quantityConfig, - MeasIdToAddModList_t *MeasId_list, - MAC_MainConfig_t *mac_MainConfig, - MeasGapConfig_t *measGapConfig, - MobilityControlInfo_t *mobilityInfo, - struct MeasConfig__speedStatePars *speedStatePars, - RSRP_Range_t *rsrp, - C_RNTI_t *cba_rnti, - struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList - *dedicatedInfoNASList + const protocol_ctxt_t* const ctxt_pP, + uint8_t *buffer, + uint8_t Transaction_id, + SRB_ToAddModList_t *SRB_list, + DRB_ToAddModList_t *DRB_list, + DRB_ToReleaseList_t *DRB_list2, + struct SPS_Config *sps_Config, + struct PhysicalConfigDedicated *physicalConfigDedicated, + MeasObjectToAddModList_t *MeasObj_list, + ReportConfigToAddModList_t *ReportConfig_list, + QuantityConfig_t *quantityConfig, + MeasIdToAddModList_t *MeasId_list, + MAC_MainConfig_t *mac_MainConfig, + MeasGapConfig_t *measGapConfig, + MobilityControlInfo_t *mobilityInfo, + struct MeasConfig__speedStatePars *speedStatePars, + RSRP_Range_t *rsrp, + C_RNTI_t *cba_rnti, + struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList + *dedicatedInfoNASList #if defined(Rel10) || defined(Rel14) - , SCellToAddMod_r10_t *SCell_config + , SCellToAddMod_r10_t *SCell_config #endif -) + ) { - asn_enc_rval_t enc_rval; + asn_enc_rval_t enc_rval; - DL_DCCH_Message_t dl_dcch_msg; - RRCConnectionReconfiguration_t *rrcConnectionReconfiguration; + DL_DCCH_Message_t dl_dcch_msg; + RRCConnectionReconfiguration_t *rrcConnectionReconfiguration; - memset(&dl_dcch_msg,0,sizeof(DL_DCCH_Message_t)); + memset(&dl_dcch_msg,0,sizeof(DL_DCCH_Message_t)); - dl_dcch_msg.message.present = DL_DCCH_MessageType_PR_c1; - dl_dcch_msg.message.choice.c1.present = DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration; - rrcConnectionReconfiguration = &dl_dcch_msg.message.choice.c1.choice.rrcConnectionReconfiguration; + dl_dcch_msg.message.present = DL_DCCH_MessageType_PR_c1; + dl_dcch_msg.message.choice.c1.present = DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration; + rrcConnectionReconfiguration = &dl_dcch_msg.message.choice.c1.choice.rrcConnectionReconfiguration; - // RRCConnectionReconfiguration - rrcConnectionReconfiguration->rrc_TransactionIdentifier = Transaction_id; - rrcConnectionReconfiguration->criticalExtensions.present = RRCConnectionReconfiguration__criticalExtensions_PR_c1; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.present =RRCConnectionReconfiguration__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r8 ; + // RRCConnectionReconfiguration + rrcConnectionReconfiguration->rrc_TransactionIdentifier = Transaction_id; + rrcConnectionReconfiguration->criticalExtensions.present = RRCConnectionReconfiguration__criticalExtensions_PR_c1; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.present =RRCConnectionReconfiguration__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r8 ; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated)); - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList = SRB_list; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList = DRB_list; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToReleaseList = DRB_list2; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->sps_Config = sps_Config; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->physicalConfigDedicated = physicalConfigDedicated; - #ifdef CBA - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->cba_RNTI_vlola= cba_rnti; - #endif + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList = SRB_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList = DRB_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToReleaseList = DRB_list2; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->sps_Config = sps_Config; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->physicalConfigDedicated = physicalConfigDedicated; +#ifdef CBA + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->cba_RNTI_vlola= cba_rnti; +#endif - // +kogo - physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; + // +kogo + physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; - physicalConfigDedicated->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; - physicalConfigDedicated->ext4->csi_RS_ConfigNZPToAddModList_r11 = NULL; - physicalConfigDedicated->ext4->csi_RS_ConfigZPToAddModList_r11 = NULL; - physicalConfigDedicated->ext4->csi_RS_ConfigZPToReleaseList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigNZPToAddModList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigZPToAddModList_r11 = NULL; + physicalConfigDedicated->ext4->csi_RS_ConfigZPToReleaseList_r11 = NULL; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToReleaseList_r11 = NULL; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToReleaseList_r11 = NULL; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); + physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); // memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) - EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); - epdcch_setconfig_r11->setConfigId_r11 = 0; - epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; - epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; - //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); + epdcch_setconfig_r11->setConfigId_r11 = 0; + epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; + epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; + //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; - epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; - epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; - epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; - epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; - ASN_SEQUENCE_ADD(physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); + epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; + epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; + epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; + ASN_SEQUENCE_ADD(physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); - physicalConfigDedicated->ext7->pdsch_ConfigDedicated_v1310 = NULL; - physicalConfigDedicated->ext7->pusch_ConfigDedicated_r13 = NULL; + physicalConfigDedicated->ext7->pdsch_ConfigDedicated_v1310 = NULL; + physicalConfigDedicated->ext7->pusch_ConfigDedicated_r13 = NULL; - physicalConfigDedicated->ext7->pdcch_CandidateReductions_r13 = NULL; + physicalConfigDedicated->ext7->pdcch_CandidateReductions_r13 = NULL; - physicalConfigDedicated->ext7->pucch_ConfigDedicated_r13 = NULL; + physicalConfigDedicated->ext7->pucch_ConfigDedicated_r13 = NULL; - physicalConfigDedicated->ext7->cqi_ReportConfig_v1310 = NULL; + physicalConfigDedicated->ext7->cqi_ReportConfig_v1310 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicated_v1310 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedUpPTsExt_r13 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodic_v1310 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicated_v1310 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedUpPTsExt_r13 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodic_v1310 = NULL; + physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13 = NULL; - physicalConfigDedicated->ext7->csi_RS_Config_v1310 = NULL; + physicalConfigDedicated->ext7->csi_RS_Config_v1310 = NULL; - physicalConfigDedicated->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; - physicalConfigDedicated->ext7->ce_Mode_r13->choice.setup = PhysicalConfigDedicated__ext7__ce_Mode_r13__setup_ce_ModeA; - physicalConfigDedicated->ext7->csi_RS_ConfigNZPToAddModListExt_r13 = NULL; - physicalConfigDedicated->ext7->csi_RS_ConfigNZPToReleaseListExt_r13 = NULL; + physicalConfigDedicated->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; + physicalConfigDedicated->ext7->ce_Mode_r13->choice.setup = PhysicalConfigDedicated__ext7__ce_Mode_r13__setup_ce_ModeA; + physicalConfigDedicated->ext7->csi_RS_ConfigNZPToAddModListExt_r13 = NULL; + physicalConfigDedicated->ext7->csi_RS_ConfigNZPToReleaseListExt_r13 = NULL; - // +kogo ------------------------------------------------------------------------------------------ + // +kogo ------------------------------------------------------------------------------------------ - if (mac_MainConfig!=NULL) { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig)); - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->present - =RadioResourceConfigDedicated__mac_MainConfig_PR_explicitValue; - memcpy(&rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue, - mac_MainConfig, - sizeof(*mac_MainConfig)); + if (mac_MainConfig!=NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->present + =RadioResourceConfigDedicated__mac_MainConfig_PR_explicitValue; + memcpy(&rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue, + mac_MainConfig, + sizeof(*mac_MainConfig)); + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig=NULL; + } + + if (MeasId_list != NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); + memset((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig, + 0, sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); + + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measObjectToAddModList = MeasObj_list; + + if (quantityConfig!=NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); + memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig, + (void *)quantityConfig, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); } else { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig=NULL; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = NULL; } - if (MeasId_list != NULL) { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); - memset((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig, - 0, sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); - - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measObjectToAddModList = MeasObj_list; - - if (quantityConfig!=NULL) { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); - memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig, - (void *)quantityConfig, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); - } else { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = NULL; - } - - if(speedStatePars != NULL) { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars)); - memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars, - (void *)speedStatePars,sizeof(*speedStatePars)); - } else { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = NULL; - } - - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->s_Measure= rsrp; + if(speedStatePars != NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars)); + memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars, + (void *)speedStatePars,sizeof(*speedStatePars)); } else { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = NULL; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = NULL; } - if (mobilityInfo !=NULL) { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo)); - memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo, (void*)mobilityInfo, - sizeof(MobilityControlInfo_t)); + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->s_Measure= rsrp; + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = NULL; + } - } else { - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = NULL; + if (mobilityInfo !=NULL) { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = CALLOC(1, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo)); + memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo, (void*)mobilityInfo, + sizeof(MobilityControlInfo_t)); + + } else { + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = NULL; + } + + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.dedicatedInfoNASList = dedicatedInfoNASList; + rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO = NULL; + + enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + (void*)&dl_dcch_msg, + buffer, + RRC_BUF_SIZE); + AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %l)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + +#ifdef XER_PRINT + xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)&dl_dcch_msg); +#endif + +#if defined(ENABLE_ITTI) +# if !defined(DISABLE_XER_SPRINT) + { + char message_string[30000]; + size_t message_string_size; + + if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_DCCH_Message, (void *) &dl_dcch_msg)) > 0) { + MessageDef *msg_p; + + msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText)); + msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size; + memcpy(&msg_p->ittiMsg.rrc_dl_dcch.text, message_string, message_string_size); + + itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); } + } +# endif +#endif - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.dedicatedInfoNASList = dedicatedInfoNASList; - rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO = NULL; + //#ifdef USER_MODE + LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); + // for (i=0;i<30;i++) + // msg("%x.",buffer[i]); + // msg("\n"); - enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, - (void*)&dl_dcch_msg, - buffer, - RRC_BUF_SIZE); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %l)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + //#endif - #ifdef XER_PRINT - xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)&dl_dcch_msg); - #endif - - #if defined(ENABLE_ITTI) - # if !defined(DISABLE_XER_SPRINT) - { - char message_string[30000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_DL_DCCH_Message, (void *) &dl_dcch_msg)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_dcch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } - # endif - #endif - - //#ifdef USER_MODE - LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); - // for (i=0;i<30;i++) - // msg("%x.",buffer[i]); - // msg("\n"); - - //#endif - - return((enc_rval.encoded+7)/8); + return((enc_rval.encoded+7)/8); } //------------------------------------------------------------------------------ uint16_t do_RRCConnectionReconfiguration( - const protocol_ctxt_t* const ctxt_pP, - uint8_t *buffer, - uint8_t Transaction_id, - SRB_ToAddModList_t *SRB_list, - DRB_ToAddModList_t *DRB_list, - DRB_ToReleaseList_t *DRB_list2, - struct SPS_Config *sps_Config, - struct PhysicalConfigDedicated *physicalConfigDedicated, - MeasObjectToAddModList_t *MeasObj_list, - ReportConfigToAddModList_t *ReportConfig_list, - QuantityConfig_t *quantityConfig, - MeasIdToAddModList_t *MeasId_list, - MAC_MainConfig_t *mac_MainConfig, - MeasGapConfig_t *measGapConfig, - MobilityControlInfo_t *mobilityInfo, - struct MeasConfig__speedStatePars *speedStatePars, - RSRP_Range_t *rsrp, - C_RNTI_t *cba_rnti, - struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList - *dedicatedInfoNASList + const protocol_ctxt_t* const ctxt_pP, + uint8_t *buffer, + uint8_t Transaction_id, + SRB_ToAddModList_t *SRB_list, + DRB_ToAddModList_t *DRB_list, + DRB_ToReleaseList_t *DRB_list2, + struct SPS_Config *sps_Config, + struct PhysicalConfigDedicated *physicalConfigDedicated, + MeasObjectToAddModList_t *MeasObj_list, + ReportConfigToAddModList_t *ReportConfig_list, + QuantityConfig_t *quantityConfig, + MeasIdToAddModList_t *MeasId_list, + MAC_MainConfig_t *mac_MainConfig, + MeasGapConfig_t *measGapConfig, + MobilityControlInfo_t *mobilityInfo, + struct MeasConfig__speedStatePars *speedStatePars, + RSRP_Range_t *rsrp, + C_RNTI_t *cba_rnti, + struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList + *dedicatedInfoNASList #if defined(Rel10) || defined(Rel14) - , SCellToAddMod_r10_t *SCell_config + , SCellToAddMod_r10_t *SCell_config #endif -) + ) //------------------------------------------------------------------------------ { @@ -3000,7 +3042,7 @@ do_RRCConnectionReconfiguration( rrcConnectionReconfiguration->criticalExtensions.choice.c1.present =RRCConnectionReconfiguration__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r8 ; rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated)); + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated)); rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList = SRB_list; rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList = DRB_list; rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToReleaseList = DRB_list2; @@ -3012,21 +3054,21 @@ do_RRCConnectionReconfiguration( if (mac_MainConfig!=NULL) { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig)); + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig)); rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->present =RadioResourceConfigDedicated__mac_MainConfig_PR_explicitValue; memcpy(&rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue, - mac_MainConfig, - sizeof(*mac_MainConfig)); + mac_MainConfig, + sizeof(*mac_MainConfig)); } else { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig=NULL; } if (MeasId_list != NULL) { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); memset((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig, - 0, sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); + 0, sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig)); rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->reportConfigToAddModList = ReportConfig_list; rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->measIdToAddModList = MeasId_list; @@ -3034,19 +3076,19 @@ do_RRCConnectionReconfiguration( if (quantityConfig!=NULL) { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig, - (void *)quantityConfig, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); + (void *)quantityConfig, + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig)); } else { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->quantityConfig = NULL; } if(speedStatePars != NULL) { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars)); + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars)); memcpy((void *)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars, - (void *)speedStatePars,sizeof(*speedStatePars)); + (void *)speedStatePars,sizeof(*speedStatePars)); } else { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.measConfig->speedStatePars = NULL; } @@ -3058,9 +3100,9 @@ do_RRCConnectionReconfiguration( if (mobilityInfo !=NULL) { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = CALLOC(1, - sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo)); + sizeof(*rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo)); memcpy((void*)rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo, (void*)mobilityInfo, - sizeof(MobilityControlInfo_t)); + sizeof(MobilityControlInfo_t)); } else { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo = NULL; @@ -3070,11 +3112,11 @@ do_RRCConnectionReconfiguration( rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO = NULL; enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, - (void*)&dl_dcch_msg, - buffer, - RRC_BUF_SIZE); + (void*)&dl_dcch_msg, + buffer, + RRC_BUF_SIZE); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %l)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #ifdef XER_PRINT xer_fprint(stdout,&asn_DEF_DL_DCCH_Message,(void*)&dl_dcch_msg); @@ -3113,8 +3155,8 @@ do_RRCConnectionReconfiguration( //------------------------------------------------------------------------------ uint8_t do_RRCConnectionReestablishmentReject( - uint8_t Mod_id, - uint8_t* const buffer) + uint8_t Mod_id, + uint8_t* const buffer) //------------------------------------------------------------------------------ { @@ -3135,11 +3177,11 @@ do_RRCConnectionReestablishmentReject( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, - (void*)&dl_ccch_msg, - buffer, - 100); + (void*)&dl_ccch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -3162,7 +3204,7 @@ do_RRCConnectionReestablishmentReject( #ifdef USER_MODE LOG_D(RRC,"RRCConnectionReestablishmentReject Encoded %d bits (%d bytes)\n", - enc_rval.encoded,(enc_rval.encoded+7)/8); + enc_rval.encoded,(enc_rval.encoded+7)/8); #endif return((enc_rval.encoded+7)/8); @@ -3171,8 +3213,8 @@ do_RRCConnectionReestablishmentReject( //------------------------------------------------------------------------------ uint8_t do_RRCConnectionReject( - uint8_t Mod_id, - uint8_t* const buffer) + uint8_t Mod_id, + uint8_t* const buffer) //------------------------------------------------------------------------------ { @@ -3196,11 +3238,11 @@ do_RRCConnectionReject( xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, - (void*)&dl_ccch_msg, - buffer, - 100); + (void*)&dl_ccch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %ld)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -3223,16 +3265,16 @@ do_RRCConnectionReject( #ifdef USER_MODE LOG_D(RRC,"RRCConnectionReject Encoded %d bits (%d bytes)\n", - enc_rval.encoded,(enc_rval.encoded+7)/8); + enc_rval.encoded,(enc_rval.encoded+7)/8); #endif return((enc_rval.encoded+7)/8); } uint8_t do_RRCConnectionRelease( - uint8_t Mod_id, - uint8_t *buffer, - uint8_t Transaction_id) + uint8_t Mod_id, + uint8_t *buffer, + uint8_t Transaction_id) { asn_enc_rval_t enc_rval; @@ -3257,12 +3299,12 @@ uint8_t do_RRCConnectionRelease( rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.idleModeMobilityControlInfo = NULL; rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension=CALLOC(1, - sizeof(*rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension)); + sizeof(*rrcConnectionRelease->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.nonCriticalExtension)); enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, - (void*)&dl_dcch_msg, - buffer, - RRC_BUF_SIZE); + (void*)&dl_dcch_msg, + buffer, + RRC_BUF_SIZE); return((enc_rval.encoded+7)/8); } @@ -3272,10 +3314,10 @@ uint8_t TMGI[5] = {4,3,2,1,0};//TMGI is a string of octet, ref. TS 24.008 fig. 1 #if defined(Rel10) || defined(Rel14) uint8_t do_MBSFNAreaConfig(uint8_t Mod_id, - uint8_t sync_area, - uint8_t *buffer, - MCCH_Message_t *mcch_message, - MBSFNAreaConfiguration_r9_t **mbsfnAreaConfiguration) + uint8_t sync_area, + uint8_t *buffer, + MCCH_Message_t *mcch_message, + MBSFNAreaConfiguration_r9_t **mbsfnAreaConfiguration) { asn_enc_rval_t enc_rval; @@ -3387,11 +3429,11 @@ uint8_t do_MBSFNAreaConfig(uint8_t Mod_id, xer_fprint(stdout,&asn_DEF_MCCH_Message,(void*)mcch_message); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_MCCH_Message, - (void*)mcch_message, - buffer, - 100); + (void*)mcch_message, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -3441,7 +3483,7 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_ measurementReport->criticalExtensions.present=MeasurementReport__criticalExtensions_PR_c1; measurementReport->criticalExtensions.choice.c1.present=MeasurementReport__criticalExtensions__c1_PR_measurementReport_r8; measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension=CALLOC(1, - sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension)); + sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.nonCriticalExtension)); measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measId=measid; #if defined(Rel10) || defined(Rel14) @@ -3452,7 +3494,7 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_ measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultServCell.rsrqResult=rsrq_s; #endif measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells=CALLOC(1, - sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells)); + sizeof(*measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells)); measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->present=MeasResults__measResultNeighCells_PR_measResultListEUTRA; MeasResultListEUTRA_t *measResultListEUTRA2; @@ -3518,14 +3560,14 @@ uint8_t do_MeasurementReport(uint8_t Mod_id, uint8_t *buffer,int measid,int phy_ measurementReport->criticalExtensions.choice.c1.choice.measurementReport_r8.measResults.measResultNeighCells->choice.measResultListEUTRA=*(measResultListEUTRA2); enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, - (void*)&ul_dcch_msg, - buffer, - 100); + (void*)&ul_dcch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if !defined(DISABLE_XER_SPRINT) @@ -3728,12 +3770,12 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname) bit_string = CALLOC(1, sizeof(*bit_string)); featrG = 0x04000800; if(usim_test == 1) - { - bit_string->buf = &featrG; - bit_string->size = 4; - bit_string->bits_unused = 0; - UE_EUTRA_Capability->featureGroupIndicators = bit_string; - } + { + bit_string->buf = &featrG; + bit_string->size = 4; + bit_string->bits_unused = 0; + UE_EUTRA_Capability->featureGroupIndicators = bit_string; + } // UE_EUTRA_Capability->interRAT_Parameters // null } else { @@ -3758,11 +3800,11 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname) xer_fprint(stdout,&asn_DEF_UE_EUTRA_Capability,(void *)UE_EUTRA_Capability); #endif enc_rval = uper_encode_to_buffer(&asn_DEF_UE_EUTRA_Capability, - (void*)UE_EUTRA_Capability, - &UECapability.sdu[0], - MAX_UE_CAPABILITY_SIZE); + (void*)UE_EUTRA_Capability, + &UECapability.sdu[0], + MAX_UE_CAPABILITY_SIZE); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + enc_rval.failed_type->name, enc_rval.encoded); #if defined(ENABLE_ITTI) # if defined(DISABLE_XER_SPRINT) @@ -3794,7 +3836,7 @@ OAI_UECapability_t *fill_ue_capability(char *UE_EUTRA_Capability_xer_fname) UECapability.sdu_size = (enc_rval.encoded + 7) / 8; LOG_I(PHY, "[RRC]UE Capability encoded, %d bytes (%d bits)\n", - UECapability.sdu_size, enc_rval.encoded + 7); + UECapability.sdu_size, enc_rval.encoded + 7); { char *sdu; sdu = malloc (3 * UECapability.sdu_size + 1 /* For '\0' */); diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h index 9f978dc797..c77f31941f 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.h @@ -75,10 +75,17 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich @param Mod_id Instance of eNB @param Component carrier Component carrier to configure @param configuration Pointer Configuration Request structure +@param br_flag Do for BL/CE UE configuration @return size of encoded bit stream in bytes*/ -uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,int Mod_id,int CC_id, RrcConfigurationReq *configuration - ); +uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,int Mod_id,int CC_id +#if defined(ENABLE_ITTI) + ,RrcConfigurationReq *configuration +#endif +#ifdef Rel14 + ,int br_flag +#endif + ); /** \brief Generate a default configuration for SIB2/SIB3 in one System Information PDU (eNB). @@ -95,6 +102,9 @@ uint8_t do_SIB23(uint8_t Mod_id, int CC_id #if defined(ENABLE_ITTI) , RrcConfigurationReq *configuration +#endif +#ifdef Rel14 + , int br_flag #endif ); diff --git a/openair2/RRC/LITE/defs.h b/openair2/RRC/LITE/defs.h index 3d98d1d300..b57483ac59 100644 --- a/openair2/RRC/LITE/defs.h +++ b/openair2/RRC/LITE/defs.h @@ -475,7 +475,9 @@ typedef struct { uint32_t pbch_repetition; BCCH_BCH_Message_t mib; BCCH_DL_SCH_Message_t siblock1; + BCCH_DL_SCH_Message_t siblock1_BR; BCCH_DL_SCH_Message_t systemInformation; + BCCH_DL_SCH_Message_t systemInformation_BR; // SystemInformation_t systemInformation; SystemInformationBlockType1_t *sib1; SystemInformationBlockType2_t *sib2; @@ -483,7 +485,6 @@ typedef struct { #ifdef Rel14 SystemInformationBlockType1_t *sib1_BR; SystemInformationBlockType2_t *sib2_BR; - SystemInformationBlockType2_t *sib3_BR; #endif #if defined(Rel10) || defined(Rel14) SystemInformationBlockType13_r9_t *sib13; diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 91c1d91ee6..ab939dcbad 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -127,8 +127,6 @@ init_SI( ) //----------------------------------------------------------------------------- { - uint8_t SIwindowsize = 1; - uint16_t SIperiod = 8; #if defined(Rel10) || defined(Rel14) int i; #endif @@ -149,14 +147,14 @@ init_SI( #endif LOG_I(RRC, "Configuring MIB (N_RB_DL %d,phich_Resource %d,phich_Duration %d)\n", configuration->N_RB_DL[CC_id], - configuration->phich_resource[CC_id], - configuration->phich_duration[CC_id]); + (int)configuration->radioresourceconfig[CC_id].phich_resource, + (int)configuration->radioresourceconfig[CC_id].phich_duration); do_MIB(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id], #ifdef ENABLE_ITTI configuration->N_RB_DL[CC_id], - configuration->phich_resource[CC_id], - configuration->phich_duration[CC_id], - configuration->schedulingInfoSIB1_BR_r13[CC_id] + (int)configuration->radioresourceconfig[CC_id].phich_resource, + (int)configuration->radioresourceconfig[CC_id].phich_duration, + configuration->schedulingInfoSIB1_BR_r13[CC_id] #else 50, 0, 0, 1 #endif @@ -172,11 +170,24 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id #if defined(ENABLE_ITTI) , configuration +#endif +#ifdef Rel14 + ,0 #endif ); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255"); + +#ifdef Rel14 + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id +#if defined(ENABLE_ITTI) + , configuration +#endif + ,1 + ); +#endif + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23( @@ -185,11 +196,30 @@ init_SI( CC_id #if defined(ENABLE_ITTI) , configuration +#endif +#ifdef Rel14 + ,0 #endif ); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 != 255,"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB23 == 255"); - + +#ifdef Rel14 + if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64); + AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB"); + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23( + ctxt_pP->module_id, + CC_id, +#if defined(ENABLE_ITTI) + configuration, +#endif + 0); + } + else { + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = 0; + } +#endif LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" SIB2/3 Contents (partial)\n", PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); @@ -1679,9 +1709,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons //TODO: change TM for secondary CC in SCelltoaddmodlist if (*physicalConfigDedicated) { if ((*physicalConfigDedicated)->antennaInfo) { - (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.ue_TransmissionMode[0]; - LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.ue_TransmissionMode[0]); - if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm3) { + (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode; + LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode); + if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm3) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -1691,7 +1721,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -1702,7 +1732,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -1712,7 +1742,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1; (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -1727,9 +1757,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n"); } if ((*physicalConfigDedicated)->cqi_ReportConfig) { - if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { + if ((rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) || + (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) || + (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6)) { //feedback mode needs to be set as well //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable printf("setting cqi reporting mode to rm31\n"); From 9a8d277b68384b27e99a8c0034bba5667c4b173e Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Wed, 26 Jul 2017 17:39:15 -0700 Subject: [PATCH 006/125] small change in init_SI routine in rrc_eNB.c after merge --- openair2/RRC/LITE/rrc_eNB.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index ab939dcbad..96d705b075 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -168,11 +168,11 @@ init_SI( AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1!=NULL,PROTOCOL_RRC_CTXT_FMT" init_SI: FATAL, no memory for SIB1 allocated\n", PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id +#ifdef Rel14 + ,FALSE +#endif #if defined(ENABLE_ITTI) , configuration -#endif -#ifdef Rel14 - ,0 #endif ); @@ -180,31 +180,35 @@ init_SI( #ifdef Rel14 - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = 0; + if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t*) malloc16(32); + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id + ,TRUE #if defined(ENABLE_ITTI) - , configuration + , configuration #endif - ,1 - ); + ); + } #endif - + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23( ctxt_pP->module_id, - CC_id +#ifdef Rel14 + ,FALSE +#endif #if defined(ENABLE_ITTI) , configuration -#endif -#ifdef Rel14 - ,0 #endif ); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 != 255,"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB23 == 255"); #ifdef Rel14 + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = 0; if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB"); @@ -216,9 +220,6 @@ init_SI( #endif 0); } - else { - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = 0; - } #endif LOG_T(RRC, PROTOCOL_RRC_CTXT_FMT" SIB2/3 Contents (partial)\n", From 99dcb4ceb4c136fe84fb96eb4d9634648666c4a5 Mon Sep 17 00:00:00 2001 From: kogo Date: Thu, 27 Jul 2017 19:53:39 +0200 Subject: [PATCH 007/125] added config file + bug fixing --- openair2/COMMON/rrc_messages_types.h | 4 +- openair2/ENB_APP/enb_config.c | 7043 +++++++++++++------------ openair2/RRC/LITE/MESSAGES/asn1_msg.c | 3 +- openair2/RRC/LITE/rrc_eNB.c | 9 +- 4 files changed, 3560 insertions(+), 3499 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 0267095f7b..c7ad211265 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -180,11 +180,11 @@ typedef struct RrcConfigurationReq_s { RadioResourceConfig radioresourceconfig[MAX_NUM_CCs]; - + RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs]; #ifdef Rel14 - RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs]; + //MIB long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs]; //SIB1 BR options diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 4d84be9217..d5b0a94f15 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -99,8 +99,8 @@ #define ENB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers" #define ENB_CONFIG_STRING_CC_NODE_FUNCTION "node_function" -#define ENB_CONFIG_STRING_CC_NODE_TIMING "node_timing" -#define ENB_CONFIG_STRING_CC_NODE_SYNCH_REF "node_synch_ref" +#define ENB_CONFIG_STRING_CC_NODE_TIMING "node_timing" +#define ENB_CONFIG_STRING_CC_NODE_SYNCH_REF "node_synch_ref" #define ENB_CONFIG_STRING_FRAME_TYPE "frame_type" #define ENB_CONFIG_STRING_TDD_CONFIG "tdd_config" @@ -302,23 +302,23 @@ #define ENB_CONFIG_STRING_BR "br_parameters" #define ENB_CONFIG_STRING_schedulingInfoSIB1 "schedulingInfoSIB1_BR_r13" -#define ENB_CONFIG_STRING_HYPERSFN "hyperSFN_r13" +#define ENB_CONFIG_STRING_HYPERSFN "hyperSFN_r13" #define ENB_CONFIG_STRING_EDRX_ALLOWED "eDRX_Allowed_r13" -#define ENB_CONFIG_STRING_CELLSELECTIONINFOCE "cellSelectionInfoCE_r13" -#define ENB_CONFIG_STRING_Q_RXLEVMINCE "q_RxLevMinCE_r13" -#define ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE "q_QualMinRSRQ_CE_r13" -#define ENB_CONFIG_STRING_BRAccessRelatedInfo "bandwidthReducedAccessRelatedInfo_r13" +#define ENB_CONFIG_STRING_CELLSELECTIONINFOCE "cellSelectionInfoCE_r13" +#define ENB_CONFIG_STRING_Q_RXLEVMINCE "q_RxLevMinCE_r13" +#define ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE "q_QualMinRSRQ_CE_r13" +#define ENB_CONFIG_STRING_BRAccessRelatedInfo "bandwidthReducedAccessRelatedInfo_r13" #define ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR "si_WindowLength_BR_r13" #define ENB_CONFIG_STRING_SI_REPETITIONPATTERN "si_RepetitionPattern_r13" -#define ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR "fdd_DownlinkOrTddSubframeBitmapBR_r13" -#define ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" -#define ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR "fdd_UplinkSubframeBitmapBR_r13" -#define ENB_CONFIG_STRING_STARTSYMBOLBR "startSymbolBR_r13" -#define ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON "si_HoppingConfigCommon_r13" +#define ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR "fdd_DownlinkOrTddSubframeBitmapBR_r13" +#define ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" +#define ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR "fdd_UplinkSubframeBitmapBR_r13" +#define ENB_CONFIG_STRING_STARTSYMBOLBR "startSymbolBR_r13" +#define ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON "si_HoppingConfigCommon_r13" #define ENB_CONFIG_STRING_SI_VALIDITYTIME "si_ValidityTime_r13" -#define ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL "freqHoppingParametersDL_r13" -#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB "mpdcch_pdsch_HoppingNB_r13" +#define ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL "freqHoppingParametersDL_r13" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB "mpdcch_pdsch_HoppingNB_r13" #define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEA "interval_DLHoppingConfigCommonModeA_r13" #define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEA_VAL "interval_DLHoppingConfigCommonModeA_r13_val" #define ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB "interval_DLHoppingConfigCommonModeB_r13" @@ -449,9 +449,9 @@ int RCconfig_S1(MessageDef *msg_p, uint32_t i); int load_config_file(config_t *cfg) { config_init(cfg); - + if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. + // Read the file. If there is an error, report it and exit. if (! config_read_file(cfg, RC.config_file_name)) { config_destroy(cfg); AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); @@ -498,171 +498,171 @@ void RCconfig_RU() { load_config_file(&cfg); - // Output a list of all RUs. + // Output a list of all RUs. setting = config_lookup(&cfg, CONFIG_STRING_RU_LIST); - + if (setting != NULL) { RC.ru = (RU_t**)malloc(RC.nb_RU*sizeof(RU_t*)); - + RC.ru_mask=(1<eNB mappings\n"); - - if (setting_eNB_list != NULL) num_eNB4RU = config_setting_length(setting_eNB_list); - else num_eNB4RU=0; - AssertFatal(num_eNB4RU>0,"Number of eNBs is zero\n"); + if ( !( + config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_ADDRESS, (const char **)&ipv4) + && config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_REMOTE_ADDRESS, (const char **)&ipv4_remote) + && config_setting_lookup_int (setting_ru, CONFIG_STRING_RU_LOCAL_PORTC, &local_portc) + && config_setting_lookup_int (setting_ru, CONFIG_STRING_RU_REMOTE_PORTC, &remote_portc) + && config_setting_lookup_int (setting_ru, CONFIG_STRING_RU_LOCAL_PORTD, &local_portd) + && config_setting_lookup_int (setting_ru, CONFIG_STRING_RU_REMOTE_PORTD, &remote_portd) + && config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_TRANSPORT_PREFERENCE, (const char **)&tr_preference) + ) + ) { + AssertFatal (0, + "Failed to parse configuration file %s, RU %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + AssertFatal((setting_eNB_list = config_setting_get_member(setting_ru, CONFIG_STRING_RU_ENB_LIST))!=NULL,"No RU<->eNB mappings\n"); - for (i=0;i0,"Number of eNBs is zero\n"); + + for (i=0;iidx = j; - + RC.ru[j]->if_timing = synch_to_ext_device; RC.ru[j]->num_eNB = num_eNB4RU; - - if (strcmp(local_rf, "yes") == 0) { - if (fronthaul_flag == CONFIG_FALSE) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = eNodeB_3GPP; - } - else { - if (strcmp(tr_preference, "udp") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; - } else if (strcmp(tr_preference, "raw") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; - } else if (strcmp(tr_preference, "udp_if4p5") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; - } else if (strcmp(tr_preference, "raw_if4p5") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; - } - } - RC.ru[j]->max_pdschReferenceSignalPower = max_pdschReferenceSignalPower; - RC.ru[j]->max_rxgain = max_rxgain; - RC.ru[j]->num_bands = num_bands; - for (i=0;iband[i] = band[i]; + if (strcmp(local_rf, "yes") == 0) { + if (fronthaul_flag == CONFIG_FALSE) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = eNodeB_3GPP; + } + else { + if (strcmp(tr_preference, "udp") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; + } else if (strcmp(tr_preference, "raw") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; + } else if (strcmp(tr_preference, "udp_if4p5") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; + } else if (strcmp(tr_preference, "raw_if4p5") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; + } + } + + RC.ru[j]->max_pdschReferenceSignalPower = max_pdschReferenceSignalPower; + RC.ru[j]->max_rxgain = max_rxgain; + RC.ru[j]->num_bands = num_bands; + for (i=0;iband[i] = band[i]; } else { - printf("RU %d: Transport %s\n",j,tr_preference); + printf("RU %d: Transport %s\n",j,tr_preference); - RC.ru[j]->eth_params.local_if_name = strdup(if_name); - RC.ru[j]->eth_params.my_addr = strdup(ipv4); - RC.ru[j]->eth_params.remote_addr = strdup(ipv4_remote); - RC.ru[j]->eth_params.my_portc = local_portc; - RC.ru[j]->eth_params.remote_portc = remote_portc; - RC.ru[j]->eth_params.my_portd = local_portd; - RC.ru[j]->eth_params.remote_portd = remote_portd; - for (i=0;ieNB_list[i] = RC.eNB[eNB_list[i]][0]; + RC.ru[j]->eth_params.local_if_name = strdup(if_name); + RC.ru[j]->eth_params.my_addr = strdup(ipv4); + RC.ru[j]->eth_params.remote_addr = strdup(ipv4_remote); + RC.ru[j]->eth_params.my_portc = local_portc; + RC.ru[j]->eth_params.remote_portc = remote_portc; + RC.ru[j]->eth_params.my_portd = local_portd; + RC.ru[j]->eth_params.remote_portd = remote_portd; + for (i=0;ieNB_list[i] = RC.eNB[eNB_list[i]][0]; - if (strcmp(tr_preference, "udp") == 0) { - RC.ru[j]->if_south = REMOTE_IF5; - RC.ru[j]->function = NGFI_RAU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; - } else if (strcmp(tr_preference, "raw") == 0) { - RC.ru[j]->if_south = REMOTE_IF5; - RC.ru[j]->function = NGFI_RAU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; - } else if (strcmp(tr_preference, "udp_if4p5") == 0) { - RC.ru[j]->if_south = REMOTE_IF4p5; - RC.ru[j]->function = NGFI_RAU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; - } else if (strcmp(tr_preference, "raw_if4p5") == 0) { - RC.ru[j]->if_south = REMOTE_IF4p5; - RC.ru[j]->function = NGFI_RAU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; - } else if (strcmp(tr_preference, "raw_if5_mobipass") == 0) { - RC.ru[j]->if_south = REMOTE_IF5; - RC.ru[j]->function = NGFI_RAU_IF5; - RC.ru[j]->if_timing = synch_to_other; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF5_MOBIPASS; - } - RC.ru[j]->att_tx = att_tx; - RC.ru[j]->att_rx = att_rx; + if (strcmp(tr_preference, "udp") == 0) { + RC.ru[j]->if_south = REMOTE_IF5; + RC.ru[j]->function = NGFI_RAU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; + } else if (strcmp(tr_preference, "raw") == 0) { + RC.ru[j]->if_south = REMOTE_IF5; + RC.ru[j]->function = NGFI_RAU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; + } else if (strcmp(tr_preference, "udp_if4p5") == 0) { + RC.ru[j]->if_south = REMOTE_IF4p5; + RC.ru[j]->function = NGFI_RAU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; + } else if (strcmp(tr_preference, "raw_if4p5") == 0) { + RC.ru[j]->if_south = REMOTE_IF4p5; + RC.ru[j]->function = NGFI_RAU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; + } else if (strcmp(tr_preference, "raw_if5_mobipass") == 0) { + RC.ru[j]->if_south = REMOTE_IF5; + RC.ru[j]->function = NGFI_RAU_IF5; + RC.ru[j]->if_timing = synch_to_other; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF5_MOBIPASS; + } + RC.ru[j]->att_tx = att_tx; + RC.ru[j]->att_rx = att_rx; } RC.ru[j]->nb_tx = nb_tx; RC.ru[j]->nb_rx = nb_rx; - + }// j=0..num_rus } else { - RC.nb_RU = 0; + RC.nb_RU = 0; } // setting != NULL return; - + } void RCconfig_L1() { @@ -676,7 +676,7 @@ void RCconfig_L1() { char* if_name_n = NULL; char* ipv4_n = NULL; char* ipv4_n_remote = NULL; - + char* tr_n_preference = NULL; libconfig_int local_n_portc = 0; libconfig_int remote_n_portc = 0; @@ -686,7 +686,7 @@ void RCconfig_L1() { load_config_file(&cfg); setting = config_lookup(&cfg, CONFIG_STRING_L1_LIST); - + if (setting != NULL) { if (RC.eNB == NULL) { @@ -700,70 +700,70 @@ void RCconfig_L1() { setting_l1 = config_setting_get_elem(setting, j); if (!config_setting_lookup_int (setting_l1,CONFIG_STRING_L1_CC,&RC.nb_L1_CC[j])) - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); if (RC.eNB[j] == NULL) { - RC.eNB[j] = (PHY_VARS_eNB **)malloc((1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB**)); - LOG_I(PHY,"RC.eNB[%d] = %p\n",j,RC.eNB[j]); - memset(RC.eNB[j],0,(1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB***)); + RC.eNB[j] = (PHY_VARS_eNB **)malloc((1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB**)); + LOG_I(PHY,"RC.eNB[%d] = %p\n",j,RC.eNB[j]); + memset(RC.eNB[j],0,(1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB***)); } for (i=0;iMod_id = j; - RC.eNB[j][i]->CC_id = i; - } + if (RC.eNB[j][i] == NULL) { + RC.eNB[j][i] = (PHY_VARS_eNB *)malloc(sizeof(PHY_VARS_eNB)); + memset((void*)RC.eNB[j][i],0,sizeof(PHY_VARS_eNB)); + LOG_I(PHY,"RC.eNB[%d][%d] = %p\n",j,i,RC.eNB[j][i]); + RC.eNB[j][i]->Mod_id = j; + RC.eNB[j][i]->CC_id = i; + } } - + printf("l1 %d/%d (nb CC %d)\n",j,RC.nb_inst,RC.nb_CC[j]); - + printf("RU %d: Transport %s\n",j,tr_n_preference); if (!(config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_TRANSPORT_N_PREFERENCE, (const char **)&tr_n_preference))) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); } if (strcmp(tr_n_preference, "local_mac") == 0) { } else if (strcmp(tr_n_preference, "nfapi") == 0) { - if ( !( - config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_IF_NAME, (const char **)&if_name_n) - && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_ADDRESS, (const char **)&ipv4_n) - && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTC, &local_n_portc) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTC, &remote_n_portc) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTD, &local_n_portd) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTD, &remote_n_portd) - ) - ) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } - RC.eNB[j][0]->eth_params_n.local_if_name = strdup(if_name_n); - RC.eNB[j][0]->eth_params_n.my_addr = strdup(ipv4_n); - RC.eNB[j][0]->eth_params_n.remote_addr = strdup(ipv4_n_remote); - RC.eNB[j][0]->eth_params_n.my_portc = local_n_portc; - RC.eNB[j][0]->eth_params_n.remote_portc = remote_n_portc; - RC.eNB[j][0]->eth_params_n.my_portd = local_n_portd; - RC.eNB[j][0]->eth_params_n.remote_portd = remote_n_portd; - RC.eNB[j][0]->eth_params_n.transp_preference = ETH_UDP_MODE; + if ( !( + config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_IF_NAME, (const char **)&if_name_n) + && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_ADDRESS, (const char **)&ipv4_n) + && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTC, &local_n_portc) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTC, &remote_n_portc) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTD, &local_n_portd) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTD, &remote_n_portd) + ) + ) { + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + RC.eNB[j][0]->eth_params_n.local_if_name = strdup(if_name_n); + RC.eNB[j][0]->eth_params_n.my_addr = strdup(ipv4_n); + RC.eNB[j][0]->eth_params_n.remote_addr = strdup(ipv4_n_remote); + RC.eNB[j][0]->eth_params_n.my_portc = local_n_portc; + RC.eNB[j][0]->eth_params_n.remote_portc = remote_n_portc; + RC.eNB[j][0]->eth_params_n.my_portd = local_n_portd; + RC.eNB[j][0]->eth_params_n.remote_portd = remote_n_portd; + RC.eNB[j][0]->eth_params_n.transp_preference = ETH_UDP_MODE; } - + else { // other midhaul - } + } }// j=0..num_inst printf("Initializing northbound interface for L1\n"); l1_north_init_eNB(); @@ -780,7 +780,7 @@ void RCconfig_macrlc() { char* if_name_s = NULL; char* ipv4_s = NULL; char* ipv4_s_remote = NULL; - + char* tr_s_preference = NULL; libconfig_int local_s_portc = 0; libconfig_int remote_s_portc = 0; @@ -789,7 +789,7 @@ void RCconfig_macrlc() { char* if_name_n = NULL; char* ipv4_n = NULL; char* ipv4_n_remote = NULL; - + char* tr_n_preference = NULL; libconfig_int local_n_portc = 0; libconfig_int remote_n_portc = 0; @@ -799,107 +799,107 @@ void RCconfig_macrlc() { load_config_file(&cfg); setting = config_lookup(&cfg, CONFIG_STRING_MACRLC_LIST); - - if (setting != NULL) { - - + if (setting != NULL) { + + + if ((RC.nb_macrlc_inst=config_setting_length(setting))>0) mac_top_init_eNB(); else AssertFatal(1==0,"improper macrlc setting\n"); - + for (j=0;jeth_params_n.local_if_name = strdup(if_name_n); - RC.mac[j]->eth_params_n.my_addr = strdup(ipv4_n); - RC.mac[j]->eth_params_n.remote_addr = strdup(ipv4_n_remote); - RC.mac[j]->eth_params_n.my_portc = local_n_portc; - RC.mac[j]->eth_params_n.remote_portc = remote_n_portc; - RC.mac[j]->eth_params_n.my_portd = local_n_portd; - RC.mac[j]->eth_params_n.remote_portd = remote_n_portd; - RC.mac[j]->eth_params_n.transp_preference = ETH_UDP_MODE; + if ( !( + config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_IF_NAME, (const char **)&if_name_n) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS, (const char **)&ipv4_n) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_PORTC, &local_n_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_PORTC, &remote_n_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_PORTD, &local_n_portd) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_PORTD, &remote_n_portd) + ) + ) { + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + RC.mac[j]->eth_params_n.local_if_name = strdup(if_name_n); + RC.mac[j]->eth_params_n.my_addr = strdup(ipv4_n); + RC.mac[j]->eth_params_n.remote_addr = strdup(ipv4_n_remote); + RC.mac[j]->eth_params_n.my_portc = local_n_portc; + RC.mac[j]->eth_params_n.remote_portc = remote_n_portc; + RC.mac[j]->eth_params_n.my_portd = local_n_portd; + RC.mac[j]->eth_params_n.remote_portd = remote_n_portd; + RC.mac[j]->eth_params_n.transp_preference = ETH_UDP_MODE; } - + else { // other midhaul - AssertFatal(1==0,"MACRLC %d: unknown northbound midhaul\n",j); - } + AssertFatal(1==0,"MACRLC %d: unknown northbound midhaul\n",j); + } if (!(config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_TRANSPORT_S_PREFERENCE, (const char **)&tr_s_preference))) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... } printf("MACRLC %d: Southbound Transport %s\n",j,tr_s_preference); - + if (strcmp(tr_s_preference, "local_L1") == 0) { - + } else if (strcmp(tr_s_preference, "nfapi") == 0) { - if ( !( - config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_IF_NAME, (const char **)&if_name_s) - && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_ADDRESS, (const char **)&ipv4_s) - && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTC, &local_s_portc) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTC, &remote_s_portc) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTD, &local_s_portd) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTD, &remote_s_portd) - )){ - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } + if ( !( + config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_IF_NAME, (const char **)&if_name_s) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_ADDRESS, (const char **)&ipv4_s) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTC, &local_s_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTC, &remote_s_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTD, &local_s_portd) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTD, &remote_s_portd) + )){ + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } - RC.mac[j]->eth_params_s.local_if_name = strdup(if_name_s); - RC.mac[j]->eth_params_s.my_addr = strdup(ipv4_s); - RC.mac[j]->eth_params_s.remote_addr = strdup(ipv4_s_remote); - RC.mac[j]->eth_params_s.my_portc = local_s_portc; - RC.mac[j]->eth_params_s.remote_portc = remote_s_portc; - RC.mac[j]->eth_params_s.my_portd = local_s_portd; - RC.mac[j]->eth_params_s.remote_portd = remote_s_portd; - RC.mac[j]->eth_params_s.transp_preference = ETH_UDP_MODE; + RC.mac[j]->eth_params_s.local_if_name = strdup(if_name_s); + RC.mac[j]->eth_params_s.my_addr = strdup(ipv4_s); + RC.mac[j]->eth_params_s.remote_addr = strdup(ipv4_s_remote); + RC.mac[j]->eth_params_s.my_portc = local_s_portc; + RC.mac[j]->eth_params_s.remote_portc = remote_s_portc; + RC.mac[j]->eth_params_s.my_portd = local_s_portd; + RC.mac[j]->eth_params_s.remote_portd = remote_s_portd; + RC.mac[j]->eth_params_s.transp_preference = ETH_UDP_MODE; } - + else { // other midhaul - AssertFatal(1==0,"MACRLC %d: unknown southbound midhaul\n",j); - } + AssertFatal(1==0,"MACRLC %d: unknown southbound midhaul\n",j); + } }// j=0..num_inst } } - + int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_t cfg; config_setting_t *setting = NULL; @@ -928,7 +928,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char* if_name_s = NULL; char* ipv4_s = NULL; char* ipv4_s_remote = NULL; - + char* tr_s_preference = NULL; libconfig_int local_s_portc = 0; libconfig_int remote_s_portc = 0; @@ -964,9 +964,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int pucch_delta_shift = 0; libconfig_int pucch_nRB_CQI = 0; libconfig_int pucch_nCS_AN = 0; -#if !defined(Rel10) && !defined(Rel14) + libconfig_int pucch_n1_AN = 0; -#endif + libconfig_int pdsch_referenceSignalPower = 0; libconfig_int pdsch_p_b = 0; libconfig_int pusch_n_SB = 0; @@ -1062,7 +1062,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char* osa_log_level = NULL; char* osa_log_verbosity = NULL; - // for no gcc warnings + // for no gcc warnings (void)astring; (void)my_int; @@ -1071,7 +1071,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_init(&cfg); if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. + // Read the file. If there is an error, report it and exit. if (! config_read_file(&cfg, RC.config_file_name)) { config_destroy(&cfg); AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); @@ -1113,3296 +1113,3353 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { setting_enb = config_setting_get_elem(setting, i); active_enb[i] = config_setting_get_string (setting_enb); AssertFatal (active_enb[i] != NULL, - "Failed to parse config file %s, %uth attribute %s \n", - RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); + "Failed to parse config file %s, %uth attribute %s \n", + RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); active_enb[i] = strdup(active_enb[i]); } - - + + if (num_enbs>0) { // Output a list of all eNBs. setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - + if (setting != NULL) { num_enbs = config_setting_length(setting); - + setting_enb = config_setting_get_elem(setting, i); - + if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { - // Calculate a default eNB ID + // Calculate a default eNB ID # if defined(ENABLE_USE_MME) - uint32_t hash; - - hash = s1ap_generate_eNB_id (); - enb_id = i + (hash & 0xFFFF8); + uint32_t hash; + + hash = s1ap_generate_eNB_id (); + enb_id = i + (hash & 0xFFFF8); # else - enb_id = i; + enb_id = i; # endif } if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRANSPORT_S_PREFERENCE, (const char **)&tr_s_preference) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRANSPORT_S_PREFERENCE, (const char **)&tr_s_preference) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); } - + printf("RRC %d: Southbound Transport %s\n",j,tr_s_preference); - + if (strcmp(tr_s_preference, "local_mac") == 0) { } else if (strcmp(tr_s_preference, "cudu") == 0) { - if ( !(config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_IF_NAME, (const char **)&if_name_s) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_ADDRESS, (const char **)&ipv4_s) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTC, &local_s_portc) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTC, &remote_s_portc) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTD, &local_s_portd) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTD, &remote_s_portd) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); - } - rrc->eth_params_s.local_if_name = strdup(if_name_s); - rrc->eth_params_s.my_addr = strdup(ipv4_s); - rrc->eth_params_s.remote_addr = strdup(ipv4_s_remote); - rrc->eth_params_s.my_portc = local_s_portc; - rrc->eth_params_s.remote_portc = remote_s_portc; - rrc->eth_params_s.my_portd = local_s_portd; - rrc->eth_params_s.remote_portd = remote_s_portd; - rrc->eth_params_s.transp_preference = ETH_UDP_MODE; + if ( !(config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_IF_NAME, (const char **)&if_name_s) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_ADDRESS, (const char **)&ipv4_s) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTC, &local_s_portc) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTC, &remote_s_portc) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTD, &local_s_portd) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTD, &remote_s_portd) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); + } + rrc->eth_params_s.local_if_name = strdup(if_name_s); + rrc->eth_params_s.my_addr = strdup(ipv4_s); + rrc->eth_params_s.remote_addr = strdup(ipv4_s_remote); + rrc->eth_params_s.my_portc = local_s_portc; + rrc->eth_params_s.remote_portc = remote_s_portc; + rrc->eth_params_s.my_portd = local_s_portd; + rrc->eth_params_s.remote_portd = remote_s_portd; + rrc->eth_params_s.transp_preference = ETH_UDP_MODE; } - + else { // other midhaul - } + } // search if in active list for (j=0; j < num_enbs; j++) { - if (strcmp(active_enb[j], enb_name) == 0) { - - RRC_CONFIGURATION_REQ (msg_p).cell_identity = enb_id; - - /* - if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cell_type = CELL_MACRO_ENB; - } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cell_type = CELL_HOME_ENB; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", - lib_config_file_name_pP, i, cell_type); - } - - enb_properties_loc.properties[enb_properties_loc_index]->eNB_name = strdup(enb_name); - */ - RRC_CONFIGURATION_REQ (msg_p).tac = (uint16_t)atoi(tac); - RRC_CONFIGURATION_REQ (msg_p).mcc = (uint16_t)atoi(mcc); - RRC_CONFIGURATION_REQ (msg_p).mnc = (uint16_t)atoi(mnc); - RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length = strlen(mnc); - AssertFatal((RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 2) || - (RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 3), - "BAD MNC DIGIT LENGTH %d", - RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length); - - LOG_I(RRC,"RRC config (%s,%s,%s)\n",mcc,mnc,tac); - // Parse optional physical parameters - - - setting_component_carriers = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_COMPONENT_CARRIERS); - nb_cc = 0; - - if (setting_component_carriers != NULL) { - - num_component_carriers = config_setting_length(setting_component_carriers); - LOG_I(RRC,"num component carriers %d \n", num_component_carriers); - - //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; - for (j = 0; j < num_component_carriers ;j++) { // && j < MAX_NUM_CCs; j++) { - component_carrier = config_setting_get_elem(setting_component_carriers, j); - - //printf("Component carrier %d\n",component_carrier); - if (!(config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG, &tdd_config) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG_S, &tdd_config_s) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PREFIX_TYPE, &prefix_type) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PBCH_REPETITION, &pbch_repetition) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_EUTRA_BAND, &eutra_band) - && config_setting_lookup_int64(component_carrier, ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, &downlink_frequency) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, &uplink_frequency_offset) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NID_CELL, &Nid_cell) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_N_RB_DL, &N_RB_DL) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_CELL_MBSFN, &Nid_cell_mbsfn) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_PORTS, &nb_antenna_ports) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) + if (strcmp(active_enb[j], enb_name) == 0) { + + RRC_CONFIGURATION_REQ (msg_p).cell_identity = enb_id; + + /* + if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cell_type = CELL_MACRO_ENB; + } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cell_type = CELL_HOME_ENB; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", + lib_config_file_name_pP, i, cell_type); + } + + enb_properties_loc.properties[enb_properties_loc_index]->eNB_name = strdup(enb_name); + */ + RRC_CONFIGURATION_REQ (msg_p).tac = (uint16_t)atoi(tac); + RRC_CONFIGURATION_REQ (msg_p).mcc = (uint16_t)atoi(mcc); + RRC_CONFIGURATION_REQ (msg_p).mnc = (uint16_t)atoi(mnc); + RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length = strlen(mnc); + AssertFatal((RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 2) || + (RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 3), + "BAD MNC DIGIT LENGTH %d", + RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length); + + LOG_I(RRC,"RRC config (%s,%s,%s)\n",mcc,mnc,tac); + // Parse optional physical parameters + + + setting_component_carriers = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_COMPONENT_CARRIERS); + nb_cc = 0; + + if (setting_component_carriers != NULL) { + + num_component_carriers = config_setting_length(setting_component_carriers); + LOG_I(RRC,"num component carriers %d \n", num_component_carriers); + + //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; + for (j = 0; j < num_component_carriers ;j++) { // && j < MAX_NUM_CCs; j++) { + component_carrier = config_setting_get_elem(setting_component_carriers, j); + + //printf("Component carrier %d\n",component_carrier); + if (!(config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG, &tdd_config) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG_S, &tdd_config_s) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PREFIX_TYPE, &prefix_type) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PBCH_REPETITION, &pbch_repetition) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_EUTRA_BAND, &eutra_band) + && config_setting_lookup_int64(component_carrier, ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, &downlink_frequency) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, &uplink_frequency_offset) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NID_CELL, &Nid_cell) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_N_RB_DL, &N_RB_DL) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_CELL_MBSFN, &Nid_cell_mbsfn) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_PORTS, &nb_antenna_ports) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) #if !defined(Rel10) && !defined(Rel14) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) #endif - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) - + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + #if defined(Rel10) || defined(Rel14) - + #endif - )) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, Component Carrier %d!\n", - RC.config_file_name, nb_cc++); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } - - nb_cc++; - /* - if (strcmp(cc_node_function, "eNodeB_3GPP") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = eNodeB_3GPP; - } else if (strcmp(cc_node_function, "eNodeB_3GPP_BBU") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = eNodeB_3GPP_BBU; - } else if (strcmp(cc_node_function, "NGFI_RCC_IF4p5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RCC_IF4p5; - } else if (strcmp(cc_node_function, "NGFI_RAU_IF4p5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RAU_IF4p5; - } else if (strcmp(cc_node_function, "NGFI_RRU_IF4p5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RRU_IF4p5; - } else if (strcmp(cc_node_function, "NGFI_RRU_IF5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RRU_IF5; - } else { - AssertError (0, parse_errors ++, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for node_function choice: eNodeB_3GPP or eNodeB_3GPP_BBU or NGFI_IF4_RCC or NGFI_IF4_RRU or NGFI_IF5_RRU !\n", - lib_config_file_name_pP, i, cc_node_function); - } - - if (strcmp(cc_node_timing, "synch_to_ext_device") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_timing[j] = synch_to_ext_device; - } else if (strcmp(cc_node_timing, "synch_to_other") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_timing[j] = synch_to_other; - } else { - AssertError (0, parse_errors ++, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for node_function choice: SYNCH_TO_DEVICE or SYNCH_TO_OTHER !\n", - lib_config_file_name_pP, i, cc_node_timing); - } - - if ((cc_node_synch_ref >= -1) && (cc_node_synch_ref < num_component_carriers)) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_synch_ref[j] = (int16_t) cc_node_synch_ref; - } else { - AssertError (0, parse_errors ++, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for node_synch_ref choice: valid CC_id or -1 !\n", - lib_config_file_name_pP, i, cc_node_synch_ref); - } - */ - - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } + )) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } + + nb_cc++; + /* + if (strcmp(cc_node_function, "eNodeB_3GPP") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = eNodeB_3GPP; + } else if (strcmp(cc_node_function, "eNodeB_3GPP_BBU") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = eNodeB_3GPP_BBU; + } else if (strcmp(cc_node_function, "NGFI_RCC_IF4p5") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RCC_IF4p5; + } else if (strcmp(cc_node_function, "NGFI_RAU_IF4p5") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RAU_IF4p5; + } else if (strcmp(cc_node_function, "NGFI_RRU_IF4p5") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RRU_IF4p5; + } else if (strcmp(cc_node_function, "NGFI_RRU_IF5") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RRU_IF5; + } else { + AssertError (0, parse_errors ++, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for node_function choice: eNodeB_3GPP or eNodeB_3GPP_BBU or NGFI_IF4_RCC or NGFI_IF4_RRU or NGFI_IF5_RRU !\n", + lib_config_file_name_pP, i, cc_node_function); + } + + if (strcmp(cc_node_timing, "synch_to_ext_device") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_timing[j] = synch_to_ext_device; + } else if (strcmp(cc_node_timing, "synch_to_other") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_timing[j] = synch_to_other; + } else { + AssertError (0, parse_errors ++, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for node_function choice: SYNCH_TO_DEVICE or SYNCH_TO_OTHER !\n", + lib_config_file_name_pP, i, cc_node_timing); + } + + if ((cc_node_synch_ref >= -1) && (cc_node_synch_ref < num_component_carriers)) { + enb_properties_loc.properties[enb_properties_loc_index]->cc_node_synch_ref[j] = (int16_t) cc_node_synch_ref; + } else { + AssertError (0, parse_errors ++, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for node_synch_ref choice: valid CC_id or -1 !\n", + lib_config_file_name_pP, i, cc_node_synch_ref); + } + */ + + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } #ifdef Rel14 - if (!pbch_repetition) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; - } - else if (strcmp(pbch_repetition, "FALSE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", - RC.config_file_name, i, pbch_repetition); - } + if (!pbch_repetition) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); + else if (strcmp(pbch_repetition, "TRUE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; + } + else if (strcmp(pbch_repetition, "FALSE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", + RC.config_file_name, i, pbch_repetition); + } #endif - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; - - if (Nid_cell>503) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", - RC.config_file_name, i, Nid_cell); - } - - RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; - - if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", - RC.config_file_name, i, N_RB_DL); - } - - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; - } - else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, i, frame_type); - } - - - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - - - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } - - - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); - - - - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); - - - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - - if (enb_check_band_frequencies(RC.config_file_name, - j, - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], - RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { - AssertFatal(0, "error calling enb_check_band_frequencies\n"); - } - - if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", - RC.config_file_name, i, nb_antenna_ports); - - RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; - - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; - - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); - - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; - - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; - - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; + if (Nid_cell>503) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", + RC.config_file_name, i, Nid_cell); + } - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); + RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; + + if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", + RC.config_file_name, i, N_RB_DL); + } + + if (strcmp(frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; + } + else if (strcmp(frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + RC.config_file_name, i, frame_type); + } + + + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + + + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + + + + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } + + + + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); + + + + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); + + + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + + if (enb_check_band_frequencies(RC.config_file_name, + j, + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], + RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { + AssertFatal(0, "error calling enb_check_band_frequencies\n"); + } + + if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", + RC.config_file_name, i, nb_antenna_ports); + + RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); #if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); #endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, - (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); - if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) - )) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", - RC.config_file_name, i); + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); #ifndef Rel14 - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } #else - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; + } #endif - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", - RC.config_file_name, i); + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; - case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; - case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); - - } - else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; - - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); + + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); - switch (rach_preambleTransMax) { + switch (rach_preambleTransMax) { #ifndef Rel14 - _ case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; + _ case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; #else - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; - break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; + break; #endif - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; - } - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - - } - - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + switch (pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; + } + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + switch (ue_TimersAndConstants_t300) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; + + } + + switch (ue_TimersAndConstants_t301) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; + + } - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; + switch (ue_TimersAndConstants_t310) { + case 0: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; - case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - - } - - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; - - case 3110: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; - - case 31100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - - } - - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; - } + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; + + case 500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; + + } + + switch (ue_TimersAndConstants_t311) { + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; + + case 3110: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; + + case 5000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; + + case 10000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; + + case 15000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; + + case 20000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; + + case 31100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TimersAndConstants_n310) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; + + } + + switch (ue_TimersAndConstants_n311) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } #ifdef Rel14 - setting_br13 = config_setting_get_member(setting_enb, ENB_CONFIG_STRING_BR); - - if (setting_br13 != NULL) { + setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); + if (setting_br13 == NULL) { + puts("setting BR is NULL"); + } else { + puts("setting BR is NOT NULL"); + } + if (setting_br13 != NULL) { - // Rel8 RadioResourceConfigCommon Parameters - if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) + // Rel8 RadioResourceConfigCommon Parameters + if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) #if !defined(Rel10) && !defined(Rel14) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) #endif - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) - )) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, Component Carrier %d!\n", - RC.config_file_name, nb_cc++); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; - - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; - - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); - - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; - - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; - - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + )) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); + printf("[DEBUGGING][KOGO] frame type %s\n", frame_type); + printf("[DEBUGGING][KOGO] prach_root %d\n", prach_root); + printf("[DEBUGGING][KOGO] prach_config_index %d\n", prach_config_index); + printf("[DEBUGGING][KOGO] prach_high_speed %s\n", prach_high_speed); + printf("[DEBUGGING][KOGO] prach_zero_correlation %d\n", prach_zero_correlation); + printf("[DEBUGGING][KOGO] prach_freq_offset %d\n", prach_freq_offset); + printf("[DEBUGGING][KOGO] pucch_delta_shift %d\n", pucch_delta_shift); + printf("[DEBUGGING][KOGO] pucch_nRB_CQI %d\n", pucch_nRB_CQI); + printf("[DEBUGGING][KOGO] pucch_nCS_AN %d\n", pucch_nCS_AN); + printf("[DEBUGGING][KOGO] pucch_n1_AN %d\n", pucch_n1_AN); + printf("[DEBUGGING][KOGO] pdsch_referenceSignalPower %d\n", pdsch_referenceSignalPower); + printf("[DEBUGGING][KOGO] pdsch_p_b %d\n", pdsch_p_b); + printf("[DEBUGGING][KOGO] pusch_n_SB %d\n", pusch_n_SB); + printf("[DEBUGGING][KOGO] pusch_hoppingMode %s\n", pusch_hoppingMode); + printf("[DEBUGGING][KOGO] pusch_hoppingOffset %d\n", pusch_hoppingOffset); + printf("[DEBUGGING][KOGO] pusch_enable64QAM %s\n", pusch_enable64QAM); + printf("[DEBUGGING][KOGO] pusch_groupHoppingEnabled %s\n", pusch_groupHoppingEnabled); + printf("[DEBUGGING][KOGO] pusch_groupAssignment %d\n", pusch_groupAssignment); + printf("[DEBUGGING][KOGO] pusch_sequenceHoppingEnabled %s\n", pusch_sequenceHoppingEnabled); + printf("[DEBUGGING][KOGO] pusch_nDMRS1 %d\n", pusch_nDMRS1); + printf("[DEBUGGING][KOGO] phich_duration %s\n", phich_duration); + printf("[DEBUGGING][KOGO] phich_resource %s\n", phich_resource); + printf("[DEBUGGING][KOGO] srs_enable %s\n", srs_enable); + printf("[DEBUGGING][KOGO] pusch_p0_Nominal %d\n", pusch_p0_Nominal); + printf("[DEBUGGING][KOGO] pusch_alpha %s\n", pusch_alpha); + printf("[DEBUGGING][KOGO] pucch_p0_Nominal %d\n", pucch_p0_Nominal); + printf("[DEBUGGING][KOGO] msg3_delta_Preamble %d\n", msg3_delta_Preamble); + printf("[DEBUGGING][KOGO] pucch_deltaF_Format1 %s\n", pucch_deltaF_Format1); + printf("[DEBUGGING][KOGO] pucch_deltaF_Format1b %s\n", pucch_deltaF_Format1b); + printf("[DEBUGGING][KOGO] pucch_deltaF_Format2 %s\n", pucch_deltaF_Format2); + printf("[DEBUGGING][KOGO] pucch_deltaF_Format2a %s\n", pucch_deltaF_Format2a); + printf("[DEBUGGING][KOGO] pucch_deltaF_Format2b %s\n", pucch_deltaF_Format2b); + printf("[DEBUGGING][KOGO] rach_numberOfRA_Preambles %d\n", rach_numberOfRA_Preambles); + printf("[DEBUGGING][KOGO] rach_preamblesGroupAConfig %s\n", rach_preamblesGroupAConfig); + printf("[DEBUGGING][KOGO] rach_powerRampingStep %d\n", rach_powerRampingStep); + printf("[DEBUGGING][KOGO] rach_preambleInitialReceivedTargetPower %d\n", rach_preambleInitialReceivedTargetPower); + printf("[DEBUGGING][KOGO] rach_preambleTransMax %d\n", rach_preambleTransMax); + printf("[DEBUGGING][KOGO] rach_raResponseWindowSize %d\n", rach_raResponseWindowSize); + printf("[DEBUGGING][KOGO] rach_macContentionResolutionTimer %d\n", rach_macContentionResolutionTimer); + printf("[DEBUGGING][KOGO] rach_maxHARQ_Msg3Tx %d\n", rach_maxHARQ_Msg3Tx); + printf("[DEBUGGING][KOGO] pcch_default_PagingCycle %d\n", pcch_defaultPagingCycle); + printf("[DEBUGGING][KOGO] pcch_nB %s\n", pcch_nB); + printf("[DEBUGGING][KOGO] bcch_modificationPeriodCoeff %d\n", bcch_modificationPeriodCoeff); + printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t300 %d\n", ue_TimersAndConstants_t300); + printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t301 %d\n", ue_TimersAndConstants_t301); + printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t310 %d\n", ue_TimersAndConstants_t310); + printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t311 %d\n", ue_TimersAndConstants_t311); + printf("[DEBUGGING][KOGO] ue_TimersAndConstants_n310 %d\n", ue_TimersAndConstants_n310); + printf("[DEBUGGING][KOGO] ue_TimersAndConstants_n311 %d\n", ue_TimersAndConstants_n311); + printf("[DEBUGGING][KOGO] ue_TransmissionMode %d\n", ue_TransmissionMode); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); #if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN; - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); #endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); - if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { - if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) - )) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", - RC.config_file_name, i); + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); #ifndef Rel14 - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } #else - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; + } #endif - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + printf("[KOGO][DEBUGGING] check value here: value: %ld -- index %d\n", RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles, j); - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; - if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", - RC.config_file_name, i); + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; - case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; - case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); - - } - else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; - - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); + + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); - switch (rach_preambleTransMax) { + switch (rach_preambleTransMax) { #ifndef Rel14 - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; #else - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; - break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; + break; #endif - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; - } - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - - } - - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + switch (pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; + } + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + switch (ue_TimersAndConstants_t300) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; + + } + + switch (ue_TimersAndConstants_t301) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; + + } - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; + switch (ue_TimersAndConstants_t310) { + case 0: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; - case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - - } - - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; - - case 3110: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; - - case 31100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - - } - - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; - } - - int hyperSFN_r13; - int eDRX_Allowed_r13; - int q_RxLevMinCE_r13; - int q_QualMinRSRQ_CE_r13; - int si_WindowLength_BR_r13; - int si_RepetitionPattern_r13; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - int startSymbolBR_r13; - int si_HoppingConfigCommon_r13; - int si_ValidityTime_r13; - int mpdcch_pdsch_HoppingNB_r13; - int interval_DLHoppingConfigCommonModeA_r13_val; - int interval_DLHoppingConfigCommonModeB_r13_val; - int mpdcch_pdsch_HoppingOffset_r13; - int preambleTransMax_CE_r13; - int mpdcch_startSF_CSS_RA_r13_val; - int prach_HoppingOffset_r13; - int schedulingInfoSIB1_BR_r13; - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13; - - - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", - RC.config_file_name, i); - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; - - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); - *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || - !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; - - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; - - - - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; - - /////SIB2 Parameters - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) - { - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; - else - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - } - else - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; - } + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; + + case 500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; + + } + + switch (ue_TimersAndConstants_t311) { + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; + + case 3110: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; + + case 5000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; + + case 10000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; + + case 15000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; + + case 20000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; + + case 31100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TimersAndConstants_n310) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; + + } + + switch (ue_TimersAndConstants_n311) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } + + int hyperSFN_r13; + int eDRX_Allowed_r13; + int q_RxLevMinCE_r13; + int q_QualMinRSRQ_CE_r13; + int si_WindowLength_BR_r13; + int si_RepetitionPattern_r13; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + int startSymbolBR_r13; + int si_HoppingConfigCommon_r13; + int si_ValidityTime_r13; + int mpdcch_pdsch_HoppingNB_r13; + int interval_DLHoppingConfigCommonModeA_r13_val; + int interval_DLHoppingConfigCommonModeB_r13_val; + int mpdcch_pdsch_HoppingOffset_r13; + int preambleTransMax_CE_r13; + int mpdcch_startSF_CSS_RA_r13_val; + int prach_HoppingOffset_r13; + int schedulingInfoSIB1_BR_r13; + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13; + + + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", + RC.config_file_name, i); + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || + !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + + + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + + /////SIB2 Parameters + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + } + else + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + } #endif - } - - - setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); - - if (setting_srb1 != NULL) { - if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, " - "timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n", - RC.config_file_name, i); - - switch (srb1_max_retx_threshold) { - case 1: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; - break; - - case 2: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; - break; - - case 3: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; - break; - - case 4: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; - break; - - case 6: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; - break; - - case 8: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - break; - - case 16: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; - break; - - case 32: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", - RC.config_file_name, i, srb1_max_retx_threshold); - } - - - switch (srb1_poll_pdu) { - case 4: - rrc->srb1_poll_pdu = PollPDU_p4; - break; - - case 8: - rrc->srb1_poll_pdu = PollPDU_p8; - break; - - case 16: - rrc->srb1_poll_pdu = PollPDU_p16; - break; - - case 32: - rrc->srb1_poll_pdu = PollPDU_p32; - break; - - case 64: - rrc->srb1_poll_pdu = PollPDU_p64; - break; - - case 128: - rrc->srb1_poll_pdu = PollPDU_p128; - break; - - case 256: - rrc->srb1_poll_pdu = PollPDU_p256; - break; - - default: - if (srb1_poll_pdu >= 10000) - rrc->srb1_poll_pdu = PollPDU_pInfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", - RC.config_file_name, i, srb1_poll_pdu); - } - - rrc->srb1_poll_byte = srb1_poll_byte; - - switch (srb1_poll_byte) { - case 25: - rrc->srb1_poll_byte = PollByte_kB25; - break; - - case 50: - rrc->srb1_poll_byte = PollByte_kB50; - break; - - case 75: - rrc->srb1_poll_byte = PollByte_kB75; - break; - - case 100: - rrc->srb1_poll_byte = PollByte_kB100; - break; - - case 125: - rrc->srb1_poll_byte = PollByte_kB125; - break; - - case 250: - rrc->srb1_poll_byte = PollByte_kB250; - break; - - case 375: - rrc->srb1_poll_byte = PollByte_kB375; - break; - - case 500: - rrc->srb1_poll_byte = PollByte_kB500; - break; - - case 750: - rrc->srb1_poll_byte = PollByte_kB750; - break; - - case 1000: - rrc->srb1_poll_byte = PollByte_kB1000; - break; - - case 1250: - rrc->srb1_poll_byte = PollByte_kB1250; - break; - - case 1500: - rrc->srb1_poll_byte = PollByte_kB1500; - break; - - case 2000: - rrc->srb1_poll_byte = PollByte_kB2000; - break; - - case 3000: - rrc->srb1_poll_byte = PollByte_kB3000; - break; - - default: - if (srb1_poll_byte >= 10000) - rrc->srb1_poll_byte = PollByte_kBinfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", - RC.config_file_name, i, srb1_poll_byte); - } - - if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; - } - else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } - - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; - } - else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", - RC.config_file_name, i, srb1_timer_status_prohibit); - } - - switch (srb1_timer_reordering) { - case 0: - rrc->srb1_timer_reordering = T_Reordering_ms0; - break; - - case 5: - rrc->srb1_timer_reordering = T_Reordering_ms5; - break; - - case 10: - rrc->srb1_timer_reordering = T_Reordering_ms10; - break; - - case 15: - rrc->srb1_timer_reordering = T_Reordering_ms15; - break; - - case 20: - rrc->srb1_timer_reordering = T_Reordering_ms20; - break; - - case 25: - rrc->srb1_timer_reordering = T_Reordering_ms25; - break; - - case 30: - rrc->srb1_timer_reordering = T_Reordering_ms30; - break; - - case 35: - rrc->srb1_timer_reordering = T_Reordering_ms35; - break; - - case 40: - rrc->srb1_timer_reordering = T_Reordering_ms40; - break; - - case 45: - rrc->srb1_timer_reordering = T_Reordering_ms45; - break; - - case 50: - rrc->srb1_timer_reordering = T_Reordering_ms50; - break; - - case 55: - rrc->srb1_timer_reordering = T_Reordering_ms55; - break; - - case 60: - rrc->srb1_timer_reordering = T_Reordering_ms60; - break; - - case 65: - rrc->srb1_timer_reordering = T_Reordering_ms65; - break; - - case 70: - rrc->srb1_timer_reordering = T_Reordering_ms70; - break; - - case 75: - rrc->srb1_timer_reordering = T_Reordering_ms75; - break; - - case 80: - rrc->srb1_timer_reordering = T_Reordering_ms80; - break; - - case 85: - rrc->srb1_timer_reordering = T_Reordering_ms85; - break; - - case 90: - rrc->srb1_timer_reordering = T_Reordering_ms90; - break; - - case 95: - rrc->srb1_timer_reordering = T_Reordering_ms95; - break; - - case 100: - rrc->srb1_timer_reordering = T_Reordering_ms100; - break; - - case 110: - rrc->srb1_timer_reordering = T_Reordering_ms110; - break; - - case 120: - rrc->srb1_timer_reordering = T_Reordering_ms120; - break; - - case 130: - rrc->srb1_timer_reordering = T_Reordering_ms130; - break; - - case 140: - rrc->srb1_timer_reordering = T_Reordering_ms140; - break; - - case 150: - rrc->srb1_timer_reordering = T_Reordering_ms150; - break; - - case 160: - rrc->srb1_timer_reordering = T_Reordering_ms160; - break; - - case 170: - rrc->srb1_timer_reordering = T_Reordering_ms170; - break; - - case 180: - rrc->srb1_timer_reordering = T_Reordering_ms180; - break; - - case 190: - rrc->srb1_timer_reordering = T_Reordering_ms190; - break; - - case 200: - rrc->srb1_timer_reordering = T_Reordering_ms200; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } - - } - else { - rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; - rrc->srb1_timer_reordering = T_Reordering_ms35; - rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; - rrc->srb1_poll_pdu = PollPDU_p4; - rrc->srb1_poll_byte = PollByte_kBinfinity; - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - } - /* - // Network Controller - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_CONTROLLER_CONFIG); - - if (subsetting != NULL) { - if ( ( - config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_INTERFACE_NAME, - (const char **)&flexran_agent_interface_name) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_IPV4_ADDRESS, - (const char **)&flexran_agent_ipv4_address) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_PORT, - &flexran_agent_port) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_CACHE, - (const char **)&flexran_agent_cache) - ) - ) { - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_interface_name = strdup(flexran_agent_interface_name); - cidr = flexran_agent_ipv4_address; - address = strtok(cidr, "/"); - //enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address = strdup(address); - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO (address, enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB Agent !\n" ); - } - - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_port = flexran_agent_port; - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_cache = strdup(flexran_agent_cache); - } - } - */ - - /* - // OTG _CONFIG - setting_otg = config_setting_get_member (setting_enb, ENB_CONF_STRING_OTG_CONFIG); - - if (setting_otg != NULL) { - num_otg_elements = config_setting_length(setting_otg); - printf("num otg elements %d \n", num_otg_elements); - enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements = 0; - - for (j = 0; j < num_otg_elements; j++) { - subsetting_otg=config_setting_get_elem(setting_otg, j); - - if (config_setting_lookup_int(subsetting_otg, ENB_CONF_STRING_OTG_UE_ID, &otg_ue_id)) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = otg_ue_id; - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = 1; - } - - if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_APP_TYPE, (const char **)&otg_app_type)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = map_str_to_int(otg_app_type_names,otg_app_type))== -1) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = BCBR; - } - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = NO_PREDEFINED_TRAFFIC; // 0 - } - - if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_BG_TRAFFIC, (const char **)&otg_bg_traffic)) { - - if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = map_str_to_int(switch_names,otg_bg_traffic)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j]=0; - } - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = 0; - printf("otg bg %s\n", otg_bg_traffic); - } - - enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements+=1; - - } - } - - // log_config - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_LOG_CONFIG); - - if (subsetting != NULL) { - // global - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_LEVEL, (const char **) &glog_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_level = map_str_to_int(log_level_names, glog_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - } - - //printf( "\tGlobal log level :\t%s->%d\n",glog_level, enb_properties_loc.properties[enb_properties_loc_index]->glog_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,(const char **) &glog_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = map_str_to_int(log_verbosity_names, glog_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - } - - //printf( "\tGlobal log verbosity:\t%s->%d\n",glog_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - } - - // HW - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_LEVEL, (const char **) &hw_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = map_str_to_int(log_level_names,hw_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - } - - //printf( "\tHW log level :\t%s->%d\n",hw_log_level,enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_VERBOSITY, (const char **) &hw_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = map_str_to_int(log_verbosity_names,hw_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - } - - //printf( "\tHW log verbosity:\t%s->%d\n",hw_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - } - - // phy - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_LEVEL,(const char **) &phy_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = map_str_to_int(log_level_names,phy_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - } - - //printf( "\tPHY log level :\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_VERBOSITY, (const char **)&phy_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = map_str_to_int(log_verbosity_names,phy_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - } - - //printf( "\tPHY log verbosity:\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - } - - //mac - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_LEVEL, (const char **)&mac_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = map_str_to_int(log_level_names,mac_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - } - - //printf( "\tMAC log level :\t%s->%d\n",mac_log_level,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_VERBOSITY, (const char **)&mac_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = map_str_to_int(log_verbosity_names,mac_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - } - - //printf( "\tMAC log verbosity:\t%s->%d\n",mac_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - } - - //rlc - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_LEVEL, (const char **)&rlc_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = map_str_to_int(log_level_names,rlc_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - } - - //printf( "\tRLC log level :\t%s->%d\n",rlc_log_level, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_VERBOSITY, (const char **)&rlc_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = map_str_to_int(log_verbosity_names,rlc_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - } - - //printf( "\tRLC log verbosity:\t%s->%d\n",rlc_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - } - - //pdcp - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_LEVEL, (const char **)&pdcp_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = map_str_to_int(log_level_names,pdcp_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - } - - //printf( "\tPDCP log level :\t%s->%d\n",pdcp_log_level, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_VERBOSITY, (const char **)&pdcp_log_verbosity)) { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = map_str_to_int(log_verbosity_names,pdcp_log_verbosity); - //printf( "\tPDCP log verbosity:\t%s->%d\n",pdcp_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; - } - - //rrc - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_LEVEL, (const char **)&rrc_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = map_str_to_int(log_level_names,rrc_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - } - - //printf( "\tRRC log level :\t%s->%d\n",rrc_log_level,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_VERBOSITY, (const char **)&rrc_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = map_str_to_int(log_verbosity_names,rrc_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - } - - //printf( "\tRRC log verbosity:\t%s->%d\n",rrc_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_LEVEL, (const char **)>pu_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = map_str_to_int(log_level_names,gtpu_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - } - - //printf( "\tGTPU log level :\t%s->%d\n",gtpu_log_level,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_VERBOSITY, (const char **)>pu_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = map_str_to_int(log_verbosity_names,gtpu_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - } - - //printf( "\tGTPU log verbosity:\t%s->%d\n",gtpu_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_LEVEL, (const char **)&udp_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = map_str_to_int(log_level_names,udp_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - } - - //printf( "\tUDP log level :\t%s->%d\n",udp_log_level,enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_VERBOSITY, (const char **)&udp_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = map_str_to_int(log_verbosity_names,udp_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - } - - //printf( "\tUDP log verbosity:\t%s->%d\n",udp_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_LEVEL, (const char **)&osa_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = map_str_to_int(log_level_names,osa_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - } - - //printf( "\tOSA log level :\t%s->%d\n",osa_log_level,enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_VERBOSITY, (const char **)&osa_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = map_str_to_int(log_verbosity_names,osa_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } - - //printf( "\tOSA log verbosity:\t%s->%d\n",osa_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gosa_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } - - } else { // not configuration is given - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } - */ - break; - } - } + } + + + setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); + + if (setting_srb1 != NULL) { + if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, " + "timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n", + RC.config_file_name, i); + + switch (srb1_max_retx_threshold) { + case 1: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; + break; + + case 2: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; + break; + + case 3: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; + break; + + case 4: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; + break; + + case 6: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; + break; + + case 8: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + break; + + case 16: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; + break; + + case 32: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", + RC.config_file_name, i, srb1_max_retx_threshold); + } + + + switch (srb1_poll_pdu) { + case 4: + rrc->srb1_poll_pdu = PollPDU_p4; + break; + + case 8: + rrc->srb1_poll_pdu = PollPDU_p8; + break; + + case 16: + rrc->srb1_poll_pdu = PollPDU_p16; + break; + + case 32: + rrc->srb1_poll_pdu = PollPDU_p32; + break; + + case 64: + rrc->srb1_poll_pdu = PollPDU_p64; + break; + + case 128: + rrc->srb1_poll_pdu = PollPDU_p128; + break; + + case 256: + rrc->srb1_poll_pdu = PollPDU_p256; + break; + + default: + if (srb1_poll_pdu >= 10000) + rrc->srb1_poll_pdu = PollPDU_pInfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", + RC.config_file_name, i, srb1_poll_pdu); + } + + rrc->srb1_poll_byte = srb1_poll_byte; + + switch (srb1_poll_byte) { + case 25: + rrc->srb1_poll_byte = PollByte_kB25; + break; + + case 50: + rrc->srb1_poll_byte = PollByte_kB50; + break; + + case 75: + rrc->srb1_poll_byte = PollByte_kB75; + break; + + case 100: + rrc->srb1_poll_byte = PollByte_kB100; + break; + + case 125: + rrc->srb1_poll_byte = PollByte_kB125; + break; + + case 250: + rrc->srb1_poll_byte = PollByte_kB250; + break; + + case 375: + rrc->srb1_poll_byte = PollByte_kB375; + break; + + case 500: + rrc->srb1_poll_byte = PollByte_kB500; + break; + + case 750: + rrc->srb1_poll_byte = PollByte_kB750; + break; + + case 1000: + rrc->srb1_poll_byte = PollByte_kB1000; + break; + + case 1250: + rrc->srb1_poll_byte = PollByte_kB1250; + break; + + case 1500: + rrc->srb1_poll_byte = PollByte_kB1500; + break; + + case 2000: + rrc->srb1_poll_byte = PollByte_kB2000; + break; + + case 3000: + rrc->srb1_poll_byte = PollByte_kB3000; + break; + + default: + if (srb1_poll_byte >= 10000) + rrc->srb1_poll_byte = PollByte_kBinfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", + RC.config_file_name, i, srb1_poll_byte); + } + + if (srb1_timer_poll_retransmit <= 250) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; + } + else if (srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_timer_poll_retransmit); + } + + if (srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; + } + else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + RC.config_file_name, i, srb1_timer_status_prohibit); + } + + switch (srb1_timer_reordering) { + case 0: + rrc->srb1_timer_reordering = T_Reordering_ms0; + break; + + case 5: + rrc->srb1_timer_reordering = T_Reordering_ms5; + break; + + case 10: + rrc->srb1_timer_reordering = T_Reordering_ms10; + break; + + case 15: + rrc->srb1_timer_reordering = T_Reordering_ms15; + break; + + case 20: + rrc->srb1_timer_reordering = T_Reordering_ms20; + break; + + case 25: + rrc->srb1_timer_reordering = T_Reordering_ms25; + break; + + case 30: + rrc->srb1_timer_reordering = T_Reordering_ms30; + break; + + case 35: + rrc->srb1_timer_reordering = T_Reordering_ms35; + break; + + case 40: + rrc->srb1_timer_reordering = T_Reordering_ms40; + break; + + case 45: + rrc->srb1_timer_reordering = T_Reordering_ms45; + break; + + case 50: + rrc->srb1_timer_reordering = T_Reordering_ms50; + break; + + case 55: + rrc->srb1_timer_reordering = T_Reordering_ms55; + break; + + case 60: + rrc->srb1_timer_reordering = T_Reordering_ms60; + break; + + case 65: + rrc->srb1_timer_reordering = T_Reordering_ms65; + break; + + case 70: + rrc->srb1_timer_reordering = T_Reordering_ms70; + break; + + case 75: + rrc->srb1_timer_reordering = T_Reordering_ms75; + break; + + case 80: + rrc->srb1_timer_reordering = T_Reordering_ms80; + break; + + case 85: + rrc->srb1_timer_reordering = T_Reordering_ms85; + break; + + case 90: + rrc->srb1_timer_reordering = T_Reordering_ms90; + break; + + case 95: + rrc->srb1_timer_reordering = T_Reordering_ms95; + break; + + case 100: + rrc->srb1_timer_reordering = T_Reordering_ms100; + break; + + case 110: + rrc->srb1_timer_reordering = T_Reordering_ms110; + break; + + case 120: + rrc->srb1_timer_reordering = T_Reordering_ms120; + break; + + case 130: + rrc->srb1_timer_reordering = T_Reordering_ms130; + break; + + case 140: + rrc->srb1_timer_reordering = T_Reordering_ms140; + break; + + case 150: + rrc->srb1_timer_reordering = T_Reordering_ms150; + break; + + case 160: + rrc->srb1_timer_reordering = T_Reordering_ms160; + break; + + case 170: + rrc->srb1_timer_reordering = T_Reordering_ms170; + break; + + case 180: + rrc->srb1_timer_reordering = T_Reordering_ms180; + break; + + case 190: + rrc->srb1_timer_reordering = T_Reordering_ms190; + break; + + case 200: + rrc->srb1_timer_reordering = T_Reordering_ms200; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", + RC.config_file_name, i, srb1_timer_reordering); + } + + } + else { + rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; + rrc->srb1_timer_reordering = T_Reordering_ms35; + rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; + rrc->srb1_poll_pdu = PollPDU_p4; + rrc->srb1_poll_byte = PollByte_kBinfinity; + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + } + /* + // Network Controller + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_CONTROLLER_CONFIG); + + if (subsetting != NULL) { + if ( ( + config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_INTERFACE_NAME, + (const char **)&flexran_agent_interface_name) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_IPV4_ADDRESS, + (const char **)&flexran_agent_ipv4_address) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_PORT, + &flexran_agent_port) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_CACHE, + (const char **)&flexran_agent_cache) + ) + ) { + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_interface_name = strdup(flexran_agent_interface_name); + cidr = flexran_agent_ipv4_address; + address = strtok(cidr, "/"); + //enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address = strdup(address); + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO (address, enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB Agent !\n" ); + } + + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_port = flexran_agent_port; + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_cache = strdup(flexran_agent_cache); + } + } + */ + + /* + // OTG _CONFIG + setting_otg = config_setting_get_member (setting_enb, ENB_CONF_STRING_OTG_CONFIG); + + if (setting_otg != NULL) { + num_otg_elements = config_setting_length(setting_otg); + printf("num otg elements %d \n", num_otg_elements); + enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements = 0; + + for (j = 0; j < num_otg_elements; j++) { + subsetting_otg=config_setting_get_elem(setting_otg, j); + + if (config_setting_lookup_int(subsetting_otg, ENB_CONF_STRING_OTG_UE_ID, &otg_ue_id)) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = otg_ue_id; + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = 1; + } + + if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_APP_TYPE, (const char **)&otg_app_type)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = map_str_to_int(otg_app_type_names,otg_app_type))== -1) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = BCBR; + } + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = NO_PREDEFINED_TRAFFIC; // 0 + } + + if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_BG_TRAFFIC, (const char **)&otg_bg_traffic)) { + + if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = map_str_to_int(switch_names,otg_bg_traffic)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j]=0; + } + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = 0; + printf("otg bg %s\n", otg_bg_traffic); + } + + enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements+=1; + + } + } + + // log_config + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_LOG_CONFIG); + + if (subsetting != NULL) { + // global + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_LEVEL, (const char **) &glog_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_level = map_str_to_int(log_level_names, glog_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + } + + //printf( "\tGlobal log level :\t%s->%d\n",glog_level, enb_properties_loc.properties[enb_properties_loc_index]->glog_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,(const char **) &glog_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = map_str_to_int(log_verbosity_names, glog_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + } + + //printf( "\tGlobal log verbosity:\t%s->%d\n",glog_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + } + + // HW + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_LEVEL, (const char **) &hw_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = map_str_to_int(log_level_names,hw_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + } + + //printf( "\tHW log level :\t%s->%d\n",hw_log_level,enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_VERBOSITY, (const char **) &hw_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = map_str_to_int(log_verbosity_names,hw_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + } + + //printf( "\tHW log verbosity:\t%s->%d\n",hw_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + } + + // phy + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_LEVEL,(const char **) &phy_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = map_str_to_int(log_level_names,phy_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + } + + //printf( "\tPHY log level :\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_VERBOSITY, (const char **)&phy_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = map_str_to_int(log_verbosity_names,phy_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + } + + //printf( "\tPHY log verbosity:\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + } + + //mac + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_LEVEL, (const char **)&mac_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = map_str_to_int(log_level_names,mac_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + } + + //printf( "\tMAC log level :\t%s->%d\n",mac_log_level,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_VERBOSITY, (const char **)&mac_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = map_str_to_int(log_verbosity_names,mac_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + } + + //printf( "\tMAC log verbosity:\t%s->%d\n",mac_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + } + + //rlc + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_LEVEL, (const char **)&rlc_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = map_str_to_int(log_level_names,rlc_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + } + + //printf( "\tRLC log level :\t%s->%d\n",rlc_log_level, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_VERBOSITY, (const char **)&rlc_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = map_str_to_int(log_verbosity_names,rlc_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + } + + //printf( "\tRLC log verbosity:\t%s->%d\n",rlc_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + } + + //pdcp + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_LEVEL, (const char **)&pdcp_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = map_str_to_int(log_level_names,pdcp_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + } + + //printf( "\tPDCP log level :\t%s->%d\n",pdcp_log_level, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_VERBOSITY, (const char **)&pdcp_log_verbosity)) { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = map_str_to_int(log_verbosity_names,pdcp_log_verbosity); + //printf( "\tPDCP log verbosity:\t%s->%d\n",pdcp_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; + } + + //rrc + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_LEVEL, (const char **)&rrc_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = map_str_to_int(log_level_names,rrc_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + } + + //printf( "\tRRC log level :\t%s->%d\n",rrc_log_level,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_VERBOSITY, (const char **)&rrc_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = map_str_to_int(log_verbosity_names,rrc_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + } + + //printf( "\tRRC log verbosity:\t%s->%d\n",rrc_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_LEVEL, (const char **)>pu_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = map_str_to_int(log_level_names,gtpu_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + } + + //printf( "\tGTPU log level :\t%s->%d\n",gtpu_log_level,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_VERBOSITY, (const char **)>pu_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = map_str_to_int(log_verbosity_names,gtpu_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + } + + //printf( "\tGTPU log verbosity:\t%s->%d\n",gtpu_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_LEVEL, (const char **)&udp_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = map_str_to_int(log_level_names,udp_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + } + + //printf( "\tUDP log level :\t%s->%d\n",udp_log_level,enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_VERBOSITY, (const char **)&udp_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = map_str_to_int(log_verbosity_names,udp_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + } + + //printf( "\tUDP log verbosity:\t%s->%d\n",udp_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_LEVEL, (const char **)&osa_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = map_str_to_int(log_level_names,osa_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + } + + //printf( "\tOSA log level :\t%s->%d\n",osa_log_level,enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_VERBOSITY, (const char **)&osa_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = map_str_to_int(log_verbosity_names,osa_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } + + //printf( "\tOSA log verbosity:\t%s->%d\n",osa_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gosa_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } + + } else { // not configuration is given + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } + */ + break; + } + } } } } @@ -4424,7 +4481,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char *cidr = NULL; char *astring = NULL; - // for no gcc warnings + // for no gcc warnings (void)astring; @@ -4433,10 +4490,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_init(&cfg); if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. + // Read the file. If there is an error, report it and exit. if (! config_read_file(&cfg, RC.config_file_name)) { - config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); } } else { config_destroy(&cfg); @@ -4450,41 +4507,41 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { num_enbs = config_setting_length(setting); setting_enb = config_setting_get_elem(setting, 0); } - + if (num_enbs>0) { // Output a list of all eNBs. setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - + if (setting != NULL) { - setting_enb = config_setting_get_elem(setting, 0); - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + setting_enb = config_setting_get_elem(setting, 0); + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - if (subsetting != NULL) { - if ( (config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, - (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, - (const char **)&enb_ipv4_address_for_S1U) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, - &enb_port_for_S1U) - ) - ) { + if (subsetting != NULL) { + if ( (config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + (const char **)&enb_interface_name_for_S1U) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + (const char **)&enb_ipv4_address_for_S1U) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, + &enb_port_for_S1U) + ) + ) { - cidr = enb_ipv4_address_for_S1U; - address = strtok(cidr, "/"); - - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); + cidr = enb_ipv4_address_for_S1U; + address = strtok(cidr, "/"); - LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up); + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); - } + LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up); - RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U; + } - } - } + RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U; + + } + } } } } @@ -4538,7 +4595,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char *cidr = NULL; char *astring = NULL; - // for no gcc warnings + // for no gcc warnings (void)astring; (void)my_int; @@ -4547,10 +4604,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_init(&cfg); if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. + // Read the file. If there is an error, report it and exit. if (! config_read_file(&cfg, RC.config_file_name)) { - config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); } } else { config_destroy(&cfg); @@ -4561,17 +4618,17 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { - asn_debug = 0; - asn1_xer_print = 0; + asn_debug = 0; + asn1_xer_print = 0; } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { - asn_debug = 1; - asn1_xer_print = 1; + asn_debug = 1; + asn1_xer_print = 1; } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { - asn_debug = 1; - asn1_xer_print = 2; + asn_debug = 1; + asn1_xer_print = 2; } else { - asn_debug = 0; - asn1_xer_print = 0; + asn_debug = 0; + asn1_xer_print = 0; } } @@ -4585,191 +4642,191 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { setting_enb = config_setting_get_elem(setting, i); active_enb[i] = config_setting_get_string (setting_enb); AssertFatal (active_enb[i] != NULL, - "Failed to parse config file %s, %uth attribute %s \n", - RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); + "Failed to parse config file %s, %uth attribute %s \n", + RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); active_enb[i] = strdup(active_enb[i]); } - - + + if (num_enbs>0) { // Output a list of all eNBs. setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - + if (setting != NULL) { - num_enbs = config_setting_length(setting); - - for (i = 0; i < num_enbs; i++) { - setting_enb = config_setting_get_elem(setting, i); - - if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { - // Calculate a default eNB ID + num_enbs = config_setting_length(setting); + + for (i = 0; i < num_enbs; i++) { + setting_enb = config_setting_get_elem(setting, i); + + if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { + // Calculate a default eNB ID # if defined(ENABLE_USE_MME) - uint32_t hash; - - hash = s1ap_generate_eNB_id (); - enb_id = i + (hash & 0xFFFF8); + uint32_t hash; + + hash = s1ap_generate_eNB_id (); + enb_id = i + (hash & 0xFFFF8); # else - enb_id = i; + enb_id = i; # endif - } - - if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) - - - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } - - // search if in active list - for (j=0; j < num_enbs; j++) { - if (strcmp(active_enb[j], enb_name) == 0) { - - S1AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id; - - if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB; - } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", - RC.config_file_name, i, cell_type); - } - - S1AP_REGISTER_ENB_REQ (msg_p).eNB_name = strdup(enb_name); - S1AP_REGISTER_ENB_REQ (msg_p).tac = (uint16_t)atoi(tac); - S1AP_REGISTER_ENB_REQ (msg_p).mcc = (uint16_t)atoi(mcc); - S1AP_REGISTER_ENB_REQ (msg_p).mnc = (uint16_t)atoi(mnc); - S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(mnc); - S1AP_REGISTER_ENB_REQ (msg_p).default_drx = 0; - AssertFatal((S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) || - (S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3), - "BAD MNC DIGIT LENGTH %d", - S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length); - - + } - setting_mme_addresses = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_MME_IP_ADDRESS); - num_mme_address = config_setting_length(setting_mme_addresses); - S1AP_REGISTER_ENB_REQ (msg_p).nb_mme = 0; + if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) - for (j = 0; j < num_mme_address; j++) { - setting_mme_address = config_setting_get_elem(setting_mme_addresses, j); - if ( !( - config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV4_ADDRESS, (const char **)&ipv4) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV6_ADDRESS, (const char **)&ipv6) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, (const char **)&active) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, (const char **)&preference) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb %u th mme address !\n", - RC.config_file_name, i, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } - S1AP_REGISTER_ENB_REQ (msg_p).nb_mme += 1; + // search if in active list + for (j=0; j < num_enbs; j++) { + if (strcmp(active_enb[j], enb_name) == 0) { - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4_address,ipv4); - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6_address,ipv6); + S1AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id; - if (strcmp(active, "yes") == 0) { + if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB; + } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", + RC.config_file_name, i, cell_type); + } + + S1AP_REGISTER_ENB_REQ (msg_p).eNB_name = strdup(enb_name); + S1AP_REGISTER_ENB_REQ (msg_p).tac = (uint16_t)atoi(tac); + S1AP_REGISTER_ENB_REQ (msg_p).mcc = (uint16_t)atoi(mcc); + S1AP_REGISTER_ENB_REQ (msg_p).mnc = (uint16_t)atoi(mnc); + S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(mnc); + S1AP_REGISTER_ENB_REQ (msg_p).default_drx = 0; + AssertFatal((S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) || + (S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3), + "BAD MNC DIGIT LENGTH %d", + S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length); + + + + setting_mme_addresses = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_MME_IP_ADDRESS); + num_mme_address = config_setting_length(setting_mme_addresses); + S1AP_REGISTER_ENB_REQ (msg_p).nb_mme = 0; + + for (j = 0; j < num_mme_address; j++) { + setting_mme_address = config_setting_get_elem(setting_mme_addresses, j); + + if ( !( + config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV4_ADDRESS, (const char **)&ipv4) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV6_ADDRESS, (const char **)&ipv6) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, (const char **)&active) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, (const char **)&preference) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb %u th mme address !\n", + RC.config_file_name, i, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + + S1AP_REGISTER_ENB_REQ (msg_p).nb_mme += 1; + + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4_address,ipv4); + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6_address,ipv6); + + if (strcmp(active, "yes") == 0) { #if defined(ENABLE_USE_MME) - EPC_MODE_ENABLED = 1; + EPC_MODE_ENABLED = 1; #endif - } - if (strcmp(preference, "ipv4") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - } else if (strcmp(preference, "ipv6") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; - } else if (strcmp(preference, "no") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; - } - } + } + if (strcmp(preference, "ipv4") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + } else if (strcmp(preference, "ipv6") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } else if (strcmp(preference, "no") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } + } - - // SCTP SETTING - S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS; - S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = SCTP_IN_STREAMS; + + // SCTP SETTING + S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS; + S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = SCTP_IN_STREAMS; # if defined(ENABLE_USE_MME) - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SCTP_CONFIG); + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SCTP_CONFIG); - if (subsetting != NULL) { - if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_INSTREAMS, &my_int) )) { - S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)my_int; - } + if (subsetting != NULL) { + if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_INSTREAMS, &my_int) )) { + S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)my_int; + } - if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_OUTSTREAMS, &my_int) )) { - S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)my_int; - } - } + if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_OUTSTREAMS, &my_int) )) { + S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)my_int; + } + } #endif - // NETWORK_INTERFACES - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + // NETWORK_INTERFACES + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - if (subsetting != NULL) { - if ( ( - config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, - (const char **)&enb_interface_name_for_S1_MME) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME, - (const char **)&enb_ipv4_address_for_S1_MME) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, - (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, - (const char **)&enb_ipv4_address_for_S1U) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, - &enb_port_for_S1U) - ) - ) { - // S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1U = strdup(enb_interface_name_for_S1U); - cidr = enb_ipv4_address_for_S1U; - address = strtok(cidr, "/"); + if (subsetting != NULL) { + if ( ( + config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, + (const char **)&enb_interface_name_for_S1_MME) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME, + (const char **)&enb_ipv4_address_for_S1_MME) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + (const char **)&enb_interface_name_for_S1U) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + (const char **)&enb_ipv4_address_for_S1U) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, + &enb_port_for_S1U) + ) + ) { + // S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1U = strdup(enb_interface_name_for_S1U); + cidr = enb_ipv4_address_for_S1U; + address = strtok(cidr, "/"); - S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv6 = 0; - S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv6 = 0; + S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4 = 1; - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address); + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address); - /* - in_addr_t ipv4_address; + /* + in_addr_t ipv4_address; - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); - } - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, inet_ntoa(ipv4_address)); - // S1AP_REGISTER_ENB_REQ (msg_p).enb_port_for_S1U = enb_port_for_S1U; + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); + } + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, inet_ntoa(ipv4_address)); + // S1AP_REGISTER_ENB_REQ (msg_p).enb_port_for_S1U = enb_port_for_S1U; - S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1_MME = strdup(enb_interface_name_for_S1_MME); - cidr = enb_ipv4_address_for_S1_MME; - address = strtok(cidr, "/"); - - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, S1AP_REGISTER_ENB_REQ(msg_p).enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" ); - } - */ - } - } - + S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1_MME = strdup(enb_interface_name_for_S1_MME); + cidr = enb_ipv4_address_for_S1_MME; + address = strtok(cidr, "/"); + + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, S1AP_REGISTER_ENB_REQ(msg_p).enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" ); + } + */ + } + } - break; - } - } - } + + break; + } + } + } } } } @@ -4786,25 +4843,25 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name = config_file_name; if (! config_read_file(&cfg, RC.config_file_name)) { - config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); } // Get num eNB instances setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - + if (setting != NULL) RC.nb_inst = config_setting_length(setting); if (RC.nb_inst > 0) { - printf("Number of eNB RRC instances %d\n",RC.nb_inst); - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int)); - for (int i=0;icarrier[CC_id].SIB23_BR; sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2_BR; rrconfig = &configuration->radioresourceconfig_BR[CC_id]; + } else #endif @@ -956,7 +958,6 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); - if (rrconfig->rach_maxHARQ_Msg3Tx) { (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 96d705b075..dc6e85d477 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -214,11 +214,14 @@ init_SI( AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23( ctxt_pP->module_id, - CC_id, + CC_id +#ifdef Rel14 + ,TRUE +#endif #if defined(ENABLE_ITTI) - configuration, + ,configuration + ); #endif - 0); } #endif From 74b7b9627b432b827ad21f321c03a94f0dcf5b6e Mon Sep 17 00:00:00 2001 From: kogo Date: Mon, 7 Aug 2017 15:21:24 +0200 Subject: [PATCH 008/125] activated SIB1 & SIB23 reading from config files and added BR parameters --- openair2/COMMON/rrc_messages_types.h | 87 ++- openair2/ENB_APP/enb_config.c | 990 +++++++++++++++----------- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 500 ++++++++----- openair2/RRC/LITE/rrc_eNB.c | 5 + 4 files changed, 966 insertions(+), 616 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index c7ad211265..aedf9bfa19 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -190,29 +190,74 @@ typedef struct RrcConfigurationReq_s { //SIB1 BR options - uint16_t* hyperSFN_r13[MAX_NUM_CCs]; - long* eDRX_Allowed_r13[MAX_NUM_CCs]; - BOOLEAN_t cellSelectionInfoCE_r13[MAX_NUM_CCs]; - long q_RxLevMinCE_r13[MAX_NUM_CCs]; - long* q_QualMinRSRQ_CE_r13[MAX_NUM_CCs]; - BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13[MAX_NUM_CCs]; - long si_WindowLength_BR_r13[MAX_NUM_CCs]; - long si_RepetitionPattern_r13[MAX_NUM_CCs]; - BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13[MAX_NUM_CCs]; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13[MAX_NUM_CCs]; - uint16_t fdd_UplinkSubframeBitmapBR_r13[MAX_NUM_CCs]; - long startSymbolBR_r13[MAX_NUM_CCs]; - long si_HoppingConfigCommon_r13[MAX_NUM_CCs]; - long* si_ValidityTime_r13[MAX_NUM_CCs]; - BOOLEAN_t freqHoppingParametersDL_r13[MAX_NUM_CCs]; - long* mpdcch_pdsch_HoppingNB_r13[MAX_NUM_CCs]; - BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13[MAX_NUM_CCs]; - long interval_DLHoppingConfigCommonModeA_r13_val[MAX_NUM_CCs]; - BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13[MAX_NUM_CCs]; - long interval_DLHoppingConfigCommonModeB_r13_val[MAX_NUM_CCs]; - long* mpdcch_pdsch_HoppingOffset_r13[MAX_NUM_CCs]; + uint16_t* hyperSFN_r13 [MAX_NUM_CCs]; + long* eDRX_Allowed_r13 [MAX_NUM_CCs]; + BOOLEAN_t cellSelectionInfoCE_r13 [MAX_NUM_CCs]; + long q_RxLevMinCE_r13 [MAX_NUM_CCs]; + long* q_QualMinRSRQ_CE_r13 [MAX_NUM_CCs]; + BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13 [MAX_NUM_CCs]; + +// +kogo -- FIXME -- size 10 is temporary + long si_Narrowband_r13 [MAX_NUM_CCs][32]; + long si_TBS_r13 [MAX_NUM_CCs][32]; + int scheduling_info_br_size [MAX_NUM_CCs]; +// end +kogo + + long si_WindowLength_BR_r13 [MAX_NUM_CCs]; + long si_RepetitionPattern_r13 [MAX_NUM_CCs]; + BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs]; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 [MAX_NUM_CCs]; + uint16_t fdd_UplinkSubframeBitmapBR_r13 [MAX_NUM_CCs]; + long startSymbolBR_r13 [MAX_NUM_CCs]; + long si_HoppingConfigCommon_r13 [MAX_NUM_CCs]; + long* si_ValidityTime_r13 [MAX_NUM_CCs]; + +// +kogo + long systemInfoValueTagSi_r13 [MAX_NUM_CCs][10]; + int system_info_value_tag_SI_size [MAX_NUM_CCs]; +// end +kogo + + BOOLEAN_t freqHoppingParametersDL_r13 [MAX_NUM_CCs]; + long* mpdcch_pdsch_HoppingNB_r13 [MAX_NUM_CCs]; + BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13 [MAX_NUM_CCs]; + long interval_DLHoppingConfigCommonModeA_r13_val [MAX_NUM_CCs]; + BOOLEAN_t interval_DLHoppingConfigCommonModeB_r13 [MAX_NUM_CCs]; + long interval_DLHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs]; + long* mpdcch_pdsch_HoppingOffset_r13 [MAX_NUM_CCs]; + +// +kogo -- rach_CE_LevelInfoList_r13 + long firstPreamble_r13 [MAX_NUM_CCs][4]; + long lastPreamble_r13 [MAX_NUM_CCs][4]; + long ra_ResponseWindowSize_r13 [MAX_NUM_CCs][4]; + long mac_ContentionResolutionTimer_r13 [MAX_NUM_CCs][4]; + long rar_HoppingConfig_r13 [MAX_NUM_CCs][4]; + int rach_CE_LevelInfoList_r13_size [MAX_NUM_CCs]; +// end kogo +// +kogo -- rsrp_range_list + long rsrp_range [MAX_NUM_CCs][3]; + int rsrp_range_list_size [MAX_NUM_CCs]; +// end kogo + +// +kogo -- prach parameters ce list + long prach_config_index [MAX_NUM_CCs][4]; + long prach_freq_offset [MAX_NUM_CCs][4]; + long *prach_StartingSubframe_r13 [MAX_NUM_CCs][4]; + long *maxNumPreambleAttemptCE_r13 [MAX_NUM_CCs][4]; + long numRepetitionPerPreambleAttempt_r13 [MAX_NUM_CCs][4]; + long mpdcch_NumRepetition_RA_r13 [MAX_NUM_CCs][4]; + long prach_HoppingConfig_r13 [MAX_NUM_CCs][4]; + int prach_parameters_list_size [MAX_NUM_CCs]; + long max_available_narrow_band [MAX_NUM_CCs][4][2]; + int max_available_narrow_band_size [MAX_NUM_CCs]; +// end kogo + + +// +kogo n1PUCCH_AN_InfoList_r13 list + long pucch_info_value [MAX_NUM_CCs][4]; + int pucch_info_value_size [MAX_NUM_CCs]; +// end kogo #endif } RrcConfigurationReq; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index d5b0a94f15..d51ceb4d3c 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -98,6 +98,13 @@ #define ENB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers" +#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br" +#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" + +#define ENB_CONFIG_STRING_SI_NARROWBAND_R13 "si_Narrowband_r13" +#define ENB_CONFIG_STRING_SI_TBS_R13 "si_TBS_r13" +#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13 "systemInfoValueTagSi_r13" + #define ENB_CONFIG_STRING_CC_NODE_FUNCTION "node_function" #define ENB_CONFIG_STRING_CC_NODE_TIMING "node_timing" #define ENB_CONFIG_STRING_CC_NODE_SYNCH_REF "node_synch_ref" @@ -130,43 +137,67 @@ #if !defined(Rel10) && !defined(Rel14) #define ENB_CONFIG_STRING_PUCCH_N1_AN "pucch_n1_AN" #endif + +#define ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST "rach_CE_LevelInfoList_r13" +#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" +#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" +#define ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band" +#define ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST "n1PUCCH_AN_InfoList_r13" + +#define ENB_CONFIG_STRING_FIRST_PREAMBLE "firstPreamble_r13" +#define ENB_CONFIG_STRING_LAST_PREAMBLE "lastPreamble_r13" +#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13" +#define ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13" +#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13" +#define ENB_CONFIG_STRING_RSRP_RANGE_BR "rsrp_range_br" +#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br" +#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br" +#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13" +#define ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13" +#define ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13" +#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13" +#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13" +#define ENB_CONFIG_STRING_MAX_AVAILABLE_NARROWBAND "maxavailablenarrowband" +#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" + + #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" -#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" -#define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB" +#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" +#define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB" #define ENB_CONFIG_STRING_PUSCH_HOPPINGMODE "pusch_hoppingMode" #define ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET "pusch_hoppingOffset" -#define ENB_CONFIG_STRING_PUSCH_ENABLE64QAM "pusch_enable64QAM" -#define ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN "pusch_groupHoppingEnabled" -#define ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT "pusch_groupAssignment" -#define ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN "pusch_sequenceHoppingEnabled" +#define ENB_CONFIG_STRING_PUSCH_ENABLE64QAM "pusch_enable64QAM" +#define ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN "pusch_groupHoppingEnabled" +#define ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT "pusch_groupAssignment" +#define ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN "pusch_sequenceHoppingEnabled" #define ENB_CONFIG_STRING_PUSCH_NDMRS1 "pusch_nDMRS1" -#define ENB_CONFIG_STRING_PHICH_DURATION "phich_duration" -#define ENB_CONFIG_STRING_PHICH_RESOURCE "phich_resource" -#define ENB_CONFIG_STRING_SRS_ENABLE "srs_enable" +#define ENB_CONFIG_STRING_PHICH_DURATION "phich_duration" +#define ENB_CONFIG_STRING_PHICH_RESOURCE "phich_resource" +#define ENB_CONFIG_STRING_SRS_ENABLE "srs_enable" #define ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG "srs_BandwidthConfig" -#define ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG "srs_SubframeConfig" +#define ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG "srs_SubframeConfig" #define ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG "srs_ackNackST" #define ENB_CONFIG_STRING_SRS_MAXUPPTS "srs_MaxUpPts" -#define ENB_CONFIG_STRING_PUSCH_PO_NOMINAL "pusch_p0_Nominal" -#define ENB_CONFIG_STRING_PUSCH_ALPHA "pusch_alpha" -#define ENB_CONFIG_STRING_PUCCH_PO_NOMINAL "pucch_p0_Nominal" -#define ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE "msg3_delta_Preamble" +#define ENB_CONFIG_STRING_PUSCH_PO_NOMINAL "pusch_p0_Nominal" +#define ENB_CONFIG_STRING_PUSCH_ALPHA "pusch_alpha" +#define ENB_CONFIG_STRING_PUCCH_PO_NOMINAL "pucch_p0_Nominal" +#define ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE "msg3_delta_Preamble" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1 "pucch_deltaF_Format1" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b "pucch_deltaF_Format1b" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2 "pucch_deltaF_Format2" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A "pucch_deltaF_Format2a" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B "pucch_deltaF_Format2b" #define ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES "rach_numberOfRA_Preambles" -#define ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG "rach_preamblesGroupAConfig" +#define ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG "rach_preamblesGroupAConfig" #define ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA "rach_sizeOfRA_PreamblesGroupA" #define ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA "rach_messageSizeGroupA" #define ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB "rach_messagePowerOffsetGroupB" #define ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP "rach_powerRampingStep" -#define ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER "rach_preambleInitialReceivedTargetPower" +#define ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER "rach_preambleInitialReceivedTargetPower" #define ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX "rach_preambleTransMax" -#define ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE "rach_raResponseWindowSize" -#define ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER "rach_macContentionResolutionTimer" -#define ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX "rach_maxHARQ_Msg3Tx" +#define ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE "rach_raResponseWindowSize" +#define ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER "rach_macContentionResolutionTimer" +#define ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX "rach_maxHARQ_Msg3Tx" #define ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE "pcch_default_PagingCycle" #define ENB_CONFIG_STRING_PCCH_NB "pcch_nB" #define ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF "bcch_modificationPeriodCoeff" @@ -904,15 +935,35 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_t cfg; config_setting_t *setting = NULL; config_setting_t *subsetting = NULL; - config_setting_t *setting_component_carriers = NULL; - config_setting_t *component_carrier = NULL; - config_setting_t *setting_srb1 = NULL; - config_setting_t *setting_mme_addresses = NULL; - config_setting_t *setting_mme_address = NULL; - config_setting_t *setting_ru = NULL; - config_setting_t *setting_enb = NULL; - config_setting_t *setting_otg = NULL; - config_setting_t *subsetting_otg = NULL; + config_setting_t *setting_component_carriers = NULL; + config_setting_t *component_carrier = NULL; + config_setting_t *setting_srb1 = NULL; + config_setting_t *setting_mme_addresses = NULL; + config_setting_t *setting_mme_address = NULL; + config_setting_t *setting_ru = NULL; + config_setting_t *setting_enb = NULL; + config_setting_t *setting_otg = NULL; + config_setting_t *subsetting_otg = NULL; + config_setting_t *scheduling_info_br_list = NULL; + config_setting_t *scheduling_info_br = NULL; + config_setting_t *system_info_value_tag_SI_list = NULL; + config_setting_t *system_info_value_tag_SI = NULL; + + config_setting_t *rach_ce_level_info_r13_list = NULL; + config_setting_t *rach_ce_level_info_r13 = NULL; + + config_setting_t *rsrp_range_list = NULL; + config_setting_t *rsrp_range_member = NULL; + + config_setting_t *prach_parameters_ce_r13_list = NULL; + config_setting_t *prach_parameters_ce_r13 = NULL; + + config_setting_t *max_available_narrow_band_list = NULL; + config_setting_t *max_available_narrow_band = NULL; + + config_setting_t *n1_pucch_AN_info_r13_list = NULL; + config_setting_t *n1_pucch_AN_info_r13 = NULL; + #if defined(Rel14) config_setting_t *setting_br13 = NULL; #endif // REL14 @@ -922,6 +973,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int num_otg_elements = 0; int num_component_carriers = 0; int j = 0; + int sched_info_idx = 0; + int sys_info_idx = 0; libconfig_int enb_id = 0; int nb_cc = 0; @@ -958,7 +1011,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int rx_gain = 0; libconfig_int prach_root = 0; libconfig_int prach_config_index = 0; - const char* prach_high_speed = NULL; + const char* prach_high_speed = NULL; libconfig_int prach_zero_correlation = 0; libconfig_int prach_freq_offset = 0; libconfig_int pucch_delta_shift = 0; @@ -972,10 +1025,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int pusch_n_SB = 0; const char * pusch_hoppingMode = NULL; libconfig_int pusch_hoppingOffset = 0; - const char* pusch_enable64QAM = NULL; - const char* pusch_groupHoppingEnabled = NULL; + const char* pusch_enable64QAM = NULL; + const char* pusch_groupHoppingEnabled = NULL; libconfig_int pusch_groupAssignment = 0; - const char* pusch_sequenceHoppingEnabled = NULL; + const char* pusch_sequenceHoppingEnabled = NULL; libconfig_int pusch_nDMRS1 = 0; const char* phich_duration = NULL; const char* phich_resource = NULL; @@ -1017,6 +1070,26 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int ue_TimersAndConstants_n311 = 0; libconfig_int ue_TransmissionMode = 0; + libconfig_int si_Narrowband_r13 = 0; + libconfig_int si_TBS_r13 = 0; + + libconfig_int systemInfoValueTagSi_r13 = 0; + + libconfig_int firstPreamble_r13 = 0; + libconfig_int lastPreamble_r13 = 0; + libconfig_int ra_ResponseWindowSize_r13 = 0; + libconfig_int mac_ContentionResolutionTimer_r13 = 0; + libconfig_int rar_HoppingConfig_r13 = 0; + libconfig_int rsrp_range_br = 0; + libconfig_int prach_config_index_br = 0; + libconfig_int prach_freq_offset_br = 0; + libconfig_int prach_StartingSubframe_r13 = 0; + libconfig_int maxNumPreambleAttemptCE_r13 = 0; + libconfig_int numRepetitionPerPreambleAttempt_r13 = 0; + libconfig_int mpdcch_NumRepetition_RA_r13 = 0; + libconfig_int prach_HoppingConfig_r13 = 0; + libconfig_int maxavailablenarrowband = 0; + libconfig_int pucch_info_value = 0; libconfig_int srb1_timer_poll_retransmit = 0; libconfig_int srb1_timer_reordering = 0; @@ -2140,350 +2213,350 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { switch (pcch_defaultPagingCycle) { case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; } if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; } else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; } else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; } else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; } else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; } else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); switch (bcch_modificationPeriodCoeff) { case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); - break; + break; } switch (ue_TimersAndConstants_t300) { case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; + break; case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; + break; case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; + break; case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; + break; case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; + break; case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; + break; case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; + break; case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; } switch (ue_TimersAndConstants_t301) { case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + break; case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + break; case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; } switch (ue_TimersAndConstants_t310) { case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; } switch (ue_TimersAndConstants_t311) { case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; case 3110: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; case 31100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; } switch (ue_TimersAndConstants_n310) { case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; } switch (ue_TimersAndConstants_n311) { case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; } switch (ue_TransmissionMode) { case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; } #ifdef Rel14 setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); @@ -2492,10 +2565,159 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else { puts("setting BR is NOT NULL"); } - if (setting_br13 != NULL) { + + if (setting_br13 != NULL) { + + scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); + int num_scheduling_info = config_setting_length(scheduling_info_br_list); + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; + + for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) + { + scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); + if (! config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) + ) + { + AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; + } + + system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); + int num_system_info = config_setting_length(system_info_value_tag_SI_list); + RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; + + for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) + { + system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); + if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) + { + AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; + } + + + rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); + int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; + int rach_info_level_idx; + for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) + { + rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); + if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13; + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13; + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13; + + } + + rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); + int num_rsrp_list = config_setting_length(rsrp_range_list); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; + int rsrp_range_idx; + for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) + { + rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); + if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rsrp_range %d!\n", + RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; + } + + prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); + int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; + int prach_parameters_index; + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index) + { + prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index); + if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = numRepetitionPerPreambleAttempt_r13; + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = mpdcch_NumRepetition_RA_r13; + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = prach_HoppingConfig_r13; + + if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; + } + + if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; + } + + } + + + // TODO +// max_available_narrow_band = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); + + + n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); + + int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = num_pucch_an_info; + int pucch_info_idx; + for (pucch_info_idx = 0; pucch_info_idx < num_pucch_an_info; ++pucch_info_idx) + { + n1_pucch_AN_info_r13 = config_setting_get_elem(n1_pucch_AN_info_r13_list, pucch_info_idx); + if (! (config_setting_lookup_int(n1_pucch_AN_info_r13, ENB_CONFIG_STRING_PUCCH_INFO_VALUE, &pucch_info_value)) ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, n1_pucch_AN_info_list_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; + } // Rel8 RadioResourceConfigCommon Parameters if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) @@ -2554,58 +2776,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { continue; // FIXME this prevents segfaults below, not sure what happens after function exit } - printf("[DEBUGGING][KOGO] frame type %s\n", frame_type); - printf("[DEBUGGING][KOGO] prach_root %d\n", prach_root); - printf("[DEBUGGING][KOGO] prach_config_index %d\n", prach_config_index); - printf("[DEBUGGING][KOGO] prach_high_speed %s\n", prach_high_speed); - printf("[DEBUGGING][KOGO] prach_zero_correlation %d\n", prach_zero_correlation); - printf("[DEBUGGING][KOGO] prach_freq_offset %d\n", prach_freq_offset); - printf("[DEBUGGING][KOGO] pucch_delta_shift %d\n", pucch_delta_shift); - printf("[DEBUGGING][KOGO] pucch_nRB_CQI %d\n", pucch_nRB_CQI); - printf("[DEBUGGING][KOGO] pucch_nCS_AN %d\n", pucch_nCS_AN); - printf("[DEBUGGING][KOGO] pucch_n1_AN %d\n", pucch_n1_AN); - printf("[DEBUGGING][KOGO] pdsch_referenceSignalPower %d\n", pdsch_referenceSignalPower); - printf("[DEBUGGING][KOGO] pdsch_p_b %d\n", pdsch_p_b); - printf("[DEBUGGING][KOGO] pusch_n_SB %d\n", pusch_n_SB); - printf("[DEBUGGING][KOGO] pusch_hoppingMode %s\n", pusch_hoppingMode); - printf("[DEBUGGING][KOGO] pusch_hoppingOffset %d\n", pusch_hoppingOffset); - printf("[DEBUGGING][KOGO] pusch_enable64QAM %s\n", pusch_enable64QAM); - printf("[DEBUGGING][KOGO] pusch_groupHoppingEnabled %s\n", pusch_groupHoppingEnabled); - printf("[DEBUGGING][KOGO] pusch_groupAssignment %d\n", pusch_groupAssignment); - printf("[DEBUGGING][KOGO] pusch_sequenceHoppingEnabled %s\n", pusch_sequenceHoppingEnabled); - printf("[DEBUGGING][KOGO] pusch_nDMRS1 %d\n", pusch_nDMRS1); - printf("[DEBUGGING][KOGO] phich_duration %s\n", phich_duration); - printf("[DEBUGGING][KOGO] phich_resource %s\n", phich_resource); - printf("[DEBUGGING][KOGO] srs_enable %s\n", srs_enable); - printf("[DEBUGGING][KOGO] pusch_p0_Nominal %d\n", pusch_p0_Nominal); - printf("[DEBUGGING][KOGO] pusch_alpha %s\n", pusch_alpha); - printf("[DEBUGGING][KOGO] pucch_p0_Nominal %d\n", pucch_p0_Nominal); - printf("[DEBUGGING][KOGO] msg3_delta_Preamble %d\n", msg3_delta_Preamble); - printf("[DEBUGGING][KOGO] pucch_deltaF_Format1 %s\n", pucch_deltaF_Format1); - printf("[DEBUGGING][KOGO] pucch_deltaF_Format1b %s\n", pucch_deltaF_Format1b); - printf("[DEBUGGING][KOGO] pucch_deltaF_Format2 %s\n", pucch_deltaF_Format2); - printf("[DEBUGGING][KOGO] pucch_deltaF_Format2a %s\n", pucch_deltaF_Format2a); - printf("[DEBUGGING][KOGO] pucch_deltaF_Format2b %s\n", pucch_deltaF_Format2b); - printf("[DEBUGGING][KOGO] rach_numberOfRA_Preambles %d\n", rach_numberOfRA_Preambles); - printf("[DEBUGGING][KOGO] rach_preamblesGroupAConfig %s\n", rach_preamblesGroupAConfig); - printf("[DEBUGGING][KOGO] rach_powerRampingStep %d\n", rach_powerRampingStep); - printf("[DEBUGGING][KOGO] rach_preambleInitialReceivedTargetPower %d\n", rach_preambleInitialReceivedTargetPower); - printf("[DEBUGGING][KOGO] rach_preambleTransMax %d\n", rach_preambleTransMax); - printf("[DEBUGGING][KOGO] rach_raResponseWindowSize %d\n", rach_raResponseWindowSize); - printf("[DEBUGGING][KOGO] rach_macContentionResolutionTimer %d\n", rach_macContentionResolutionTimer); - printf("[DEBUGGING][KOGO] rach_maxHARQ_Msg3Tx %d\n", rach_maxHARQ_Msg3Tx); - printf("[DEBUGGING][KOGO] pcch_default_PagingCycle %d\n", pcch_defaultPagingCycle); - printf("[DEBUGGING][KOGO] pcch_nB %s\n", pcch_nB); - printf("[DEBUGGING][KOGO] bcch_modificationPeriodCoeff %d\n", bcch_modificationPeriodCoeff); - printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t300 %d\n", ue_TimersAndConstants_t300); - printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t301 %d\n", ue_TimersAndConstants_t301); - printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t310 %d\n", ue_TimersAndConstants_t310); - printf("[DEBUGGING][KOGO] ue_TimersAndConstants_t311 %d\n", ue_TimersAndConstants_t311); - printf("[DEBUGGING][KOGO] ue_TimersAndConstants_n310 %d\n", ue_TimersAndConstants_n310); - printf("[DEBUGGING][KOGO] ue_TimersAndConstants_n311 %d\n", ue_TimersAndConstants_n311); - printf("[DEBUGGING][KOGO] ue_TransmissionMode %d\n", ue_TransmissionMode); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; if ((prach_root <0) || (prach_root > 1023)) @@ -3028,7 +3198,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; - printf("[KOGO][DEBUGGING] check value here: value: %ld -- index %d\n", RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles, j); + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) AssertFatal(0, @@ -3078,64 +3248,64 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); @@ -3640,193 +3810,193 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", - RC.config_file_name, i); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", + RC.config_file_name, i); RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); - *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; - } + { + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; + } else - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; - } + { + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; + } else - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", - RC.config_file_name, i); + { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); - } - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - } + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; + + } else - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || - !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); + { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || + !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); - } - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + } + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + + } else - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); - } - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + } + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) - { + { RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; - } + } else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) - { + { RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - } + } else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; - } + } else - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; /////SIB2 Parameters if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; - } + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; + } else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) - { - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", - RC.config_file_name, i); + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); - } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + } + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; + + } else - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + } else - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; - } + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + } #endif } diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 9f08d45bc3..413d6c77c0 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -506,188 +506,222 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, ////Rel1310 #if defined(ENABLE_ITTI) if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) - { + { sib1_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); memset(sib1_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); SystemInformationBlockType1_v1310_IEs_t *sib1_1310 = sib1_1250->nonCriticalExtension; if (configuration->hyperSFN_r13[CC_id]) - { - sib1_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type - memset(sib1_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); - sib1_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_1310->hyperSFN_r13->size = 2; - sib1_1310->hyperSFN_r13->bits_unused = 6; - } + { + sib1_1310->hyperSFN_r13 = calloc(1, sizeof(BIT_STRING_t)); // type + memset(sib1_1310->hyperSFN_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->hyperSFN_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->hyperSFN_r13->buf, configuration->hyperSFN_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_1310->hyperSFN_r13->size = 2; + sib1_1310->hyperSFN_r13->bits_unused = 6; + } else - sib1_1310->hyperSFN_r13 = NULL; + sib1_1310->hyperSFN_r13 = NULL; if (configuration->eDRX_Allowed_r13[CC_id]) - { - sib1_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); - *sib1_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; - } + { + sib1_1310->eDRX_Allowed_r13 = calloc(1, sizeof(long)); + *sib1_1310->eDRX_Allowed_r13 = *configuration->eDRX_Allowed_r13[CC_id]; + } else - sib1_1310->eDRX_Allowed_r13 = NULL; // long* + sib1_1310->eDRX_Allowed_r13 = NULL; // long* if (configuration->cellSelectionInfoCE_r13[CC_id]) - { - sib1_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); - memset(sib1_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); - sib1_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long - if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) - { - sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); - *sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; - } - else - sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; - } + { + sib1_1310->cellSelectionInfoCE_r13 = calloc(1, sizeof(CellSelectionInfoCE_r13_t)); + memset(sib1_1310->cellSelectionInfoCE_r13, 0, sizeof(CellSelectionInfoCE_r13_t)); + sib1_1310->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = configuration->q_RxLevMinCE_r13[CC_id]; // (Q_RxLevMin_t) long + if (configuration->q_QualMinRSRQ_CE_r13[CC_id]) + { + sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = calloc(1, sizeof(long)); + *sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = *configuration->q_QualMinRSRQ_CE_r13[CC_id]; + } + else + sib1_1310->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; + } else - sib1_1310->cellSelectionInfoCE_r13 = NULL; + sib1_1310->cellSelectionInfoCE_r13 = NULL; if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 - = configuration->si_WindowLength_BR_r13[CC_id]; // 0 + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 + = configuration->si_WindowLength_BR_r13[CC_id]; // 0 - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 - = configuration->si_RepetitionPattern_r13[CC_id]; // 0 + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 + = configuration->si_RepetitionPattern_r13[CC_id]; // 0 - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); - SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); - memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); - schedulinginfo_br_13->si_Narrowband_r13 = 1; - schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 - = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); - memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, - sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); + memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t)); - if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + int num_sched_info_br = configuration->scheduling_info_br_size[CC_id]; + int index; + for (index = 0; index < num_sched_info_br; ++index) + { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; - } - else - { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + if (configuration->si_Narrowband_r13[CC_id][index] && configuration->si_TBS_r13[CC_id][index]) + { + schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; + schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; + } + else + { + schedulinginfo_br_13->si_Narrowband_r13 = 1; + schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; + } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; - } + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); - memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], - 2 * sizeof(uint8_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); + + if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + } + else + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; + } + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], + 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 - = configuration->si_HoppingConfigCommon_r13[CC_id]; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13 + = configuration->si_HoppingConfigCommon_r13[CC_id]; - if (configuration->si_ValidityTime_r13[CC_id]) - { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); - memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); - *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 - = *configuration->si_ValidityTime_r13[CC_id]; - } - else - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; + if (configuration->si_ValidityTime_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); + *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id]; + } + else + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; + } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); - } + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13; + + int num_system_info_value_tag = configuration->system_info_value_tag_SI_size[CC_id]; + for (index = 0; index < num_system_info_value_tag; ++index) + { + if (configuration->systemInfoValueTagSi_r13[CC_id][index]) + { + systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index]; + } + else + { + systemInfoValueTagSi_r13 = 0; + } + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + } + + } else - sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL; + } sib1_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); memset(sib1_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); /////Rel1320 SystemInformationBlockType1_v1320_IEs_t *sib1_1320 = sib1_1310->nonCriticalExtension; - + if (configuration->freqHoppingParametersDL_r13[CC_id]) - { - sib1_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - memset(sib1_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + { + sib1_1320->freqHoppingParametersDL_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13)); - if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) - { - sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); - *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; - } - else - sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; + if (configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = calloc(1, sizeof(long)); + *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->mpdcch_pdsch_HoppingNB_r13[CC_id]; + } + else + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13)); - if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) - { - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } - else - { - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } + if (configuration->interval_DLHoppingConfigCommonModeA_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); + memset(sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13, 0, sizeof(struct SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13)); - if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) - { - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } - else - { - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; - sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } - - if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) - { + if (configuration->interval_DLHoppingConfigCommonModeB_r13[CC_id]) + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->present = SystemInformationBlockType1_v1320_IEs__freqHoppingParametersDL_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + sib1_1320->freqHoppingParametersDL_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } - sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); - *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; - } - else - sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + if (configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]) + { - } + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = calloc(1, sizeof(long)); + *sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->mpdcch_pdsch_HoppingOffset_r13[CC_id]; + } + else + sib1_1320->freqHoppingParametersDL_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + + } else - sib1_1320->freqHoppingParametersDL_r13 = NULL; + sib1_1320->freqHoppingParametersDL_r13 = NULL; sib1_1320->nonCriticalExtension = NULL; - } + } #else sib1_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); memset(sib1_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); @@ -826,6 +860,10 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, return((enc_rval.encoded+7)/8); } + + + + uint8_t do_SIB23(uint8_t Mod_id, int CC_id @@ -932,7 +970,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif #if defined(ENABLE_ITTI) - + puts("INSIDE ITTI !!!!"); (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = rrconfig->rach_numberOfRA_Preambles; (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; @@ -959,25 +997,45 @@ uint8_t do_SIB23(uint8_t Mod_id, memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); if (rrconfig->rach_maxHARQ_Msg3Tx) - { + { (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = rrconfig->rach_maxHARQ_Msg3Tx; // to be re-initialized when we find the enum - } + } else - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; + { + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; + } (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t)); - rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = 0; - rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = 63; - rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80; - rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; - rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); + int num_rach_ce_level_info = configuration->rach_CE_LevelInfoList_r13_size[CC_id]; + int index; + for (index = 0; index < num_rach_ce_level_info; ++index) + { + if (configuration->rach_CE_LevelInfoList_r13_size[CC_id]) + { + rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = configuration->firstPreamble_r13[CC_id][index]; + rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = configuration->lastPreamble_r13[CC_id][index]; + rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = configuration->ra_ResponseWindowSize_r13[CC_id][index]; + rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = configuration->mac_ContentionResolutionTimer_r13[CC_id][index]; + rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = configuration->rar_HoppingConfig_r13[CC_id][index]; + } + else + { + rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = 0; + rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = 63; + rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80; + rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; + rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; + } + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo // BCCH-Config @@ -1099,68 +1157,139 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; if (rrconfig->prach_ConfigCommon_v1310) - { + { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); - RSRP_Range_t rsrp_range = 60; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); + RSRP_Range_t rsrp_range; + int num_rsrp_range = configuration->rsrp_range_list_size[CC_id]; + int rsrp_index; + for (rsrp_index = 0; rsrp_index < num_rsrp_range; ++rsrp_index) + { + if (configuration->rsrp_range_list_size[CC_id]) + { + rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; + } + else + { + rsrp_range = 60; + } + + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); + } + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL; - if (rrconfig->mpdcch_startSF_CSS_RA_r13) - { - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); + memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - if (*rrconfig->mpdcch_startSF_CSS_RA_r13) - { - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; - } - } + if (*rrconfig->mpdcch_startSF_CSS_RA_r13) + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; + } + } if (rrconfig->prach_HoppingOffset_r13) - { - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *rrconfig->prach_HoppingOffset_r13; - } + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *rrconfig->prach_HoppingOffset_r13; + } else - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; + } PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t)); memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); - prach_parametersce_r13->prach_ConfigIndex_r13 = 3; - prach_parametersce_r13->prach_FreqOffset_r13 = 1; - prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long)); - *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3; + int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id]; + int prach_parameters_index; + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index) + { + if (configuration->prach_parameters_list_size[CC_id]) + { + prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index]; - prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; - long maxavailablenarrowband = 2; - ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) + { + *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + } - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; - prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); - } + if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) + { + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; + } + + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->prach_ConfigIndex_r13 = 3; + prach_parametersce_r13->prach_FreqOffset_r13 = 1; + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long)); + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3; + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + } + + long maxavailablenarrowband = 2; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + } + + } else - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; - + { + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; + } (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); - long pucch_info_value1 = 0; - long pucch_info_value2 = 2; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1); - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); + + int num_pucch_info_list = configuration->pucch_info_value_size[CC_id]; + int pucch_index; + long pucch_info_value; + for (pucch_index = 0; pucch_index < num_pucch_info_list; ++pucch_index) + { + if (configuration->pucch_info_value_size[CC_id]) + { + pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index]; + } + else + { + pucch_info_value = 0; + } + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value); + } + +// +kogo FIXME +// ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; @@ -1304,8 +1433,8 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long)); *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3; - prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; + long maxavailablenarrowband = 2; ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); @@ -1315,6 +1444,7 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); long pucch_info_value1 = 0; long pucch_info_value2 = 2; diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index dc6e85d477..dc4c84384b 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -127,6 +127,7 @@ init_SI( ) //----------------------------------------------------------------------------- { + puts("[DEBUGGING][KOGO] Inside init_SI function ..."); #if defined(Rel10) || defined(Rel14) int i; #endif @@ -167,6 +168,7 @@ init_SI( AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1!=NULL,PROTOCOL_RRC_CTXT_FMT" init_SI: FATAL, no memory for SIB1 allocated\n", PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); + puts("[DEBUGGING][KOGO] --- Calling SIB1"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id #ifdef Rel14 ,FALSE @@ -183,6 +185,7 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = 0; if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t*) malloc16(32); + puts("[DEBUGGING][KOGO] --- Calling SIB1 -- second time"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id ,TRUE #if defined(ENABLE_ITTI) @@ -194,6 +197,7 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB"); + puts("[DEBUGGING][KOGO] ---> Calling SIB23 ---> first time"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23( ctxt_pP->module_id, CC_id @@ -212,6 +216,7 @@ init_SI( if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB"); + puts("[DEBUGGING][KOGO] ---> Calling SIB23 ---> second time"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23( ctxt_pP->module_id, CC_id From f613ecfa13e227848a0fd24310beb3f4a2d3fba6 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 7 Aug 2017 23:30:47 -0700 Subject: [PATCH 009/125] minor change for BL/CE in asn1_msg.c --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 0b0b6aee2e..4de89bf63b 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -907,7 +907,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #if defined(Rel10) || defined(Rel14) - if (MBMS_flag > 0) { + if ((MBMS_flag > 0) && (brOption==FALSE)) { sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); memset(sib13_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); sib13_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920; From 46c3d2b5bb4d9b514948d266da88d9e95aa7f754 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Wed, 9 Aug 2017 16:13:00 +0200 Subject: [PATCH 010/125] copying RA_Template BR parameters to UE_template --- openair2/LAYER2/MAC/defs.h | 7 + .../LAYER2/MAC/eNB_scheduler_primitives.c | 11 +- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 6 +- openair2/LAYER2/MAC/proto.h | 6 +- ray_enb_dev.config | 2 + ray_enb_dev.creator | 1 + ray_enb_dev.files | 7811 +++++++++++++++++ ray_enb_dev.includes | 144 + 8 files changed, 7985 insertions(+), 3 deletions(-) create mode 100644 ray_enb_dev.config create mode 100644 ray_enb_dev.creator create mode 100644 ray_enb_dev.files create mode 100644 ray_enb_dev.includes diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 2c8b613b1d..075c611345 100644 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -752,6 +752,13 @@ typedef struct { #ifdef LOCALIZATION eNB_UE_estimated_distances distance; #endif + +#ifdef Rel14 + uint8_t rach_resource_type; + + +#endif + } UE_TEMPLATE; /*! \brief scheduling control information set through an API (not used)*/ diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index dceff068d3..52daec2523 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -647,7 +647,11 @@ void dump_ue_list(UE_list_t *listP, int ul_flag) } } -int add_new_ue(module_id_t mod_idP, int cc_idP, rnti_t rntiP,int harq_pidP) +int add_new_ue(module_id_t mod_idP, int cc_idP, rnti_t rntiP,int harq_pidP + #ifdef Rel14 + ,uint8_t rach_resource_type + #endif + ) { int UE_id; int i, j; @@ -669,6 +673,11 @@ int add_new_ue(module_id_t mod_idP, int cc_idP, rnti_t rntiP,int harq_pidP) UE_list->ordered_ULCCids[0][UE_id] = cc_idP; UE_list->num_UEs++; UE_list->active[UE_id] = TRUE; + +#ifdef Rel14 + UE_list->UE_template[cc_idP][UE_id].rach_resource_type = rach_resource_type ; +#endif + memset((void*)&UE_list->UE_sched_ctrl[UE_id],0,sizeof(UE_sched_ctrl)); memset((void*)&UE_list->eNB_UE_stats[cc_idP][UE_id],0,sizeof(eNB_UE_STATS)); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 660bd80adb..53d36476f6 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -368,7 +368,11 @@ void rx_sdu(const module_id_t enb_mod_idP, LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d CCCH: Received Msg3: length %d, offset %ld\n", enb_mod_idP,CC_idP,frameP,rx_lengths[i],payload_ptr-sduP); - if ((UE_id=add_new_ue(enb_mod_idP,CC_idP,eNB->common_channels[CC_idP].RA_template[ii].rnti,harq_pid)) == -1 ) { + if ((UE_id=add_new_ue(enb_mod_idP,CC_idP,eNB->common_channels[CC_idP].RA_template[ii].rnti,harq_pid + #ifdef Rel14 + ,eNB->common_channels[CC_idP].RA_template[ii].rach_resource_type + #endif + )) == -1 ) { AssertFatal(1==0,"[MAC][eNB] Max user count reached\n"); // kill RA procedure } else diff --git a/openair2/LAYER2/MAC/proto.h b/openair2/LAYER2/MAC/proto.h index 63e717f90e..d36e9cd881 100644 --- a/openair2/LAYER2/MAC/proto.h +++ b/openair2/LAYER2/MAC/proto.h @@ -521,7 +521,11 @@ int to_prb(int); int to_rbg(int); int l2_init(LTE_DL_FRAME_PARMS *frame_parms,int eMBMS_active, char *uecap_xer, uint8_t cba_group_active, uint8_t HO_active); int mac_init(void); -int add_new_ue(module_id_t Mod_id, int CC_id, rnti_t rnti,int harq_pid); +int add_new_ue(module_id_t Mod_id, int CC_id, rnti_t rnti,int harq_pid + #ifdef Rel14 + ,uint8_t rach_resource_type + #endif + ); int rrc_mac_remove_ue(module_id_t Mod_id, rnti_t rntiP); diff --git a/ray_enb_dev.config b/ray_enb_dev.config new file mode 100644 index 0000000000..e0284f4257 --- /dev/null +++ b/ray_enb_dev.config @@ -0,0 +1,2 @@ +// Add predefined macros for your project here. For example: +// #define THE_ANSWER 42 diff --git a/ray_enb_dev.creator b/ray_enb_dev.creator new file mode 100644 index 0000000000..e94cbbd302 --- /dev/null +++ b/ray_enb_dev.creator @@ -0,0 +1 @@ +[General] diff --git a/ray_enb_dev.files b/ray_enb_dev.files new file mode 100644 index 0000000000..434bed8ab5 --- /dev/null +++ b/ray_enb_dev.files @@ -0,0 +1,7811 @@ +cmake_targets/at_commands/CMakeLists.txt +cmake_targets/autotests/templates/index.html +cmake_targets/autotests/templates/testcase_report.html +cmake_targets/autotests/tools/autotest_analyser.py +cmake_targets/autotests/tools/configure_cots_bandrich_ue.py +cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py +cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py +cmake_targets/autotests/tools/configure_usrpb210.py +cmake_targets/autotests/tools/find_usb_path.bash +cmake_targets/autotests/tools/free_mem.bash +cmake_targets/autotests/tools/git-retry.sh +cmake_targets/autotests/tools/iperf3_script +cmake_targets/autotests/tools/iperf3_script_phone +cmake_targets/autotests/tools/iperf_script +cmake_targets/autotests/tools/iperf_script_phone +cmake_targets/autotests/tools/lib_autotest.py +cmake_targets/autotests/tools/lib_autotest_analyser.py +cmake_targets/autotests/tools/remove_old_programs.bash +cmake_targets/autotests/tools/run_gdb +cmake_targets/autotests/tools/search_repl.py +cmake_targets/autotests/tools/wdial.bandrich.conf +cmake_targets/autotests/v2/actions/alu_epc.bash +cmake_targets/autotests/v2/actions/alu_epc_stop.bash +cmake_targets/autotests/v2/actions/alu_hss.bash +cmake_targets/autotests/v2/actions/bandrich.txt +cmake_targets/autotests/v2/actions/client_tcp.bash +cmake_targets/autotests/v2/actions/client_udp.bash +cmake_targets/autotests/v2/actions/clone_repository.bash +cmake_targets/autotests/v2/actions/compilation.bash +cmake_targets/autotests/v2/actions/execution.bash +cmake_targets/autotests/v2/actions/execution_compile.bash +cmake_targets/autotests/v2/actions/modem.py +cmake_targets/autotests/v2/actions/run_enb.bash +cmake_targets/autotests/v2/actions/server_tcp.bash +cmake_targets/autotests/v2/actions/server_udp.bash +cmake_targets/autotests/v2/actions/start_3276.bash +cmake_targets/autotests/v2/actions/start_3276.py +cmake_targets/autotests/v2/actions/start_bandrich.bash +cmake_targets/autotests/v2/actions/start_bandrich.py +cmake_targets/autotests/v2/actions/stop_3276.py +cmake_targets/autotests/v2/actions/stop_bandrich.py +cmake_targets/autotests/v2/actions/wvdial.3276.conf +cmake_targets/autotests/v2/actions/wvdial.bandrich.conf +cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf +cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf +cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf +cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf +cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf +cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf +cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf +cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf +cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf +cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf +cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf +cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf +cmake_targets/autotests/v2/alu_test.py +cmake_targets/autotests/v2/connection.py +cmake_targets/autotests/v2/machine_list.py +cmake_targets/autotests/v2/main.py +cmake_targets/autotests/v2/task.py +cmake_targets/autotests/v2/utils.py +cmake_targets/autotests/core.py +cmake_targets/autotests/log.py +cmake_targets/autotests/openair.py +cmake_targets/autotests/README.txt +cmake_targets/autotests/run_compilation_autotests.bash +cmake_targets/autotests/run_exec_autotests.bash +cmake_targets/autotests/run_exec_lte-softmodem_tests.py +cmake_targets/autotests/test_case_list.xml +cmake_targets/autotests/testsuite_ue_noS1.xml +cmake_targets/autotests/testsuite_ue_noS1_TCL.xml +cmake_targets/doxygen/CMakeLists.txt +cmake_targets/epc_test/CMakeLists.template +cmake_targets/log/lte-softmodem.Rel14.txt +cmake_targets/log/oai_usrpdevif.Rel14.txt +cmake_targets/lte-simulators/CMakeLists.txt +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/CXX.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn1_constants.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_application.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_internal.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_system.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/converter-sample.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_compare.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_ies_defs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_xer_print.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn1_constants.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_application.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_internal.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_system.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/converter-sample.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_ies_defs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_xer_print.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn1_constants.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_application.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_internal.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_system.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/converter-sample.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/cmake.check_cache +cmake_targets/lte_build_oai/build/CMakeFiles/CMakeDirectoryInformation.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CMakeOutput.log +cmake_targets/lte_build_oai/build/CMakeFiles/CMakeRuleHashes.txt +cmake_targets/lte_build_oai/build/CMakeFiles/messages.xml +cmake_targets/lte_build_oai/build/CMakeFiles/messages_xml.h +cmake_targets/lte_build_oai/build/CMakeFiles/progress.marks +cmake_targets/lte_build_oai/build/CMakeFiles/TargetDirectories.txt +cmake_targets/lte_build_oai/build/cmake_install.cmake +cmake_targets/lte_build_oai/build/CMakeCache.txt +cmake_targets/lte_build_oai/build/libGTPV1U.a +cmake_targets/lte_build_oai/build/libHASHTABLE.a +cmake_targets/lte_build_oai/build/libITTI.a +cmake_targets/lte_build_oai/build/libL2.a +cmake_targets/lte_build_oai/build/libLFDS.a +cmake_targets/lte_build_oai/build/libLFDS7.a +cmake_targets/lte_build_oai/build/libLIB_NAS_UE.a +cmake_targets/lte_build_oai/build/liboai_device.so +cmake_targets/lte_build_oai/build/liboai_usrpdevif.so +cmake_targets/lte_build_oai/build/libPHY.a +cmake_targets/lte_build_oai/build/libRRC_LIB.a +cmake_targets/lte_build_oai/build/libS1AP_ENB.a +cmake_targets/lte_build_oai/build/libS1AP_LIB.a +cmake_targets/lte_build_oai/build/libSCHED_LIB.a +cmake_targets/lte_build_oai/build/libSCTP_CLIENT.a +cmake_targets/lte_build_oai/build/libSECU_CN.a +cmake_targets/lte_build_oai/build/libSECU_OSA.a +cmake_targets/lte_build_oai/build/libUDP.a +cmake_targets/lte_build_oai/build/libUTIL.a +cmake_targets/lte_build_oai/build/lte-softmodem +cmake_targets/lte_build_oai/CMakeLists.txt +cmake_targets/lte_noS1_build_oai/CMakeLists.template +cmake_targets/nas_sim_tools/CMakeLists.txt +cmake_targets/oaisim_build_oai/CMakeLists.template +cmake_targets/oaisim_mme_build_oai/CMakeLists.template +cmake_targets/oaisim_noS1_build_oai/CMakeLists.template +cmake_targets/s1c_mme_test/CMakeLists.template +cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff +cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff +cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff +cmake_targets/tools/MODULES/cmake_useful.cmake +cmake_targets/tools/MODULES/CMakeParseArguments.cmake +cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake +cmake_targets/tools/MODULES/CMakeUserUseBison.cmake +cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake +cmake_targets/tools/MODULES/FindFreeDiameter.cmake +cmake_targets/tools/MODULES/FindGCCXML.cmake +cmake_targets/tools/MODULES/FindGcrypt.cmake +cmake_targets/tools/MODULES/FindGnuTLS.cmake +cmake_targets/tools/MODULES/FindKbuild.cmake +cmake_targets/tools/MODULES/FindLibXml2.cmake +cmake_targets/tools/MODULES/FindMySQL.cmake +cmake_targets/tools/MODULES/FindNettle.cmake +cmake_targets/tools/MODULES/FindPostgreSQL.cmake +cmake_targets/tools/MODULES/FindSCTP.cmake +cmake_targets/tools/MODULES/Kbuild.cmake +cmake_targets/tools/MODULES/kbuild_system.cmake +cmake_targets/tools/MODULES/kmodule.cmake +cmake_targets/tools/MODULES/path_prefixes.cmake +cmake_targets/tools/asn1tostruct.py +cmake_targets/tools/build_helper +cmake_targets/tools/build_test_epc_tools +cmake_targets/tools/example_enb_exmimo_mme_hss.txt +cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt +cmake_targets/tools/exmimo2_2arxg.lime +cmake_targets/tools/exmimo2_2brxg.lime +cmake_targets/tools/exmimo_stop_octave.m +cmake_targets/tools/fix_asn1 +cmake_targets/tools/generate_asn1 +cmake_targets/tools/generate_protobuf +cmake_targets/tools/indent_source_code +cmake_targets/tools/init_exmimo2 +cmake_targets/tools/init_nas_nos1 +cmake_targets/tools/init_nas_s1 +cmake_targets/tools/Kbuild.cmake +cmake_targets/tools/make_agent_cache +cmake_targets/tools/mem_usage +cmake_targets/tools/perf_oai.bash +cmake_targets/tools/run_enb_s1_exmimo +cmake_targets/tools/run_enb_s1_usrp +cmake_targets/tools/run_enb_ue_virt_noS1 +cmake_targets/tools/run_enb_ue_virt_s1 +cmake_targets/tools/run_ue_s1 +cmake_targets/tools/start_bladerf.py +cmake_targets/tools/stop_exmimo2 +cmake_targets/tools/test_helper +cmake_targets/build_oai +cmake_targets/build_ue +cmake_targets/CMakeLists.txt +cmake_targets/snap_environment.sh +common/utils/collection/queue.h +common/utils/collection/tree.h +common/utils/hashtable/hashtable.c +common/utils/hashtable/hashtable.h +common/utils/hashtable/obj_hashtable.c +common/utils/hashtable/obj_hashtable.h +common/utils/itti/assertions.h +common/utils/itti/backtrace.c +common/utils/itti/backtrace.h +common/utils/itti/intertask_interface.c +common/utils/itti/intertask_interface.h +common/utils/itti/intertask_interface_dump.c +common/utils/itti/intertask_interface_dump.h +common/utils/itti/intertask_interface_init.h +common/utils/itti/intertask_interface_types.h +common/utils/itti/intertask_messages_def.h +common/utils/itti/intertask_messages_types.h +common/utils/itti/itti_types.h +common/utils/itti/memory_pools.c +common/utils/itti/memory_pools.h +common/utils/itti/messages_def.h +common/utils/itti/messages_types.h +common/utils/itti/signals.c +common/utils/itti/signals.h +common/utils/itti/tasks_def.h +common/utils/itti/timer.c +common/utils/itti/timer.h +common/utils/itti/timer_messages_def.h +common/utils/itti/timer_messages_types.h +common/utils/itti_analyzer/common/itti_types.h +common/utils/itti_analyzer/common/logs.h +common/utils/itti_analyzer/common/queue.h +common/utils/itti_analyzer/common/rc.h +common/utils/itti_analyzer/libbuffers/buffers.c +common/utils/itti_analyzer/libbuffers/buffers.h +common/utils/itti_analyzer/libbuffers/file.c +common/utils/itti_analyzer/libbuffers/file.h +common/utils/itti_analyzer/libbuffers/socket.c +common/utils/itti_analyzer/libbuffers/socket.h +common/utils/itti_analyzer/libparser/array_type.c +common/utils/itti_analyzer/libparser/array_type.h +common/utils/itti_analyzer/libparser/enum_type.c +common/utils/itti_analyzer/libparser/enum_type.h +common/utils/itti_analyzer/libparser/enum_value_type.c +common/utils/itti_analyzer/libparser/enum_value_type.h +common/utils/itti_analyzer/libparser/field_type.c +common/utils/itti_analyzer/libparser/field_type.h +common/utils/itti_analyzer/libparser/file_type.c +common/utils/itti_analyzer/libparser/file_type.h +common/utils/itti_analyzer/libparser/fundamental_type.c +common/utils/itti_analyzer/libparser/fundamental_type.h +common/utils/itti_analyzer/libparser/intertask_contexts.h +common/utils/itti_analyzer/libparser/pointer_type.c +common/utils/itti_analyzer/libparser/pointer_type.h +common/utils/itti_analyzer/libparser/reference_type.c +common/utils/itti_analyzer/libparser/reference_type.h +common/utils/itti_analyzer/libparser/struct_type.c +common/utils/itti_analyzer/libparser/struct_type.h +common/utils/itti_analyzer/libparser/typedef_type.c +common/utils/itti_analyzer/libparser/typedef_type.h +common/utils/itti_analyzer/libparser/types.c +common/utils/itti_analyzer/libparser/types.h +common/utils/itti_analyzer/libparser/union_type.c +common/utils/itti_analyzer/libparser/union_type.h +common/utils/itti_analyzer/libparser/xml_parse.c +common/utils/itti_analyzer/libparser/xml_parse.h +common/utils/itti_analyzer/libresolver/locate_root.c +common/utils/itti_analyzer/libresolver/locate_root.h +common/utils/itti_analyzer/libresolver/resolvers.c +common/utils/itti_analyzer/libresolver/resolvers.h +common/utils/itti_analyzer/libui/ui_callbacks.c +common/utils/itti_analyzer/libui/ui_callbacks.h +common/utils/itti_analyzer/libui/ui_filters.c +common/utils/itti_analyzer/libui/ui_filters.h +common/utils/itti_analyzer/libui/ui_interface.c +common/utils/itti_analyzer/libui/ui_interface.h +common/utils/itti_analyzer/libui/ui_main_screen.c +common/utils/itti_analyzer/libui/ui_main_screen.h +common/utils/itti_analyzer/libui/ui_menu_bar.c +common/utils/itti_analyzer/libui/ui_menu_bar.h +common/utils/itti_analyzer/libui/ui_notebook.c +common/utils/itti_analyzer/libui/ui_notebook.h +common/utils/itti_analyzer/libui/ui_notif_dlg.c +common/utils/itti_analyzer/libui/ui_notif_dlg.h +common/utils/itti_analyzer/libui/ui_notifications.c +common/utils/itti_analyzer/libui/ui_notifications.h +common/utils/itti_analyzer/libui/ui_signal_dissect_view.c +common/utils/itti_analyzer/libui/ui_signal_dissect_view.h +common/utils/itti_analyzer/libui/ui_tree_view.c +common/utils/itti_analyzer/libui/ui_tree_view.h +common/utils/itti_analyzer/AUTHORS +common/utils/itti_analyzer/autogen.sh +common/utils/itti_analyzer/ChangeLog +common/utils/itti_analyzer/configure.ac +common/utils/itti_analyzer/filters.xml +common/utils/itti_analyzer/filters_mme.xml +common/utils/itti_analyzer/filters_ue_enb.xml +common/utils/itti_analyzer/INSTALL +common/utils/itti_analyzer/itti_analyzer.c +common/utils/itti_analyzer/NEWS +common/utils/itti_analyzer/README +common/utils/msc/msc.c +common/utils/msc/msc.h +common/utils/T/tracee/README +common/utils/T/tracee/tracee.c +common/utils/T/tracer/filter/filter.c +common/utils/T/tracer/filter/filter.h +common/utils/T/tracer/gui/container.c +common/utils/T/tracer/gui/event.c +common/utils/T/tracer/gui/gui.c +common/utils/T/tracer/gui/gui.h +common/utils/T/tracer/gui/gui_defs.h +common/utils/T/tracer/gui/image.c +common/utils/T/tracer/gui/init.c +common/utils/T/tracer/gui/label.c +common/utils/T/tracer/gui/loop.c +common/utils/T/tracer/gui/notify.c +common/utils/T/tracer/gui/positioner.c +common/utils/T/tracer/gui/space.c +common/utils/T/tracer/gui/test.c +common/utils/T/tracer/gui/textarea.c +common/utils/T/tracer/gui/textlist.c +common/utils/T/tracer/gui/timeline.c +common/utils/T/tracer/gui/toplevel_window.c +common/utils/T/tracer/gui/widget.c +common/utils/T/tracer/gui/x.c +common/utils/T/tracer/gui/x.h +common/utils/T/tracer/gui/x_defs.h +common/utils/T/tracer/gui/xy_plot.c +common/utils/T/tracer/hacks/dump_nack_signal.c +common/utils/T/tracer/hacks/time_meas.c +common/utils/T/tracer/hacks/timeplot.c +common/utils/T/tracer/logger/framelog.c +common/utils/T/tracer/logger/iqdotlog.c +common/utils/T/tracer/logger/iqlog.c +common/utils/T/tracer/logger/logger.c +common/utils/T/tracer/logger/logger.h +common/utils/T/tracer/logger/logger_defs.h +common/utils/T/tracer/logger/textlog.c +common/utils/T/tracer/logger/throughputlog.c +common/utils/T/tracer/logger/ticked_ttilog.c +common/utils/T/tracer/logger/ticklog.c +common/utils/T/tracer/logger/timelog.c +common/utils/T/tracer/logger/ttilog.c +common/utils/T/tracer/view/scrolltti.c +common/utils/T/tracer/view/stdout.c +common/utils/T/tracer/view/textlist.c +common/utils/T/tracer/view/ticktime.c +common/utils/T/tracer/view/time.c +common/utils/T/tracer/view/tti.c +common/utils/T/tracer/view/view.h +common/utils/T/tracer/view/xy.c +common/utils/T/tracer/config.c +common/utils/T/tracer/config.h +common/utils/T/tracer/database.c +common/utils/T/tracer/database.h +common/utils/T/tracer/defs.h +common/utils/T/tracer/enb.c +common/utils/T/tracer/event.c +common/utils/T/tracer/event.h +common/utils/T/tracer/event_selector.c +common/utils/T/tracer/event_selector.h +common/utils/T/tracer/extract_config.c +common/utils/T/tracer/gui.c +common/utils/T/tracer/handler.c +common/utils/T/tracer/handler.h +common/utils/T/tracer/macpdu2wireshark.c +common/utils/T/tracer/openair_logo.h +common/utils/T/tracer/openair_logo.png +common/utils/T/tracer/packet-mac-lte.h +common/utils/T/tracer/plot.c +common/utils/T/tracer/record.c +common/utils/T/tracer/replay.c +common/utils/T/tracer/textlog.c +common/utils/T/tracer/ue.c +common/utils/T/tracer/utils.c +common/utils/T/tracer/utils.h +common/utils/T/tracer/vcd.c +common/utils/T/defs.h +common/utils/T/generate_Txx.c +common/utils/T/genids.c +common/utils/T/local_tracer.c +common/utils/T/plot.c +common/utils/T/README +common/utils/T/T.c +common/utils/T/T.h +common/utils/T/T_defs.h +common/utils/T/T_messages.txt +common/utils/asn1_conversions.h +common/utils/assertions.h +common/utils/system.c +common/utils/system.h +common/utils/time_utils.h +common/utils/utils.c +common/utils/utils.h +common/ran_context.h +openair1/PHY/CODING/TESTBENCH/ltetest.c +openair1/PHY/CODING/TESTBENCH/pdcch_test.c +openair1/PHY/CODING/TESTBENCH/README.txt +openair1/PHY/CODING/TESTBENCH/viterbi_test.c +openair1/PHY/CODING/3gpplte.c +openair1/PHY/CODING/3gpplte_sse.c +openair1/PHY/CODING/3gpplte_turbo_decoder.c +openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c +openair1/PHY/CODING/ccoding_byte.c +openair1/PHY/CODING/ccoding_byte_lte.c +openair1/PHY/CODING/crc_byte.c +openair1/PHY/CODING/defs.h +openair1/PHY/CODING/extern.h +openair1/PHY/CODING/extern_3GPPinterleaver.h +openair1/PHY/CODING/lte_interleaver.h +openair1/PHY/CODING/lte_interleaver2.h +openair1/PHY/CODING/lte_interleaver_inline.h +openair1/PHY/CODING/lte_rate_matching.c +openair1/PHY/CODING/lte_segmentation.c +openair1/PHY/CODING/lte_tf.m +openair1/PHY/CODING/README.txt +openair1/PHY/CODING/scrambler.h +openair1/PHY/CODING/vars.h +openair1/PHY/CODING/viterbi.c +openair1/PHY/CODING/viterbi_lte.c +openair1/PHY/INIT/defs.h +openair1/PHY/INIT/extern.h +openair1/PHY/INIT/init_top.c +openair1/PHY/INIT/lte_init.c +openair1/PHY/INIT/lte_param_init.c +openair1/PHY/INIT/lte_parms.c +openair1/PHY/INIT/README.txt +openair1/PHY/INIT/vars.h +openair1/PHY/LTE_ESTIMATION/adjust_gain.c +openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m +openair1/PHY/LTE_ESTIMATION/defs.h +openair1/PHY/LTE_ESTIMATION/extern.h +openair1/PHY/LTE_ESTIMATION/filt16_32.h +openair1/PHY/LTE_ESTIMATION/filt96_32.h +openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m +openair1/PHY/LTE_ESTIMATION/freq_equalization.c +openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c +openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c +openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c +openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c +openair1/PHY/LTE_ESTIMATION/lte_sync_time.c +openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c +openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m +openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c +openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/pss6144.h +openair1/PHY/LTE_ESTIMATION/README.txt +openair1/PHY/LTE_ESTIMATION/vars.h +openair1/PHY/LTE_REFSIG/defs.h +openair1/PHY/LTE_REFSIG/gen_mod_table.m +openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c +openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c +openair1/PHY/LTE_REFSIG/lte_dl_uespec.c +openair1/PHY/LTE_REFSIG/lte_gold.c +openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c +openair1/PHY/LTE_REFSIG/lte_ul.m +openair1/PHY/LTE_REFSIG/lte_ul_ref.c +openair1/PHY/LTE_REFSIG/mod_table.h +openair1/PHY/LTE_REFSIG/primary_synch.h +openair1/PHY/LTE_REFSIG/primary_synch.m +openair1/PHY/LTE_REFSIG/README.txt +openair1/PHY/LTE_TRANSPORT/dci.c +openair1/PHY/LTE_TRANSPORT/dci.h +openair1/PHY/LTE_TRANSPORT/dci_tools.c +openair1/PHY/LTE_TRANSPORT/defs.h +openair1/PHY/LTE_TRANSPORT/dlsch_coding.c +openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c +openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c +openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c +openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c +openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c +openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c +openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h +openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h +openair1/PHY/LTE_TRANSPORT/drs_modulation.c +openair1/PHY/LTE_TRANSPORT/extern.h +openair1/PHY/LTE_TRANSPORT/group_hopping.c +openair1/PHY/LTE_TRANSPORT/if4_tools.c +openair1/PHY/LTE_TRANSPORT/if4_tools.h +openair1/PHY/LTE_TRANSPORT/if5_tools.c +openair1/PHY/LTE_TRANSPORT/if5_tools.h +openair1/PHY/LTE_TRANSPORT/initial_sync.c +openair1/PHY/LTE_TRANSPORT/lte_mcs.c +openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h +openair1/PHY/LTE_TRANSPORT/mdci.h +openair1/PHY/LTE_TRANSPORT/pbch.c +openair1/PHY/LTE_TRANSPORT/pcfich.c +openair1/PHY/LTE_TRANSPORT/pch.c +openair1/PHY/LTE_TRANSPORT/phich.c +openair1/PHY/LTE_TRANSPORT/pilots.c +openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c +openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c +openair1/PHY/LTE_TRANSPORT/pmch.c +openair1/PHY/LTE_TRANSPORT/power_control.c +openair1/PHY/LTE_TRANSPORT/prach.c +openair1/PHY/LTE_TRANSPORT/prach.h +openair1/PHY/LTE_TRANSPORT/print_stats.c +openair1/PHY/LTE_TRANSPORT/proto.h +openair1/PHY/LTE_TRANSPORT/pss.c +openair1/PHY/LTE_TRANSPORT/pucch.c +openair1/PHY/LTE_TRANSPORT/rar_tools.c +openair1/PHY/LTE_TRANSPORT/README.txt +openair1/PHY/LTE_TRANSPORT/srs_modulation.c +openair1/PHY/LTE_TRANSPORT/sss.c +openair1/PHY/LTE_TRANSPORT/sss.h +openair1/PHY/LTE_TRANSPORT/sss_gen.m +openair1/PHY/LTE_TRANSPORT/uci.h +openair1/PHY/LTE_TRANSPORT/uci_tools.c +openair1/PHY/LTE_TRANSPORT/ulsch_coding.c +openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c +openair1/PHY/LTE_TRANSPORT/vars.h +openair1/PHY/LTE_TRANSPORT/vrb_maps.m +openair1/PHY/MODULATION/beamforming.c +openair1/PHY/MODULATION/compute_bf_weights.c +openair1/PHY/MODULATION/defs.h +openair1/PHY/MODULATION/extern.h +openair1/PHY/MODULATION/gen_7_5_kHz.m +openair1/PHY/MODULATION/kHz_7_5.h +openair1/PHY/MODULATION/ofdm_mod.c +openair1/PHY/MODULATION/prach625Hz.h +openair1/PHY/MODULATION/slot_fep.c +openair1/PHY/MODULATION/slot_fep_mbsfn.c +openair1/PHY/MODULATION/slot_fep_ul.c +openair1/PHY/MODULATION/ul_7_5_kHz.c +openair1/PHY/MODULATION/vars.h +openair1/PHY/TOOLS/8bit_rxdemux.c +openair1/PHY/TOOLS/8bit_txmux.c +openair1/PHY/TOOLS/alaw_lut.h +openair1/PHY/TOOLS/angle.c +openair1/PHY/TOOLS/cadd_sv.c +openair1/PHY/TOOLS/cadd_vv.c +openair1/PHY/TOOLS/cdot_prod.c +openair1/PHY/TOOLS/cmult_sv.c +openair1/PHY/TOOLS/cmult_vv.c +openair1/PHY/TOOLS/costable.h +openair1/PHY/TOOLS/dB_routines.c +openair1/PHY/TOOLS/dB_routines.h +openair1/PHY/TOOLS/defs.h +openair1/PHY/TOOLS/extern.h +openair1/PHY/TOOLS/file_output.c +openair1/PHY/TOOLS/invSqrt.c +openair1/PHY/TOOLS/log2_approx.c +openair1/PHY/TOOLS/lte_dfts.c +openair1/PHY/TOOLS/lte_phy_scope.c +openair1/PHY/TOOLS/lte_phy_scope.h +openair1/PHY/TOOLS/lte_phy_scope_tm4.c +openair1/PHY/TOOLS/lut.c +openair1/PHY/TOOLS/memory_routines.c +openair1/PHY/TOOLS/read_F.c +openair1/PHY/TOOLS/signal_energy.c +openair1/PHY/TOOLS/smbv.c +openair1/PHY/TOOLS/smbv.h +openair1/PHY/TOOLS/sqrt.c +openair1/PHY/TOOLS/time_meas.c +openair1/PHY/TOOLS/time_meas.h +openair1/PHY/TOOLS/twiddle12288.h +openair1/PHY/TOOLS/twiddle1536.h +openair1/PHY/TOOLS/twiddle18432.h +openair1/PHY/TOOLS/twiddle24576.h +openair1/PHY/TOOLS/twiddle6144.h +openair1/PHY/TOOLS/twiddles4096.h +openair1/PHY/TOOLS/twiddles8192.h +openair1/PHY/TOOLS/vars.h +openair1/PHY/defs.h +openair1/PHY/extern.h +openair1/PHY/impl_defs_lte.h +openair1/PHY/impl_defs_top.h +openair1/PHY/sse_intrin.h +openair1/PHY/types.h +openair1/PHY/vars.h +openair1/SCHED/defs.h +openair1/SCHED/extern.h +openair1/SCHED/phy_mac_stub.c +openair1/SCHED/phy_procedures_emos.h +openair1/SCHED/phy_procedures_lte_common.c +openair1/SCHED/phy_procedures_lte_eNb.c +openair1/SCHED/phy_procedures_lte_ue.c +openair1/SCHED/pucch_pc.c +openair1/SCHED/pusch_pc.c +openair1/SCHED/rt_compat.h +openair1/SCHED/ru_procedures.c +openair1/SCHED/srs_pc.c +openair1/SCHED/vars.h +openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c +openair1/SIMULATION/ETH_TRANSPORT/defs.h +openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c +openair1/SIMULATION/ETH_TRANSPORT/extern.h +openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c +openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h +openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c +openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c +openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h +openair1/SIMULATION/ETH_TRANSPORT/proto.h +openair1/SIMULATION/ETH_TRANSPORT/README.txt +openair1/SIMULATION/ETH_TRANSPORT/socket.c +openair1/SIMULATION/ETH_TRANSPORT/socket.h +openair1/SIMULATION/ETH_TRANSPORT/vars.h +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls +openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m +openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m +openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m +openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m +openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m +openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m +openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m +openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m +openair1/SIMULATION/LTE_PHY/plotTools/p +openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m +openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt +openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex +openair1/SIMULATION/LTE_PHY/blerSimus.zip +openair1/SIMULATION/LTE_PHY/dlsim.c +openair1/SIMULATION/LTE_PHY/dlsim_tm4.c +openair1/SIMULATION/LTE_PHY/dlsim_tm7.c +openair1/SIMULATION/LTE_PHY/fancyheadings.sty +openair1/SIMULATION/LTE_PHY/framegen.c +openair1/SIMULATION/LTE_PHY/gpib_send.c +openair1/SIMULATION/LTE_PHY/gpib_send.h +openair1/SIMULATION/LTE_PHY/launch_sim.sh +openair1/SIMULATION/LTE_PHY/LTE_Configuration.c +openair1/SIMULATION/LTE_PHY/LTE_Configuration.h +openair1/SIMULATION/LTE_PHY/mat2wv.m +openair1/SIMULATION/LTE_PHY/mbmssim.c +openair1/SIMULATION/LTE_PHY/pbch_awgn.txt +openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt +openair1/SIMULATION/LTE_PHY/pbchsim.c +openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh +openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m +openair1/SIMULATION/LTE_PHY/pdcchsim.c +openair1/SIMULATION/LTE_PHY/prachsim.c +openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h +openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c +openair1/SIMULATION/LTE_PHY/pucchsim.c +openair1/SIMULATION/LTE_PHY/README.txt +openair1/SIMULATION/LTE_PHY/scansim.c +openair1/SIMULATION/LTE_PHY/signalanalyzer.c +openair1/SIMULATION/LTE_PHY/signalanalyzer.h +openair1/SIMULATION/LTE_PHY/syncsim.c +openair1/SIMULATION/LTE_PHY/test.c +openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c +openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h +openair1/SIMULATION/LTE_PHY/ulsim.c +openair1/SIMULATION/LTE_PHY/ulsim2.c +openair1/SIMULATION/LTE_PHY/unitary_defs.h +openair1/SIMULATION/RF/adc.c +openair1/SIMULATION/RF/dac.c +openair1/SIMULATION/RF/defs.h +openair1/SIMULATION/RF/README.txt +openair1/SIMULATION/RF/rf.c +openair1/SIMULATION/TOOLS/abstraction.c +openair1/SIMULATION/TOOLS/ch_desc_proto.c +openair1/SIMULATION/TOOLS/corr_mat.m +openair1/SIMULATION/TOOLS/defs.h +openair1/SIMULATION/TOOLS/gauss.c +openair1/SIMULATION/TOOLS/llr_quantization.c +openair1/SIMULATION/TOOLS/multipath_channel.c +openair1/SIMULATION/TOOLS/multipath_tv_channel.c +openair1/SIMULATION/TOOLS/random_channel.c +openair1/SIMULATION/TOOLS/rangen_double.c +openair1/SIMULATION/TOOLS/scm.m +openair1/SIMULATION/TOOLS/scm_corrmat.h +openair1/SIMULATION/TOOLS/taus.c +openair1/README.TXT +openair2/COMMON/as_message.h +openair2/COMMON/commonDef.h +openair2/COMMON/gtpv1_u_messages_def.h +openair2/COMMON/gtpv1_u_messages_types.h +openair2/COMMON/intertask_interface_conf.h +openair2/COMMON/mac_messages_def.h +openair2/COMMON/mac_messages_types.h +openair2/COMMON/mac_primitives.h +openair2/COMMON/mac_rlc_primitives.h +openair2/COMMON/mac_rrc_primitives.h +openair2/COMMON/messages_def.h +openair2/COMMON/messages_types.h +openair2/COMMON/nas_messages_def.h +openair2/COMMON/nas_messages_types.h +openair2/COMMON/networkDef.h +openair2/COMMON/openair_defs.h +openair2/COMMON/openair_types.h +openair2/COMMON/pdcp_messages_def.h +openair2/COMMON/pdcp_messages_types.h +openair2/COMMON/phy_messages_def.h +openair2/COMMON/phy_messages_types.h +openair2/COMMON/platform_constants.h +openair2/COMMON/platform_types.h +openair2/COMMON/ral_messages_def.h +openair2/COMMON/ral_messages_types.h +openair2/COMMON/rlc_messages_def.h +openair2/COMMON/rlc_messages_types.h +openair2/COMMON/rrc_messages_def.h +openair2/COMMON/rrc_messages_types.h +openair2/COMMON/rrm_config_structs.h +openair2/COMMON/rrm_constants.h +openair2/COMMON/rtos_header.h +openair2/COMMON/s1ap_messages_def.h +openair2/COMMON/s1ap_messages_types.h +openair2/COMMON/sctp_messages_def.h +openair2/COMMON/sctp_messages_types.h +openair2/COMMON/tasks_def.h +openair2/COMMON/udp_messages_def.h +openair2/COMMON/udp_messages_types.h +openair2/COMMON/x2ap_messages_def.h +openair2/COMMON/x2ap_messages_types.h +openair2/DOCS/Documentation/flow.txt +openair2/DOCS/DOXYGEN/images/cellular_topology.doc +openair2/DOCS/DOXYGEN/images/cellular_topology.pdf +openair2/DOCS/DOXYGEN/images/cellular_topology_small.png +openair2/DOCS/DOXYGEN/images/channel server.png +openair2/DOCS/DOXYGEN/images/channel server.vsd +openair2/DOCS/DOXYGEN/images/convolutional.png +openair2/DOCS/DOXYGEN/images/convolutional.vsd +openair2/DOCS/DOXYGEN/images/Diapositive6.JPG +openair2/DOCS/DOXYGEN/images/DLC_arch.png +openair2/DOCS/DOXYGEN/images/Framing.png +openair2/DOCS/DOXYGEN/images/Framing.vsd +openair2/DOCS/DOXYGEN/images/irs_dcf.jpg +openair2/DOCS/DOXYGEN/images/irs_pcf.jpg +openair2/DOCS/DOXYGEN/images/layer2_stack.jpg +openair2/DOCS/DOXYGEN/images/layer2_stack.pdf +openair2/DOCS/DOXYGEN/images/layer2_stack.png +openair2/DOCS/DOXYGEN/images/MAC Services.vsd +openair2/DOCS/DOXYGEN/images/MAC_arch.eps +openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG +openair2/DOCS/DOXYGEN/images/mac_channels.png +openair2/DOCS/DOXYGEN/images/MAC_Measurements.png +openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd +openair2/DOCS/DOXYGEN/images/MAC_Services.eps +openair2/DOCS/DOXYGEN/images/MAC_Services.vsd +openair2/DOCS/DOXYGEN/images/MAC_Services2.eps +openair2/DOCS/DOXYGEN/images/MAC_Services2.png +openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd +openair2/DOCS/DOXYGEN/images/mac_wbs.jpg +openair2/DOCS/DOXYGEN/images/macphynet.eps +openair2/DOCS/DOXYGEN/images/macphynet.png +openair2/DOCS/DOXYGEN/images/mesh_frame.pdf +openair2/DOCS/DOXYGEN/images/mesh_topology.pdf +openair2/DOCS/DOXYGEN/images/mesh_topology_small.png +openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png +openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd +openair2/DOCS/DOXYGEN/images/PHY_arch.eps +openair2/DOCS/DOXYGEN/images/PHY_arch.png +openair2/DOCS/DOXYGEN/images/PHY_arch.vsd +openair2/DOCS/DOXYGEN/images/QAM modulation.png +openair2/DOCS/DOXYGEN/images/QAM modulation.vsd +openair2/DOCS/DOXYGEN/images/QAMmodulation.png +openair2/DOCS/DOXYGEN/images/scrambler.png +openair2/DOCS/DOXYGEN/images/scrambler.vsd +openair2/DOCS/DOXYGEN/images/Transmission.pdf +openair2/DOCS/DOXYGEN/images/Transmission.png +openair2/DOCS/DOXYGEN/images/Transmission.ps +openair2/DOCS/DOXYGEN/images/w3g4f_framing.png +openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd +openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd +openair2/DOCS/DOXYGEN/Doxyfile +openair2/DOCS/TEMPLATES/CODE/images/arch.eps +openair2/DOCS/TEMPLATES/CODE/images/arch.png +openair2/DOCS/TEMPLATES/CODE/Doxyfile +openair2/DOCS/TEMPLATES/CODE/example_doxy.h +openair2/DOCS/TEMPLATES/README/Readme.doxy +openair2/DOCS/TEMPLATES/README/readme.txt +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h +openair2/ENB_APP/MESSAGES/V2/config_common.proto +openair2/ENB_APP/MESSAGES/V2/config_messages.proto +openair2/ENB_APP/MESSAGES/V2/control_delegation.proto +openair2/ENB_APP/MESSAGES/V2/controller_commands.proto +openair2/ENB_APP/MESSAGES/V2/flexran.proto +openair2/ENB_APP/MESSAGES/V2/header.proto +openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto +openair2/ENB_APP/MESSAGES/V2/stats_common.proto +openair2/ENB_APP/MESSAGES/V2/stats_messages.proto +openair2/ENB_APP/MESSAGES/V2/time_common.proto +openair2/ENB_APP/enb_app.c +openair2/ENB_APP/enb_app.h +openair2/ENB_APP/enb_config.c +openair2/ENB_APP/enb_config.h +openair2/ENB_APP/flexran_agent.c +openair2/ENB_APP/flexran_agent.h +openair2/ENB_APP/flexran_agent_async.c +openair2/ENB_APP/flexran_agent_async.h +openair2/ENB_APP/flexran_agent_common.c +openair2/ENB_APP/flexran_agent_common.h +openair2/ENB_APP/flexran_agent_common_internal.c +openair2/ENB_APP/flexran_agent_common_internal.h +openair2/ENB_APP/flexran_agent_defs.h +openair2/ENB_APP/flexran_agent_extern.h +openair2/ENB_APP/flexran_agent_handler.c +openair2/ENB_APP/flexran_agent_net_comm.c +openair2/ENB_APP/flexran_agent_net_comm.h +openair2/ENB_APP/flexran_agent_task_manager.c +openair2/ENB_APP/flexran_agent_task_manager.h +openair2/LAYER2/MAC/config.c +openair2/LAYER2/MAC/defs.h +openair2/LAYER2/MAC/eNB_scheduler.c +openair2/LAYER2/MAC/eNB_scheduler_bch.c +openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +openair2/LAYER2/MAC/eNB_scheduler_mch.c +openair2/LAYER2/MAC/eNB_scheduler_primitives.c +openair2/LAYER2/MAC/eNB_scheduler_RA.c +openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +openair2/LAYER2/MAC/extern.h +openair2/LAYER2/MAC/flexran_agent_mac_proto.h +openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c +openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c +openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c +openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h +openair2/LAYER2/MAC/flexran_dci_conversions.h +openair2/LAYER2/MAC/l1_helpers.c +openair2/LAYER2/MAC/lte_transport_init.c +openair2/LAYER2/MAC/main.c +openair2/LAYER2/MAC/openair2_proc.c +openair2/LAYER2/MAC/pre_processor.c +openair2/LAYER2/MAC/proto.h +openair2/LAYER2/MAC/ra_procedures.c +openair2/LAYER2/MAC/rar_tools.c +openair2/LAYER2/MAC/ue_procedures.c +openair2/LAYER2/MAC/vars.h +openair2/LAYER2/PDCP_v10.1.0/pdcp.c +openair2/LAYER2/PDCP_v10.1.0/pdcp.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h +openair2/LAYER2/RLC/UM_v9.3.0/README +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h +openair2/LAYER2/RLC/mac_primitives.h +openair2/LAYER2/RLC/rlc.c +openair2/LAYER2/RLC/rlc.h +openair2/LAYER2/RLC/rlc_def.h +openair2/LAYER2/RLC/rlc_def_lte.h +openair2/LAYER2/RLC/rlc_mac.c +openair2/LAYER2/RLC/rlc_mpls.c +openair2/LAYER2/RLC/rlc_primitives.h +openair2/LAYER2/RLC/rlc_rrc.c +openair2/LAYER2/openair2_proc.c +openair2/LAYER2/register.c +openair2/LAYER2/register.h +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h +openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest +openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c +openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c +openair2/NAS/DRIVER/CELLULAR/readme.txt +openair2/NAS/DRIVER/CELLULAR/start_mt_cellular +openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_noradvd +openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_radvd +openair2/NAS/DRIVER/CELLULAR/stop_mt_cellular +openair2/NAS/DRIVER/CELLULAR/stop_rg_cellular +openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h +openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c +openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c +openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c +openair2/NETWORK_DRIVER/LITE/classifier.c +openair2/NETWORK_DRIVER/LITE/common.c +openair2/NETWORK_DRIVER/LITE/constant.h +openair2/NETWORK_DRIVER/LITE/device.c +openair2/NETWORK_DRIVER/LITE/ioctl.c +openair2/NETWORK_DRIVER/LITE/ioctl.h +openair2/NETWORK_DRIVER/LITE/local.h +openair2/NETWORK_DRIVER/LITE/netlink.c +openair2/NETWORK_DRIVER/LITE/proto_extern.h +openair2/NETWORK_DRIVER/LITE/sap.h +openair2/NETWORK_DRIVER/LITE/tool.c +openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c +openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c +openair2/NETWORK_DRIVER/MESH/classifier.c +openair2/NETWORK_DRIVER/MESH/common.c +openair2/NETWORK_DRIVER/MESH/constant.h +openair2/NETWORK_DRIVER/MESH/device.c +openair2/NETWORK_DRIVER/MESH/ioctl.c +openair2/NETWORK_DRIVER/MESH/ioctl.h +openair2/NETWORK_DRIVER/MESH/local.h +openair2/NETWORK_DRIVER/MESH/mesh.c +openair2/NETWORK_DRIVER/MESH/netlink.c +openair2/NETWORK_DRIVER/MESH/proto_extern.h +openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h +openair2/NETWORK_DRIVER/MESH/sap.h +openair2/NETWORK_DRIVER/MESH/tool.c +openair2/NETWORK_DRIVER/UE_IP/common.c +openair2/NETWORK_DRIVER/UE_IP/constant.h +openair2/NETWORK_DRIVER/UE_IP/device.c +openair2/NETWORK_DRIVER/UE_IP/local.h +openair2/NETWORK_DRIVER/UE_IP/netlink.c +openair2/NETWORK_DRIVER/UE_IP/proto_extern.h +openair2/NETWORK_DRIVER/UE_IP/README +openair2/NETWORK_DRIVER/UE_IP/sap.h +openair2/PHY_INTERFACE/defs.h +openair2/PHY_INTERFACE/extern.h +openair2/PHY_INTERFACE/IF_Module.c +openair2/PHY_INTERFACE/IF_Module.h +openair2/PHY_INTERFACE/mac_phy_primitives.c +openair2/PHY_INTERFACE/mac_phy_primitives.h +openair2/PHY_INTERFACE/vars.h +openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c +openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-860.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-a20.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-c60.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn +openair2/RRC/LITE/MESSAGES/asn1_msg.c +openair2/RRC/LITE/MESSAGES/asn1_msg.h +openair2/RRC/LITE/MESSAGES/asn1_patch +openair2/RRC/LITE/MESSAGES/README.txt +openair2/RRC/LITE/MESSAGES/rtai_mem.c +openair2/RRC/LITE/MESSAGES/rtai_mem.h +openair2/RRC/LITE/defs.h +openair2/RRC/LITE/extern.h +openair2/RRC/LITE/L2_interface.c +openair2/RRC/LITE/mesh_top.c +openair2/RRC/LITE/plmn_data.h +openair2/RRC/LITE/proto.h +openair2/RRC/LITE/rrc_2_rrm_msg.c +openair2/RRC/LITE/rrc_common.c +openair2/RRC/LITE/rrc_eNB.c +openair2/RRC/LITE/rrc_eNB_GTPV1U.c +openair2/RRC/LITE/rrc_eNB_GTPV1U.h +openair2/RRC/LITE/rrc_eNB_ral.c +openair2/RRC/LITE/rrc_eNB_ral.h +openair2/RRC/LITE/rrc_eNB_S1AP.c +openair2/RRC/LITE/rrc_eNB_S1AP.h +openair2/RRC/LITE/rrc_eNB_UE_context.c +openair2/RRC/LITE/rrc_eNB_UE_context.h +openair2/RRC/LITE/rrc_rrm_interface.c +openair2/RRC/LITE/rrc_rrm_interface.h +openair2/RRC/LITE/rrc_types.h +openair2/RRC/LITE/rrc_UE.c +openair2/RRC/LITE/rrc_UE_ral.c +openair2/RRC/LITE/rrc_UE_ral.h +openair2/RRC/LITE/rrm_2_rrc_msg.c +openair2/RRC/LITE/utils.c +openair2/RRC/LITE/vars.h +openair2/RRC/NAS/nas_config.c +openair2/RRC/NAS/nas_config.h +openair2/RRC/NAS/rb_config.c +openair2/RRC/NAS/rb_config.h +openair2/UTIL/ASYNC_IF/link_manager.c +openair2/UTIL/ASYNC_IF/link_manager.h +openair2/UTIL/ASYNC_IF/message_queue.c +openair2/UTIL/ASYNC_IF/message_queue.h +openair2/UTIL/ASYNC_IF/ringbuffer_queue.c +openair2/UTIL/ASYNC_IF/ringbuffer_queue.h +openair2/UTIL/ASYNC_IF/socket_link.c +openair2/UTIL/ASYNC_IF/socket_link.h +openair2/UTIL/BIGPHYS/bigphys.c +openair2/UTIL/BIGPHYS/defs.h +openair2/UTIL/CLI/cli.c +openair2/UTIL/CLI/cli.h +openair2/UTIL/CLI/cli_cmd.c +openair2/UTIL/CLI/cli_if.h +openair2/UTIL/CLI/cli_server.c +openair2/UTIL/FIFO/pad_list.c +openair2/UTIL/FIFO/pad_list.h +openair2/UTIL/FIFO/types.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c +openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt +openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln +openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln +openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h +openair2/UTIL/LISTS/list.c +openair2/UTIL/LISTS/list.h +openair2/UTIL/LISTS/list2.c +openair2/UTIL/LOG/log.c +openair2/UTIL/LOG/log.h +openair2/UTIL/LOG/log_extern.h +openair2/UTIL/LOG/log_if.h +openair2/UTIL/LOG/README.txt +openair2/UTIL/LOG/vcd_signal_dumper.c +openair2/UTIL/LOG/vcd_signal_dumper.h +openair2/UTIL/MATH/crc_byte.c +openair2/UTIL/MATH/oml.c +openair2/UTIL/MATH/oml.h +openair2/UTIL/MATH/random.c +openair2/UTIL/MATH/random_proto_extern.h +openair2/UTIL/MATH/taus.c +openair2/UTIL/MEM/mem_block.c +openair2/UTIL/MEM/mem_block.h +openair2/UTIL/MEM/mem_mngt.c +openair2/UTIL/MEM/mem_mngt_proto_extern.h +openair2/UTIL/MEM/mem_pool.h +openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml +openair2/UTIL/OCG/temp_output/OCG_report.xml +openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml +openair2/UTIL/OCG/Doxyfile +openair2/UTIL/OCG/eurecom_20110208110244.xml +openair2/UTIL/OCG/OCG.c +openair2/UTIL/OCG/OCG.h +openair2/UTIL/OCG/OCG_call_emu.c +openair2/UTIL/OCG/OCG_call_emu.h +openair2/UTIL/OCG/OCG_config_mobi.c +openair2/UTIL/OCG/OCG_config_mobi.h +openair2/UTIL/OCG/OCG_create_dir.c +openair2/UTIL/OCG/OCG_create_dir.h +openair2/UTIL/OCG/OCG_detect_file.c +openair2/UTIL/OCG/OCG_detect_file.h +openair2/UTIL/OCG/OCG_extern.h +openair2/UTIL/OCG/OCG_generate_report.c +openair2/UTIL/OCG/OCG_generate_report.h +openair2/UTIL/OCG/OCG_get_opt.c +openair2/UTIL/OCG/OCG_get_opt.h +openair2/UTIL/OCG/OCG_if.h +openair2/UTIL/OCG/OCG_parse_filename.c +openair2/UTIL/OCG/OCG_parse_filename.h +openair2/UTIL/OCG/OCG_parse_XML.c +openair2/UTIL/OCG/OCG_parse_XML.h +openair2/UTIL/OCG/OCG_save_XML.c +openair2/UTIL/OCG/OCG_save_XML.h +openair2/UTIL/OCG/OCG_vars.h +openair2/UTIL/OCG/readme.txt +openair2/UTIL/OMG/TRACE/example_trace.tr +openair2/UTIL/OMG/TRACE/handover.tr +openair2/UTIL/OMG/TRACE/handover_1ue.tr +openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr +openair2/UTIL/OMG/TRACE/mobility_2ues.tr +openair2/UTIL/OMG/TRACE/mobility_3ues.tr +openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf +openair2/UTIL/OMG/TRACE/README.TXT +openair2/UTIL/OMG/TRACE/regular.tr +openair2/UTIL/OMG/TRACE/static_1enb.tr +openair2/UTIL/OMG/TRACE/static_2ues.tr +openair2/UTIL/OMG/TRACE/zero_speed.tr +openair2/UTIL/OMG/common.c +openair2/UTIL/OMG/defs.h +openair2/UTIL/OMG/grid.c +openair2/UTIL/OMG/grid.h +openair2/UTIL/OMG/job.c +openair2/UTIL/OMG/mobility.txt +openair2/UTIL/OMG/mobility_parser.c +openair2/UTIL/OMG/mobility_parser.h +openair2/UTIL/OMG/omg.c +openair2/UTIL/OMG/omg.h +openair2/UTIL/OMG/omg_constants.h +openair2/UTIL/OMG/omg_hashtable.c +openair2/UTIL/OMG/omg_hashtable.h +openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf +openair2/UTIL/OMG/omg_vars.h +openair2/UTIL/OMG/README.TXT +openair2/UTIL/OMG/rwalk.c +openair2/UTIL/OMG/rwalk.h +openair2/UTIL/OMG/rwp.c +openair2/UTIL/OMG/rwp.h +openair2/UTIL/OMG/static.c +openair2/UTIL/OMG/static.h +openair2/UTIL/OMG/steadystaterwp.c +openair2/UTIL/OMG/steadystaterwp.h +openair2/UTIL/OMG/trace.c +openair2/UTIL/OMG/trace.h +openair2/UTIL/OMG/trace_hashtable.c +openair2/UTIL/OMG/trace_hashtable.h +openair2/UTIL/OMV/blue.png +openair2/UTIL/OMV/communicationthread.cpp +openair2/UTIL/OMV/communicationthread.h +openair2/UTIL/OMV/green.png +openair2/UTIL/OMV/jpg.jpeg +openair2/UTIL/OMV/mus.png +openair2/UTIL/OMV/mywindow.cpp +openair2/UTIL/OMV/mywindow.h +openair2/UTIL/OMV/new.jpg +openair2/UTIL/OMV/new2.jpg +openair2/UTIL/OMV/omv.cpp +openair2/UTIL/OMV/openglwidget.cpp +openair2/UTIL/OMV/openglwidget.h +openair2/UTIL/OMV/README.txt +openair2/UTIL/OMV/red.png +openair2/UTIL/OMV/structures.h +openair2/UTIL/OMV/white.png +openair2/UTIL/OMV/wow.png +openair2/UTIL/OPT/mac_pcap.h +openair2/UTIL/OPT/opt.h +openair2/UTIL/OPT/packet-mac-lte.h +openair2/UTIL/OPT/probe.c +openair2/UTIL/OPT/README.txt +openair2/UTIL/OPT/vars.h +openair2/UTIL/OSA/osa_defs.h +openair2/UTIL/OSA/osa_internal.h +openair2/UTIL/OSA/osa_key_deriver.c +openair2/UTIL/OSA/osa_rijndael.c +openair2/UTIL/OSA/osa_rijndael.h +openair2/UTIL/OSA/osa_snow3g.c +openair2/UTIL/OSA/osa_snow3g.h +openair2/UTIL/OSA/osa_stream_eea.c +openair2/UTIL/OSA/osa_stream_eia.c +openair2/UTIL/OSA/README +openair2/UTIL/OSD/css/images/false.png +openair2/UTIL/OSD/css/images/false2.png +openair2/UTIL/OSD/css/images/lquote.png +openair2/UTIL/OSD/css/images/true.png +openair2/UTIL/OSD/css/images/warning.png +openair2/UTIL/OSD/css/blueprint.css +openair2/UTIL/OSD/css/fix-ie-rtl.css +openair2/UTIL/OSD/css/fix-ie.css +openair2/UTIL/OSD/css/ie.css +openair2/UTIL/OSD/css/ie6.css +openair2/UTIL/OSD/css/print.css +openair2/UTIL/OSD/css/screen.css +openair2/UTIL/OSD/css/style.css +openair2/UTIL/OSD/jquery/jquery.js +openair2/UTIL/OSD/fake_oaisim +openair2/UTIL/OSD/form.php +openair2/UTIL/OSD/header.php +openair2/UTIL/OSD/httpd-result.conf +openair2/UTIL/OSD/index.php +openair2/UTIL/OSD/OCG.pid +openair2/UTIL/OSD/OpenAirEmu.conf +openair2/UTIL/OSD/Platform_is_running.php +openair2/UTIL/OSD/README.txt +openair2/UTIL/OSD/recep.php +openair2/UTIL/OSD/toto.php +openair2/UTIL/OTG/Doxyfile +openair2/UTIL/OTG/help_OTGplot.txt +openair2/UTIL/OTG/main.c +openair2/UTIL/OTG/otg.c +openair2/UTIL/OTG/otg.h +openair2/UTIL/OTG/otg_config.h +openair2/UTIL/OTG/otg_defs.h +openair2/UTIL/OTG/otg_externs.h +openair2/UTIL/OTG/otg_form.c +openair2/UTIL/OTG/otg_form.h +openair2/UTIL/OTG/otg_kpi.c +openair2/UTIL/OTG/otg_kpi.h +openair2/UTIL/OTG/otg_models.c +openair2/UTIL/OTG/otg_models.h +openair2/UTIL/OTG/otg_rx.c +openair2/UTIL/OTG/otg_rx.h +openair2/UTIL/OTG/otg_rx_socket.c +openair2/UTIL/OTG/otg_rx_socket.h +openair2/UTIL/OTG/otg_tx.c +openair2/UTIL/OTG/otg_tx.h +openair2/UTIL/OTG/otg_tx_socket.c +openair2/UTIL/OTG/otg_tx_socket.h +openair2/UTIL/OTG/otg_vars.h +openair2/UTIL/OTG/OTGplot +openair2/UTIL/OTG/traffic_config.h +openair2/UTIL/TIMER/umts_timer.c +openair2/UTIL/TIMER/umts_timer.h +openair2/UTIL/TIMER/umts_timer_proto_extern.h +openair2/UTIL/TIMER/umts_timer_struct.h +openair2/UTIL/TRACE/fifo_printf.c +openair2/UTIL/TRACE/fifo_printf.h +openair2/UTIL/TRACE/fifo_printf_proto_extern.h +openair2/UTIL/TRACE/print.h +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn +openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py +openair2/X2AP/x2ap.c +openair2/X2AP/x2ap.h +openair2/X2AP/x2ap_common.c +openair2/X2AP/x2ap_common.h +openair3/COMMON/as_message.h +openair3/COMMON/common_types.h +openair3/COMMON/gtpv1_u_messages_def.h +openair3/COMMON/gtpv1_u_messages_types.h +openair3/COMMON/intertask_interface_conf.h +openair3/COMMON/messages_def.h +openair3/COMMON/messages_types.h +openair3/COMMON/nas_messages_def.h +openair3/COMMON/nas_messages_types.h +openair3/COMMON/s1ap_messages_def.h +openair3/COMMON/s1ap_messages_types.h +openair3/COMMON/sctp_messages_def.h +openair3/COMMON/sctp_messages_types.h +openair3/COMMON/security_types.h +openair3/COMMON/tasks_def.h +openair3/COMMON/udp_messages_def.h +openair3/COMMON/udp_messages_types.h +openair3/DOCS/DOXYGEN/Doxyfile.in +openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf +openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex +openair3/DOCS/Latex/EPC/EPC.pdf +openair3/DOCS/Latex/EPC/EPC.tex +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h +openair3/GTPV1-U/nw-gtpv1u/AUTHORS +openair3/GTPV1-U/nw-gtpv1u/ChangeLog +openair3/GTPV1-U/nw-gtpv1u/COPYING +openair3/GTPV1-U/nw-gtpv1u/NEWS +openair3/GTPV1-U/nw-gtpv1u/README +openair3/GTPV1-U/gtpv1u.h +openair3/GTPV1-U/gtpv1u_eNB.c +openair3/GTPV1-U/gtpv1u_eNB_defs.h +openair3/GTPV1-U/gtpv1u_eNB_task.h +openair3/GTPV1-U/gtpv1u_sgw_defs.h +openair3/GTPV1-U/gtpv1u_task.c +openair3/GTPV1-U/gtpv1u_teid_pool.c +openair3/NAS/COMMON/API/NETWORK/as_message.c +openair3/NAS/COMMON/API/NETWORK/as_message.h +openair3/NAS/COMMON/API/NETWORK/l2_message.h +openair3/NAS/COMMON/API/NETWORK/nas_message.c +openair3/NAS/COMMON/API/NETWORK/nas_message.h +openair3/NAS/COMMON/API/NETWORK/network_api.c +openair3/NAS/COMMON/API/NETWORK/network_api.h +openair3/NAS/COMMON/EMM/MSG/AttachAccept.c +openair3/NAS/COMMON/EMM/MSG/AttachAccept.h +openair3/NAS/COMMON/EMM/MSG/AttachComplete.c +openair3/NAS/COMMON/EMM/MSG/AttachComplete.h +openair3/NAS/COMMON/EMM/MSG/AttachReject.c +openair3/NAS/COMMON/EMM/MSG/AttachReject.h +openair3/NAS/COMMON/EMM/MSG/AttachRequest.c +openair3/NAS/COMMON/EMM/MSG/AttachRequest.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h +openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c +openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h +openair3/NAS/COMMON/EMM/MSG/DetachAccept.c +openair3/NAS/COMMON/EMM/MSG/DetachAccept.h +openair3/NAS/COMMON/EMM/MSG/DetachRequest.c +openair3/NAS/COMMON/EMM/MSG/DetachRequest.h +openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c +openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h +openair3/NAS/COMMON/EMM/MSG/emm_cause.h +openair3/NAS/COMMON/EMM/MSG/emm_msg.c +openair3/NAS/COMMON/EMM/MSG/emm_msg.h +openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h +openair3/NAS/COMMON/EMM/MSG/EmmInformation.c +openair3/NAS/COMMON/EMM/MSG/EmmInformation.h +openair3/NAS/COMMON/EMM/MSG/EmmStatus.c +openair3/NAS/COMMON/EMM/MSG/EmmStatus.h +openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c +openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h +openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c +openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h +openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c +openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h +openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c +openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h +openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c +openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h +openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h +openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h +openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c +openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c +openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c +openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h +openair3/NAS/COMMON/EMM/MSG/ServiceReject.c +openair3/NAS/COMMON/EMM/MSG/ServiceReject.h +openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c +openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h +openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c +openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/esm_cause.h +openair3/NAS/COMMON/ESM/MSG/esm_msg.c +openair3/NAS/COMMON/ESM/MSG/esm_msg.h +openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h +openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c +openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h +openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c +openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h +openair3/NAS/COMMON/ESM/MSG/EsmStatus.c +openair3/NAS/COMMON/ESM/MSG/EsmStatus.h +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h +openair3/NAS/COMMON/IES/AccessPointName.c +openair3/NAS/COMMON/IES/AccessPointName.h +openair3/NAS/COMMON/IES/AdditionalUpdateResult.c +openair3/NAS/COMMON/IES/AdditionalUpdateResult.h +openair3/NAS/COMMON/IES/AdditionalUpdateType.c +openair3/NAS/COMMON/IES/AdditionalUpdateType.h +openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c +openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h +openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c +openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h +openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c +openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h +openair3/NAS/COMMON/IES/AuthenticationParameterRand.c +openair3/NAS/COMMON/IES/AuthenticationParameterRand.h +openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c +openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h +openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c +openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h +openair3/NAS/COMMON/IES/Cli.c +openair3/NAS/COMMON/IES/Cli.h +openair3/NAS/COMMON/IES/CsfbResponse.c +openair3/NAS/COMMON/IES/CsfbResponse.h +openair3/NAS/COMMON/IES/DaylightSavingTime.c +openair3/NAS/COMMON/IES/DaylightSavingTime.h +openair3/NAS/COMMON/IES/DetachType.c +openair3/NAS/COMMON/IES/DetachType.h +openair3/NAS/COMMON/IES/DrxParameter.c +openair3/NAS/COMMON/IES/DrxParameter.h +openair3/NAS/COMMON/IES/EmergencyNumberList.c +openair3/NAS/COMMON/IES/EmergencyNumberList.h +openair3/NAS/COMMON/IES/EmmCause.c +openair3/NAS/COMMON/IES/EmmCause.h +openair3/NAS/COMMON/IES/EpsAttachResult.c +openair3/NAS/COMMON/IES/EpsAttachResult.h +openair3/NAS/COMMON/IES/EpsAttachType.c +openair3/NAS/COMMON/IES/EpsAttachType.h +openair3/NAS/COMMON/IES/EpsBearerContextStatus.c +openair3/NAS/COMMON/IES/EpsBearerContextStatus.h +openair3/NAS/COMMON/IES/EpsBearerIdentity.c +openair3/NAS/COMMON/IES/EpsBearerIdentity.h +openair3/NAS/COMMON/IES/EpsMobileIdentity.c +openair3/NAS/COMMON/IES/EpsMobileIdentity.h +openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c +openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h +openair3/NAS/COMMON/IES/EpsQualityOfService.c +openair3/NAS/COMMON/IES/EpsQualityOfService.h +openair3/NAS/COMMON/IES/EpsUpdateResult.c +openair3/NAS/COMMON/IES/EpsUpdateResult.h +openair3/NAS/COMMON/IES/EpsUpdateType.c +openair3/NAS/COMMON/IES/EpsUpdateType.h +openair3/NAS/COMMON/IES/EsmCause.c +openair3/NAS/COMMON/IES/EsmCause.h +openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c +openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h +openair3/NAS/COMMON/IES/EsmMessageContainer.c +openair3/NAS/COMMON/IES/EsmMessageContainer.h +openair3/NAS/COMMON/IES/GprsTimer.c +openair3/NAS/COMMON/IES/GprsTimer.h +openair3/NAS/COMMON/IES/GutiType.c +openair3/NAS/COMMON/IES/GutiType.h +openair3/NAS/COMMON/IES/IdentityType2.c +openair3/NAS/COMMON/IES/IdentityType2.h +openair3/NAS/COMMON/IES/ImeisvRequest.c +openair3/NAS/COMMON/IES/ImeisvRequest.h +openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c +openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h +openair3/NAS/COMMON/IES/LcsClientIdentity.c +openair3/NAS/COMMON/IES/LcsClientIdentity.h +openair3/NAS/COMMON/IES/LcsIndicator.c +openair3/NAS/COMMON/IES/LcsIndicator.h +openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c +openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h +openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c +openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h +openair3/NAS/COMMON/IES/LocationAreaIdentification.c +openair3/NAS/COMMON/IES/LocationAreaIdentification.h +openair3/NAS/COMMON/IES/MessageType.c +openair3/NAS/COMMON/IES/MessageType.h +openair3/NAS/COMMON/IES/MobileIdentity.c +openair3/NAS/COMMON/IES/MobileIdentity.h +openair3/NAS/COMMON/IES/MobileStationClassmark2.c +openair3/NAS/COMMON/IES/MobileStationClassmark2.h +openair3/NAS/COMMON/IES/MobileStationClassmark3.c +openair3/NAS/COMMON/IES/MobileStationClassmark3.h +openair3/NAS/COMMON/IES/MsNetworkCapability.c +openair3/NAS/COMMON/IES/MsNetworkCapability.h +openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c +openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h +openair3/NAS/COMMON/IES/NasKeySetIdentifier.c +openair3/NAS/COMMON/IES/NasKeySetIdentifier.h +openair3/NAS/COMMON/IES/NasMessageContainer.c +openair3/NAS/COMMON/IES/NasMessageContainer.h +openair3/NAS/COMMON/IES/NasRequestType.c +openair3/NAS/COMMON/IES/NasRequestType.h +openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c +openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h +openair3/NAS/COMMON/IES/NetworkName.c +openair3/NAS/COMMON/IES/NetworkName.h +openair3/NAS/COMMON/IES/Nonce.c +openair3/NAS/COMMON/IES/Nonce.h +openair3/NAS/COMMON/IES/PacketFlowIdentifier.c +openair3/NAS/COMMON/IES/PacketFlowIdentifier.h +openair3/NAS/COMMON/IES/PagingIdentity.c +openair3/NAS/COMMON/IES/PagingIdentity.h +openair3/NAS/COMMON/IES/PdnAddress.c +openair3/NAS/COMMON/IES/PdnAddress.h +openair3/NAS/COMMON/IES/PdnType.c +openair3/NAS/COMMON/IES/PdnType.h +openair3/NAS/COMMON/IES/PlmnList.c +openair3/NAS/COMMON/IES/PlmnList.h +openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c +openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h +openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c +openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h +openair3/NAS/COMMON/IES/ProtocolDiscriminator.c +openair3/NAS/COMMON/IES/ProtocolDiscriminator.h +openair3/NAS/COMMON/IES/PTmsiSignature.c +openair3/NAS/COMMON/IES/PTmsiSignature.h +openair3/NAS/COMMON/IES/QualityOfService.c +openair3/NAS/COMMON/IES/QualityOfService.h +openair3/NAS/COMMON/IES/RadioPriority.c +openair3/NAS/COMMON/IES/RadioPriority.h +openair3/NAS/COMMON/IES/SecurityHeaderType.c +openair3/NAS/COMMON/IES/SecurityHeaderType.h +openair3/NAS/COMMON/IES/ServiceType.c +openair3/NAS/COMMON/IES/ServiceType.h +openair3/NAS/COMMON/IES/ShortMac.c +openair3/NAS/COMMON/IES/ShortMac.h +openair3/NAS/COMMON/IES/SsCode.c +openair3/NAS/COMMON/IES/SsCode.h +openair3/NAS/COMMON/IES/SupportedCodecList.c +openair3/NAS/COMMON/IES/SupportedCodecList.h +openair3/NAS/COMMON/IES/TimeZone.c +openair3/NAS/COMMON/IES/TimeZone.h +openair3/NAS/COMMON/IES/TimeZoneAndTime.c +openair3/NAS/COMMON/IES/TimeZoneAndTime.h +openair3/NAS/COMMON/IES/TmsiStatus.c +openair3/NAS/COMMON/IES/TmsiStatus.h +openair3/NAS/COMMON/IES/TrackingAreaIdentity.c +openair3/NAS/COMMON/IES/TrackingAreaIdentity.h +openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c +openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h +openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c +openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h +openair3/NAS/COMMON/IES/TrafficFlowTemplate.c +openair3/NAS/COMMON/IES/TrafficFlowTemplate.h +openair3/NAS/COMMON/IES/TransactionIdentifier.c +openair3/NAS/COMMON/IES/TransactionIdentifier.h +openair3/NAS/COMMON/IES/UeNetworkCapability.c +openair3/NAS/COMMON/IES/UeNetworkCapability.h +openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c +openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h +openair3/NAS/COMMON/IES/UeSecurityCapability.c +openair3/NAS/COMMON/IES/UeSecurityCapability.h +openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c +openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h +openair3/NAS/COMMON/UTIL/tst/timer.c +openair3/NAS/COMMON/UTIL/tst/timer_debug.txt +openair3/NAS/COMMON/UTIL/device.c +openair3/NAS/COMMON/UTIL/device.h +openair3/NAS/COMMON/UTIL/memory.c +openair3/NAS/COMMON/UTIL/memory.h +openair3/NAS/COMMON/UTIL/nas_log.c +openair3/NAS/COMMON/UTIL/nas_log.h +openair3/NAS/COMMON/UTIL/nas_timer.c +openair3/NAS/COMMON/UTIL/nas_timer.h +openair3/NAS/COMMON/UTIL/OctetString.c +openair3/NAS/COMMON/UTIL/OctetString.h +openair3/NAS/COMMON/UTIL/parser.c +openair3/NAS/COMMON/UTIL/parser.h +openair3/NAS/COMMON/UTIL/socket.c +openair3/NAS/COMMON/UTIL/socket.h +openair3/NAS/COMMON/UTIL/stty.c +openair3/NAS/COMMON/UTIL/TLVDecoder.c +openair3/NAS/COMMON/UTIL/TLVDecoder.h +openair3/NAS/COMMON/UTIL/TLVEncoder.c +openair3/NAS/COMMON/UTIL/TLVEncoder.h +openair3/NAS/COMMON/commonDef.h +openair3/NAS/COMMON/networkDef.h +openair3/NAS/COMMON/securityDef.h +openair3/NAS/COMMON/userDef.h +openair3/NAS/TEST/AS_SIMULATOR/as_data.c +openair3/NAS/TEST/AS_SIMULATOR/as_data.h +openair3/NAS/TEST/AS_SIMULATOR/as_process.c +openair3/NAS/TEST/AS_SIMULATOR/as_process.h +openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c +openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c +openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h +openair3/NAS/TEST/AS_SIMULATOR/nas_data.c +openair3/NAS/TEST/AS_SIMULATOR/nas_data.h +openair3/NAS/TEST/AS_SIMULATOR/nas_process.c +openair3/NAS/TEST/AS_SIMULATOR/nas_process.h +openair3/NAS/TEST/MSC/ActivatePDN.png +openair3/NAS/TEST/MSC/AuthenticationReject.png +openair3/NAS/TEST/MSC/DeactivatePDN.png +openair3/NAS/TEST/MSC/InitialAttach.png +openair3/NAS/TEST/MSC/InitialAttachReject.png +openair3/NAS/TEST/MSC/msc_gen.py +openair3/NAS/TEST/MSC/NomalDetach.png +openair3/NAS/TEST/MSC/README +openair3/NAS/TEST/MSC/SwitchOffDetach.png +openair3/NAS/TEST/NETWORK/network_parser.c +openair3/NAS/TEST/NETWORK/network_parser.h +openair3/NAS/TEST/NETWORK/network_simulator.c +openair3/NAS/TEST/NETWORK/README +openair3/NAS/TEST/USER/user_parser.c +openair3/NAS/TEST/USER/user_parser.h +openair3/NAS/TEST/USER/user_simulator.c +openair3/NAS/TOOLS/conf2uedata.c +openair3/NAS/TOOLS/conf2uedata.h +openair3/NAS/TOOLS/conf_emm.c +openair3/NAS/TOOLS/conf_emm.h +openair3/NAS/TOOLS/conf_network.c +openair3/NAS/TOOLS/conf_network.h +openair3/NAS/TOOLS/conf_parser.c +openair3/NAS/TOOLS/conf_parser.h +openair3/NAS/TOOLS/conf_user_data.c +openair3/NAS/TOOLS/conf_user_data.h +openair3/NAS/TOOLS/conf_user_plmn.c +openair3/NAS/TOOLS/conf_user_plmn.h +openair3/NAS/TOOLS/conf_usim.c +openair3/NAS/TOOLS/conf_usim.h +openair3/NAS/TOOLS/display.c +openair3/NAS/TOOLS/display.h +openair3/NAS/TOOLS/fs.c +openair3/NAS/TOOLS/fs.h +openair3/NAS/TOOLS/network.h +openair3/NAS/TOOLS/nvram.c +openair3/NAS/TOOLS/ue_bcom_test.conf +openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf +openair3/NAS/TOOLS/ue_tcl_test.conf +openair3/NAS/TOOLS/usim.c +openair3/NAS/UE/API/USER/tst/at_parser.c +openair3/NAS/UE/API/USER/tst/at_parser.in +openair3/NAS/UE/API/USER/tst/at_parser.in.bis +openair3/NAS/UE/API/USER/tst/at_parser.out +openair3/NAS/UE/API/USER/tst/at_parser.out.bis +openair3/NAS/UE/API/USER/tst/smartcom.txt +openair3/NAS/UE/API/USER/at_command.c +openair3/NAS/UE/API/USER/at_command.h +openair3/NAS/UE/API/USER/at_error.c +openair3/NAS/UE/API/USER/at_error.h +openair3/NAS/UE/API/USER/at_response.c +openair3/NAS/UE/API/USER/at_response.h +openair3/NAS/UE/API/USER/user_api.c +openair3/NAS/UE/API/USER/user_api.h +openair3/NAS/UE/API/USER/user_api_defs.h +openair3/NAS/UE/API/USER/user_indication.c +openair3/NAS/UE/API/USER/user_indication.h +openair3/NAS/UE/API/USIM/aka_functions.c +openair3/NAS/UE/API/USIM/aka_functions.h +openair3/NAS/UE/API/USIM/usim_api.c +openair3/NAS/UE/API/USIM/usim_api.h +openair3/NAS/UE/EMM/SAP/emm_as.c +openair3/NAS/UE/EMM/SAP/emm_as.h +openair3/NAS/UE/EMM/SAP/emm_asDef.h +openair3/NAS/UE/EMM/SAP/emm_esm.c +openair3/NAS/UE/EMM/SAP/emm_esm.h +openair3/NAS/UE/EMM/SAP/emm_esmDef.h +openair3/NAS/UE/EMM/SAP/emm_fsm.c +openair3/NAS/UE/EMM/SAP/emm_fsm.h +openair3/NAS/UE/EMM/SAP/emm_recv.c +openair3/NAS/UE/EMM/SAP/emm_recv.h +openair3/NAS/UE/EMM/SAP/emm_reg.c +openair3/NAS/UE/EMM/SAP/emm_reg.h +openair3/NAS/UE/EMM/SAP/emm_regDef.h +openair3/NAS/UE/EMM/SAP/emm_sap.c +openair3/NAS/UE/EMM/SAP/emm_sap.h +openair3/NAS/UE/EMM/SAP/emm_send.c +openair3/NAS/UE/EMM/SAP/emm_send.h +openair3/NAS/UE/EMM/SAP/EmmDeregistered.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c +openair3/NAS/UE/EMM/SAP/EmmNull.c +openair3/NAS/UE/EMM/SAP/EmmRegistered.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c +openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c +openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c +openair3/NAS/UE/EMM/Attach.c +openair3/NAS/UE/EMM/Authentication.c +openair3/NAS/UE/EMM/Authentication.h +openair3/NAS/UE/EMM/Detach.c +openair3/NAS/UE/EMM/emm_fsm_defs.h +openair3/NAS/UE/EMM/emm_main.c +openair3/NAS/UE/EMM/emm_main.h +openair3/NAS/UE/EMM/emm_proc.h +openair3/NAS/UE/EMM/emm_proc_defs.h +openair3/NAS/UE/EMM/emm_timers.h +openair3/NAS/UE/EMM/emmData.h +openair3/NAS/UE/EMM/EmmStatusHdl.c +openair3/NAS/UE/EMM/Identification.c +openair3/NAS/UE/EMM/IdleMode.c +openair3/NAS/UE/EMM/IdleMode.h +openair3/NAS/UE/EMM/IdleMode_defs.h +openair3/NAS/UE/EMM/LowerLayer.c +openair3/NAS/UE/EMM/LowerLayer.h +openair3/NAS/UE/EMM/LowerLayer_defs.h +openair3/NAS/UE/EMM/SecurityModeControl.c +openair3/NAS/UE/EMM/SecurityModeControl.h +openair3/NAS/UE/EMM/ServiceRequestHdl.c +openair3/NAS/UE/EMM/TrackingAreaUpdate.c +openair3/NAS/UE/ESM/SAP/esm_recv.c +openair3/NAS/UE/ESM/SAP/esm_recv.h +openair3/NAS/UE/ESM/SAP/esm_sap.c +openair3/NAS/UE/ESM/SAP/esm_sap.h +openair3/NAS/UE/ESM/SAP/esm_sapDef.h +openair3/NAS/UE/ESM/SAP/esm_send.c +openair3/NAS/UE/ESM/SAP/esm_send.h +openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c +openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c +openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c +openair3/NAS/UE/ESM/esm_ebr.c +openair3/NAS/UE/ESM/esm_ebr.h +openair3/NAS/UE/ESM/esm_ebr_context.c +openair3/NAS/UE/ESM/esm_ebr_context.h +openair3/NAS/UE/ESM/esm_ip.c +openair3/NAS/UE/ESM/esm_main.c +openair3/NAS/UE/ESM/esm_main.h +openair3/NAS/UE/ESM/esm_proc.h +openair3/NAS/UE/ESM/esm_pt.c +openair3/NAS/UE/ESM/esm_pt.h +openair3/NAS/UE/ESM/esm_pt_defs.h +openair3/NAS/UE/ESM/esmData.h +openair3/NAS/UE/ESM/EsmStatusHdl.c +openair3/NAS/UE/ESM/PdnConnectivity.c +openair3/NAS/UE/ESM/PdnDisconnect.c +openair3/NAS/UE/nas_itti_messaging.c +openair3/NAS/UE/nas_itti_messaging.h +openair3/NAS/UE/nas_network.c +openair3/NAS/UE/nas_network.h +openair3/NAS/UE/nas_parser.c +openair3/NAS/UE/nas_parser.h +openair3/NAS/UE/nas_proc.c +openair3/NAS/UE/nas_proc.h +openair3/NAS/UE/nas_proc_defs.h +openair3/NAS/UE/nas_ue_task.c +openair3/NAS/UE/nas_ue_task.h +openair3/NAS/UE/nas_user.c +openair3/NAS/UE/nas_user.h +openair3/NAS/UE/UEprocess.c +openair3/NAS/UE/user_defs.h +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn +openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py +openair3/S1AP/MESSAGES/ASN1/README +openair3/S1AP/s1ap_common.c +openair3/S1AP/s1ap_common.h +openair3/S1AP/s1ap_eNB.c +openair3/S1AP/s1ap_eNB.h +openair3/S1AP/s1ap_eNB_context_management_procedures.c +openair3/S1AP/s1ap_eNB_context_management_procedures.h +openair3/S1AP/s1ap_eNB_decoder.c +openair3/S1AP/s1ap_eNB_decoder.h +openair3/S1AP/s1ap_eNB_default_values.h +openair3/S1AP/s1ap_eNB_defs.h +openair3/S1AP/s1ap_eNB_encoder.c +openair3/S1AP/s1ap_eNB_encoder.h +openair3/S1AP/s1ap_eNB_handlers.c +openair3/S1AP/s1ap_eNB_handlers.h +openair3/S1AP/s1ap_eNB_itti_messaging.c +openair3/S1AP/s1ap_eNB_itti_messaging.h +openair3/S1AP/s1ap_eNB_management_procedures.c +openair3/S1AP/s1ap_eNB_management_procedures.h +openair3/S1AP/s1ap_eNB_nas_procedures.c +openair3/S1AP/s1ap_eNB_nas_procedures.h +openair3/S1AP/s1ap_eNB_nnsf.c +openair3/S1AP/s1ap_eNB_nnsf.h +openair3/S1AP/s1ap_eNB_overload.c +openair3/S1AP/s1ap_eNB_overload.h +openair3/S1AP/s1ap_eNB_trace.c +openair3/S1AP/s1ap_eNB_trace.h +openair3/S1AP/s1ap_eNB_ue_context.c +openair3/S1AP/s1ap_eNB_ue_context.h +openair3/SCTP/sctp_common.c +openair3/SCTP/sctp_common.h +openair3/SCTP/sctp_default_values.h +openair3/SCTP/sctp_eNB_defs.h +openair3/SCTP/sctp_eNB_itti_messaging.c +openair3/SCTP/sctp_eNB_itti_messaging.h +openair3/SCTP/sctp_eNB_task.c +openair3/SCTP/sctp_eNB_task.h +openair3/SCTP/sctp_primitives_client.c +openair3/SCTP/sctp_primitives_client.h +openair3/SECU/kdf.c +openair3/SECU/key_nas_deriver.c +openair3/SECU/key_nas_encryption.c +openair3/SECU/nas_stream_eea1.c +openair3/SECU/nas_stream_eea2.c +openair3/SECU/nas_stream_eia1.c +openair3/SECU/nas_stream_eia2.c +openair3/SECU/rijndael.c +openair3/SECU/rijndael.h +openair3/SECU/secu_defs.h +openair3/SECU/snow3g.c +openair3/SECU/snow3g.h +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml +openair3/TEST/EPC_TEST/generate_scenario.c +openair3/TEST/EPC_TEST/generate_scenario.h +openair3/TEST/EPC_TEST/play_scenario.c +openair3/TEST/EPC_TEST/play_scenario.h +openair3/TEST/EPC_TEST/play_scenario_decode.c +openair3/TEST/EPC_TEST/play_scenario_display.c +openair3/TEST/EPC_TEST/play_scenario_fsm.c +openair3/TEST/EPC_TEST/play_scenario_parse.c +openair3/TEST/EPC_TEST/play_scenario_s1ap.c +openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c +openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h +openair3/TEST/EPC_TEST/play_scenario_sctp.c +openair3/TEST/oaisim_mme_client_test.c +openair3/TEST/oaisim_mme_itti_test.c +openair3/TEST/oaisim_mme_list_benchmark.c +openair3/TEST/oaisim_mme_s1ap_test.c +openair3/TEST/oaisim_mme_sctp_test.c +openair3/TEST/oaisim_mme_test_s1c.c +openair3/TEST/oaisim_mme_test_s1c.h +openair3/TEST/oaisim_mme_test_s1c_s1ap.c +openair3/TEST/oaisim_mme_test_s1c_s1ap.h +openair3/TEST/oaisim_mme_test_s1c_scenario.c +openair3/TEST/oaisim_mme_test_s1c_scenario.h +openair3/TEST/oaisim_mme_test_s1c_scenario1.c +openair3/TEST/test_aes128_cmac_encrypt.c +openair3/TEST/test_aes128_ctr_decrypt.c +openair3/TEST/test_aes128_ctr_encrypt.c +openair3/TEST/test_kdf.c +openair3/TEST/test_s1ap.c +openair3/TEST/test_secu.c +openair3/TEST/test_secu_kenb.c +openair3/TEST/test_secu_knas.c +openair3/TEST/test_secu_knas_encrypt_eea1.c +openair3/TEST/test_secu_knas_encrypt_eea2.c +openair3/TEST/test_secu_knas_encrypt_eia1.c +openair3/TEST/test_secu_knas_encrypt_eia2.c +openair3/TEST/test_secu_knas_stream_int.c +openair3/UDP/udp_eNB_task.c +openair3/UDP/udp_eNB_task.h +openair3/UTILS/CONF/COPYING +openair3/UTILS/conversions.c +openair3/UTILS/conversions.h +openair3/UTILS/enum_string.c +openair3/UTILS/enum_string.h +openair3/UTILS/log.c +openair3/UTILS/log.h +openair3/UTILS/mcc_mnc_itu.c +openair3/UTILS/mcc_mnc_itu.h +openair3/UTILS/mme_config.c +openair3/UTILS/mme_config.h +openair3/UTILS/mme_default_values.h +openair3/UTILS/mme_parser.y +openair3/UTILS/mme_scanner.l +openair3/UTILS/queue.h +openair3/UTILS/tree.h +openair3/valgrind.sh +svn2git/authors.txt +svn2git/authors_original.txt +svn2git/authors_original_java_output.txt +svn2git/check_diff_author.sh +svn2git/git-author-rewrite.sh +svn2git/README.txt +targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c +targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h +targets/ARCH/COMMON/common_lib.c +targets/ARCH/COMMON/common_lib.h +targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c +targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c +targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c +targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h +targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk +targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd +targets/ARCH/EXMIMO/BITSTREAM/program_fpga +targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd +targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd +targets/ARCH/EXMIMO/DEFS/openair_device.h +targets/ARCH/EXMIMO/DEFS/pcie_interface.h +targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h +targets/ARCH/EXMIMO/DRIVER/eurecom/do_reenumerate_expressmimo.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/do_reinsert_driver.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c +targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h +targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c +targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c +targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c +targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reenumerate_expressmimo.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reinsert_driver.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/test_script.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c +targets/ARCH/EXMIMO/DRIVER/readme.txt +targets/ARCH/EXMIMO/USERSPACE/LIB/example.c +targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c +targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h +targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c +targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo1 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v9 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m +targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp +targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp +targets/ARCH/LMSSDR/LimeSDR.ini +targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini +targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini +targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini +targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini +targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +targets/bin/liboai_device.so +targets/bin/liboai_usrpdevif.so.Rel14 +targets/bin/lte-softmodem.Rel14 +targets/COMMON/create_tasks.c +targets/COMMON/create_tasks.h +targets/COMMON/openairinterface5g_limits.h +targets/COMMON/threads_t.h +targets/DOCS/images/oai_logo.png +targets/DOCS/api_icic.xml +targets/DOCS/Doxyfile +targets/DOCS/E-UTRAN_User_Guide.docx +targets/DOCS/E-UTRAN_User_Guide.pdf +targets/DOCS/oai_L1_L2_procedures.pdf +targets/DOCS/oaiemu.doc +targets/DOCS/oaisim_walkthrough.pdf +targets/DOCS/openair_header.tex +targets/DOCS/path_loss_oaisim.xlsx +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf +targets/PROJECTS/E-MBMS/build_all.bash +targets/PROJECTS/E-MBMS/enb.conf +targets/PROJECTS/E-MBMS/start_enb.bash +targets/PROJECTS/E-MBMS/start_ue.bash +targets/PROJECTS/E-MBMS/utils.bash +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.centos.nord.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.memphis.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.epc_eur.local.exmimo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml +targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash +targets/PROJECTS/GENERIC-LTE-EPC/networks.bash +targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash +targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash +targets/PROJECTS/GENERIC-LTE-EPC/utils.bash +targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash +targets/PROJECTS/LOCALIZATION/filesave0811.mat +targets/PROJECTS/LOCALIZATION/generation.m +targets/PROJECTS/LOCALIZATION/initial_sync.m +targets/PROJECTS/LOCALIZATION/initparams.m +targets/PROJECTS/LOCALIZATION/plots.m +targets/PROJECTS/LOCALIZATION/recup.m +targets/PROJECTS/LOCALIZATION/where2.m +targets/PROJECTS/LOCALIZATION/where2_v1_final.mat +targets/PROJECTS/LOCALIZATION/where2_vf.m +targets/PROJECTS/TDDREC/v0/alterproj.m +targets/PROJECTS/TDDREC/v0/beamforming.m +targets/PROJECTS/TDDREC/v0/calibration.m +targets/PROJECTS/TDDREC/v0/genorthqpskseq.m +targets/PROJECTS/TDDREC/v0/genrandpskseq.m +targets/PROJECTS/TDDREC/v0/initparams.m +targets/PROJECTS/TDDREC/v0/initparams2.m +targets/PROJECTS/TDDREC/v0/ofdm_mod.m +targets/PROJECTS/TDDREC/v0/readme.txt +targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m +targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m +targets/PROJECTS/TDDREC/v0/runmeas_mimo.m +targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m +targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m +targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m +targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m +targets/PROJECTS/TDDREC/f_ch_est.m +targets/PROJECTS/TDDREC/f_ofdm_mod.m +targets/PROJECTS/TDDREC/f_ofdm_rx.m +targets/PROJECTS/TDDREC/f_ofdm_tx.m +targets/PROJECTS/TDDREC/f_tls_ap.m +targets/PROJECTS/TDDREC/f_tls_diag.m +targets/PROJECTS/TDDREC/f_tls_svd.m +targets/PROJECTS/TDDREC/s_beamforming.m +targets/PROJECTS/TDDREC/s_calib.m +targets/PROJECTS/TDDREC/s_draw_F.m +targets/PROJECTS/TDDREC/s_init_params.m +targets/PROJECTS/TDDREC/s_run_meas.m +targets/RT/LAUNCH_SCRIPTS/load_module.sh +targets/RT/LAUNCH_SCRIPTS/nas_enb.sh +targets/RT/LAUNCH_SCRIPTS/nas_ue.sh +targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh +targets/RT/LAUNCH_SCRIPTS/start_emos.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh +targets/RT/LAUNCH_SCRIPTS/start_rf.sh +targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh +targets/RT/LAUNCH_SCRIPTS/start_ue.sh +targets/RT/LAUNCH_SCRIPTS/start_ue2.sh +targets/RT/LAUNCH_SCRIPTS/stop_rf.sh +targets/RT/USER/TOOLS/thread_ipc.c +targets/RT/USER/TOOLS/thread_ipc.h +targets/RT/USER/condtest.c +targets/RT/USER/emos-raw.c +targets/RT/USER/eNB_exmimo2.gtkw +targets/RT/USER/eNB_transport_IQ.c +targets/RT/USER/eNB_usrp.gtkw +targets/RT/USER/exmimo2_2arxg.lime +targets/RT/USER/exmimo2_2brxg.lime +targets/RT/USER/init_b200.sh +targets/RT/USER/init_exmimo.sh +targets/RT/USER/init_exmimo2.sh +targets/RT/USER/init_rtai.sh +targets/RT/USER/lte-enb.c +targets/RT/USER/lte-ran.c +targets/RT/USER/lte-ru.c +targets/RT/USER/lte-softmodem.c +targets/RT/USER/lte-softmodem.h +targets/RT/USER/lte-ue.c +targets/RT/USER/make_for_usrp.sh +targets/RT/USER/msg_helper.c +targets/RT/USER/msg_many.c +targets/RT/USER/msg_many.h +targets/RT/USER/rau_if4_single_thread.gtkw +targets/RT/USER/rcc_if4.gtkw +targets/RT/USER/rcc_if5.gtkw +targets/RT/USER/rrh.c +targets/RT/USER/rrh.gtkw +targets/RT/USER/rrh_gw.c +targets/RT/USER/rrh_gw.h +targets/RT/USER/rrh_gw_externs.h +targets/RT/USER/rru_if4p5_single_thread.gtkw +targets/RT/USER/rru_if4p5_usrp.gtkw +targets/RT/USER/rru_if5_usrp.gtkw +targets/RT/USER/rt_wrapper.c +targets/RT/USER/rt_wrapper.h +targets/RT/USER/sleeptest.c +targets/RT/USER/stats.c +targets/RT/USER/stats.fd +targets/RT/USER/stats.h +targets/RT/USER/synctest.c +targets/RT/USER/ue_exmimo2.gtkw +targets/RT/USER/UE_transport_IQ.c +targets/RT/USER/ue_usrp.gtkw +targets/SCRIPTS/asn1_generate_rrc_messaging_c_code.bash +targets/SCRIPTS/install_asn1.sh +targets/SCRIPTS/install_asn1c_0.9.24.modified.bash +targets/SCRIPTS/msc_gen.py +targets/SCRIPTS/svn-merge-meld.py +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 +targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml +targets/SIMU/EXAMPLES/OSD/README.txt +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas +targets/SIMU/PROC/SCRIPT/Run.py +targets/SIMU/PROC/channel_sim_proc.c +targets/SIMU/PROC/channel_sim_proc.h +targets/SIMU/PROC/interface.h +targets/SIMU/PROC/Process.c +targets/SIMU/PROC/Process.h +targets/SIMU/PROC/Tsync.h +targets/SIMU/USER/files/MI_16qam.csv +targets/SIMU/USER/files/MI_16qam.txt +targets/SIMU/USER/files/MI_4qam.csv +targets/SIMU/USER/files/MI_4qam.txt +targets/SIMU/USER/files/MI_64qam.csv +targets/SIMU/USER/files/MI_64qam.txt +targets/SIMU/USER/channel_sim.c +targets/SIMU/USER/cor_SF_sim.c +targets/SIMU/USER/cor_SF_sim.h +targets/SIMU/USER/event_handler.c +targets/SIMU/USER/event_handler.h +targets/SIMU/USER/init_lte.c +targets/SIMU/USER/init_lte.h +targets/SIMU/USER/oaisim.c +targets/SIMU/USER/oaisim.h +targets/SIMU/USER/oaisim_config.c +targets/SIMU/USER/oaisim_config.h +targets/SIMU/USER/oaisim_functions.c +targets/SIMU/USER/oaisim_functions.h +targets/SIMU/USER/oaisim_pad.c +targets/SIMU/USER/phy_procedures_sim_form.c +targets/SIMU/USER/phy_procedures_sim_form.fd +targets/SIMU/USER/phy_procedures_sim_form.h +targets/SIMU/USER/plot_results.m +targets/SIMU/USER/sinr_sim.c +targets/SIMU/USER/threadpool.c +targets/SIMU/USER/threadpool.h +targets/SIMU/USER/valgrind.sh +targets/TEST/AT_COMMANDS/oaisim.c +targets/TEST/OAI/case01.py +targets/TEST/OAI/case02.py +targets/TEST/OAI/case03.py +targets/TEST/OAI/case04.py +targets/TEST/OAI/case05.py +targets/TEST/OAI/case11.py +targets/TEST/OAI/case12.py +targets/TEST/OAI/case13.py +targets/TEST/OAI/core.py +targets/TEST/OAI/log.py +targets/TEST/OAI/openair.py +targets/TEST/OAI/README +targets/TEST/OAI/test01.py +targets/TEST/OAI/test02.py +targets/TEST/PACKET_TRACER/messages/Msg4.txt +targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt +targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt +targets/TEST/PACKET_TRACER/messages/sib1.txt +targets/TEST/PACKET_TRACER/messages/sib2.txt +targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt +targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt +targets/TEST/PACKET_TRACER/messages/sib3.txt +targets/TEST/PACKET_TRACER/pt.c +targets/TEST/PACKET_TRACER/README.txt +targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt +targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c +targets/TEST/PDCP/readme.txt +targets/TEST/PDCP/test_pdcp.c +targets/TEST/PDCP/test_pdcp.h +targets/TEST/PDCP/test_util.h +targets/TEST/PDCP/todo.txt +targets/TEST/RLC_AM_V9.3.0/oaisim.c +targets/TEST/RLC_UM_V9.3.0/oaisim.c +targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp +targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp +targets/TEST/ROHDE_SCHWARZ/TcpClient.h +targets/build_helper.bash +targets/build_oai.bash +targets/itti_vcd_tasks.sav +targets/Makerules +targets/perf_oai.bash +targets/README.txt +LICENSE +maketags +NOTICE.txt +oaienv +pre-commit +README.txt \ No newline at end of file diff --git a/ray_enb_dev.includes b/ray_enb_dev.includes new file mode 100644 index 0000000000..ff1452acfd --- /dev/null +++ b/ray_enb_dev.includes @@ -0,0 +1,144 @@ +cmake_targets/lte_build_oai/build/CMakeFiles +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5 +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2 +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14 +common +common/utils +common/utils/collection +common/utils/hashtable +common/utils/itti +common/utils/itti_analyzer/common +common/utils/itti_analyzer/libbuffers +common/utils/itti_analyzer/libparser +common/utils/itti_analyzer/libresolver +common/utils/itti_analyzer/libui +common/utils/msc +common/utils/T +common/utils/T/tracer +common/utils/T/tracer/filter +common/utils/T/tracer/gui +common/utils/T/tracer/logger +common/utils/T/tracer/view +openair1/PHY +openair1/PHY/CODING +openair1/PHY/INIT +openair1/PHY/LTE_ESTIMATION +openair1/PHY/LTE_REFSIG +openair1/PHY/LTE_TRANSPORT +openair1/PHY/MODULATION +openair1/PHY/TOOLS +openair1/SCHED +openair1/SIMULATION/ETH_TRANSPORT +openair1/SIMULATION/LTE_PHY +openair1/SIMULATION/RF +openair1/SIMULATION/TOOLS +openair2/COMMON +openair2/DOCS/TEMPLATES/CODE +openair2/ENB_APP +openair2/ENB_APP/CONTROL_MODULES/MAC +openair2/LAYER2 +openair2/LAYER2/MAC +openair2/LAYER2/PDCP_v10.1.0 +openair2/LAYER2/RLC +openair2/LAYER2/RLC/AM_v9.3.0 +openair2/LAYER2/RLC/TM_v9.3.0 +openair2/LAYER2/RLC/UM_v9.3.0 +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL +openair2/NAS/DRIVER/CELLULAR/NASMT +openair2/NAS/DRIVER/CELLULAR/NASRG +openair2/NAS/SIMU_CELLULAR +openair2/NETWORK_DRIVER/LITE +openair2/NETWORK_DRIVER/MESH +openair2/NETWORK_DRIVER/UE_IP +openair2/PHY_INTERFACE +openair2/RRC/L2_INTERFACE +openair2/RRC/LITE +openair2/RRC/LITE/MESSAGES +openair2/RRC/NAS +openair2/UTIL/ASYNC_IF +openair2/UTIL/BIGPHYS +openair2/UTIL/CLI +openair2/UTIL/FIFO +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack +openair2/UTIL/LFDS/liblfds6.1.1/test/src +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700 +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack +openair2/UTIL/LFDS/liblfds7.0.0/test/src +openair2/UTIL/LISTS +openair2/UTIL/LOG +openair2/UTIL/MATH +openair2/UTIL/MEM +openair2/UTIL/OCG +openair2/UTIL/OMG +openair2/UTIL/OMV +openair2/UTIL/OPT +openair2/UTIL/OSA +openair2/UTIL/OTG +openair2/UTIL/TIMER +openair2/UTIL/TRACE +openair2/X2AP +openair3/COMMON +openair3/GTPV1-U +openair3/GTPV1-U/nw-gtpv1u/include +openair3/GTPV1-U/nw-gtpv1u/shared +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld +openair3/NAS/COMMON +openair3/NAS/COMMON/API/NETWORK +openair3/NAS/COMMON/EMM/MSG +openair3/NAS/COMMON/ESM/MSG +openair3/NAS/COMMON/IES +openair3/NAS/COMMON/UTIL +openair3/NAS/TEST/AS_SIMULATOR +openair3/NAS/TEST/NETWORK +openair3/NAS/TEST/USER +openair3/NAS/TOOLS +openair3/NAS/UE +openair3/NAS/UE/API/USER +openair3/NAS/UE/API/USIM +openair3/NAS/UE/EMM +openair3/NAS/UE/EMM/SAP +openair3/NAS/UE/ESM +openair3/NAS/UE/ESM/SAP +openair3/S1AP +openair3/SCTP +openair3/SECU +openair3/TEST +openair3/TEST/EPC_TEST +openair3/UDP +openair3/UTILS +targets/ARCH/BLADERF/USERSPACE/LIB +targets/ARCH/COMMON +targets/ARCH/ETHERNET/USERSPACE/LIB +targets/ARCH/EXMIMO/DEFS +targets/ARCH/EXMIMO/DRIVER/eurecom +targets/ARCH/EXMIMO/DRIVER/exmimo3 +targets/ARCH/EXMIMO/DRIVER/telecomparistech +targets/ARCH/EXMIMO/USERSPACE/LIB +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT +targets/ARCH/EXMIMO/USERSPACE/OCTAVE +targets/COMMON +targets/RT/USER +targets/RT/USER/TOOLS +targets/SIMU/PROC +targets/SIMU/USER +targets/TEST/PDCP +targets/TEST/ROHDE_SCHWARZ \ No newline at end of file From 0cc55ce97ae31716d2694af941a1c2bda2fe35d6 Mon Sep 17 00:00:00 2001 From: khalid Date: Wed, 9 Aug 2017 16:48:55 +0200 Subject: [PATCH 011/125] Delete ray_enb_dev.config --- ray_enb_dev.config | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 ray_enb_dev.config diff --git a/ray_enb_dev.config b/ray_enb_dev.config deleted file mode 100644 index e0284f4257..0000000000 --- a/ray_enb_dev.config +++ /dev/null @@ -1,2 +0,0 @@ -// Add predefined macros for your project here. For example: -// #define THE_ANSWER 42 From e9ba8c20ed5439b9ec7e1a2c406fcf2acfa90dc6 Mon Sep 17 00:00:00 2001 From: khalid Date: Wed, 9 Aug 2017 16:49:18 +0200 Subject: [PATCH 012/125] Delete ray_enb_dev.creator --- ray_enb_dev.creator | 1 - 1 file changed, 1 deletion(-) delete mode 100644 ray_enb_dev.creator diff --git a/ray_enb_dev.creator b/ray_enb_dev.creator deleted file mode 100644 index e94cbbd302..0000000000 --- a/ray_enb_dev.creator +++ /dev/null @@ -1 +0,0 @@ -[General] From ec6874e1ef3360488be052877fca9edb3077c744 Mon Sep 17 00:00:00 2001 From: khalid Date: Wed, 9 Aug 2017 16:49:33 +0200 Subject: [PATCH 013/125] Delete ray_enb_dev.files --- ray_enb_dev.files | 7811 --------------------------------------------- 1 file changed, 7811 deletions(-) delete mode 100644 ray_enb_dev.files diff --git a/ray_enb_dev.files b/ray_enb_dev.files deleted file mode 100644 index 434bed8ab5..0000000000 --- a/ray_enb_dev.files +++ /dev/null @@ -1,7811 +0,0 @@ -cmake_targets/at_commands/CMakeLists.txt -cmake_targets/autotests/templates/index.html -cmake_targets/autotests/templates/testcase_report.html -cmake_targets/autotests/tools/autotest_analyser.py -cmake_targets/autotests/tools/configure_cots_bandrich_ue.py -cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py -cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py -cmake_targets/autotests/tools/configure_usrpb210.py -cmake_targets/autotests/tools/find_usb_path.bash -cmake_targets/autotests/tools/free_mem.bash -cmake_targets/autotests/tools/git-retry.sh -cmake_targets/autotests/tools/iperf3_script -cmake_targets/autotests/tools/iperf3_script_phone -cmake_targets/autotests/tools/iperf_script -cmake_targets/autotests/tools/iperf_script_phone -cmake_targets/autotests/tools/lib_autotest.py -cmake_targets/autotests/tools/lib_autotest_analyser.py -cmake_targets/autotests/tools/remove_old_programs.bash -cmake_targets/autotests/tools/run_gdb -cmake_targets/autotests/tools/search_repl.py -cmake_targets/autotests/tools/wdial.bandrich.conf -cmake_targets/autotests/v2/actions/alu_epc.bash -cmake_targets/autotests/v2/actions/alu_epc_stop.bash -cmake_targets/autotests/v2/actions/alu_hss.bash -cmake_targets/autotests/v2/actions/bandrich.txt -cmake_targets/autotests/v2/actions/client_tcp.bash -cmake_targets/autotests/v2/actions/client_udp.bash -cmake_targets/autotests/v2/actions/clone_repository.bash -cmake_targets/autotests/v2/actions/compilation.bash -cmake_targets/autotests/v2/actions/execution.bash -cmake_targets/autotests/v2/actions/execution_compile.bash -cmake_targets/autotests/v2/actions/modem.py -cmake_targets/autotests/v2/actions/run_enb.bash -cmake_targets/autotests/v2/actions/server_tcp.bash -cmake_targets/autotests/v2/actions/server_udp.bash -cmake_targets/autotests/v2/actions/start_3276.bash -cmake_targets/autotests/v2/actions/start_3276.py -cmake_targets/autotests/v2/actions/start_bandrich.bash -cmake_targets/autotests/v2/actions/start_bandrich.py -cmake_targets/autotests/v2/actions/stop_3276.py -cmake_targets/autotests/v2/actions/stop_bandrich.py -cmake_targets/autotests/v2/actions/wvdial.3276.conf -cmake_targets/autotests/v2/actions/wvdial.bandrich.conf -cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf -cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf -cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf -cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf -cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf -cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf -cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf -cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf -cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf -cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf -cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf -cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf -cmake_targets/autotests/v2/alu_test.py -cmake_targets/autotests/v2/connection.py -cmake_targets/autotests/v2/machine_list.py -cmake_targets/autotests/v2/main.py -cmake_targets/autotests/v2/task.py -cmake_targets/autotests/v2/utils.py -cmake_targets/autotests/core.py -cmake_targets/autotests/log.py -cmake_targets/autotests/openair.py -cmake_targets/autotests/README.txt -cmake_targets/autotests/run_compilation_autotests.bash -cmake_targets/autotests/run_exec_autotests.bash -cmake_targets/autotests/run_exec_lte-softmodem_tests.py -cmake_targets/autotests/test_case_list.xml -cmake_targets/autotests/testsuite_ue_noS1.xml -cmake_targets/autotests/testsuite_ue_noS1_TCL.xml -cmake_targets/doxygen/CMakeLists.txt -cmake_targets/epc_test/CMakeLists.template -cmake_targets/log/lte-softmodem.Rel14.txt -cmake_targets/log/oai_usrpdevif.Rel14.txt -cmake_targets/lte-simulators/CMakeLists.txt -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/CXX.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn1_constants.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_application.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_internal.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_system.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/converter-sample.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_compare.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_ies_defs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_xer_print.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn1_constants.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_application.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_internal.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_system.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/converter-sample.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_ies_defs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_xer_print.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn1_constants.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_application.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_internal.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_system.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/converter-sample.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/cmake.check_cache -cmake_targets/lte_build_oai/build/CMakeFiles/CMakeDirectoryInformation.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CMakeOutput.log -cmake_targets/lte_build_oai/build/CMakeFiles/CMakeRuleHashes.txt -cmake_targets/lte_build_oai/build/CMakeFiles/messages.xml -cmake_targets/lte_build_oai/build/CMakeFiles/messages_xml.h -cmake_targets/lte_build_oai/build/CMakeFiles/progress.marks -cmake_targets/lte_build_oai/build/CMakeFiles/TargetDirectories.txt -cmake_targets/lte_build_oai/build/cmake_install.cmake -cmake_targets/lte_build_oai/build/CMakeCache.txt -cmake_targets/lte_build_oai/build/libGTPV1U.a -cmake_targets/lte_build_oai/build/libHASHTABLE.a -cmake_targets/lte_build_oai/build/libITTI.a -cmake_targets/lte_build_oai/build/libL2.a -cmake_targets/lte_build_oai/build/libLFDS.a -cmake_targets/lte_build_oai/build/libLFDS7.a -cmake_targets/lte_build_oai/build/libLIB_NAS_UE.a -cmake_targets/lte_build_oai/build/liboai_device.so -cmake_targets/lte_build_oai/build/liboai_usrpdevif.so -cmake_targets/lte_build_oai/build/libPHY.a -cmake_targets/lte_build_oai/build/libRRC_LIB.a -cmake_targets/lte_build_oai/build/libS1AP_ENB.a -cmake_targets/lte_build_oai/build/libS1AP_LIB.a -cmake_targets/lte_build_oai/build/libSCHED_LIB.a -cmake_targets/lte_build_oai/build/libSCTP_CLIENT.a -cmake_targets/lte_build_oai/build/libSECU_CN.a -cmake_targets/lte_build_oai/build/libSECU_OSA.a -cmake_targets/lte_build_oai/build/libUDP.a -cmake_targets/lte_build_oai/build/libUTIL.a -cmake_targets/lte_build_oai/build/lte-softmodem -cmake_targets/lte_build_oai/CMakeLists.txt -cmake_targets/lte_noS1_build_oai/CMakeLists.template -cmake_targets/nas_sim_tools/CMakeLists.txt -cmake_targets/oaisim_build_oai/CMakeLists.template -cmake_targets/oaisim_mme_build_oai/CMakeLists.template -cmake_targets/oaisim_noS1_build_oai/CMakeLists.template -cmake_targets/s1c_mme_test/CMakeLists.template -cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff -cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff -cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff -cmake_targets/tools/MODULES/cmake_useful.cmake -cmake_targets/tools/MODULES/CMakeParseArguments.cmake -cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake -cmake_targets/tools/MODULES/CMakeUserUseBison.cmake -cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake -cmake_targets/tools/MODULES/FindFreeDiameter.cmake -cmake_targets/tools/MODULES/FindGCCXML.cmake -cmake_targets/tools/MODULES/FindGcrypt.cmake -cmake_targets/tools/MODULES/FindGnuTLS.cmake -cmake_targets/tools/MODULES/FindKbuild.cmake -cmake_targets/tools/MODULES/FindLibXml2.cmake -cmake_targets/tools/MODULES/FindMySQL.cmake -cmake_targets/tools/MODULES/FindNettle.cmake -cmake_targets/tools/MODULES/FindPostgreSQL.cmake -cmake_targets/tools/MODULES/FindSCTP.cmake -cmake_targets/tools/MODULES/Kbuild.cmake -cmake_targets/tools/MODULES/kbuild_system.cmake -cmake_targets/tools/MODULES/kmodule.cmake -cmake_targets/tools/MODULES/path_prefixes.cmake -cmake_targets/tools/asn1tostruct.py -cmake_targets/tools/build_helper -cmake_targets/tools/build_test_epc_tools -cmake_targets/tools/example_enb_exmimo_mme_hss.txt -cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt -cmake_targets/tools/exmimo2_2arxg.lime -cmake_targets/tools/exmimo2_2brxg.lime -cmake_targets/tools/exmimo_stop_octave.m -cmake_targets/tools/fix_asn1 -cmake_targets/tools/generate_asn1 -cmake_targets/tools/generate_protobuf -cmake_targets/tools/indent_source_code -cmake_targets/tools/init_exmimo2 -cmake_targets/tools/init_nas_nos1 -cmake_targets/tools/init_nas_s1 -cmake_targets/tools/Kbuild.cmake -cmake_targets/tools/make_agent_cache -cmake_targets/tools/mem_usage -cmake_targets/tools/perf_oai.bash -cmake_targets/tools/run_enb_s1_exmimo -cmake_targets/tools/run_enb_s1_usrp -cmake_targets/tools/run_enb_ue_virt_noS1 -cmake_targets/tools/run_enb_ue_virt_s1 -cmake_targets/tools/run_ue_s1 -cmake_targets/tools/start_bladerf.py -cmake_targets/tools/stop_exmimo2 -cmake_targets/tools/test_helper -cmake_targets/build_oai -cmake_targets/build_ue -cmake_targets/CMakeLists.txt -cmake_targets/snap_environment.sh -common/utils/collection/queue.h -common/utils/collection/tree.h -common/utils/hashtable/hashtable.c -common/utils/hashtable/hashtable.h -common/utils/hashtable/obj_hashtable.c -common/utils/hashtable/obj_hashtable.h -common/utils/itti/assertions.h -common/utils/itti/backtrace.c -common/utils/itti/backtrace.h -common/utils/itti/intertask_interface.c -common/utils/itti/intertask_interface.h -common/utils/itti/intertask_interface_dump.c -common/utils/itti/intertask_interface_dump.h -common/utils/itti/intertask_interface_init.h -common/utils/itti/intertask_interface_types.h -common/utils/itti/intertask_messages_def.h -common/utils/itti/intertask_messages_types.h -common/utils/itti/itti_types.h -common/utils/itti/memory_pools.c -common/utils/itti/memory_pools.h -common/utils/itti/messages_def.h -common/utils/itti/messages_types.h -common/utils/itti/signals.c -common/utils/itti/signals.h -common/utils/itti/tasks_def.h -common/utils/itti/timer.c -common/utils/itti/timer.h -common/utils/itti/timer_messages_def.h -common/utils/itti/timer_messages_types.h -common/utils/itti_analyzer/common/itti_types.h -common/utils/itti_analyzer/common/logs.h -common/utils/itti_analyzer/common/queue.h -common/utils/itti_analyzer/common/rc.h -common/utils/itti_analyzer/libbuffers/buffers.c -common/utils/itti_analyzer/libbuffers/buffers.h -common/utils/itti_analyzer/libbuffers/file.c -common/utils/itti_analyzer/libbuffers/file.h -common/utils/itti_analyzer/libbuffers/socket.c -common/utils/itti_analyzer/libbuffers/socket.h -common/utils/itti_analyzer/libparser/array_type.c -common/utils/itti_analyzer/libparser/array_type.h -common/utils/itti_analyzer/libparser/enum_type.c -common/utils/itti_analyzer/libparser/enum_type.h -common/utils/itti_analyzer/libparser/enum_value_type.c -common/utils/itti_analyzer/libparser/enum_value_type.h -common/utils/itti_analyzer/libparser/field_type.c -common/utils/itti_analyzer/libparser/field_type.h -common/utils/itti_analyzer/libparser/file_type.c -common/utils/itti_analyzer/libparser/file_type.h -common/utils/itti_analyzer/libparser/fundamental_type.c -common/utils/itti_analyzer/libparser/fundamental_type.h -common/utils/itti_analyzer/libparser/intertask_contexts.h -common/utils/itti_analyzer/libparser/pointer_type.c -common/utils/itti_analyzer/libparser/pointer_type.h -common/utils/itti_analyzer/libparser/reference_type.c -common/utils/itti_analyzer/libparser/reference_type.h -common/utils/itti_analyzer/libparser/struct_type.c -common/utils/itti_analyzer/libparser/struct_type.h -common/utils/itti_analyzer/libparser/typedef_type.c -common/utils/itti_analyzer/libparser/typedef_type.h -common/utils/itti_analyzer/libparser/types.c -common/utils/itti_analyzer/libparser/types.h -common/utils/itti_analyzer/libparser/union_type.c -common/utils/itti_analyzer/libparser/union_type.h -common/utils/itti_analyzer/libparser/xml_parse.c -common/utils/itti_analyzer/libparser/xml_parse.h -common/utils/itti_analyzer/libresolver/locate_root.c -common/utils/itti_analyzer/libresolver/locate_root.h -common/utils/itti_analyzer/libresolver/resolvers.c -common/utils/itti_analyzer/libresolver/resolvers.h -common/utils/itti_analyzer/libui/ui_callbacks.c -common/utils/itti_analyzer/libui/ui_callbacks.h -common/utils/itti_analyzer/libui/ui_filters.c -common/utils/itti_analyzer/libui/ui_filters.h -common/utils/itti_analyzer/libui/ui_interface.c -common/utils/itti_analyzer/libui/ui_interface.h -common/utils/itti_analyzer/libui/ui_main_screen.c -common/utils/itti_analyzer/libui/ui_main_screen.h -common/utils/itti_analyzer/libui/ui_menu_bar.c -common/utils/itti_analyzer/libui/ui_menu_bar.h -common/utils/itti_analyzer/libui/ui_notebook.c -common/utils/itti_analyzer/libui/ui_notebook.h -common/utils/itti_analyzer/libui/ui_notif_dlg.c -common/utils/itti_analyzer/libui/ui_notif_dlg.h -common/utils/itti_analyzer/libui/ui_notifications.c -common/utils/itti_analyzer/libui/ui_notifications.h -common/utils/itti_analyzer/libui/ui_signal_dissect_view.c -common/utils/itti_analyzer/libui/ui_signal_dissect_view.h -common/utils/itti_analyzer/libui/ui_tree_view.c -common/utils/itti_analyzer/libui/ui_tree_view.h -common/utils/itti_analyzer/AUTHORS -common/utils/itti_analyzer/autogen.sh -common/utils/itti_analyzer/ChangeLog -common/utils/itti_analyzer/configure.ac -common/utils/itti_analyzer/filters.xml -common/utils/itti_analyzer/filters_mme.xml -common/utils/itti_analyzer/filters_ue_enb.xml -common/utils/itti_analyzer/INSTALL -common/utils/itti_analyzer/itti_analyzer.c -common/utils/itti_analyzer/NEWS -common/utils/itti_analyzer/README -common/utils/msc/msc.c -common/utils/msc/msc.h -common/utils/T/tracee/README -common/utils/T/tracee/tracee.c -common/utils/T/tracer/filter/filter.c -common/utils/T/tracer/filter/filter.h -common/utils/T/tracer/gui/container.c -common/utils/T/tracer/gui/event.c -common/utils/T/tracer/gui/gui.c -common/utils/T/tracer/gui/gui.h -common/utils/T/tracer/gui/gui_defs.h -common/utils/T/tracer/gui/image.c -common/utils/T/tracer/gui/init.c -common/utils/T/tracer/gui/label.c -common/utils/T/tracer/gui/loop.c -common/utils/T/tracer/gui/notify.c -common/utils/T/tracer/gui/positioner.c -common/utils/T/tracer/gui/space.c -common/utils/T/tracer/gui/test.c -common/utils/T/tracer/gui/textarea.c -common/utils/T/tracer/gui/textlist.c -common/utils/T/tracer/gui/timeline.c -common/utils/T/tracer/gui/toplevel_window.c -common/utils/T/tracer/gui/widget.c -common/utils/T/tracer/gui/x.c -common/utils/T/tracer/gui/x.h -common/utils/T/tracer/gui/x_defs.h -common/utils/T/tracer/gui/xy_plot.c -common/utils/T/tracer/hacks/dump_nack_signal.c -common/utils/T/tracer/hacks/time_meas.c -common/utils/T/tracer/hacks/timeplot.c -common/utils/T/tracer/logger/framelog.c -common/utils/T/tracer/logger/iqdotlog.c -common/utils/T/tracer/logger/iqlog.c -common/utils/T/tracer/logger/logger.c -common/utils/T/tracer/logger/logger.h -common/utils/T/tracer/logger/logger_defs.h -common/utils/T/tracer/logger/textlog.c -common/utils/T/tracer/logger/throughputlog.c -common/utils/T/tracer/logger/ticked_ttilog.c -common/utils/T/tracer/logger/ticklog.c -common/utils/T/tracer/logger/timelog.c -common/utils/T/tracer/logger/ttilog.c -common/utils/T/tracer/view/scrolltti.c -common/utils/T/tracer/view/stdout.c -common/utils/T/tracer/view/textlist.c -common/utils/T/tracer/view/ticktime.c -common/utils/T/tracer/view/time.c -common/utils/T/tracer/view/tti.c -common/utils/T/tracer/view/view.h -common/utils/T/tracer/view/xy.c -common/utils/T/tracer/config.c -common/utils/T/tracer/config.h -common/utils/T/tracer/database.c -common/utils/T/tracer/database.h -common/utils/T/tracer/defs.h -common/utils/T/tracer/enb.c -common/utils/T/tracer/event.c -common/utils/T/tracer/event.h -common/utils/T/tracer/event_selector.c -common/utils/T/tracer/event_selector.h -common/utils/T/tracer/extract_config.c -common/utils/T/tracer/gui.c -common/utils/T/tracer/handler.c -common/utils/T/tracer/handler.h -common/utils/T/tracer/macpdu2wireshark.c -common/utils/T/tracer/openair_logo.h -common/utils/T/tracer/openair_logo.png -common/utils/T/tracer/packet-mac-lte.h -common/utils/T/tracer/plot.c -common/utils/T/tracer/record.c -common/utils/T/tracer/replay.c -common/utils/T/tracer/textlog.c -common/utils/T/tracer/ue.c -common/utils/T/tracer/utils.c -common/utils/T/tracer/utils.h -common/utils/T/tracer/vcd.c -common/utils/T/defs.h -common/utils/T/generate_Txx.c -common/utils/T/genids.c -common/utils/T/local_tracer.c -common/utils/T/plot.c -common/utils/T/README -common/utils/T/T.c -common/utils/T/T.h -common/utils/T/T_defs.h -common/utils/T/T_messages.txt -common/utils/asn1_conversions.h -common/utils/assertions.h -common/utils/system.c -common/utils/system.h -common/utils/time_utils.h -common/utils/utils.c -common/utils/utils.h -common/ran_context.h -openair1/PHY/CODING/TESTBENCH/ltetest.c -openair1/PHY/CODING/TESTBENCH/pdcch_test.c -openair1/PHY/CODING/TESTBENCH/README.txt -openair1/PHY/CODING/TESTBENCH/viterbi_test.c -openair1/PHY/CODING/3gpplte.c -openair1/PHY/CODING/3gpplte_sse.c -openair1/PHY/CODING/3gpplte_turbo_decoder.c -openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c -openair1/PHY/CODING/ccoding_byte.c -openair1/PHY/CODING/ccoding_byte_lte.c -openair1/PHY/CODING/crc_byte.c -openair1/PHY/CODING/defs.h -openair1/PHY/CODING/extern.h -openair1/PHY/CODING/extern_3GPPinterleaver.h -openair1/PHY/CODING/lte_interleaver.h -openair1/PHY/CODING/lte_interleaver2.h -openair1/PHY/CODING/lte_interleaver_inline.h -openair1/PHY/CODING/lte_rate_matching.c -openair1/PHY/CODING/lte_segmentation.c -openair1/PHY/CODING/lte_tf.m -openair1/PHY/CODING/README.txt -openair1/PHY/CODING/scrambler.h -openair1/PHY/CODING/vars.h -openair1/PHY/CODING/viterbi.c -openair1/PHY/CODING/viterbi_lte.c -openair1/PHY/INIT/defs.h -openair1/PHY/INIT/extern.h -openair1/PHY/INIT/init_top.c -openair1/PHY/INIT/lte_init.c -openair1/PHY/INIT/lte_param_init.c -openair1/PHY/INIT/lte_parms.c -openair1/PHY/INIT/README.txt -openair1/PHY/INIT/vars.h -openair1/PHY/LTE_ESTIMATION/adjust_gain.c -openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m -openair1/PHY/LTE_ESTIMATION/defs.h -openair1/PHY/LTE_ESTIMATION/extern.h -openair1/PHY/LTE_ESTIMATION/filt16_32.h -openair1/PHY/LTE_ESTIMATION/filt96_32.h -openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m -openair1/PHY/LTE_ESTIMATION/freq_equalization.c -openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c -openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c -openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c -openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c -openair1/PHY/LTE_ESTIMATION/lte_sync_time.c -openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c -openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m -openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c -openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/pss6144.h -openair1/PHY/LTE_ESTIMATION/README.txt -openair1/PHY/LTE_ESTIMATION/vars.h -openair1/PHY/LTE_REFSIG/defs.h -openair1/PHY/LTE_REFSIG/gen_mod_table.m -openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c -openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c -openair1/PHY/LTE_REFSIG/lte_dl_uespec.c -openair1/PHY/LTE_REFSIG/lte_gold.c -openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c -openair1/PHY/LTE_REFSIG/lte_ul.m -openair1/PHY/LTE_REFSIG/lte_ul_ref.c -openair1/PHY/LTE_REFSIG/mod_table.h -openair1/PHY/LTE_REFSIG/primary_synch.h -openair1/PHY/LTE_REFSIG/primary_synch.m -openair1/PHY/LTE_REFSIG/README.txt -openair1/PHY/LTE_TRANSPORT/dci.c -openair1/PHY/LTE_TRANSPORT/dci.h -openair1/PHY/LTE_TRANSPORT/dci_tools.c -openair1/PHY/LTE_TRANSPORT/defs.h -openair1/PHY/LTE_TRANSPORT/dlsch_coding.c -openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c -openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c -openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c -openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c -openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c -openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c -openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h -openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h -openair1/PHY/LTE_TRANSPORT/drs_modulation.c -openair1/PHY/LTE_TRANSPORT/extern.h -openair1/PHY/LTE_TRANSPORT/group_hopping.c -openair1/PHY/LTE_TRANSPORT/if4_tools.c -openair1/PHY/LTE_TRANSPORT/if4_tools.h -openair1/PHY/LTE_TRANSPORT/if5_tools.c -openair1/PHY/LTE_TRANSPORT/if5_tools.h -openair1/PHY/LTE_TRANSPORT/initial_sync.c -openair1/PHY/LTE_TRANSPORT/lte_mcs.c -openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h -openair1/PHY/LTE_TRANSPORT/mdci.h -openair1/PHY/LTE_TRANSPORT/pbch.c -openair1/PHY/LTE_TRANSPORT/pcfich.c -openair1/PHY/LTE_TRANSPORT/pch.c -openair1/PHY/LTE_TRANSPORT/phich.c -openair1/PHY/LTE_TRANSPORT/pilots.c -openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c -openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c -openair1/PHY/LTE_TRANSPORT/pmch.c -openair1/PHY/LTE_TRANSPORT/power_control.c -openair1/PHY/LTE_TRANSPORT/prach.c -openair1/PHY/LTE_TRANSPORT/prach.h -openair1/PHY/LTE_TRANSPORT/print_stats.c -openair1/PHY/LTE_TRANSPORT/proto.h -openair1/PHY/LTE_TRANSPORT/pss.c -openair1/PHY/LTE_TRANSPORT/pucch.c -openair1/PHY/LTE_TRANSPORT/rar_tools.c -openair1/PHY/LTE_TRANSPORT/README.txt -openair1/PHY/LTE_TRANSPORT/srs_modulation.c -openair1/PHY/LTE_TRANSPORT/sss.c -openair1/PHY/LTE_TRANSPORT/sss.h -openair1/PHY/LTE_TRANSPORT/sss_gen.m -openair1/PHY/LTE_TRANSPORT/uci.h -openair1/PHY/LTE_TRANSPORT/uci_tools.c -openair1/PHY/LTE_TRANSPORT/ulsch_coding.c -openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c -openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c -openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c -openair1/PHY/LTE_TRANSPORT/vars.h -openair1/PHY/LTE_TRANSPORT/vrb_maps.m -openair1/PHY/MODULATION/beamforming.c -openair1/PHY/MODULATION/compute_bf_weights.c -openair1/PHY/MODULATION/defs.h -openair1/PHY/MODULATION/extern.h -openair1/PHY/MODULATION/gen_7_5_kHz.m -openair1/PHY/MODULATION/kHz_7_5.h -openair1/PHY/MODULATION/ofdm_mod.c -openair1/PHY/MODULATION/prach625Hz.h -openair1/PHY/MODULATION/slot_fep.c -openair1/PHY/MODULATION/slot_fep_mbsfn.c -openair1/PHY/MODULATION/slot_fep_ul.c -openair1/PHY/MODULATION/ul_7_5_kHz.c -openair1/PHY/MODULATION/vars.h -openair1/PHY/TOOLS/8bit_rxdemux.c -openair1/PHY/TOOLS/8bit_txmux.c -openair1/PHY/TOOLS/alaw_lut.h -openair1/PHY/TOOLS/angle.c -openair1/PHY/TOOLS/cadd_sv.c -openair1/PHY/TOOLS/cadd_vv.c -openair1/PHY/TOOLS/cdot_prod.c -openair1/PHY/TOOLS/cmult_sv.c -openair1/PHY/TOOLS/cmult_vv.c -openair1/PHY/TOOLS/costable.h -openair1/PHY/TOOLS/dB_routines.c -openair1/PHY/TOOLS/dB_routines.h -openair1/PHY/TOOLS/defs.h -openair1/PHY/TOOLS/extern.h -openair1/PHY/TOOLS/file_output.c -openair1/PHY/TOOLS/invSqrt.c -openair1/PHY/TOOLS/log2_approx.c -openair1/PHY/TOOLS/lte_dfts.c -openair1/PHY/TOOLS/lte_phy_scope.c -openair1/PHY/TOOLS/lte_phy_scope.h -openair1/PHY/TOOLS/lte_phy_scope_tm4.c -openair1/PHY/TOOLS/lut.c -openair1/PHY/TOOLS/memory_routines.c -openair1/PHY/TOOLS/read_F.c -openair1/PHY/TOOLS/signal_energy.c -openair1/PHY/TOOLS/smbv.c -openair1/PHY/TOOLS/smbv.h -openair1/PHY/TOOLS/sqrt.c -openair1/PHY/TOOLS/time_meas.c -openair1/PHY/TOOLS/time_meas.h -openair1/PHY/TOOLS/twiddle12288.h -openair1/PHY/TOOLS/twiddle1536.h -openair1/PHY/TOOLS/twiddle18432.h -openair1/PHY/TOOLS/twiddle24576.h -openair1/PHY/TOOLS/twiddle6144.h -openair1/PHY/TOOLS/twiddles4096.h -openair1/PHY/TOOLS/twiddles8192.h -openair1/PHY/TOOLS/vars.h -openair1/PHY/defs.h -openair1/PHY/extern.h -openair1/PHY/impl_defs_lte.h -openair1/PHY/impl_defs_top.h -openair1/PHY/sse_intrin.h -openair1/PHY/types.h -openair1/PHY/vars.h -openair1/SCHED/defs.h -openair1/SCHED/extern.h -openair1/SCHED/phy_mac_stub.c -openair1/SCHED/phy_procedures_emos.h -openair1/SCHED/phy_procedures_lte_common.c -openair1/SCHED/phy_procedures_lte_eNb.c -openair1/SCHED/phy_procedures_lte_ue.c -openair1/SCHED/pucch_pc.c -openair1/SCHED/pusch_pc.c -openair1/SCHED/rt_compat.h -openair1/SCHED/ru_procedures.c -openair1/SCHED/srs_pc.c -openair1/SCHED/vars.h -openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c -openair1/SIMULATION/ETH_TRANSPORT/defs.h -openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c -openair1/SIMULATION/ETH_TRANSPORT/extern.h -openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c -openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h -openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c -openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c -openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h -openair1/SIMULATION/ETH_TRANSPORT/proto.h -openair1/SIMULATION/ETH_TRANSPORT/README.txt -openair1/SIMULATION/ETH_TRANSPORT/socket.c -openair1/SIMULATION/ETH_TRANSPORT/socket.h -openair1/SIMULATION/ETH_TRANSPORT/vars.h -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls -openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m -openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m -openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m -openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m -openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m -openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m -openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m -openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m -openair1/SIMULATION/LTE_PHY/plotTools/p -openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m -openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt -openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex -openair1/SIMULATION/LTE_PHY/blerSimus.zip -openair1/SIMULATION/LTE_PHY/dlsim.c -openair1/SIMULATION/LTE_PHY/dlsim_tm4.c -openair1/SIMULATION/LTE_PHY/dlsim_tm7.c -openair1/SIMULATION/LTE_PHY/fancyheadings.sty -openair1/SIMULATION/LTE_PHY/framegen.c -openair1/SIMULATION/LTE_PHY/gpib_send.c -openair1/SIMULATION/LTE_PHY/gpib_send.h -openair1/SIMULATION/LTE_PHY/launch_sim.sh -openair1/SIMULATION/LTE_PHY/LTE_Configuration.c -openair1/SIMULATION/LTE_PHY/LTE_Configuration.h -openair1/SIMULATION/LTE_PHY/mat2wv.m -openair1/SIMULATION/LTE_PHY/mbmssim.c -openair1/SIMULATION/LTE_PHY/pbch_awgn.txt -openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt -openair1/SIMULATION/LTE_PHY/pbchsim.c -openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh -openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m -openair1/SIMULATION/LTE_PHY/pdcchsim.c -openair1/SIMULATION/LTE_PHY/prachsim.c -openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h -openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c -openair1/SIMULATION/LTE_PHY/pucchsim.c -openair1/SIMULATION/LTE_PHY/README.txt -openair1/SIMULATION/LTE_PHY/scansim.c -openair1/SIMULATION/LTE_PHY/signalanalyzer.c -openair1/SIMULATION/LTE_PHY/signalanalyzer.h -openair1/SIMULATION/LTE_PHY/syncsim.c -openair1/SIMULATION/LTE_PHY/test.c -openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c -openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h -openair1/SIMULATION/LTE_PHY/ulsim.c -openair1/SIMULATION/LTE_PHY/ulsim2.c -openair1/SIMULATION/LTE_PHY/unitary_defs.h -openair1/SIMULATION/RF/adc.c -openair1/SIMULATION/RF/dac.c -openair1/SIMULATION/RF/defs.h -openair1/SIMULATION/RF/README.txt -openair1/SIMULATION/RF/rf.c -openair1/SIMULATION/TOOLS/abstraction.c -openair1/SIMULATION/TOOLS/ch_desc_proto.c -openair1/SIMULATION/TOOLS/corr_mat.m -openair1/SIMULATION/TOOLS/defs.h -openair1/SIMULATION/TOOLS/gauss.c -openair1/SIMULATION/TOOLS/llr_quantization.c -openair1/SIMULATION/TOOLS/multipath_channel.c -openair1/SIMULATION/TOOLS/multipath_tv_channel.c -openair1/SIMULATION/TOOLS/random_channel.c -openair1/SIMULATION/TOOLS/rangen_double.c -openair1/SIMULATION/TOOLS/scm.m -openair1/SIMULATION/TOOLS/scm_corrmat.h -openair1/SIMULATION/TOOLS/taus.c -openair1/README.TXT -openair2/COMMON/as_message.h -openair2/COMMON/commonDef.h -openair2/COMMON/gtpv1_u_messages_def.h -openair2/COMMON/gtpv1_u_messages_types.h -openair2/COMMON/intertask_interface_conf.h -openair2/COMMON/mac_messages_def.h -openair2/COMMON/mac_messages_types.h -openair2/COMMON/mac_primitives.h -openair2/COMMON/mac_rlc_primitives.h -openair2/COMMON/mac_rrc_primitives.h -openair2/COMMON/messages_def.h -openair2/COMMON/messages_types.h -openair2/COMMON/nas_messages_def.h -openair2/COMMON/nas_messages_types.h -openair2/COMMON/networkDef.h -openair2/COMMON/openair_defs.h -openair2/COMMON/openair_types.h -openair2/COMMON/pdcp_messages_def.h -openair2/COMMON/pdcp_messages_types.h -openair2/COMMON/phy_messages_def.h -openair2/COMMON/phy_messages_types.h -openair2/COMMON/platform_constants.h -openair2/COMMON/platform_types.h -openair2/COMMON/ral_messages_def.h -openair2/COMMON/ral_messages_types.h -openair2/COMMON/rlc_messages_def.h -openair2/COMMON/rlc_messages_types.h -openair2/COMMON/rrc_messages_def.h -openair2/COMMON/rrc_messages_types.h -openair2/COMMON/rrm_config_structs.h -openair2/COMMON/rrm_constants.h -openair2/COMMON/rtos_header.h -openair2/COMMON/s1ap_messages_def.h -openair2/COMMON/s1ap_messages_types.h -openair2/COMMON/sctp_messages_def.h -openair2/COMMON/sctp_messages_types.h -openair2/COMMON/tasks_def.h -openair2/COMMON/udp_messages_def.h -openair2/COMMON/udp_messages_types.h -openair2/COMMON/x2ap_messages_def.h -openair2/COMMON/x2ap_messages_types.h -openair2/DOCS/Documentation/flow.txt -openair2/DOCS/DOXYGEN/images/cellular_topology.doc -openair2/DOCS/DOXYGEN/images/cellular_topology.pdf -openair2/DOCS/DOXYGEN/images/cellular_topology_small.png -openair2/DOCS/DOXYGEN/images/channel server.png -openair2/DOCS/DOXYGEN/images/channel server.vsd -openair2/DOCS/DOXYGEN/images/convolutional.png -openair2/DOCS/DOXYGEN/images/convolutional.vsd -openair2/DOCS/DOXYGEN/images/Diapositive6.JPG -openair2/DOCS/DOXYGEN/images/DLC_arch.png -openair2/DOCS/DOXYGEN/images/Framing.png -openair2/DOCS/DOXYGEN/images/Framing.vsd -openair2/DOCS/DOXYGEN/images/irs_dcf.jpg -openair2/DOCS/DOXYGEN/images/irs_pcf.jpg -openair2/DOCS/DOXYGEN/images/layer2_stack.jpg -openair2/DOCS/DOXYGEN/images/layer2_stack.pdf -openair2/DOCS/DOXYGEN/images/layer2_stack.png -openair2/DOCS/DOXYGEN/images/MAC Services.vsd -openair2/DOCS/DOXYGEN/images/MAC_arch.eps -openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG -openair2/DOCS/DOXYGEN/images/mac_channels.png -openair2/DOCS/DOXYGEN/images/MAC_Measurements.png -openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd -openair2/DOCS/DOXYGEN/images/MAC_Services.eps -openair2/DOCS/DOXYGEN/images/MAC_Services.vsd -openair2/DOCS/DOXYGEN/images/MAC_Services2.eps -openair2/DOCS/DOXYGEN/images/MAC_Services2.png -openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd -openair2/DOCS/DOXYGEN/images/mac_wbs.jpg -openair2/DOCS/DOXYGEN/images/macphynet.eps -openair2/DOCS/DOXYGEN/images/macphynet.png -openair2/DOCS/DOXYGEN/images/mesh_frame.pdf -openair2/DOCS/DOXYGEN/images/mesh_topology.pdf -openair2/DOCS/DOXYGEN/images/mesh_topology_small.png -openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png -openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd -openair2/DOCS/DOXYGEN/images/PHY_arch.eps -openair2/DOCS/DOXYGEN/images/PHY_arch.png -openair2/DOCS/DOXYGEN/images/PHY_arch.vsd -openair2/DOCS/DOXYGEN/images/QAM modulation.png -openair2/DOCS/DOXYGEN/images/QAM modulation.vsd -openair2/DOCS/DOXYGEN/images/QAMmodulation.png -openair2/DOCS/DOXYGEN/images/scrambler.png -openair2/DOCS/DOXYGEN/images/scrambler.vsd -openair2/DOCS/DOXYGEN/images/Transmission.pdf -openair2/DOCS/DOXYGEN/images/Transmission.png -openair2/DOCS/DOXYGEN/images/Transmission.ps -openair2/DOCS/DOXYGEN/images/w3g4f_framing.png -openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd -openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd -openair2/DOCS/DOXYGEN/Doxyfile -openair2/DOCS/TEMPLATES/CODE/images/arch.eps -openair2/DOCS/TEMPLATES/CODE/images/arch.png -openair2/DOCS/TEMPLATES/CODE/Doxyfile -openair2/DOCS/TEMPLATES/CODE/example_doxy.h -openair2/DOCS/TEMPLATES/README/Readme.doxy -openair2/DOCS/TEMPLATES/README/readme.txt -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h -openair2/ENB_APP/MESSAGES/V2/config_common.proto -openair2/ENB_APP/MESSAGES/V2/config_messages.proto -openair2/ENB_APP/MESSAGES/V2/control_delegation.proto -openair2/ENB_APP/MESSAGES/V2/controller_commands.proto -openair2/ENB_APP/MESSAGES/V2/flexran.proto -openair2/ENB_APP/MESSAGES/V2/header.proto -openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto -openair2/ENB_APP/MESSAGES/V2/stats_common.proto -openair2/ENB_APP/MESSAGES/V2/stats_messages.proto -openair2/ENB_APP/MESSAGES/V2/time_common.proto -openair2/ENB_APP/enb_app.c -openair2/ENB_APP/enb_app.h -openair2/ENB_APP/enb_config.c -openair2/ENB_APP/enb_config.h -openair2/ENB_APP/flexran_agent.c -openair2/ENB_APP/flexran_agent.h -openair2/ENB_APP/flexran_agent_async.c -openair2/ENB_APP/flexran_agent_async.h -openair2/ENB_APP/flexran_agent_common.c -openair2/ENB_APP/flexran_agent_common.h -openair2/ENB_APP/flexran_agent_common_internal.c -openair2/ENB_APP/flexran_agent_common_internal.h -openair2/ENB_APP/flexran_agent_defs.h -openair2/ENB_APP/flexran_agent_extern.h -openair2/ENB_APP/flexran_agent_handler.c -openair2/ENB_APP/flexran_agent_net_comm.c -openair2/ENB_APP/flexran_agent_net_comm.h -openair2/ENB_APP/flexran_agent_task_manager.c -openair2/ENB_APP/flexran_agent_task_manager.h -openair2/LAYER2/MAC/config.c -openair2/LAYER2/MAC/defs.h -openair2/LAYER2/MAC/eNB_scheduler.c -openair2/LAYER2/MAC/eNB_scheduler_bch.c -openair2/LAYER2/MAC/eNB_scheduler_dlsch.c -openair2/LAYER2/MAC/eNB_scheduler_mch.c -openair2/LAYER2/MAC/eNB_scheduler_primitives.c -openair2/LAYER2/MAC/eNB_scheduler_RA.c -openair2/LAYER2/MAC/eNB_scheduler_ulsch.c -openair2/LAYER2/MAC/extern.h -openair2/LAYER2/MAC/flexran_agent_mac_proto.h -openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c -openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c -openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c -openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h -openair2/LAYER2/MAC/flexran_dci_conversions.h -openair2/LAYER2/MAC/l1_helpers.c -openair2/LAYER2/MAC/lte_transport_init.c -openair2/LAYER2/MAC/main.c -openair2/LAYER2/MAC/openair2_proc.c -openair2/LAYER2/MAC/pre_processor.c -openair2/LAYER2/MAC/proto.h -openair2/LAYER2/MAC/ra_procedures.c -openair2/LAYER2/MAC/rar_tools.c -openair2/LAYER2/MAC/ue_procedures.c -openair2/LAYER2/MAC/vars.h -openair2/LAYER2/PDCP_v10.1.0/pdcp.c -openair2/LAYER2/PDCP_v10.1.0/pdcp.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h -openair2/LAYER2/RLC/UM_v9.3.0/README -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h -openair2/LAYER2/RLC/mac_primitives.h -openair2/LAYER2/RLC/rlc.c -openair2/LAYER2/RLC/rlc.h -openair2/LAYER2/RLC/rlc_def.h -openair2/LAYER2/RLC/rlc_def_lte.h -openair2/LAYER2/RLC/rlc_mac.c -openair2/LAYER2/RLC/rlc_mpls.c -openair2/LAYER2/RLC/rlc_primitives.h -openair2/LAYER2/RLC/rlc_rrc.c -openair2/LAYER2/openair2_proc.c -openair2/LAYER2/register.c -openair2/LAYER2/register.h -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h -openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest -openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c -openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c -openair2/NAS/DRIVER/CELLULAR/readme.txt -openair2/NAS/DRIVER/CELLULAR/start_mt_cellular -openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_noradvd -openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_radvd -openair2/NAS/DRIVER/CELLULAR/stop_mt_cellular -openair2/NAS/DRIVER/CELLULAR/stop_rg_cellular -openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h -openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c -openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c -openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c -openair2/NETWORK_DRIVER/LITE/classifier.c -openair2/NETWORK_DRIVER/LITE/common.c -openair2/NETWORK_DRIVER/LITE/constant.h -openair2/NETWORK_DRIVER/LITE/device.c -openair2/NETWORK_DRIVER/LITE/ioctl.c -openair2/NETWORK_DRIVER/LITE/ioctl.h -openair2/NETWORK_DRIVER/LITE/local.h -openair2/NETWORK_DRIVER/LITE/netlink.c -openair2/NETWORK_DRIVER/LITE/proto_extern.h -openair2/NETWORK_DRIVER/LITE/sap.h -openair2/NETWORK_DRIVER/LITE/tool.c -openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c -openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c -openair2/NETWORK_DRIVER/MESH/classifier.c -openair2/NETWORK_DRIVER/MESH/common.c -openair2/NETWORK_DRIVER/MESH/constant.h -openair2/NETWORK_DRIVER/MESH/device.c -openair2/NETWORK_DRIVER/MESH/ioctl.c -openair2/NETWORK_DRIVER/MESH/ioctl.h -openair2/NETWORK_DRIVER/MESH/local.h -openair2/NETWORK_DRIVER/MESH/mesh.c -openair2/NETWORK_DRIVER/MESH/netlink.c -openair2/NETWORK_DRIVER/MESH/proto_extern.h -openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h -openair2/NETWORK_DRIVER/MESH/sap.h -openair2/NETWORK_DRIVER/MESH/tool.c -openair2/NETWORK_DRIVER/UE_IP/common.c -openair2/NETWORK_DRIVER/UE_IP/constant.h -openair2/NETWORK_DRIVER/UE_IP/device.c -openair2/NETWORK_DRIVER/UE_IP/local.h -openair2/NETWORK_DRIVER/UE_IP/netlink.c -openair2/NETWORK_DRIVER/UE_IP/proto_extern.h -openair2/NETWORK_DRIVER/UE_IP/README -openair2/NETWORK_DRIVER/UE_IP/sap.h -openair2/PHY_INTERFACE/defs.h -openair2/PHY_INTERFACE/extern.h -openair2/PHY_INTERFACE/IF_Module.c -openair2/PHY_INTERFACE/IF_Module.h -openair2/PHY_INTERFACE/mac_phy_primitives.c -openair2/PHY_INTERFACE/mac_phy_primitives.h -openair2/PHY_INTERFACE/vars.h -openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c -openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-860.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-a20.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-c60.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn -openair2/RRC/LITE/MESSAGES/asn1_msg.c -openair2/RRC/LITE/MESSAGES/asn1_msg.h -openair2/RRC/LITE/MESSAGES/asn1_patch -openair2/RRC/LITE/MESSAGES/README.txt -openair2/RRC/LITE/MESSAGES/rtai_mem.c -openair2/RRC/LITE/MESSAGES/rtai_mem.h -openair2/RRC/LITE/defs.h -openair2/RRC/LITE/extern.h -openair2/RRC/LITE/L2_interface.c -openair2/RRC/LITE/mesh_top.c -openair2/RRC/LITE/plmn_data.h -openair2/RRC/LITE/proto.h -openair2/RRC/LITE/rrc_2_rrm_msg.c -openair2/RRC/LITE/rrc_common.c -openair2/RRC/LITE/rrc_eNB.c -openair2/RRC/LITE/rrc_eNB_GTPV1U.c -openair2/RRC/LITE/rrc_eNB_GTPV1U.h -openair2/RRC/LITE/rrc_eNB_ral.c -openair2/RRC/LITE/rrc_eNB_ral.h -openair2/RRC/LITE/rrc_eNB_S1AP.c -openair2/RRC/LITE/rrc_eNB_S1AP.h -openair2/RRC/LITE/rrc_eNB_UE_context.c -openair2/RRC/LITE/rrc_eNB_UE_context.h -openair2/RRC/LITE/rrc_rrm_interface.c -openair2/RRC/LITE/rrc_rrm_interface.h -openair2/RRC/LITE/rrc_types.h -openair2/RRC/LITE/rrc_UE.c -openair2/RRC/LITE/rrc_UE_ral.c -openair2/RRC/LITE/rrc_UE_ral.h -openair2/RRC/LITE/rrm_2_rrc_msg.c -openair2/RRC/LITE/utils.c -openair2/RRC/LITE/vars.h -openair2/RRC/NAS/nas_config.c -openair2/RRC/NAS/nas_config.h -openair2/RRC/NAS/rb_config.c -openair2/RRC/NAS/rb_config.h -openair2/UTIL/ASYNC_IF/link_manager.c -openair2/UTIL/ASYNC_IF/link_manager.h -openair2/UTIL/ASYNC_IF/message_queue.c -openair2/UTIL/ASYNC_IF/message_queue.h -openair2/UTIL/ASYNC_IF/ringbuffer_queue.c -openair2/UTIL/ASYNC_IF/ringbuffer_queue.h -openair2/UTIL/ASYNC_IF/socket_link.c -openair2/UTIL/ASYNC_IF/socket_link.h -openair2/UTIL/BIGPHYS/bigphys.c -openair2/UTIL/BIGPHYS/defs.h -openair2/UTIL/CLI/cli.c -openair2/UTIL/CLI/cli.h -openair2/UTIL/CLI/cli_cmd.c -openair2/UTIL/CLI/cli_if.h -openair2/UTIL/CLI/cli_server.c -openair2/UTIL/FIFO/pad_list.c -openair2/UTIL/FIFO/pad_list.h -openair2/UTIL/FIFO/types.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c -openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt -openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln -openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln -openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h -openair2/UTIL/LISTS/list.c -openair2/UTIL/LISTS/list.h -openair2/UTIL/LISTS/list2.c -openair2/UTIL/LOG/log.c -openair2/UTIL/LOG/log.h -openair2/UTIL/LOG/log_extern.h -openair2/UTIL/LOG/log_if.h -openair2/UTIL/LOG/README.txt -openair2/UTIL/LOG/vcd_signal_dumper.c -openair2/UTIL/LOG/vcd_signal_dumper.h -openair2/UTIL/MATH/crc_byte.c -openair2/UTIL/MATH/oml.c -openair2/UTIL/MATH/oml.h -openair2/UTIL/MATH/random.c -openair2/UTIL/MATH/random_proto_extern.h -openair2/UTIL/MATH/taus.c -openair2/UTIL/MEM/mem_block.c -openair2/UTIL/MEM/mem_block.h -openair2/UTIL/MEM/mem_mngt.c -openair2/UTIL/MEM/mem_mngt_proto_extern.h -openair2/UTIL/MEM/mem_pool.h -openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml -openair2/UTIL/OCG/temp_output/OCG_report.xml -openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml -openair2/UTIL/OCG/Doxyfile -openair2/UTIL/OCG/eurecom_20110208110244.xml -openair2/UTIL/OCG/OCG.c -openair2/UTIL/OCG/OCG.h -openair2/UTIL/OCG/OCG_call_emu.c -openair2/UTIL/OCG/OCG_call_emu.h -openair2/UTIL/OCG/OCG_config_mobi.c -openair2/UTIL/OCG/OCG_config_mobi.h -openair2/UTIL/OCG/OCG_create_dir.c -openair2/UTIL/OCG/OCG_create_dir.h -openair2/UTIL/OCG/OCG_detect_file.c -openair2/UTIL/OCG/OCG_detect_file.h -openair2/UTIL/OCG/OCG_extern.h -openair2/UTIL/OCG/OCG_generate_report.c -openair2/UTIL/OCG/OCG_generate_report.h -openair2/UTIL/OCG/OCG_get_opt.c -openair2/UTIL/OCG/OCG_get_opt.h -openair2/UTIL/OCG/OCG_if.h -openair2/UTIL/OCG/OCG_parse_filename.c -openair2/UTIL/OCG/OCG_parse_filename.h -openair2/UTIL/OCG/OCG_parse_XML.c -openair2/UTIL/OCG/OCG_parse_XML.h -openair2/UTIL/OCG/OCG_save_XML.c -openair2/UTIL/OCG/OCG_save_XML.h -openair2/UTIL/OCG/OCG_vars.h -openair2/UTIL/OCG/readme.txt -openair2/UTIL/OMG/TRACE/example_trace.tr -openair2/UTIL/OMG/TRACE/handover.tr -openair2/UTIL/OMG/TRACE/handover_1ue.tr -openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr -openair2/UTIL/OMG/TRACE/mobility_2ues.tr -openair2/UTIL/OMG/TRACE/mobility_3ues.tr -openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf -openair2/UTIL/OMG/TRACE/README.TXT -openair2/UTIL/OMG/TRACE/regular.tr -openair2/UTIL/OMG/TRACE/static_1enb.tr -openair2/UTIL/OMG/TRACE/static_2ues.tr -openair2/UTIL/OMG/TRACE/zero_speed.tr -openair2/UTIL/OMG/common.c -openair2/UTIL/OMG/defs.h -openair2/UTIL/OMG/grid.c -openair2/UTIL/OMG/grid.h -openair2/UTIL/OMG/job.c -openair2/UTIL/OMG/mobility.txt -openair2/UTIL/OMG/mobility_parser.c -openair2/UTIL/OMG/mobility_parser.h -openair2/UTIL/OMG/omg.c -openair2/UTIL/OMG/omg.h -openair2/UTIL/OMG/omg_constants.h -openair2/UTIL/OMG/omg_hashtable.c -openair2/UTIL/OMG/omg_hashtable.h -openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf -openair2/UTIL/OMG/omg_vars.h -openair2/UTIL/OMG/README.TXT -openair2/UTIL/OMG/rwalk.c -openair2/UTIL/OMG/rwalk.h -openair2/UTIL/OMG/rwp.c -openair2/UTIL/OMG/rwp.h -openair2/UTIL/OMG/static.c -openair2/UTIL/OMG/static.h -openair2/UTIL/OMG/steadystaterwp.c -openair2/UTIL/OMG/steadystaterwp.h -openair2/UTIL/OMG/trace.c -openair2/UTIL/OMG/trace.h -openair2/UTIL/OMG/trace_hashtable.c -openair2/UTIL/OMG/trace_hashtable.h -openair2/UTIL/OMV/blue.png -openair2/UTIL/OMV/communicationthread.cpp -openair2/UTIL/OMV/communicationthread.h -openair2/UTIL/OMV/green.png -openair2/UTIL/OMV/jpg.jpeg -openair2/UTIL/OMV/mus.png -openair2/UTIL/OMV/mywindow.cpp -openair2/UTIL/OMV/mywindow.h -openair2/UTIL/OMV/new.jpg -openair2/UTIL/OMV/new2.jpg -openair2/UTIL/OMV/omv.cpp -openair2/UTIL/OMV/openglwidget.cpp -openair2/UTIL/OMV/openglwidget.h -openair2/UTIL/OMV/README.txt -openair2/UTIL/OMV/red.png -openair2/UTIL/OMV/structures.h -openair2/UTIL/OMV/white.png -openair2/UTIL/OMV/wow.png -openair2/UTIL/OPT/mac_pcap.h -openair2/UTIL/OPT/opt.h -openair2/UTIL/OPT/packet-mac-lte.h -openair2/UTIL/OPT/probe.c -openair2/UTIL/OPT/README.txt -openair2/UTIL/OPT/vars.h -openair2/UTIL/OSA/osa_defs.h -openair2/UTIL/OSA/osa_internal.h -openair2/UTIL/OSA/osa_key_deriver.c -openair2/UTIL/OSA/osa_rijndael.c -openair2/UTIL/OSA/osa_rijndael.h -openair2/UTIL/OSA/osa_snow3g.c -openair2/UTIL/OSA/osa_snow3g.h -openair2/UTIL/OSA/osa_stream_eea.c -openair2/UTIL/OSA/osa_stream_eia.c -openair2/UTIL/OSA/README -openair2/UTIL/OSD/css/images/false.png -openair2/UTIL/OSD/css/images/false2.png -openair2/UTIL/OSD/css/images/lquote.png -openair2/UTIL/OSD/css/images/true.png -openair2/UTIL/OSD/css/images/warning.png -openair2/UTIL/OSD/css/blueprint.css -openair2/UTIL/OSD/css/fix-ie-rtl.css -openair2/UTIL/OSD/css/fix-ie.css -openair2/UTIL/OSD/css/ie.css -openair2/UTIL/OSD/css/ie6.css -openair2/UTIL/OSD/css/print.css -openair2/UTIL/OSD/css/screen.css -openair2/UTIL/OSD/css/style.css -openair2/UTIL/OSD/jquery/jquery.js -openair2/UTIL/OSD/fake_oaisim -openair2/UTIL/OSD/form.php -openair2/UTIL/OSD/header.php -openair2/UTIL/OSD/httpd-result.conf -openair2/UTIL/OSD/index.php -openair2/UTIL/OSD/OCG.pid -openair2/UTIL/OSD/OpenAirEmu.conf -openair2/UTIL/OSD/Platform_is_running.php -openair2/UTIL/OSD/README.txt -openair2/UTIL/OSD/recep.php -openair2/UTIL/OSD/toto.php -openair2/UTIL/OTG/Doxyfile -openair2/UTIL/OTG/help_OTGplot.txt -openair2/UTIL/OTG/main.c -openair2/UTIL/OTG/otg.c -openair2/UTIL/OTG/otg.h -openair2/UTIL/OTG/otg_config.h -openair2/UTIL/OTG/otg_defs.h -openair2/UTIL/OTG/otg_externs.h -openair2/UTIL/OTG/otg_form.c -openair2/UTIL/OTG/otg_form.h -openair2/UTIL/OTG/otg_kpi.c -openair2/UTIL/OTG/otg_kpi.h -openair2/UTIL/OTG/otg_models.c -openair2/UTIL/OTG/otg_models.h -openair2/UTIL/OTG/otg_rx.c -openair2/UTIL/OTG/otg_rx.h -openair2/UTIL/OTG/otg_rx_socket.c -openair2/UTIL/OTG/otg_rx_socket.h -openair2/UTIL/OTG/otg_tx.c -openair2/UTIL/OTG/otg_tx.h -openair2/UTIL/OTG/otg_tx_socket.c -openair2/UTIL/OTG/otg_tx_socket.h -openair2/UTIL/OTG/otg_vars.h -openair2/UTIL/OTG/OTGplot -openair2/UTIL/OTG/traffic_config.h -openair2/UTIL/TIMER/umts_timer.c -openair2/UTIL/TIMER/umts_timer.h -openair2/UTIL/TIMER/umts_timer_proto_extern.h -openair2/UTIL/TIMER/umts_timer_struct.h -openair2/UTIL/TRACE/fifo_printf.c -openair2/UTIL/TRACE/fifo_printf.h -openair2/UTIL/TRACE/fifo_printf_proto_extern.h -openair2/UTIL/TRACE/print.h -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn -openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py -openair2/X2AP/x2ap.c -openair2/X2AP/x2ap.h -openair2/X2AP/x2ap_common.c -openair2/X2AP/x2ap_common.h -openair3/COMMON/as_message.h -openair3/COMMON/common_types.h -openair3/COMMON/gtpv1_u_messages_def.h -openair3/COMMON/gtpv1_u_messages_types.h -openair3/COMMON/intertask_interface_conf.h -openair3/COMMON/messages_def.h -openair3/COMMON/messages_types.h -openair3/COMMON/nas_messages_def.h -openair3/COMMON/nas_messages_types.h -openair3/COMMON/s1ap_messages_def.h -openair3/COMMON/s1ap_messages_types.h -openair3/COMMON/sctp_messages_def.h -openair3/COMMON/sctp_messages_types.h -openair3/COMMON/security_types.h -openair3/COMMON/tasks_def.h -openair3/COMMON/udp_messages_def.h -openair3/COMMON/udp_messages_types.h -openair3/DOCS/DOXYGEN/Doxyfile.in -openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf -openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex -openair3/DOCS/Latex/EPC/EPC.pdf -openair3/DOCS/Latex/EPC/EPC.tex -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h -openair3/GTPV1-U/nw-gtpv1u/AUTHORS -openair3/GTPV1-U/nw-gtpv1u/ChangeLog -openair3/GTPV1-U/nw-gtpv1u/COPYING -openair3/GTPV1-U/nw-gtpv1u/NEWS -openair3/GTPV1-U/nw-gtpv1u/README -openair3/GTPV1-U/gtpv1u.h -openair3/GTPV1-U/gtpv1u_eNB.c -openair3/GTPV1-U/gtpv1u_eNB_defs.h -openair3/GTPV1-U/gtpv1u_eNB_task.h -openair3/GTPV1-U/gtpv1u_sgw_defs.h -openair3/GTPV1-U/gtpv1u_task.c -openair3/GTPV1-U/gtpv1u_teid_pool.c -openair3/NAS/COMMON/API/NETWORK/as_message.c -openair3/NAS/COMMON/API/NETWORK/as_message.h -openair3/NAS/COMMON/API/NETWORK/l2_message.h -openair3/NAS/COMMON/API/NETWORK/nas_message.c -openair3/NAS/COMMON/API/NETWORK/nas_message.h -openair3/NAS/COMMON/API/NETWORK/network_api.c -openair3/NAS/COMMON/API/NETWORK/network_api.h -openair3/NAS/COMMON/EMM/MSG/AttachAccept.c -openair3/NAS/COMMON/EMM/MSG/AttachAccept.h -openair3/NAS/COMMON/EMM/MSG/AttachComplete.c -openair3/NAS/COMMON/EMM/MSG/AttachComplete.h -openair3/NAS/COMMON/EMM/MSG/AttachReject.c -openair3/NAS/COMMON/EMM/MSG/AttachReject.h -openair3/NAS/COMMON/EMM/MSG/AttachRequest.c -openair3/NAS/COMMON/EMM/MSG/AttachRequest.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h -openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c -openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h -openair3/NAS/COMMON/EMM/MSG/DetachAccept.c -openair3/NAS/COMMON/EMM/MSG/DetachAccept.h -openair3/NAS/COMMON/EMM/MSG/DetachRequest.c -openair3/NAS/COMMON/EMM/MSG/DetachRequest.h -openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c -openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h -openair3/NAS/COMMON/EMM/MSG/emm_cause.h -openair3/NAS/COMMON/EMM/MSG/emm_msg.c -openair3/NAS/COMMON/EMM/MSG/emm_msg.h -openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h -openair3/NAS/COMMON/EMM/MSG/EmmInformation.c -openair3/NAS/COMMON/EMM/MSG/EmmInformation.h -openair3/NAS/COMMON/EMM/MSG/EmmStatus.c -openair3/NAS/COMMON/EMM/MSG/EmmStatus.h -openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c -openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h -openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c -openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h -openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c -openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h -openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c -openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h -openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c -openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h -openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h -openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h -openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c -openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c -openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c -openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h -openair3/NAS/COMMON/EMM/MSG/ServiceReject.c -openair3/NAS/COMMON/EMM/MSG/ServiceReject.h -openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c -openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h -openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c -openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/esm_cause.h -openair3/NAS/COMMON/ESM/MSG/esm_msg.c -openair3/NAS/COMMON/ESM/MSG/esm_msg.h -openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h -openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c -openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h -openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c -openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h -openair3/NAS/COMMON/ESM/MSG/EsmStatus.c -openair3/NAS/COMMON/ESM/MSG/EsmStatus.h -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h -openair3/NAS/COMMON/IES/AccessPointName.c -openair3/NAS/COMMON/IES/AccessPointName.h -openair3/NAS/COMMON/IES/AdditionalUpdateResult.c -openair3/NAS/COMMON/IES/AdditionalUpdateResult.h -openair3/NAS/COMMON/IES/AdditionalUpdateType.c -openair3/NAS/COMMON/IES/AdditionalUpdateType.h -openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c -openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h -openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c -openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h -openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c -openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h -openair3/NAS/COMMON/IES/AuthenticationParameterRand.c -openair3/NAS/COMMON/IES/AuthenticationParameterRand.h -openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c -openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h -openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c -openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h -openair3/NAS/COMMON/IES/Cli.c -openair3/NAS/COMMON/IES/Cli.h -openair3/NAS/COMMON/IES/CsfbResponse.c -openair3/NAS/COMMON/IES/CsfbResponse.h -openair3/NAS/COMMON/IES/DaylightSavingTime.c -openair3/NAS/COMMON/IES/DaylightSavingTime.h -openair3/NAS/COMMON/IES/DetachType.c -openair3/NAS/COMMON/IES/DetachType.h -openair3/NAS/COMMON/IES/DrxParameter.c -openair3/NAS/COMMON/IES/DrxParameter.h -openair3/NAS/COMMON/IES/EmergencyNumberList.c -openair3/NAS/COMMON/IES/EmergencyNumberList.h -openair3/NAS/COMMON/IES/EmmCause.c -openair3/NAS/COMMON/IES/EmmCause.h -openair3/NAS/COMMON/IES/EpsAttachResult.c -openair3/NAS/COMMON/IES/EpsAttachResult.h -openair3/NAS/COMMON/IES/EpsAttachType.c -openair3/NAS/COMMON/IES/EpsAttachType.h -openair3/NAS/COMMON/IES/EpsBearerContextStatus.c -openair3/NAS/COMMON/IES/EpsBearerContextStatus.h -openair3/NAS/COMMON/IES/EpsBearerIdentity.c -openair3/NAS/COMMON/IES/EpsBearerIdentity.h -openair3/NAS/COMMON/IES/EpsMobileIdentity.c -openair3/NAS/COMMON/IES/EpsMobileIdentity.h -openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c -openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h -openair3/NAS/COMMON/IES/EpsQualityOfService.c -openair3/NAS/COMMON/IES/EpsQualityOfService.h -openair3/NAS/COMMON/IES/EpsUpdateResult.c -openair3/NAS/COMMON/IES/EpsUpdateResult.h -openair3/NAS/COMMON/IES/EpsUpdateType.c -openair3/NAS/COMMON/IES/EpsUpdateType.h -openair3/NAS/COMMON/IES/EsmCause.c -openair3/NAS/COMMON/IES/EsmCause.h -openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c -openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h -openair3/NAS/COMMON/IES/EsmMessageContainer.c -openair3/NAS/COMMON/IES/EsmMessageContainer.h -openair3/NAS/COMMON/IES/GprsTimer.c -openair3/NAS/COMMON/IES/GprsTimer.h -openair3/NAS/COMMON/IES/GutiType.c -openair3/NAS/COMMON/IES/GutiType.h -openair3/NAS/COMMON/IES/IdentityType2.c -openair3/NAS/COMMON/IES/IdentityType2.h -openair3/NAS/COMMON/IES/ImeisvRequest.c -openair3/NAS/COMMON/IES/ImeisvRequest.h -openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c -openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h -openair3/NAS/COMMON/IES/LcsClientIdentity.c -openair3/NAS/COMMON/IES/LcsClientIdentity.h -openair3/NAS/COMMON/IES/LcsIndicator.c -openair3/NAS/COMMON/IES/LcsIndicator.h -openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c -openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h -openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c -openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h -openair3/NAS/COMMON/IES/LocationAreaIdentification.c -openair3/NAS/COMMON/IES/LocationAreaIdentification.h -openair3/NAS/COMMON/IES/MessageType.c -openair3/NAS/COMMON/IES/MessageType.h -openair3/NAS/COMMON/IES/MobileIdentity.c -openair3/NAS/COMMON/IES/MobileIdentity.h -openair3/NAS/COMMON/IES/MobileStationClassmark2.c -openair3/NAS/COMMON/IES/MobileStationClassmark2.h -openair3/NAS/COMMON/IES/MobileStationClassmark3.c -openair3/NAS/COMMON/IES/MobileStationClassmark3.h -openair3/NAS/COMMON/IES/MsNetworkCapability.c -openair3/NAS/COMMON/IES/MsNetworkCapability.h -openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c -openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h -openair3/NAS/COMMON/IES/NasKeySetIdentifier.c -openair3/NAS/COMMON/IES/NasKeySetIdentifier.h -openair3/NAS/COMMON/IES/NasMessageContainer.c -openair3/NAS/COMMON/IES/NasMessageContainer.h -openair3/NAS/COMMON/IES/NasRequestType.c -openair3/NAS/COMMON/IES/NasRequestType.h -openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c -openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h -openair3/NAS/COMMON/IES/NetworkName.c -openair3/NAS/COMMON/IES/NetworkName.h -openair3/NAS/COMMON/IES/Nonce.c -openair3/NAS/COMMON/IES/Nonce.h -openair3/NAS/COMMON/IES/PacketFlowIdentifier.c -openair3/NAS/COMMON/IES/PacketFlowIdentifier.h -openair3/NAS/COMMON/IES/PagingIdentity.c -openair3/NAS/COMMON/IES/PagingIdentity.h -openair3/NAS/COMMON/IES/PdnAddress.c -openair3/NAS/COMMON/IES/PdnAddress.h -openair3/NAS/COMMON/IES/PdnType.c -openair3/NAS/COMMON/IES/PdnType.h -openair3/NAS/COMMON/IES/PlmnList.c -openair3/NAS/COMMON/IES/PlmnList.h -openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c -openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h -openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c -openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h -openair3/NAS/COMMON/IES/ProtocolDiscriminator.c -openair3/NAS/COMMON/IES/ProtocolDiscriminator.h -openair3/NAS/COMMON/IES/PTmsiSignature.c -openair3/NAS/COMMON/IES/PTmsiSignature.h -openair3/NAS/COMMON/IES/QualityOfService.c -openair3/NAS/COMMON/IES/QualityOfService.h -openair3/NAS/COMMON/IES/RadioPriority.c -openair3/NAS/COMMON/IES/RadioPriority.h -openair3/NAS/COMMON/IES/SecurityHeaderType.c -openair3/NAS/COMMON/IES/SecurityHeaderType.h -openair3/NAS/COMMON/IES/ServiceType.c -openair3/NAS/COMMON/IES/ServiceType.h -openair3/NAS/COMMON/IES/ShortMac.c -openair3/NAS/COMMON/IES/ShortMac.h -openair3/NAS/COMMON/IES/SsCode.c -openair3/NAS/COMMON/IES/SsCode.h -openair3/NAS/COMMON/IES/SupportedCodecList.c -openair3/NAS/COMMON/IES/SupportedCodecList.h -openair3/NAS/COMMON/IES/TimeZone.c -openair3/NAS/COMMON/IES/TimeZone.h -openair3/NAS/COMMON/IES/TimeZoneAndTime.c -openair3/NAS/COMMON/IES/TimeZoneAndTime.h -openair3/NAS/COMMON/IES/TmsiStatus.c -openair3/NAS/COMMON/IES/TmsiStatus.h -openair3/NAS/COMMON/IES/TrackingAreaIdentity.c -openair3/NAS/COMMON/IES/TrackingAreaIdentity.h -openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c -openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h -openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c -openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h -openair3/NAS/COMMON/IES/TrafficFlowTemplate.c -openair3/NAS/COMMON/IES/TrafficFlowTemplate.h -openair3/NAS/COMMON/IES/TransactionIdentifier.c -openair3/NAS/COMMON/IES/TransactionIdentifier.h -openair3/NAS/COMMON/IES/UeNetworkCapability.c -openair3/NAS/COMMON/IES/UeNetworkCapability.h -openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c -openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h -openair3/NAS/COMMON/IES/UeSecurityCapability.c -openair3/NAS/COMMON/IES/UeSecurityCapability.h -openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c -openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h -openair3/NAS/COMMON/UTIL/tst/timer.c -openair3/NAS/COMMON/UTIL/tst/timer_debug.txt -openair3/NAS/COMMON/UTIL/device.c -openair3/NAS/COMMON/UTIL/device.h -openair3/NAS/COMMON/UTIL/memory.c -openair3/NAS/COMMON/UTIL/memory.h -openair3/NAS/COMMON/UTIL/nas_log.c -openair3/NAS/COMMON/UTIL/nas_log.h -openair3/NAS/COMMON/UTIL/nas_timer.c -openair3/NAS/COMMON/UTIL/nas_timer.h -openair3/NAS/COMMON/UTIL/OctetString.c -openair3/NAS/COMMON/UTIL/OctetString.h -openair3/NAS/COMMON/UTIL/parser.c -openair3/NAS/COMMON/UTIL/parser.h -openair3/NAS/COMMON/UTIL/socket.c -openair3/NAS/COMMON/UTIL/socket.h -openair3/NAS/COMMON/UTIL/stty.c -openair3/NAS/COMMON/UTIL/TLVDecoder.c -openair3/NAS/COMMON/UTIL/TLVDecoder.h -openair3/NAS/COMMON/UTIL/TLVEncoder.c -openair3/NAS/COMMON/UTIL/TLVEncoder.h -openair3/NAS/COMMON/commonDef.h -openair3/NAS/COMMON/networkDef.h -openair3/NAS/COMMON/securityDef.h -openair3/NAS/COMMON/userDef.h -openair3/NAS/TEST/AS_SIMULATOR/as_data.c -openair3/NAS/TEST/AS_SIMULATOR/as_data.h -openair3/NAS/TEST/AS_SIMULATOR/as_process.c -openair3/NAS/TEST/AS_SIMULATOR/as_process.h -openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c -openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c -openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h -openair3/NAS/TEST/AS_SIMULATOR/nas_data.c -openair3/NAS/TEST/AS_SIMULATOR/nas_data.h -openair3/NAS/TEST/AS_SIMULATOR/nas_process.c -openair3/NAS/TEST/AS_SIMULATOR/nas_process.h -openair3/NAS/TEST/MSC/ActivatePDN.png -openair3/NAS/TEST/MSC/AuthenticationReject.png -openair3/NAS/TEST/MSC/DeactivatePDN.png -openair3/NAS/TEST/MSC/InitialAttach.png -openair3/NAS/TEST/MSC/InitialAttachReject.png -openair3/NAS/TEST/MSC/msc_gen.py -openair3/NAS/TEST/MSC/NomalDetach.png -openair3/NAS/TEST/MSC/README -openair3/NAS/TEST/MSC/SwitchOffDetach.png -openair3/NAS/TEST/NETWORK/network_parser.c -openair3/NAS/TEST/NETWORK/network_parser.h -openair3/NAS/TEST/NETWORK/network_simulator.c -openair3/NAS/TEST/NETWORK/README -openair3/NAS/TEST/USER/user_parser.c -openair3/NAS/TEST/USER/user_parser.h -openair3/NAS/TEST/USER/user_simulator.c -openair3/NAS/TOOLS/conf2uedata.c -openair3/NAS/TOOLS/conf2uedata.h -openair3/NAS/TOOLS/conf_emm.c -openair3/NAS/TOOLS/conf_emm.h -openair3/NAS/TOOLS/conf_network.c -openair3/NAS/TOOLS/conf_network.h -openair3/NAS/TOOLS/conf_parser.c -openair3/NAS/TOOLS/conf_parser.h -openair3/NAS/TOOLS/conf_user_data.c -openair3/NAS/TOOLS/conf_user_data.h -openair3/NAS/TOOLS/conf_user_plmn.c -openair3/NAS/TOOLS/conf_user_plmn.h -openair3/NAS/TOOLS/conf_usim.c -openair3/NAS/TOOLS/conf_usim.h -openair3/NAS/TOOLS/display.c -openair3/NAS/TOOLS/display.h -openair3/NAS/TOOLS/fs.c -openair3/NAS/TOOLS/fs.h -openair3/NAS/TOOLS/network.h -openair3/NAS/TOOLS/nvram.c -openair3/NAS/TOOLS/ue_bcom_test.conf -openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -openair3/NAS/TOOLS/ue_tcl_test.conf -openair3/NAS/TOOLS/usim.c -openair3/NAS/UE/API/USER/tst/at_parser.c -openair3/NAS/UE/API/USER/tst/at_parser.in -openair3/NAS/UE/API/USER/tst/at_parser.in.bis -openair3/NAS/UE/API/USER/tst/at_parser.out -openair3/NAS/UE/API/USER/tst/at_parser.out.bis -openair3/NAS/UE/API/USER/tst/smartcom.txt -openair3/NAS/UE/API/USER/at_command.c -openair3/NAS/UE/API/USER/at_command.h -openair3/NAS/UE/API/USER/at_error.c -openair3/NAS/UE/API/USER/at_error.h -openair3/NAS/UE/API/USER/at_response.c -openair3/NAS/UE/API/USER/at_response.h -openair3/NAS/UE/API/USER/user_api.c -openair3/NAS/UE/API/USER/user_api.h -openair3/NAS/UE/API/USER/user_api_defs.h -openair3/NAS/UE/API/USER/user_indication.c -openair3/NAS/UE/API/USER/user_indication.h -openair3/NAS/UE/API/USIM/aka_functions.c -openair3/NAS/UE/API/USIM/aka_functions.h -openair3/NAS/UE/API/USIM/usim_api.c -openair3/NAS/UE/API/USIM/usim_api.h -openair3/NAS/UE/EMM/SAP/emm_as.c -openair3/NAS/UE/EMM/SAP/emm_as.h -openair3/NAS/UE/EMM/SAP/emm_asDef.h -openair3/NAS/UE/EMM/SAP/emm_esm.c -openair3/NAS/UE/EMM/SAP/emm_esm.h -openair3/NAS/UE/EMM/SAP/emm_esmDef.h -openair3/NAS/UE/EMM/SAP/emm_fsm.c -openair3/NAS/UE/EMM/SAP/emm_fsm.h -openair3/NAS/UE/EMM/SAP/emm_recv.c -openair3/NAS/UE/EMM/SAP/emm_recv.h -openair3/NAS/UE/EMM/SAP/emm_reg.c -openair3/NAS/UE/EMM/SAP/emm_reg.h -openair3/NAS/UE/EMM/SAP/emm_regDef.h -openair3/NAS/UE/EMM/SAP/emm_sap.c -openair3/NAS/UE/EMM/SAP/emm_sap.h -openair3/NAS/UE/EMM/SAP/emm_send.c -openair3/NAS/UE/EMM/SAP/emm_send.h -openair3/NAS/UE/EMM/SAP/EmmDeregistered.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c -openair3/NAS/UE/EMM/SAP/EmmNull.c -openair3/NAS/UE/EMM/SAP/EmmRegistered.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c -openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c -openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c -openair3/NAS/UE/EMM/Attach.c -openair3/NAS/UE/EMM/Authentication.c -openair3/NAS/UE/EMM/Authentication.h -openair3/NAS/UE/EMM/Detach.c -openair3/NAS/UE/EMM/emm_fsm_defs.h -openair3/NAS/UE/EMM/emm_main.c -openair3/NAS/UE/EMM/emm_main.h -openair3/NAS/UE/EMM/emm_proc.h -openair3/NAS/UE/EMM/emm_proc_defs.h -openair3/NAS/UE/EMM/emm_timers.h -openair3/NAS/UE/EMM/emmData.h -openair3/NAS/UE/EMM/EmmStatusHdl.c -openair3/NAS/UE/EMM/Identification.c -openair3/NAS/UE/EMM/IdleMode.c -openair3/NAS/UE/EMM/IdleMode.h -openair3/NAS/UE/EMM/IdleMode_defs.h -openair3/NAS/UE/EMM/LowerLayer.c -openair3/NAS/UE/EMM/LowerLayer.h -openair3/NAS/UE/EMM/LowerLayer_defs.h -openair3/NAS/UE/EMM/SecurityModeControl.c -openair3/NAS/UE/EMM/SecurityModeControl.h -openair3/NAS/UE/EMM/ServiceRequestHdl.c -openair3/NAS/UE/EMM/TrackingAreaUpdate.c -openair3/NAS/UE/ESM/SAP/esm_recv.c -openair3/NAS/UE/ESM/SAP/esm_recv.h -openair3/NAS/UE/ESM/SAP/esm_sap.c -openair3/NAS/UE/ESM/SAP/esm_sap.h -openair3/NAS/UE/ESM/SAP/esm_sapDef.h -openair3/NAS/UE/ESM/SAP/esm_send.c -openair3/NAS/UE/ESM/SAP/esm_send.h -openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c -openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c -openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c -openair3/NAS/UE/ESM/esm_ebr.c -openair3/NAS/UE/ESM/esm_ebr.h -openair3/NAS/UE/ESM/esm_ebr_context.c -openair3/NAS/UE/ESM/esm_ebr_context.h -openair3/NAS/UE/ESM/esm_ip.c -openair3/NAS/UE/ESM/esm_main.c -openair3/NAS/UE/ESM/esm_main.h -openair3/NAS/UE/ESM/esm_proc.h -openair3/NAS/UE/ESM/esm_pt.c -openair3/NAS/UE/ESM/esm_pt.h -openair3/NAS/UE/ESM/esm_pt_defs.h -openair3/NAS/UE/ESM/esmData.h -openair3/NAS/UE/ESM/EsmStatusHdl.c -openair3/NAS/UE/ESM/PdnConnectivity.c -openair3/NAS/UE/ESM/PdnDisconnect.c -openair3/NAS/UE/nas_itti_messaging.c -openair3/NAS/UE/nas_itti_messaging.h -openair3/NAS/UE/nas_network.c -openair3/NAS/UE/nas_network.h -openair3/NAS/UE/nas_parser.c -openair3/NAS/UE/nas_parser.h -openair3/NAS/UE/nas_proc.c -openair3/NAS/UE/nas_proc.h -openair3/NAS/UE/nas_proc_defs.h -openair3/NAS/UE/nas_ue_task.c -openair3/NAS/UE/nas_ue_task.h -openair3/NAS/UE/nas_user.c -openair3/NAS/UE/nas_user.h -openair3/NAS/UE/UEprocess.c -openair3/NAS/UE/user_defs.h -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn -openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py -openair3/S1AP/MESSAGES/ASN1/README -openair3/S1AP/s1ap_common.c -openair3/S1AP/s1ap_common.h -openair3/S1AP/s1ap_eNB.c -openair3/S1AP/s1ap_eNB.h -openair3/S1AP/s1ap_eNB_context_management_procedures.c -openair3/S1AP/s1ap_eNB_context_management_procedures.h -openair3/S1AP/s1ap_eNB_decoder.c -openair3/S1AP/s1ap_eNB_decoder.h -openair3/S1AP/s1ap_eNB_default_values.h -openair3/S1AP/s1ap_eNB_defs.h -openair3/S1AP/s1ap_eNB_encoder.c -openair3/S1AP/s1ap_eNB_encoder.h -openair3/S1AP/s1ap_eNB_handlers.c -openair3/S1AP/s1ap_eNB_handlers.h -openair3/S1AP/s1ap_eNB_itti_messaging.c -openair3/S1AP/s1ap_eNB_itti_messaging.h -openair3/S1AP/s1ap_eNB_management_procedures.c -openair3/S1AP/s1ap_eNB_management_procedures.h -openair3/S1AP/s1ap_eNB_nas_procedures.c -openair3/S1AP/s1ap_eNB_nas_procedures.h -openair3/S1AP/s1ap_eNB_nnsf.c -openair3/S1AP/s1ap_eNB_nnsf.h -openair3/S1AP/s1ap_eNB_overload.c -openair3/S1AP/s1ap_eNB_overload.h -openair3/S1AP/s1ap_eNB_trace.c -openair3/S1AP/s1ap_eNB_trace.h -openair3/S1AP/s1ap_eNB_ue_context.c -openair3/S1AP/s1ap_eNB_ue_context.h -openair3/SCTP/sctp_common.c -openair3/SCTP/sctp_common.h -openair3/SCTP/sctp_default_values.h -openair3/SCTP/sctp_eNB_defs.h -openair3/SCTP/sctp_eNB_itti_messaging.c -openair3/SCTP/sctp_eNB_itti_messaging.h -openair3/SCTP/sctp_eNB_task.c -openair3/SCTP/sctp_eNB_task.h -openair3/SCTP/sctp_primitives_client.c -openair3/SCTP/sctp_primitives_client.h -openair3/SECU/kdf.c -openair3/SECU/key_nas_deriver.c -openair3/SECU/key_nas_encryption.c -openair3/SECU/nas_stream_eea1.c -openair3/SECU/nas_stream_eea2.c -openair3/SECU/nas_stream_eia1.c -openair3/SECU/nas_stream_eia2.c -openair3/SECU/rijndael.c -openair3/SECU/rijndael.h -openair3/SECU/secu_defs.h -openair3/SECU/snow3g.c -openair3/SECU/snow3g.h -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml -openair3/TEST/EPC_TEST/generate_scenario.c -openair3/TEST/EPC_TEST/generate_scenario.h -openair3/TEST/EPC_TEST/play_scenario.c -openair3/TEST/EPC_TEST/play_scenario.h -openair3/TEST/EPC_TEST/play_scenario_decode.c -openair3/TEST/EPC_TEST/play_scenario_display.c -openair3/TEST/EPC_TEST/play_scenario_fsm.c -openair3/TEST/EPC_TEST/play_scenario_parse.c -openair3/TEST/EPC_TEST/play_scenario_s1ap.c -openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c -openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h -openair3/TEST/EPC_TEST/play_scenario_sctp.c -openair3/TEST/oaisim_mme_client_test.c -openair3/TEST/oaisim_mme_itti_test.c -openair3/TEST/oaisim_mme_list_benchmark.c -openair3/TEST/oaisim_mme_s1ap_test.c -openair3/TEST/oaisim_mme_sctp_test.c -openair3/TEST/oaisim_mme_test_s1c.c -openair3/TEST/oaisim_mme_test_s1c.h -openair3/TEST/oaisim_mme_test_s1c_s1ap.c -openair3/TEST/oaisim_mme_test_s1c_s1ap.h -openair3/TEST/oaisim_mme_test_s1c_scenario.c -openair3/TEST/oaisim_mme_test_s1c_scenario.h -openair3/TEST/oaisim_mme_test_s1c_scenario1.c -openair3/TEST/test_aes128_cmac_encrypt.c -openair3/TEST/test_aes128_ctr_decrypt.c -openair3/TEST/test_aes128_ctr_encrypt.c -openair3/TEST/test_kdf.c -openair3/TEST/test_s1ap.c -openair3/TEST/test_secu.c -openair3/TEST/test_secu_kenb.c -openair3/TEST/test_secu_knas.c -openair3/TEST/test_secu_knas_encrypt_eea1.c -openair3/TEST/test_secu_knas_encrypt_eea2.c -openair3/TEST/test_secu_knas_encrypt_eia1.c -openair3/TEST/test_secu_knas_encrypt_eia2.c -openair3/TEST/test_secu_knas_stream_int.c -openair3/UDP/udp_eNB_task.c -openair3/UDP/udp_eNB_task.h -openair3/UTILS/CONF/COPYING -openair3/UTILS/conversions.c -openair3/UTILS/conversions.h -openair3/UTILS/enum_string.c -openair3/UTILS/enum_string.h -openair3/UTILS/log.c -openair3/UTILS/log.h -openair3/UTILS/mcc_mnc_itu.c -openair3/UTILS/mcc_mnc_itu.h -openair3/UTILS/mme_config.c -openair3/UTILS/mme_config.h -openair3/UTILS/mme_default_values.h -openair3/UTILS/mme_parser.y -openair3/UTILS/mme_scanner.l -openair3/UTILS/queue.h -openair3/UTILS/tree.h -openair3/valgrind.sh -svn2git/authors.txt -svn2git/authors_original.txt -svn2git/authors_original_java_output.txt -svn2git/check_diff_author.sh -svn2git/git-author-rewrite.sh -svn2git/README.txt -targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c -targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h -targets/ARCH/COMMON/common_lib.c -targets/ARCH/COMMON/common_lib.h -targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c -targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c -targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c -targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h -targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk -targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd -targets/ARCH/EXMIMO/BITSTREAM/program_fpga -targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd -targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd -targets/ARCH/EXMIMO/DEFS/openair_device.h -targets/ARCH/EXMIMO/DEFS/pcie_interface.h -targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h -targets/ARCH/EXMIMO/DRIVER/eurecom/do_reenumerate_expressmimo.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/do_reinsert_driver.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c -targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h -targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c -targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c -targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c -targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reenumerate_expressmimo.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reinsert_driver.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/test_script.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c -targets/ARCH/EXMIMO/DRIVER/readme.txt -targets/ARCH/EXMIMO/USERSPACE/LIB/example.c -targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c -targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h -targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c -targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo1 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v9 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m -targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp -targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp -targets/ARCH/LMSSDR/LimeSDR.ini -targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini -targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini -targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini -targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp -targets/bin/liboai_device.so -targets/bin/liboai_usrpdevif.so.Rel14 -targets/bin/lte-softmodem.Rel14 -targets/COMMON/create_tasks.c -targets/COMMON/create_tasks.h -targets/COMMON/openairinterface5g_limits.h -targets/COMMON/threads_t.h -targets/DOCS/images/oai_logo.png -targets/DOCS/api_icic.xml -targets/DOCS/Doxyfile -targets/DOCS/E-UTRAN_User_Guide.docx -targets/DOCS/E-UTRAN_User_Guide.pdf -targets/DOCS/oai_L1_L2_procedures.pdf -targets/DOCS/oaiemu.doc -targets/DOCS/oaisim_walkthrough.pdf -targets/DOCS/openair_header.tex -targets/DOCS/path_loss_oaisim.xlsx -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf -targets/PROJECTS/E-MBMS/build_all.bash -targets/PROJECTS/E-MBMS/enb.conf -targets/PROJECTS/E-MBMS/start_enb.bash -targets/PROJECTS/E-MBMS/start_ue.bash -targets/PROJECTS/E-MBMS/utils.bash -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.centos.nord.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.memphis.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.epc_eur.local.exmimo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml -targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash -targets/PROJECTS/GENERIC-LTE-EPC/networks.bash -targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash -targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash -targets/PROJECTS/GENERIC-LTE-EPC/utils.bash -targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash -targets/PROJECTS/LOCALIZATION/filesave0811.mat -targets/PROJECTS/LOCALIZATION/generation.m -targets/PROJECTS/LOCALIZATION/initial_sync.m -targets/PROJECTS/LOCALIZATION/initparams.m -targets/PROJECTS/LOCALIZATION/plots.m -targets/PROJECTS/LOCALIZATION/recup.m -targets/PROJECTS/LOCALIZATION/where2.m -targets/PROJECTS/LOCALIZATION/where2_v1_final.mat -targets/PROJECTS/LOCALIZATION/where2_vf.m -targets/PROJECTS/TDDREC/v0/alterproj.m -targets/PROJECTS/TDDREC/v0/beamforming.m -targets/PROJECTS/TDDREC/v0/calibration.m -targets/PROJECTS/TDDREC/v0/genorthqpskseq.m -targets/PROJECTS/TDDREC/v0/genrandpskseq.m -targets/PROJECTS/TDDREC/v0/initparams.m -targets/PROJECTS/TDDREC/v0/initparams2.m -targets/PROJECTS/TDDREC/v0/ofdm_mod.m -targets/PROJECTS/TDDREC/v0/readme.txt -targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m -targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m -targets/PROJECTS/TDDREC/v0/runmeas_mimo.m -targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m -targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m -targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m -targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m -targets/PROJECTS/TDDREC/f_ch_est.m -targets/PROJECTS/TDDREC/f_ofdm_mod.m -targets/PROJECTS/TDDREC/f_ofdm_rx.m -targets/PROJECTS/TDDREC/f_ofdm_tx.m -targets/PROJECTS/TDDREC/f_tls_ap.m -targets/PROJECTS/TDDREC/f_tls_diag.m -targets/PROJECTS/TDDREC/f_tls_svd.m -targets/PROJECTS/TDDREC/s_beamforming.m -targets/PROJECTS/TDDREC/s_calib.m -targets/PROJECTS/TDDREC/s_draw_F.m -targets/PROJECTS/TDDREC/s_init_params.m -targets/PROJECTS/TDDREC/s_run_meas.m -targets/RT/LAUNCH_SCRIPTS/load_module.sh -targets/RT/LAUNCH_SCRIPTS/nas_enb.sh -targets/RT/LAUNCH_SCRIPTS/nas_ue.sh -targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh -targets/RT/LAUNCH_SCRIPTS/start_emos.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh -targets/RT/LAUNCH_SCRIPTS/start_rf.sh -targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh -targets/RT/LAUNCH_SCRIPTS/start_ue.sh -targets/RT/LAUNCH_SCRIPTS/start_ue2.sh -targets/RT/LAUNCH_SCRIPTS/stop_rf.sh -targets/RT/USER/TOOLS/thread_ipc.c -targets/RT/USER/TOOLS/thread_ipc.h -targets/RT/USER/condtest.c -targets/RT/USER/emos-raw.c -targets/RT/USER/eNB_exmimo2.gtkw -targets/RT/USER/eNB_transport_IQ.c -targets/RT/USER/eNB_usrp.gtkw -targets/RT/USER/exmimo2_2arxg.lime -targets/RT/USER/exmimo2_2brxg.lime -targets/RT/USER/init_b200.sh -targets/RT/USER/init_exmimo.sh -targets/RT/USER/init_exmimo2.sh -targets/RT/USER/init_rtai.sh -targets/RT/USER/lte-enb.c -targets/RT/USER/lte-ran.c -targets/RT/USER/lte-ru.c -targets/RT/USER/lte-softmodem.c -targets/RT/USER/lte-softmodem.h -targets/RT/USER/lte-ue.c -targets/RT/USER/make_for_usrp.sh -targets/RT/USER/msg_helper.c -targets/RT/USER/msg_many.c -targets/RT/USER/msg_many.h -targets/RT/USER/rau_if4_single_thread.gtkw -targets/RT/USER/rcc_if4.gtkw -targets/RT/USER/rcc_if5.gtkw -targets/RT/USER/rrh.c -targets/RT/USER/rrh.gtkw -targets/RT/USER/rrh_gw.c -targets/RT/USER/rrh_gw.h -targets/RT/USER/rrh_gw_externs.h -targets/RT/USER/rru_if4p5_single_thread.gtkw -targets/RT/USER/rru_if4p5_usrp.gtkw -targets/RT/USER/rru_if5_usrp.gtkw -targets/RT/USER/rt_wrapper.c -targets/RT/USER/rt_wrapper.h -targets/RT/USER/sleeptest.c -targets/RT/USER/stats.c -targets/RT/USER/stats.fd -targets/RT/USER/stats.h -targets/RT/USER/synctest.c -targets/RT/USER/ue_exmimo2.gtkw -targets/RT/USER/UE_transport_IQ.c -targets/RT/USER/ue_usrp.gtkw -targets/SCRIPTS/asn1_generate_rrc_messaging_c_code.bash -targets/SCRIPTS/install_asn1.sh -targets/SCRIPTS/install_asn1c_0.9.24.modified.bash -targets/SCRIPTS/msc_gen.py -targets/SCRIPTS/svn-merge-meld.py -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 -targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml -targets/SIMU/EXAMPLES/OSD/README.txt -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas -targets/SIMU/PROC/SCRIPT/Run.py -targets/SIMU/PROC/channel_sim_proc.c -targets/SIMU/PROC/channel_sim_proc.h -targets/SIMU/PROC/interface.h -targets/SIMU/PROC/Process.c -targets/SIMU/PROC/Process.h -targets/SIMU/PROC/Tsync.h -targets/SIMU/USER/files/MI_16qam.csv -targets/SIMU/USER/files/MI_16qam.txt -targets/SIMU/USER/files/MI_4qam.csv -targets/SIMU/USER/files/MI_4qam.txt -targets/SIMU/USER/files/MI_64qam.csv -targets/SIMU/USER/files/MI_64qam.txt -targets/SIMU/USER/channel_sim.c -targets/SIMU/USER/cor_SF_sim.c -targets/SIMU/USER/cor_SF_sim.h -targets/SIMU/USER/event_handler.c -targets/SIMU/USER/event_handler.h -targets/SIMU/USER/init_lte.c -targets/SIMU/USER/init_lte.h -targets/SIMU/USER/oaisim.c -targets/SIMU/USER/oaisim.h -targets/SIMU/USER/oaisim_config.c -targets/SIMU/USER/oaisim_config.h -targets/SIMU/USER/oaisim_functions.c -targets/SIMU/USER/oaisim_functions.h -targets/SIMU/USER/oaisim_pad.c -targets/SIMU/USER/phy_procedures_sim_form.c -targets/SIMU/USER/phy_procedures_sim_form.fd -targets/SIMU/USER/phy_procedures_sim_form.h -targets/SIMU/USER/plot_results.m -targets/SIMU/USER/sinr_sim.c -targets/SIMU/USER/threadpool.c -targets/SIMU/USER/threadpool.h -targets/SIMU/USER/valgrind.sh -targets/TEST/AT_COMMANDS/oaisim.c -targets/TEST/OAI/case01.py -targets/TEST/OAI/case02.py -targets/TEST/OAI/case03.py -targets/TEST/OAI/case04.py -targets/TEST/OAI/case05.py -targets/TEST/OAI/case11.py -targets/TEST/OAI/case12.py -targets/TEST/OAI/case13.py -targets/TEST/OAI/core.py -targets/TEST/OAI/log.py -targets/TEST/OAI/openair.py -targets/TEST/OAI/README -targets/TEST/OAI/test01.py -targets/TEST/OAI/test02.py -targets/TEST/PACKET_TRACER/messages/Msg4.txt -targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt -targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt -targets/TEST/PACKET_TRACER/messages/sib1.txt -targets/TEST/PACKET_TRACER/messages/sib2.txt -targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt -targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt -targets/TEST/PACKET_TRACER/messages/sib3.txt -targets/TEST/PACKET_TRACER/pt.c -targets/TEST/PACKET_TRACER/README.txt -targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt -targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c -targets/TEST/PDCP/readme.txt -targets/TEST/PDCP/test_pdcp.c -targets/TEST/PDCP/test_pdcp.h -targets/TEST/PDCP/test_util.h -targets/TEST/PDCP/todo.txt -targets/TEST/RLC_AM_V9.3.0/oaisim.c -targets/TEST/RLC_UM_V9.3.0/oaisim.c -targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp -targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp -targets/TEST/ROHDE_SCHWARZ/TcpClient.h -targets/build_helper.bash -targets/build_oai.bash -targets/itti_vcd_tasks.sav -targets/Makerules -targets/perf_oai.bash -targets/README.txt -LICENSE -maketags -NOTICE.txt -oaienv -pre-commit -README.txt \ No newline at end of file From eaf4c79f8c9821adfee7d38f1d360e40e9698911 Mon Sep 17 00:00:00 2001 From: khalid Date: Wed, 9 Aug 2017 16:49:43 +0200 Subject: [PATCH 014/125] Delete ray_enb_dev.includes --- ray_enb_dev.includes | 144 ------------------------------------------- 1 file changed, 144 deletions(-) delete mode 100644 ray_enb_dev.includes diff --git a/ray_enb_dev.includes b/ray_enb_dev.includes deleted file mode 100644 index ff1452acfd..0000000000 --- a/ray_enb_dev.includes +++ /dev/null @@ -1,144 +0,0 @@ -cmake_targets/lte_build_oai/build/CMakeFiles -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5 -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2 -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14 -common -common/utils -common/utils/collection -common/utils/hashtable -common/utils/itti -common/utils/itti_analyzer/common -common/utils/itti_analyzer/libbuffers -common/utils/itti_analyzer/libparser -common/utils/itti_analyzer/libresolver -common/utils/itti_analyzer/libui -common/utils/msc -common/utils/T -common/utils/T/tracer -common/utils/T/tracer/filter -common/utils/T/tracer/gui -common/utils/T/tracer/logger -common/utils/T/tracer/view -openair1/PHY -openair1/PHY/CODING -openair1/PHY/INIT -openair1/PHY/LTE_ESTIMATION -openair1/PHY/LTE_REFSIG -openair1/PHY/LTE_TRANSPORT -openair1/PHY/MODULATION -openair1/PHY/TOOLS -openair1/SCHED -openair1/SIMULATION/ETH_TRANSPORT -openair1/SIMULATION/LTE_PHY -openair1/SIMULATION/RF -openair1/SIMULATION/TOOLS -openair2/COMMON -openair2/DOCS/TEMPLATES/CODE -openair2/ENB_APP -openair2/ENB_APP/CONTROL_MODULES/MAC -openair2/LAYER2 -openair2/LAYER2/MAC -openair2/LAYER2/PDCP_v10.1.0 -openair2/LAYER2/RLC -openair2/LAYER2/RLC/AM_v9.3.0 -openair2/LAYER2/RLC/TM_v9.3.0 -openair2/LAYER2/RLC/UM_v9.3.0 -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL -openair2/NAS/DRIVER/CELLULAR/NASMT -openair2/NAS/DRIVER/CELLULAR/NASRG -openair2/NAS/SIMU_CELLULAR -openair2/NETWORK_DRIVER/LITE -openair2/NETWORK_DRIVER/MESH -openair2/NETWORK_DRIVER/UE_IP -openair2/PHY_INTERFACE -openair2/RRC/L2_INTERFACE -openair2/RRC/LITE -openair2/RRC/LITE/MESSAGES -openair2/RRC/NAS -openair2/UTIL/ASYNC_IF -openair2/UTIL/BIGPHYS -openair2/UTIL/CLI -openair2/UTIL/FIFO -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack -openair2/UTIL/LFDS/liblfds6.1.1/test/src -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700 -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack -openair2/UTIL/LFDS/liblfds7.0.0/test/src -openair2/UTIL/LISTS -openair2/UTIL/LOG -openair2/UTIL/MATH -openair2/UTIL/MEM -openair2/UTIL/OCG -openair2/UTIL/OMG -openair2/UTIL/OMV -openair2/UTIL/OPT -openair2/UTIL/OSA -openair2/UTIL/OTG -openair2/UTIL/TIMER -openair2/UTIL/TRACE -openair2/X2AP -openair3/COMMON -openair3/GTPV1-U -openair3/GTPV1-U/nw-gtpv1u/include -openair3/GTPV1-U/nw-gtpv1u/shared -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld -openair3/NAS/COMMON -openair3/NAS/COMMON/API/NETWORK -openair3/NAS/COMMON/EMM/MSG -openair3/NAS/COMMON/ESM/MSG -openair3/NAS/COMMON/IES -openair3/NAS/COMMON/UTIL -openair3/NAS/TEST/AS_SIMULATOR -openair3/NAS/TEST/NETWORK -openair3/NAS/TEST/USER -openair3/NAS/TOOLS -openair3/NAS/UE -openair3/NAS/UE/API/USER -openair3/NAS/UE/API/USIM -openair3/NAS/UE/EMM -openair3/NAS/UE/EMM/SAP -openair3/NAS/UE/ESM -openair3/NAS/UE/ESM/SAP -openair3/S1AP -openair3/SCTP -openair3/SECU -openair3/TEST -openair3/TEST/EPC_TEST -openair3/UDP -openair3/UTILS -targets/ARCH/BLADERF/USERSPACE/LIB -targets/ARCH/COMMON -targets/ARCH/ETHERNET/USERSPACE/LIB -targets/ARCH/EXMIMO/DEFS -targets/ARCH/EXMIMO/DRIVER/eurecom -targets/ARCH/EXMIMO/DRIVER/exmimo3 -targets/ARCH/EXMIMO/DRIVER/telecomparistech -targets/ARCH/EXMIMO/USERSPACE/LIB -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT -targets/ARCH/EXMIMO/USERSPACE/OCTAVE -targets/COMMON -targets/RT/USER -targets/RT/USER/TOOLS -targets/SIMU/PROC -targets/SIMU/USER -targets/TEST/PDCP -targets/TEST/ROHDE_SCHWARZ \ No newline at end of file From 01868adee25d275dd7e25ab6b31dec552a607b6d Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Thu, 10 Aug 2017 17:24:55 -0700 Subject: [PATCH 015/125] repairs after merge from upstream --- openair2/ENB_APP/enb_config.c | 759 +++++++++++++++------------------- 1 file changed, 340 insertions(+), 419 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index b1ba3e4139..d6cc16524a 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -1197,12 +1197,12 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { asn1_xer_print = 0; } } - + #endif - + // Get list of active eNBs, (only these will be configured) setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - + if (setting != NULL) { num_enbs = config_setting_length(setting); setting_enb = config_setting_get_elem(setting, i); @@ -1278,7 +1278,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { rrc->eth_params_s.remote_portd = remote_s_portd; rrc->eth_params_s.transp_preference = ETH_UDP_MODE; } - + else { // other midhaul } @@ -2235,7 +2235,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, pcch_defaultPagingCycle); - + switch (bcch_modificationPeriodCoeff) { case 2: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; @@ -2528,6 +2528,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ue_TransmissionMode); break; } + #ifdef Rel14 setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); if (setting_br13 == NULL) { @@ -2541,7 +2542,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); int num_scheduling_info = config_setting_length(scheduling_info_br_list); RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; - + for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) { scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); @@ -2612,7 +2613,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; } - + prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; @@ -2696,9 +2697,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) -#if !defined(Rel10) && !defined(Rel14) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) -#endif && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) @@ -2811,15 +2809,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", RC.config_file_name, i, pucch_nCS_AN); -#if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN; - - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); - -#endif RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) @@ -3019,32 +3008,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", RC.config_file_name, i, pusch_p0_Nominal); -#ifndef Rel14 - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; - } -#else if (strcmp(pusch_alpha, "AL0") == 0) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; } @@ -3069,7 +3032,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { else if (strcmp(pusch_alpha, "AL1") == 0) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; } -#endif else AssertFatal(0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", @@ -3280,52 +3242,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { switch (rach_preambleTransMax) { -#ifndef Rel14 - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; - -#else case 3: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; @@ -3370,7 +3286,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { case 200: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; break; -#endif + default: AssertFatal (0, @@ -3749,7 +3665,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ue_TransmissionMode); break; } - + int hyperSFN_r13; int eDRX_Allowed_r13; int q_RxLevMinCE_r13; @@ -3862,11 +3778,12 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; - + } + else RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; - + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; @@ -3915,7 +3832,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; - + /////SIB2 Parameters if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) @@ -3925,7 +3842,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; - + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; @@ -3962,337 +3879,341 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; } else RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; - } + + #endif + + + + setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); + + if (setting_srb1 != NULL) { + if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, " + "timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n", + RC.config_file_name, i); + + switch (srb1_max_retx_threshold) { + case 1: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; + break; + + case 2: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; + break; + + case 3: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; + break; + + case 4: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; + break; + + case 6: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; + break; + + case 8: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + break; + + case 16: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; + break; + + case 32: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", + RC.config_file_name, i, srb1_max_retx_threshold); + } + + + switch (srb1_poll_pdu) { + case 4: + rrc->srb1_poll_pdu = PollPDU_p4; + break; + + case 8: + rrc->srb1_poll_pdu = PollPDU_p8; + break; + + case 16: + rrc->srb1_poll_pdu = PollPDU_p16; + break; + + case 32: + rrc->srb1_poll_pdu = PollPDU_p32; + break; + + case 64: + rrc->srb1_poll_pdu = PollPDU_p64; + break; + + case 128: + rrc->srb1_poll_pdu = PollPDU_p128; + break; + + case 256: + rrc->srb1_poll_pdu = PollPDU_p256; + break; + + default: + if (srb1_poll_pdu >= 10000) + rrc->srb1_poll_pdu = PollPDU_pInfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", + RC.config_file_name, i, srb1_poll_pdu); + } + + rrc->srb1_poll_byte = srb1_poll_byte; + + switch (srb1_poll_byte) { + case 25: + rrc->srb1_poll_byte = PollByte_kB25; + break; + + case 50: + rrc->srb1_poll_byte = PollByte_kB50; + break; + + case 75: + rrc->srb1_poll_byte = PollByte_kB75; + break; + + case 100: + rrc->srb1_poll_byte = PollByte_kB100; + break; + + case 125: + rrc->srb1_poll_byte = PollByte_kB125; + break; + + case 250: + rrc->srb1_poll_byte = PollByte_kB250; + break; + + case 375: + rrc->srb1_poll_byte = PollByte_kB375; + break; + + case 500: + rrc->srb1_poll_byte = PollByte_kB500; + break; + + case 750: + rrc->srb1_poll_byte = PollByte_kB750; + break; + + case 1000: + rrc->srb1_poll_byte = PollByte_kB1000; + break; + + case 1250: + rrc->srb1_poll_byte = PollByte_kB1250; + break; + + case 1500: + rrc->srb1_poll_byte = PollByte_kB1500; + break; + + case 2000: + rrc->srb1_poll_byte = PollByte_kB2000; + break; + + case 3000: + rrc->srb1_poll_byte = PollByte_kB3000; + break; + + default: + if (srb1_poll_byte >= 10000) + rrc->srb1_poll_byte = PollByte_kBinfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", + RC.config_file_name, i, srb1_poll_byte); + } + + if (srb1_timer_poll_retransmit <= 250) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; + } + else if (srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_timer_poll_retransmit); + } + + if (srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; + } + else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + RC.config_file_name, i, srb1_timer_status_prohibit); + } + + switch (srb1_timer_reordering) { + case 0: + rrc->srb1_timer_reordering = T_Reordering_ms0; + break; + + case 5: + rrc->srb1_timer_reordering = T_Reordering_ms5; + break; + + case 10: + rrc->srb1_timer_reordering = T_Reordering_ms10; + break; + + case 15: + rrc->srb1_timer_reordering = T_Reordering_ms15; + break; + + case 20: + rrc->srb1_timer_reordering = T_Reordering_ms20; + break; + + case 25: + rrc->srb1_timer_reordering = T_Reordering_ms25; + break; + + case 30: + rrc->srb1_timer_reordering = T_Reordering_ms30; + break; + + case 35: + rrc->srb1_timer_reordering = T_Reordering_ms35; + break; + + case 40: + rrc->srb1_timer_reordering = T_Reordering_ms40; + break; + + case 45: + rrc->srb1_timer_reordering = T_Reordering_ms45; + break; + + case 50: + rrc->srb1_timer_reordering = T_Reordering_ms50; + break; + + case 55: + rrc->srb1_timer_reordering = T_Reordering_ms55; + break; + + case 60: + rrc->srb1_timer_reordering = T_Reordering_ms60; + break; + + case 65: + rrc->srb1_timer_reordering = T_Reordering_ms65; + break; + + case 70: + rrc->srb1_timer_reordering = T_Reordering_ms70; + break; + + case 75: + rrc->srb1_timer_reordering = T_Reordering_ms75; + break; + + case 80: + rrc->srb1_timer_reordering = T_Reordering_ms80; + break; + + case 85: + rrc->srb1_timer_reordering = T_Reordering_ms85; + break; + + case 90: + rrc->srb1_timer_reordering = T_Reordering_ms90; + break; + + case 95: + rrc->srb1_timer_reordering = T_Reordering_ms95; + break; + + case 100: + rrc->srb1_timer_reordering = T_Reordering_ms100; + break; + + case 110: + rrc->srb1_timer_reordering = T_Reordering_ms110; + break; + + case 120: + rrc->srb1_timer_reordering = T_Reordering_ms120; + break; + + case 130: + rrc->srb1_timer_reordering = T_Reordering_ms130; + break; + + case 140: + rrc->srb1_timer_reordering = T_Reordering_ms140; + break; + + case 150: + rrc->srb1_timer_reordering = T_Reordering_ms150; + break; + + case 160: + rrc->srb1_timer_reordering = T_Reordering_ms160; + break; + + case 170: + rrc->srb1_timer_reordering = T_Reordering_ms170; + break; + + case 180: + rrc->srb1_timer_reordering = T_Reordering_ms180; + break; + + case 190: + rrc->srb1_timer_reordering = T_Reordering_ms190; + break; + + case 200: + rrc->srb1_timer_reordering = T_Reordering_ms200; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", + RC.config_file_name, i, srb1_timer_reordering); + } + + break; + } + + } } - - - setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); - - if (setting_srb1 != NULL) { - if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, " - "timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n", - RC.config_file_name, i); - - switch (srb1_max_retx_threshold) { - case 1: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; - break; - - case 2: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; - break; - - case 3: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; - break; - - case 4: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; - break; - - case 6: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; - break; - - case 8: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - break; - - case 16: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; - break; - - case 32: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", - RC.config_file_name, i, srb1_max_retx_threshold); - } - - - switch (srb1_poll_pdu) { - case 4: - rrc->srb1_poll_pdu = PollPDU_p4; - break; - - case 8: - rrc->srb1_poll_pdu = PollPDU_p8; - break; - - case 16: - rrc->srb1_poll_pdu = PollPDU_p16; - break; - - case 32: - rrc->srb1_poll_pdu = PollPDU_p32; - break; - - case 64: - rrc->srb1_poll_pdu = PollPDU_p64; - break; - - case 128: - rrc->srb1_poll_pdu = PollPDU_p128; - break; - - case 256: - rrc->srb1_poll_pdu = PollPDU_p256; - break; - - default: - if (srb1_poll_pdu >= 10000) - rrc->srb1_poll_pdu = PollPDU_pInfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", - RC.config_file_name, i, srb1_poll_pdu); - } - - rrc->srb1_poll_byte = srb1_poll_byte; - - switch (srb1_poll_byte) { - case 25: - rrc->srb1_poll_byte = PollByte_kB25; - break; - - case 50: - rrc->srb1_poll_byte = PollByte_kB50; - break; - - case 75: - rrc->srb1_poll_byte = PollByte_kB75; - break; - - case 100: - rrc->srb1_poll_byte = PollByte_kB100; - break; - - case 125: - rrc->srb1_poll_byte = PollByte_kB125; - break; - - case 250: - rrc->srb1_poll_byte = PollByte_kB250; - break; - - case 375: - rrc->srb1_poll_byte = PollByte_kB375; - break; - - case 500: - rrc->srb1_poll_byte = PollByte_kB500; - break; - - case 750: - rrc->srb1_poll_byte = PollByte_kB750; - break; - - case 1000: - rrc->srb1_poll_byte = PollByte_kB1000; - break; - - case 1250: - rrc->srb1_poll_byte = PollByte_kB1250; - break; - - case 1500: - rrc->srb1_poll_byte = PollByte_kB1500; - break; - - case 2000: - rrc->srb1_poll_byte = PollByte_kB2000; - break; - - case 3000: - rrc->srb1_poll_byte = PollByte_kB3000; - break; - - default: - if (srb1_poll_byte >= 10000) - rrc->srb1_poll_byte = PollByte_kBinfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", - RC.config_file_name, i, srb1_poll_byte); - } - - if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; - } - else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } - - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; - } - else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", - RC.config_file_name, i, srb1_timer_status_prohibit); - } - - switch (srb1_timer_reordering) { - case 0: - rrc->srb1_timer_reordering = T_Reordering_ms0; - break; - - case 5: - rrc->srb1_timer_reordering = T_Reordering_ms5; - break; - - case 10: - rrc->srb1_timer_reordering = T_Reordering_ms10; - break; - - case 15: - rrc->srb1_timer_reordering = T_Reordering_ms15; - break; - - case 20: - rrc->srb1_timer_reordering = T_Reordering_ms20; - break; - - case 25: - rrc->srb1_timer_reordering = T_Reordering_ms25; - break; - - case 30: - rrc->srb1_timer_reordering = T_Reordering_ms30; - break; - - case 35: - rrc->srb1_timer_reordering = T_Reordering_ms35; - break; - - case 40: - rrc->srb1_timer_reordering = T_Reordering_ms40; - break; - - case 45: - rrc->srb1_timer_reordering = T_Reordering_ms45; - break; - - case 50: - rrc->srb1_timer_reordering = T_Reordering_ms50; - break; - - case 55: - rrc->srb1_timer_reordering = T_Reordering_ms55; - break; - - case 60: - rrc->srb1_timer_reordering = T_Reordering_ms60; - break; - - case 65: - rrc->srb1_timer_reordering = T_Reordering_ms65; - break; - - case 70: - rrc->srb1_timer_reordering = T_Reordering_ms70; - break; - - case 75: - rrc->srb1_timer_reordering = T_Reordering_ms75; - break; - - case 80: - rrc->srb1_timer_reordering = T_Reordering_ms80; - break; - - case 85: - rrc->srb1_timer_reordering = T_Reordering_ms85; - break; - - case 90: - rrc->srb1_timer_reordering = T_Reordering_ms90; - break; - - case 95: - rrc->srb1_timer_reordering = T_Reordering_ms95; - break; - - case 100: - rrc->srb1_timer_reordering = T_Reordering_ms100; - break; - - case 110: - rrc->srb1_timer_reordering = T_Reordering_ms110; - break; - - case 120: - rrc->srb1_timer_reordering = T_Reordering_ms120; - break; - - case 130: - rrc->srb1_timer_reordering = T_Reordering_ms130; - break; - - case 140: - rrc->srb1_timer_reordering = T_Reordering_ms140; - break; - - case 150: - rrc->srb1_timer_reordering = T_Reordering_ms150; - break; - - case 160: - rrc->srb1_timer_reordering = T_Reordering_ms160; - break; - - case 170: - rrc->srb1_timer_reordering = T_Reordering_ms170; - break; - - case 180: - rrc->srb1_timer_reordering = T_Reordering_ms180; - break; - - case 190: - rrc->srb1_timer_reordering = T_Reordering_ms190; - break; - - case 200: - rrc->srb1_timer_reordering = T_Reordering_ms200; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } - - break; } } } } } - int RCconfig_gtpu() { config_t cfg; config_setting_t *setting = NULL; From 9b174dd831f352e25355fd35338038f2c48c1678 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Sun, 13 Aug 2017 19:33:33 +0200 Subject: [PATCH 016/125] integration step 1, breaks in SIB2 generation in L1 (lte-segmentation.c) --- openair1/PHY/CODING/lte_rate_matching.c | 5 +- openair1/PHY/CODING/lte_segmentation.c | 3 + openair1/SCHED/phy_procedures_lte_eNb.c | 6 +- openair2/ENB_APP/enb_config.c | 19 +- openair2/LAYER2/MAC/config.c | 1 + openair2/LAYER2/MAC/eNB_scheduler_bch.c | 543 ++++++++++--------- openair2/RRC/LITE/L2_interface.c | 18 +- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 32 +- openair2/RRC/LITE/MESSAGES/asn1_msg.h | 6 +- openair2/RRC/LITE/rrc_eNB.c | 26 +- targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp | 12 +- 11 files changed, 366 insertions(+), 305 deletions(-) diff --git a/openair1/PHY/CODING/lte_rate_matching.c b/openair1/PHY/CODING/lte_rate_matching.c index 41090757e8..a25dbe8b79 100644 --- a/openair1/PHY/CODING/lte_rate_matching.c +++ b/openair1/PHY/CODING/lte_rate_matching.c @@ -514,7 +514,8 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC, if (Ncb>(3*(RTC<<5))) AssertFatal(1==0,"Exiting, RM condition (Ncb %d, RTC %d, Nir/C %d, Nsoft %d, Kw %d)\n",Ncb,RTC,Nir/C,Nsoft,3*(RTC<<5)); - + AssertFatal(Nl>0,"Nl is 0\n"); + AssertFatal(Qm>0,"Qm is 0\n"); Gp = G/Nl/Qm; GpmodC = Gp%C; @@ -720,6 +721,8 @@ int lte_rate_matching_turbo_rx(uint32_t RTC, Ncb = 3*(RTC<<5); } + AssertFatal(Nl>0,"Nl is 0\n"); + AssertFatal(Qm>0,"Qm is 0\n"); Gp = G/Nl/Qm; GpmodC = Gp%C; diff --git a/openair1/PHY/CODING/lte_segmentation.c b/openair1/PHY/CODING/lte_segmentation.c index f63d5ddb11..0941069067 100644 --- a/openair1/PHY/CODING/lte_segmentation.c +++ b/openair1/PHY/CODING/lte_segmentation.c @@ -123,6 +123,9 @@ int lte_segmentation(unsigned char *input_buffer, } + AssertFatal(Bprime <= (*Cplus)*(*Kplus) + (*Cminus)*(*Kminus), + "Bprime %d < (*Cplus %d)*(*Kplus %d) + (*Cminus %d)*(*Kminus %d)\n", + Bprime,*Cplus,*Kplus,*Cminus,*Kminus); *F = ((*Cplus)*(*Kplus) + (*Cminus)*(*Kminus) - (Bprime)); #ifdef DEBUG_SEGMENTATION diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index f44e4309d8..7c8b31997b 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1018,7 +1018,7 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, else dlsch1_harq->pdu = sdu; #ifdef Rel14 - if ((rel13->pdsch_payload_type == 0) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR + if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR // configure PDSCH switch (eNB->frame_parms.N_RB_DL) { case 6: @@ -1048,8 +1048,8 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0_harq->nb_rb = 6; dlsch0_harq->vrb_type = LOCALIZED; - dlsch0_harq->rvidx = 0; - dlsch0_harq->Nl = 0; + dlsch0_harq->rvidx = rel8->redundancy_version; + dlsch0_harq->Nl = 1; dlsch0_harq->mimo_mode = (eNB->frame_parms.nb_antenna_ports_eNB == 1) ? SISO : ALAMOUTI; dlsch0_harq->dl_power_off = 1; dlsch0_harq->round = 0; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index f35b1b812c..a5996d8a9a 100644 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -566,7 +566,8 @@ void RCconfig_RU() { if ( !( - config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RS_EPRE, &max_pdschReferenceSignalPower) + config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RS_EPRE, &max_pdschReferenceSignalPower) && + config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RXGAIN, &max_rxgain) ) ) { AssertFatal (0, @@ -575,8 +576,6 @@ void RCconfig_RU() { continue; } ->>>>>>> faa111ecc0815354979e075d5b83c5af107d404e - AssertFatal((setting_band = config_setting_get_member(setting_ru, CONFIG_STRING_RU_BAND_LIST))!=NULL,"No allowable LTE bands\n"); if (setting_band != NULL) num_bands = config_setting_length(setting_band); @@ -2568,12 +2567,13 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) { scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); - if (! config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) - ) - { - AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); - } + if (!( + config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) + && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) + ) + ){ + AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); + } RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; } @@ -3767,6 +3767,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { + printf("Enabling BR access SI scheduling parameters\n"); RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 0d9980ed10..14ca142c23 100644 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -527,6 +527,7 @@ int rrc_mac_config_req_eNB(module_id_t Mod_idP, } #ifdef Rel14 if (sib1_v13ext != NULL) { + LOG_I(MAC,"[CONFIG] Retrieved sib1_v13ext\n"); RC.mac[Mod_idP]->common_channels[CC_idP].sib1_v13ext = sib1_v13ext; } #endif diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 208a5c8fbb..994106066e 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -176,6 +176,7 @@ schedule_SIB1_BR( n_NB = Sj[((cc->physCellId % N_S_NB) + (i*N_S_NB/m))%N_S_NB]; + if ((frameP%1000) < 40) LOG_D(MAC,"[eNB %d] Frame %d, subframe %d : BCCH_BR->DLSCH (SIB1) CC_id %d\n",module_idP,frameP,subframeP,CC_id); bcch_sdu_length = mac_rrc_data_req(module_idP, CC_id, @@ -189,98 +190,98 @@ schedule_SIB1_BR( AssertFatal(cc->mib->message.schedulingInfoSIB1_BR_r13<19,"schedulingInfoSIB1_BR_r13 %d > 18\n", (int)cc->mib->message.schedulingInfoSIB1_BR_r13); + AssertFatal(bcch_sdu_length>0,"RRC returned 0 bytes for SIB1-BR\n"); + TBS = SIB1_BR_TBS_table[(cc->mib->message.schedulingInfoSIB1_BR_r13-1)/3]>>3; - AssertFatal(bcch_sdu_length <= TBS, "length returned by RRC is not compatible with the TBS %d from MIB\n",TBS); + AssertFatal(bcch_sdu_length <= TBS, "length returned by RRC %d is not compatible with the TBS %d from MIB\n",bcch_sdu_length,TBS); - if (bcch_sdu_length > 0) { - LOG_D(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,CC_id,bcch_sdu_length); - // allocate all 6 PRBs in narrowband for SIB1_BR - first_rb = n_NB*6; - vrb_map[first_rb] = 1; - vrb_map[first_rb+1] = 1; - vrb_map[first_rb+2] = 1; - vrb_map[first_rb+3] = 1; - vrb_map[first_rb+4] = 1; - vrb_map[first_rb+5] = 1; + if ((frameP%1000) < 40) LOG_D(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH (SIB1) CC_id %d, Received %d bytes for NB %d\n",module_idP,frameP,CC_id,bcch_sdu_length,n_NB); - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.length = TBS; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = 0xFFFF; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,6); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = rvidx; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // Rel13 fields - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 1; // CEModeA UE - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 0; // SIB1-BR - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF; // absolute SF - - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - dl_req->number_pdu++; - - // Program TX Request - TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; - TX_req->pdu_length = bcch_sdu_length; - TX_req->pdu_index = eNB->pdu_index[CC_id]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = bcch_sdu_length; - TX_req->segments[0].segment_data = cc->BCCH_BR_pdu[0].payload; - eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; - + // allocate all 6 PRBs in narrowband for SIB1_BR + first_rb = n_NB*6; + vrb_map[first_rb] = 1; + vrb_map[first_rb+1] = 1; + vrb_map[first_rb+2] = 1; + vrb_map[first_rb+3] = 1; + vrb_map[first_rb+4] = 1; + vrb_map[first_rb+5] = 1; - - if (opt_enabled == 1) { - trace_pdu(1, - &cc->BCCH_BR_pdu[0].payload[0], - bcch_sdu_length, - 0xffff, - 4, - 0xffff, - eNB->frame, - eNB->subframe, - 0, - 0); - LOG_D(OPT,"[eNB %d][BCH] Frame %d trace pdu for CC_id %d rnti %x with size %d\n", - module_idP, frameP, CC_id, 0xffff, bcch_sdu_length); - } - if (cc->tdd_Config!=NULL) { //TDD - LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH-BR 0->DLSCH (TDD) for CC_id %d SIB1-BR %d bytes\n", - frameP, - CC_id, - bcch_sdu_length); - } else { - LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH-BR 0->DLSCH (FDD) for CC_id %d SIB1-BR %d bytes\n", - frameP, - CC_id, - bcch_sdu_length); - } - } else { - - //LOG_D(MAC,"[eNB %d] Frame %d : BCCH not active \n",Mod_id,frame); + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.length = TBS; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = 0xFFFF; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = rvidx; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // Rel13 fields + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 1; // CEModeA UE + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 0; // SIB1-BR + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF; // absolute SF + + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + dl_req->number_pdu++; + + // Program TX Request + TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = bcch_sdu_length; + TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = bcch_sdu_length; + TX_req->segments[0].segment_data = cc->BCCH_BR_pdu[0].payload; + eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + + + + if (opt_enabled == 1) { + trace_pdu(1, + &cc->BCCH_BR_pdu[0].payload[0], + bcch_sdu_length, + 0xffff, + 4, + 0xffff, + eNB->frame, + eNB->subframe, + 0, + 0); + LOG_D(OPT,"[eNB %d][BCH] Frame %d trace pdu for CC_id %d rnti %x with size %d\n", + module_idP, frameP, CC_id, 0xffff, bcch_sdu_length); } + if (cc->tdd_Config!=NULL) { //TDD + LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH-BR 0->DLSCH (TDD) for CC_id %d SIB1-BR %d bytes\n", + frameP, + CC_id, + bcch_sdu_length); + } else { + LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH-BR 0->DLSCH (FDD) for CC_id %d SIB1-BR %d bytes\n", + frameP, + CC_id, + bcch_sdu_length); + } + } + return; } @@ -360,7 +361,12 @@ schedule_SI_BR( int period_in_sf = 80<>1) + (sf_mod_period&1))&3; + + if ((frameP%1000) < 200) LOG_I(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH (SI) CC_id %d, rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d\n", + module_idP,frameP,CC_id,si_Narrowband_r13,rvidx, + sf_mod_period,si_WindowLength_BR_r13,si_RepetitionPattern_r13); if ((sf_mod_period < si_WindowLength_BR_r13) && ((frameP&(((1<0,"RRC returned 0 bytes for SI-BR %d\n",i); if (bcch_sdu_length > 0) { AssertFatal(bcch_sdu_length <= (si_TBS_r13>>3), - "RRC provided bcch with length %d > %d\n", - bcch_sdu_length,(int)(si_TBS_r13>>3)); + "RRC provided bcch with length %d > %d (si_TBS_r13 %d)n", + bcch_sdu_length,(int)(si_TBS_r13>>3),schedulingInfoList_BR_r13->list.array[i]->si_TBS_r13); LOG_D(MAC,"[eNB %d] Frame %d : BCCH_BR %d->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,i,CC_id,bcch_sdu_length); - + + if ((frameP%1000) < 200) LOG_I(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH (SI) CC_id %d, Received %d bytes for NB %d/rvidx %d\n",module_idP,frameP,CC_id,bcch_sdu_length,si_Narrowband_r13,rvidx); + // allocate all 6 PRBs in narrowband for SIB1_BR first_rb = si_Narrowband_r13*6; vrb_map[first_rb] = 1; @@ -504,6 +513,8 @@ void schedule_mib(module_id_t module_idP, LOG_D(MAC,"Frame %d, subframe %d: Adding BCH PDU in position %d (length %d)\n", frameP,subframeP,dl_req->number_pdu,mib_sdu_length); + if ((frameP&1023) < 40) LOG_I(MAC,"[eNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes (cc->mib->message.schedulingInfoSIB1_BR_r13 %d)\n",module_idP,frameP,CC_id,mib_sdu_length,cc->mib->message.schedulingInfoSIB1_BR_r13); + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_BCH_PDU_TYPE, @@ -553,190 +564,196 @@ schedule_SI( start_meas(&eNB->schedule_si); - // Only schedule System Information in subframe 5 - if (subframeP != 5) return; - - for (CC_id=0; CC_idcommon_channels[CC_id]; - vrb_map = (void*)&cc->vrb_map; - N_RB_DL = to_prb(cc->mib->message.dl_Bandwidth); - dl_req = &eNB->DL_req[CC_id].dl_config_request_body; - - - bcch_sdu_length = mac_rrc_data_req(module_idP, - CC_id, - frameP, - BCCH,1, - &cc->BCCH_pdu.payload[0], - 1, - module_idP, - 0); // not used in this case - - if (bcch_sdu_length > 0) { - LOG_D(MAC,"[eNB %d] Frame %d : BCCH->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,CC_id,bcch_sdu_length); - - // Allocate 4 PRBs in a random location - /* - while (1) { - first_rb = (unsigned char)(taus()%(PHY_vars_eNB_g[module_idP][CC_id]->frame_parms.N_RB_DL-4)); - if ((vrb_map[first_rb] != 1) && - (vrb_map[first_rb+1] != 1) && - (vrb_map[first_rb+2] != 1) && - (vrb_map[first_rb+3] != 1)) - break; - } - */ - switch (N_RB_DL) { - case 6: - first_rb = 0; - break; - case 15: - first_rb = 6; - break; - case 25: - first_rb = 11; - break; - case 50: - first_rb = 23; - break; - case 100: - first_rb = 48; - break; - } - - vrb_map[first_rb] = 1; - vrb_map[first_rb+1] = 1; - vrb_map[first_rb+2] = 1; - vrb_map[first_rb+3] = 1; - - // Get MCS for length of SI, 3 PRBs - if (bcch_sdu_length <= 7) { - mcs=0; - } else if (bcch_sdu_length <= 11) { - mcs=1; - } else if (bcch_sdu_length <= 18) { - mcs=2; - } else if (bcch_sdu_length <= 22) { - mcs=3; - } else if (bcch_sdu_length <= 26) { - mcs=4; - } else if (bcch_sdu_length <= 28) { - mcs=5; - } else if (bcch_sdu_length <= 32) { - mcs=6; - } else if (bcch_sdu_length <= 41) { - mcs=7; - } else if (bcch_sdu_length <= 49) { - mcs=8; - } - - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dci_dl_pdu)); - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1A; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = 4; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = 0xFFFF; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 2; // S-RNTI : see Table 4-10 from SCF082 - nFAPI specifications - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + // Only schedule LTE System Information in subframe 5 + if (subframeP == 5) { + + for (CC_id=0; CC_iddci_dl_pdu.dci_dl_pdu_rel8.harq_process = 0; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // no TPC - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; - - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,4); - - if (!CCE_allocation_infeasible(module_idP,CC_id,1,subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level,SI_RNTI)) { - LOG_D(MAC,"Frame %d: Subframe %d : Adding common DCI for S_RNTI\n", - frameP,subframeP); - dl_req->number_dci++; - dl_req->number_pdu++; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + cc = &eNB->common_channels[CC_id]; + vrb_map = (void*)&cc->vrb_map; + N_RB_DL = to_prb(cc->mib->message.dl_Bandwidth); + dl_req = &eNB->DL_req[CC_id].dl_config_request_body; + + + bcch_sdu_length = mac_rrc_data_req(module_idP, + CC_id, + frameP, + BCCH,1, + &cc->BCCH_pdu.payload[0], + 1, + module_idP, + 0); // not used in this case + + if (bcch_sdu_length > 0) { + LOG_D(MAC,"[eNB %d] Frame %d : BCCH->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,CC_id,bcch_sdu_length); + + // Allocate 4 PRBs in a random location + /* + while (1) { + first_rb = (unsigned char)(taus()%(PHY_vars_eNB_g[module_idP][CC_id]->frame_parms.N_RB_DL-4)); + if ((vrb_map[first_rb] != 1) && + (vrb_map[first_rb+1] != 1) && + (vrb_map[first_rb+2] != 1) && + (vrb_map[first_rb+3] != 1)) + break; + } + */ + switch (N_RB_DL) { + case 6: + first_rb = 0; + break; + case 15: + first_rb = 6; + break; + case 25: + first_rb = 11; + break; + case 50: + first_rb = 23; + break; + case 100: + first_rb = 48; + break; + } + + vrb_map[first_rb] = 1; + vrb_map[first_rb+1] = 1; + vrb_map[first_rb+2] = 1; + vrb_map[first_rb+3] = 1; + + // Get MCS for length of SI, 3 PRBs + if (bcch_sdu_length <= 7) { + mcs=0; + } else if (bcch_sdu_length <= 11) { + mcs=1; + } else if (bcch_sdu_length <= 18) { + mcs=2; + } else if (bcch_sdu_length <= 22) { + mcs=3; + } else if (bcch_sdu_length <= 26) { + mcs=4; + } else if (bcch_sdu_length <= 28) { + mcs=5; + } else if (bcch_sdu_length <= 32) { + mcs=6; + } else if (bcch_sdu_length <= 41) { + mcs=7; + } else if (bcch_sdu_length <= 49) { + mcs=8; + } + + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = 0xFFFF; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,4); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - dl_req->number_pdu++; - - // Program TX Request - TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; - TX_req->pdu_length = bcch_sdu_length; - TX_req->pdu_index = eNB->pdu_index[CC_id]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = bcch_sdu_length; - TX_req->segments[0].segment_data = cc->BCCH_pdu.payload; - eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; - - } - else { - LOG_E(MAC,"[eNB %d] CCid %d Frame %d, subframe %d : Cannot add DCI 1A for SI\n",module_idP, CC_id,frameP,subframeP); - } - - if (opt_enabled == 1) { - trace_pdu(1, - &cc->BCCH_pdu.payload[0], - bcch_sdu_length, - 0xffff, - 4, - 0xffff, - eNB->frame, - eNB->subframe, - 0, - 0); - LOG_D(OPT,"[eNB %d][BCH] Frame %d trace pdu for CC_id %d rnti %x with size %d\n", - module_idP, frameP, CC_id, 0xffff, bcch_sdu_length); - } - if (cc->tdd_Config!=NULL) { //TDD - LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH->DLSCH (TDD) for CC_id %d SI %d bytes (mcs %d, rb 3)\n", - frameP, - CC_id, - bcch_sdu_length, - mcs); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dci_dl_pdu)); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1A; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = 4; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = 0xFFFF; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 2; // S-RNTI : see Table 4-10 from SCF082 - nFAPI specifications + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = 0; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // no TPC + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; + + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,4); + + if (!CCE_allocation_infeasible(module_idP,CC_id,1,subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level,SI_RNTI)) { + LOG_D(MAC,"Frame %d: Subframe %d : Adding common DCI for S_RNTI\n", + frameP,subframeP); + dl_req->number_dci++; + dl_req->number_pdu++; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = 0xFFFF; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,4); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + dl_req->number_pdu++; + + // Program TX Request + TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = bcch_sdu_length; + TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = bcch_sdu_length; + TX_req->segments[0].segment_data = cc->BCCH_pdu.payload; + eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + + } + else { + LOG_E(MAC,"[eNB %d] CCid %d Frame %d, subframe %d : Cannot add DCI 1A for SI\n",module_idP, CC_id,frameP,subframeP); + } + + if (opt_enabled == 1) { + trace_pdu(1, + &cc->BCCH_pdu.payload[0], + bcch_sdu_length, + 0xffff, + 4, + 0xffff, + eNB->frame, + eNB->subframe, + 0, + 0); + LOG_D(OPT,"[eNB %d][BCH] Frame %d trace pdu for CC_id %d rnti %x with size %d\n", + module_idP, frameP, CC_id, 0xffff, bcch_sdu_length); + } + if (cc->tdd_Config!=NULL) { //TDD + LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH->DLSCH (TDD) for CC_id %d SI %d bytes (mcs %d, rb 3)\n", + frameP, + CC_id, + bcch_sdu_length, + mcs); + } else { + LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH->DLSCH (FDD) for CC_id %d SI %d bytes (mcs %d, rb 3)\n", + frameP, + CC_id, + bcch_sdu_length, + mcs); + } + + + eNB->eNB_stats[CC_id].total_num_bcch_pdu+=1; + eNB->eNB_stats[CC_id].bcch_buffer=bcch_sdu_length; + eNB->eNB_stats[CC_id].total_bcch_buffer+=bcch_sdu_length; + eNB->eNB_stats[CC_id].bcch_mcs=mcs; } else { - LOG_D(MAC,"[eNB] Frame %d : Scheduling BCCH->DLSCH (FDD) for CC_id %d SI %d bytes (mcs %d, rb 3)\n", - frameP, - CC_id, - bcch_sdu_length, - mcs); + + //LOG_D(MAC,"[eNB %d] Frame %d : BCCH not active \n",Mod_id,frame); } - - - eNB->eNB_stats[CC_id].total_num_bcch_pdu+=1; - eNB->eNB_stats[CC_id].bcch_buffer=bcch_sdu_length; - eNB->eNB_stats[CC_id].total_bcch_buffer+=bcch_sdu_length; - eNB->eNB_stats[CC_id].bcch_mcs=mcs; - } else { - - //LOG_D(MAC,"[eNB %d] Frame %d : BCCH not active \n",Mod_id,frame); } } - // this might be misleading when bcch is inactive +#ifdef Rel14 + schedule_SIB1_BR(module_idP,frameP,subframeP); + schedule_SI_BR(module_idP,frameP,subframeP); +#endif + + // this might be misleading when bcch is inactive stop_meas(&eNB->schedule_si); return; } diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c index 1f47b77b39..2f67b9b03d 100644 --- a/openair2/RRC/LITE/L2_interface.c +++ b/openair2/RRC/LITE/L2_interface.c @@ -302,8 +302,24 @@ mac_rrc_data_req( //else //return(0); } +#endif -#endif //Rel10 || Rel14 +#ifdef Rel14 + if ((Srb_id & RAB_OFFSET) == BCCH_SIB1_BR){ + memcpy(&buffer_pP[0], + RC.rrc[Mod_idP]->carrier[CC_id].SIB1_BR, + RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1_BR); + return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB1_BR); + } + + if ((Srb_id & RAB_OFFSET) == BCCH_SI_BR){ // First SI message with SIB2/3 + memcpy(&buffer_pP[0], + RC.rrc[Mod_idP]->carrier[CC_id].SIB23_BR, + RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23_BR); + return (RC.rrc[Mod_idP]->carrier[CC_id].sizeof_SIB23_BR); + } + +#endif } else { //This is an UE diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 8b7e72c3b1..f4ed3ca44d 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -192,7 +192,11 @@ uint8_t get_adjacent_cell_mod_id(uint16_t phyCellId) return 0xFF; //error! } -uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame, uint32_t schedulingInfoSIB1) +uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame +#ifdef Rel14 +, uint32_t schedulingInfoSIB1 +#endif + ) { asn_enc_rval_t enc_rval; @@ -246,11 +250,13 @@ uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich #ifndef Rel14 mib->message.spare.size = 2; mib->message.spare.bits_unused = 6; // This makes a spare of 10 bits - mib->message.schedulingInfoSIB1_BR_r13 = schedulingInfoSIB1; // turn on eMTC #else mib->message.spare.size = 1; mib->message.spare.bits_unused = 3; // This makes a spare of 5 bits - mib->message.schedulingInfoSIB1_BR_r13 = 0; // turn off eMTC + mib->message.schedulingInfoSIB1_BR_r13 = schedulingInfoSIB1; // turn on/off eMTC + LOG_I(RRC,"[MIB] schedulingInfoSIB1 %d\n", + (uint32_t)mib->message.schedulingInfoSIB1_BR_r13); + #endif enc_rval = uper_encode_to_buffer(&asn_DEF_BCCH_BCH_Message, @@ -550,9 +556,13 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); + LOG_I(RRC,"Allocating memory for BR access of SI (%p)\n", + sib1_1310->bandwidthReducedAccessRelatedInfo_r13); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 = configuration->si_WindowLength_BR_r13[CC_id]; // 0 @@ -570,18 +580,10 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, for (index = 0; index < num_sched_info_br; ++index) { - if (configuration->si_Narrowband_r13[CC_id][index] && configuration->si_TBS_r13[CC_id][index]) - { - schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; - schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; - } - else - { - schedulinginfo_br_13->si_Narrowband_r13 = 1; - schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152; - } - - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; + schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; + LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",schedulinginfo_br_13->si_Narrowband_r13,schedulinginfo_br_13->si_TBS_r13); + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); } sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h index 0dcbeab7e1..2250b6815a 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.h @@ -67,7 +67,11 @@ uint8_t get_adjacent_cell_mod_id(uint16_t phyCellId); @param phich_duration PHICH duration parameter @param frame radio frame number @return size of encoded bit stream in bytes*/ -uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame, uint32_t schedulingInfoSIB1); +uint8_t do_MIB(rrc_eNB_carrier_data_t *carrier, uint32_t N_RB_DL, uint32_t phich_Resource, uint32_t phich_duration, uint32_t frame +#ifdef Rel14 + , uint32_t schedulingInfoSIB1 +#endif + ); /** \brief Generate configuration for SIB1 (eNB). diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index dc4c84384b..ffcb7c8178 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -150,16 +150,26 @@ init_SI( configuration->N_RB_DL[CC_id], (int)configuration->radioresourceconfig[CC_id].phich_resource, (int)configuration->radioresourceconfig[CC_id].phich_duration); +#ifdef Rel14 + LOG_I(RRC, "configuration->schedulingInfoSIB1_BR_r13[CC_id] %d\n",(int)configuration->schedulingInfoSIB1_BR_r13[CC_id]); +#endif do_MIB(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id], #ifdef ENABLE_ITTI configuration->N_RB_DL[CC_id], (int)configuration->radioresourceconfig[CC_id].phich_resource, (int)configuration->radioresourceconfig[CC_id].phich_duration, - configuration->schedulingInfoSIB1_BR_r13[CC_id] + 0 #else - 50, 0, 0, 1 + 50, 0, 0, 0 #endif - ,0); +#ifdef Rel14 +#ifdef ENABLE_ITTI + ,configuration->schedulingInfoSIB1_BR_r13[CC_id] +#else + ,0 +#endif +#endif + ); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = 0; @@ -311,14 +321,18 @@ init_SI( if ((RC.rrc[ctxt_pP->module_id]->carrier[CC_id].mib.message.schedulingInfoSIB1_BR_r13>0) && (RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR!=NULL)) { AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension!=NULL, - "sib2_br->nonCriticalExtension is null (v9.2)\n"); + "sib2_br->nonCriticalExtension is null (v8.9)\n"); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension!=NULL, - "sib2_br->nonCriticalExtension is null (v11.3)\n"); + "sib2_br->nonCriticalExtension is null (v9.2)\n"); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension!=NULL, + "sib2_br->nonCriticalExtension is null (v11.3)\n"); + AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension!=NULL, "sib2_br->nonCriticalExtension is null (v12.5)\n"); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension!=NULL, "sib2_br->nonCriticalExtension is null (v13.10)\n"); - sib1_v13ext = RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension; + + sib1_v13ext = RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension; + } #endif diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp index df91796049..99d537293f 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -342,10 +342,10 @@ int trx_usrp_set_gains(openair0_device* device, usrp_state_t *s = (usrp_state_t*)device->priv; - s->usrp->set_tx_gain(openair0_cfg[0].tx_gain[0]); + s->usrp->set_tx_gain(89.0-openair0_cfg[0].tx_gain[0]); ::uhd::gain_range_t gain_range = s->usrp->get_rx_gain_range(0); // limit to maximum gain - if (openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] > gain_range.stop()) { + if (125.0-openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] > gain_range.stop()) { LOG_E(PHY,"RX Gain 0 too high, reduce by %f dB\n", openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] - gain_range.stop()); exit(-1); @@ -632,10 +632,10 @@ extern "C" { ::uhd::gain_range_t gain_range = s->usrp->get_rx_gain_range(i); // limit to maximum gain - AssertFatal( openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] <= gain_range.stop(), + AssertFatal( 125.0-openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] <= gain_range.stop(), "RX Gain too high, lower by %f dB\n", - openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] - gain_range.stop()); - s->usrp->set_rx_gain(openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i],i); + 125.0-openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] - gain_range.stop()); + s->usrp->set_rx_gain(125.0-openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i],i); LOG_I(PHY,"RX Gain %d %f (%f) => %f (max %f)\n",i, openair0_cfg[0].rx_gain[i],openair0_cfg[0].rx_gain_offset[i], openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i],gain_range.stop()); @@ -645,7 +645,7 @@ extern "C" { if (iusrp->set_tx_rate(openair0_cfg[0].sample_rate,i); s->usrp->set_tx_freq(openair0_cfg[0].tx_freq[i],i); - s->usrp->set_tx_gain(openair0_cfg[0].tx_gain[i],i); + s->usrp->set_tx_gain(89.0-openair0_cfg[0].tx_gain[i],i); } } From 5774b5b45246a885db19ad1708e5de2a6b8db9a0 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 13 Aug 2017 11:42:51 -0700 Subject: [PATCH 017/125] correction for TBS in NFAPI interface conversion (SIB1-BR and SI-BR) --- openair1/SCHED/phy_procedures_lte_eNb.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 7c8b31997b..556a75fbf2 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1018,7 +1018,7 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, else dlsch1_harq->pdu = sdu; #ifdef Rel14 - if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR + if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR // configure PDSCH switch (eNB->frame_parms.N_RB_DL) { case 6: @@ -1054,7 +1054,7 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0_harq->dl_power_off = 1; dlsch0_harq->round = 0; dlsch0_harq->status = ACTIVE; - dlsch0_harq->TBS = rel8->length; + dlsch0_harq->TBS = rel8->length<<3; From 50ebffea974596c4a31662045654e1e723927d67 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 13 Aug 2017 23:06:52 -0700 Subject: [PATCH 018/125] minor modifications before merge with upstream --- openair1/SCHED/phy_procedures_lte_eNb.c | 4 ++-- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 4 ++-- targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp | 8 ++++---- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 556a75fbf2..514e7894cc 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1045,8 +1045,8 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, } dlsch0->active = 1; - - dlsch0_harq->nb_rb = 6; + + dlsch0_harq->nb_rb = 6; dlsch0_harq->vrb_type = LOCALIZED; dlsch0_harq->rvidx = rel8->redundancy_version; dlsch0_harq->Nl = 1; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 994106066e..08cb63c3c6 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -384,8 +384,8 @@ schedule_SI_BR( if (bcch_sdu_length > 0) { AssertFatal(bcch_sdu_length <= (si_TBS_r13>>3), - "RRC provided bcch with length %d > %d (si_TBS_r13 %d)n", - bcch_sdu_length,(int)(si_TBS_r13>>3),schedulingInfoList_BR_r13->list.array[i]->si_TBS_r13); + "RRC provided bcch with length %d > %d (si_TBS_r13 %d)\n", + bcch_sdu_length,(int)(si_TBS_r13>>3),(int)schedulingInfoList_BR_r13->list.array[i]->si_TBS_r13); LOG_D(MAC,"[eNB %d] Frame %d : BCCH_BR %d->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,i,CC_id,bcch_sdu_length); if ((frameP%1000) < 200) LOG_I(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH (SI) CC_id %d, Received %d bytes for NB %d/rvidx %d\n",module_idP,frameP,CC_id,bcch_sdu_length,si_Narrowband_r13,rvidx); diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp index 99d537293f..b658c1cd86 100644 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -345,7 +345,7 @@ int trx_usrp_set_gains(openair0_device* device, s->usrp->set_tx_gain(89.0-openair0_cfg[0].tx_gain[0]); ::uhd::gain_range_t gain_range = s->usrp->get_rx_gain_range(0); // limit to maximum gain - if (125.0-openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] > gain_range.stop()) { + if (openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] > gain_range.stop()) { LOG_E(PHY,"RX Gain 0 too high, reduce by %f dB\n", openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] - gain_range.stop()); exit(-1); @@ -632,10 +632,10 @@ extern "C" { ::uhd::gain_range_t gain_range = s->usrp->get_rx_gain_range(i); // limit to maximum gain - AssertFatal( 125.0-openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] <= gain_range.stop(), + AssertFatal( openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] <= gain_range.stop(), "RX Gain too high, lower by %f dB\n", - 125.0-openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] - gain_range.stop()); - s->usrp->set_rx_gain(125.0-openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i],i); + openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i] - gain_range.stop()); + s->usrp->set_rx_gain(openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i],i); LOG_I(PHY,"RX Gain %d %f (%f) => %f (max %f)\n",i, openair0_cfg[0].rx_gain[i],openair0_cfg[0].rx_gain_offset[i], openair0_cfg[0].rx_gain[i]-openair0_cfg[0].rx_gain_offset[i],gain_range.stop()); From 319372b68ab9bc778a6adcc297419630d88d5b62 Mon Sep 17 00:00:00 2001 From: "Ahmed.Elias" Date: Mon, 14 Aug 2017 10:39:17 +0200 Subject: [PATCH 019/125] passin BR paraemeter to rrc --- openair2/COMMON/platform_types.h | 3 + openair2/LAYER2/MAC/config.c | 5 +- openair2/LAYER2/MAC/defs.h | 2 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 949 ++++++++++++++++++ openair2/LAYER2/MAC/ue_procedures.c | 24 +- .../L2_INTERFACE/openair_rrc_L2_interface.c | 4 +- .../L2_INTERFACE/openair_rrc_L2_interface.h | 4 +- openair2/RRC/LITE/L2_interface.c | 6 + openair2/RRC/LITE/MESSAGES/asn1_msg.c | 7 +- openair2/RRC/LITE/MESSAGES/asn1_msg.h | 13 + openair2/RRC/LITE/proto.h | 3 + openair2/RRC/LITE/rrc_eNB.c | 10 +- 12 files changed, 1016 insertions(+), 14 deletions(-) diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h index 45d7774afa..cfc9860477 100644 --- a/openair2/COMMON/platform_types.h +++ b/openair2/COMMON/platform_types.h @@ -217,6 +217,9 @@ typedef struct protocol_ctxt_s { sub_frame_t subframe; /*!< \brief LTE sub frame number.*/ eNB_index_t eNB_index; /*!< \brief valid for UE indicating the index of connected eNB(s) */ boolean_t configured; /*!< \brief flag indicating whether the instance is configured or not */ +#ifdef Rel14 + boolean_t brOption; +#endif } protocol_ctxt_t; // warning time hardcoded #define PROTOCOL_CTXT_TIME_MILLI_SECONDS(CtXt_h) ((CtXt_h)->frame*10+(CtXt_h)->subframe) diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 14ca142c23..42c1efe12f 100644 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -417,7 +417,10 @@ void config_sib2(int Mod_idP, void config_dedicated(int Mod_idP, int CC_idP, uint16_t rnti, - struct PhysicalConfigDedicated *physicalConfigDedicated) { + struct PhysicalConfigDedicated *physicalConfigDedicated) +{ + int UE_id = find_UE_id(Mod_idP, rnti); + eNB->UE_list.UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; } diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 243215e5af..4fd8b61d2a 100644 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -756,7 +756,7 @@ typedef struct { #ifdef Rel14 uint8_t rach_resource_type; - + struct PhysicalConfigDedicated *physicalConfigDedicated; #endif } UE_TEMPLATE; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 825d0fa8b6..3fd9857568 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -411,6 +411,955 @@ set_ul_DAI( // changes to pre-processor for eMTC +//------------------------------------------------------------------------------ +void +schedule_ue_spec_br( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int* mbsfn_flag +) +//------------------------------------------------------------------------------ +{ + + uint8_t CC_id; + int UE_id; + unsigned char aggregation; + mac_rlc_status_resp_t rlc_status; + unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0; + unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0; + unsigned char ta_len = 0; + unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0; + uint16_t nb_rb, nb_rb_temp, nb_available_rb; + uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0; + unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; + unsigned char round = 0; + unsigned char harq_pid = 0; + eNB_UE_STATS *eNB_UE_stats = NULL; + uint16_t sdu_length_total = 0; + + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + UE_list_t *UE_list = &eNB->UE_list; + int continue_flag = 0; + int32_t normalized_rx_power, target_rx_power; + int32_t tpc = 1; + static int32_t tpc_accumulated = 0; + UE_sched_ctrl *ue_sched_ctl; + int mcs; + int i; + int min_rb_unit[MAX_NUM_CCs]; + int N_RB_DL[MAX_NUM_CCs]; + int total_nb_available_rb[MAX_NUM_CCs]; + int N_RBG[MAX_NUM_CCs]; + nfapi_dl_config_request_body_t *dl_req; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + int tdd_sfa; + +#if 0 + if (UE_list->head == -1) { + return; + } +#endif + + uint8_t *vrb_map; + int first_rb; + start_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); + + + // for TDD: check that we have to act here, otherwise return + //if (cc[0].tdd_Config) { + // tdd_sfa = cc[0].tdd_Config->subframeAssignment; + // switch (subframeP) { + // case 0: + // // always continue + // break; + // case 1: + // return; + // break; + // case 2: + // return; + // break; + // case 3: + // if ((tdd_sfa != 2) && (tdd_sfa != 5)) return; + // break; + // case 4: + // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 5: + // break; + // case 6: + // case 7: + // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 8: + // if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 9: + // if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 6)) return; + // break; + + // } + //} + //weight = get_ue_weight(module_idP,UE_id); + aggregation = 2; + for (CC_id = 0; CC_idmessage.dl_Bandwidth); + min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id); + // get number of PRBs less those used by common channels + total_nb_available_rb[CC_id] = N_RB_DL[CC_id]; + for (i = 0; imessage.dl_Bandwidth); + + // store the global enb stats: + eNB->eNB_stats[CC_id].num_dlactive_UEs = UE_list->num_UEs; + eNB->eNB_stats[CC_id].available_prbs = total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].total_available_prbs += total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].dlsch_bytes_tx = 0; + eNB->eNB_stats[CC_id].dlsch_pdus_tx = 0; + } + + /// CALLING Pre_Processor for downlink scheduling (Returns estimation of RBs required by each UE and the allocation on sub-band) + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_IN); + /*start_meas(&eNB->schedule_dlsch_preprocessor); + dlsch_scheduler_pre_processor(module_idP, + frameP, + subframeP, + N_RBG, + mbsfn_flag); + stop_meas(&eNB->schedule_dlsch_preprocessor);*/ + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_OUT); + + + for (CC_id = 0; CC_idDL_req[CC_id].dl_config_request_body; + + if (mbsfn_flag[CC_id]>0) + continue; + + for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) + { + first_rb = 0; + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + continue_flag = 0; // reset the flag to allow allocation for the remaining UEs + rnti = UE_RNTI(module_idP, UE_id); + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + + + if (rnti == NOT_A_RNTI) { + LOG_D(MAC, "Cannot find rnti for UE_id %d (num_UEs %d)\n", UE_id, UE_list->num_UEs); + continue_flag = 1; + } + + if (eNB_UE_stats == NULL) { + LOG_D(MAC, "[eNB] Cannot find eNB_UE_stats\n"); + continue_flag = 1; + } + + //if (continue_flag != 1) { + // switch (get_tmode(module_idP, CC_id, UE_id)) { + // case 1: + // case 2: + // case 7: + // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + // eNB_UE_stats->dl_cqi, + // format1); + // break; + // case 3: + // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + // eNB_UE_stats->dl_cqi, + // format2A); + // break; + // default: + // LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); + // aggregation = 2; + // } + //} /* if (continue_flag != 1 */ + + if ((ue_sched_ctl->pre_nb_available_rbs[CC_id] == 0) || // no RBs allocated + CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, aggregation, rnti) + ) { + LOG_D(MAC, "[eNB %d] Frame %d : no RB allocated for UE %d on CC_id %d: continue \n", + module_idP, frameP, UE_id, CC_id); + continue_flag = 1; //to next user (there might be rbs availiable for other UEs in TM5 + } + + //if (cc[CC_id].tdd_Config != NULL) { //TDD + // set_ue_dai(subframeP, + // UE_id, + // CC_id, + // cc[CC_id].tdd_Config->subframeAssignment, + // UE_list); + // // update UL DAI after DLSCH scheduling + // set_ul_DAI(module_idP, UE_id, CC_id, frameP, subframeP); + //} + + /*if (continue_flag == 1) { + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_NONE); + continue; + }*/ + + nb_available_rb = 6; // to be checked + harq_pid = ue_sched_ctl->harq_pid[CC_id]; + round = ue_sched_ctl->round[CC_id]; + UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); + UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; + UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; + + sdu_length_total = 0; + num_sdus = 0; + + /* + DevCheck(((eNB_UE_stats->dl_cqi < MIN_CQI_VALUE) || (eNB_UE_stats->dl_cqi > MAX_CQI_VALUE)), + eNB_UE_stats->dl_cqi, MIN_CQI_VALUE, MAX_CQI_VALUE); + */ + eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->dl_cqi]; //to be checked + eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, 15); + + + // store stats + UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi = eNB_UE_stats->dl_cqi; + + // initializing the rb allocation indicator for each UE + //to be checked + for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = 0; + } + + LOG_D(MAC, "[eNB %d] Frame %d: Scheduling UE %d on CC_id %d (rnti %x, harq_pid %d, round %d, rb %d, cqi %d, mcs %d, rrc %d)\n", + module_idP, frameP, UE_id, CC_id, rnti, harq_pid, round, nb_available_rb, + eNB_UE_stats->dl_cqi, eNB_UE_stats->dlsch_mcs1, + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status); + + + + /* process retransmission */ + + if (round > 0) { + // get freq_allocation + nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; + + if (nb_rb <= nb_available_rb) { + if (cc[CC_id].tdd_Config != NULL) { + UE_list->UE_template[CC_id][UE_id].DAI++; + update_ul_dci(module_idP, CC_id, rnti, UE_list->UE_template[CC_id][UE_id].DAI); + LOG_D(MAC, "DAI update: CC_id %d subframeP %d: UE %d, DAI %d\n", CC_id, subframeP, UE_id, UE_list->UE_template[CC_id][UE_id].DAI); + } + + if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + } + else { + nb_rb_temp = nb_rb; + j = 0; + + while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + if ((j == N_RBG[CC_id] - 1) && + ((N_RB_DL[CC_id] == 25) || + (N_RB_DL[CC_id] == 50))) { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; + } + else { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; + } + } + + j = j + 1; + } + } + + nb_available_rb -= nb_rb; + /* + eNB->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; + eNB->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; + + for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; + } + */ + + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + default: + { + + // rmax from SIB2 information + rmax = UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->mpdcch_NumRepetition_RA_r13; + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + // get narrowband according to higher-layer config + num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; + RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; + first_rb = RA_template->msg2_narrowband * 6; + + if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPE2)>0)) { + // MPDCCH configuration for RAR + + + + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + RA_template->msg2_mpdcch_repetition_cnt++; + dl_req->number_pdu++; + + } //repetition_count==0 && SF condition met + else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions + RA_template->msg2_mpdcch_repetition_cnt++; + if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; + else RA_template->Msg2_frame = frameP; + RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + } + else { + AssertFatal(1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { + // Program PDSCH + RA_template->generate_rar = 0; + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // Program UL processing for Msg3, same as regular LTE + get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + + + fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 7; + TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + } + } + + } + + /*dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3;*/ + + + if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, + rnti)) { + dl_req->number_dci++; + dl_req->number_pdu++; + + } + else { + // No TX request for retransmission (check if null request for FAPI) + } + } + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + + //eNB_UE_stats->dlsch_trials[round]++; + UE_list->eNB_UE_stats[CC_id][UE_id].num_retransmission += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_retx += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = eNB_UE_stats->dlsch_mcs1; + } + else { + LOG_D(MAC, "[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have\n", + module_idP, frameP, CC_id, UE_id); + } + } + else { /* This is a potentially new SDU opportunity */ + + rlc_status.bytes_in_buffer = 0; + // Now check RLC information to compute number of required RBs + // get maximum TBS size for RLC request + //to be checked + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); + // check first for RLC data on DCCH + // add the length for all the control elements (timing adv, drx, etc) : header + payload + + ta_len = (ue_sched_ctl->ta_update != 0) ? 2 : 0; + + header_len_dcch = 2; // 2 bytes DCCH SDU subheader + + 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)); // transport block set size + + sdu_lengths[0] = 0; + + if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit + LOG_D(MAC, "[eNB %d] Frame %d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, TBS - header_len_dcch); + sdu_lengths[0] = mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH, + TBS, //not used + (char *)&dlsch_buffer[0]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); + + LOG_D(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes from RLC\n", module_idP, CC_id, sdu_lengths[0]); + sdu_length_total = sdu_lengths[0]; + sdu_lcids[0] = DCCH; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH] += sdu_lengths[0]; + num_sdus = 1; +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[0]); + + for (j = 0; j 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)); // transport block set size less allocations for timing advance and + // DCCH SDU + sdu_lengths[num_sdus] = 0; + + if (rlc_status.bytes_in_buffer > 0) { + LOG_I(MAC, "[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, TBS - header_len_dcch - sdu_length_total); + sdu_lengths[num_sdus] += mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH + 1, + TBS, //not used + (char *)&dlsch_buffer[sdu_length_total]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH + 1), T_INT(sdu_lengths[num_sdus])); + + sdu_lcids[num_sdus] = DCCH1; + sdu_length_total += sdu_lengths[num_sdus]; + header_len_dcch += 2; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1] += sdu_lengths[num_sdus]; + num_sdus++; +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d][DCCH1] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[num_sdus]); + + for (j = 0; j= DTCH; lcid--) { + // TBD: check if the lcid is active + + header_len_dtch += 3; + header_len_dtch_last = 3; + LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", + module_idP, frameP, lcid, TBS, + TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); + + if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) { // NN: > 2 ? + rlc_status = mac_rlc_status_ind(module_idP, + rnti, + module_idP, + frameP, + subframeP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); + + + if (rlc_status.bytes_in_buffer > 0) { + + LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", + module_idP, frameP, TBS - header_len_dcch - sdu_length_total - header_len_dtch, lcid, header_len_dtch); + sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS, //not used + (char*)&dlsch_buffer[sdu_length_total]); + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); + + LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n", module_idP, sdu_lengths[num_sdus], lcid); + sdu_lcids[num_sdus] = lcid; + sdu_length_total += sdu_lengths[num_sdus]; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus]; + if (sdu_lengths[num_sdus] < 128) { + header_len_dtch--; + header_len_dtch_last--; + } + num_sdus++; + } // no data for this LCID + else { + header_len_dtch -= 3; + } + } // no TBS left + else { + header_len_dtch -= 3; + break; + } + } + if (header_len_dtch == 0) + header_len_dtch_last = 0; + // there is at least one SDU + // if (num_sdus > 0 ){ + if ((sdu_length_total + header_len_dcch + header_len_dtch)> 0) { + + // Now compute number of required RBs for total sdu length + // Assume RAH format 2 + // adjust header lengths + header_len_dcch_tmp = header_len_dcch; + header_len_dtch_tmp = header_len_dtch; + if (header_len_dtch == 0) { + header_len_dcch = (header_len_dcch >0) ? 1 : 0;//header_len_dcch; // remove length field + } + else { + header_len_dtch_last -= 1; // now use it to find how many bytes has to be removed for the last MAC SDU + header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last : header_len_dtch; // remove length field for the last SDU + } + + mcs = eNB_UE_stats->dlsch_mcs1; + + if (mcs == 0) { + nb_rb = 4; // don't let the TBS get too small + } + else { + nb_rb = min_rb_unit[CC_id]; + } + + TBS = get_TBS_DL(mcs, nb_rb); + + while (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) { + nb_rb += min_rb_unit[CC_id]; // + + if (nb_rb>nb_available_rb) { // if we've gone beyond the maximum number of RBs + // (can happen if N_RB_DL is odd) + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); + nb_rb = nb_available_rb; + break; + } + + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_rb); + } + ///////////////////////////////////////////////////////////// + // alter the allocation of the emtc UE here + ////////////////////////////////////////////////////////////// + if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + } + else { + nb_rb_temp = nb_rb; + j = 0; + + while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + if ((j == N_RBG[CC_id] - 1) && + ((N_RB_DL[CC_id] == 25) || + (N_RB_DL[CC_id] == 50))) { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; + } + else { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; + } + } + + j = j + 1; + } + } + /////////////////////////////////// + + + // decrease mcs until TBS falls below required length + while ((TBS > (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (mcs>0)) { + mcs--; + TBS = get_TBS_DL(mcs, nb_rb); + } + + // if we have decreased too much or we don't have enough RBs, increase MCS + while ((TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (((ue_sched_ctl->dl_pow_off[CC_id]>0) && (mcs<28)) + || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { + mcs++; + TBS = get_TBS_DL(mcs, nb_rb); + } + + LOG_D(MAC, "dlsch_mcs before and after the rate matching = (%d, %d)\n", eNB_UE_stats->dlsch_mcs1, mcs); + +#ifdef DEBUG_eNB_SCHEDULER + LOG_D(MAC, "[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", + module_idP, CC_id, mcs, TBS, nb_rb); + // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", + // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); +#endif + + if ((TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len) <= 2) { + padding = (TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len); + post_padding = 0; + } + else { + padding = 0; + + // adjust the header len + if (header_len_dtch == 0) { + header_len_dcch = header_len_dcch_tmp; + } + else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) + header_len_dtch = header_len_dtch_tmp; + } + + post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len; // 1 is for the postpadding header + } + + + offset = generate_dlsch_header((unsigned char*)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + num_sdus, //num_sdus + sdu_lengths, // + sdu_lcids, + 255, // no drx + ue_sched_ctl->ta_update, // timing advance + NULL, // contention res id + padding, + post_padding); + + //#ifdef DEBUG_eNB_SCHEDULER + if (ue_sched_ctl->ta_update) { + LOG_I(MAC, + "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", + module_idP, frameP, UE_id, CC_id, sdu_length_total, num_sdus, sdu_lengths[0], sdu_lcids[0], offset, + ue_sched_ctl->ta_update, padding, post_padding, mcs, TBS, nb_rb, header_len_dcch, header_len_dtch); + } + //#endif +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n"); + + for (i = 0; i<16; i++) { + LOG_T(MAC, "%x.", dlsch_buffer[i]); + } + + LOG_T(MAC, "\n"); +#endif + // cycle through SDUs and place in dlsch_buffer + memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset], dlsch_buffer, sdu_length_total); + // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); + + // fill remainder of DLSCH with random data + for (j = 0; j<(TBS - sdu_length_total - offset); j++) { + UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = (char)(taus() & 0xff); + } + + + if (opt_enabled == 1) { + trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + TBS, module_idP, 3, UE_RNTI(module_idP, UE_id), + eNB->frame, eNB->subframe, 0, 0); + LOG_D(OPT, "[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", + module_idP, CC_id, frameP, UE_RNTI(module_idP, UE_id), TBS); + } + + T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); + + UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] = nb_rb; + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + // store stats + eNB->eNB_stats[CC_id].dlsch_bytes_tx += sdu_length_total; + eNB->eNB_stats[CC_id].dlsch_pdus_tx += 1; + + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = mcs; + UE_list->eNB_UE_stats[CC_id][UE_id].TBS = TBS; + + UE_list->eNB_UE_stats[CC_id][UE_id].overhead_bytes = TBS - sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_sdu_bytes += sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_pdu_bytes += TBS; + UE_list->eNB_UE_stats[CC_id][UE_id].total_num_pdus += 1; + + + + // do PUCCH power control + // this is the normalized RX power + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + normalized_rx_power = eNB_UE_stats->Po_PUCCH_dBm; + target_rx_power = get_target_pucch_rx_power(module_idP, CC_id) + 20; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame * 10 + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; + if (((framex10psubframe + 10) <= (frameP * 10 + subframeP)) || //normal case + ((framex10psubframe>(frameP * 10 + subframeP)) && (((10240 - framex10psubframe + frameP * 10 + subframeP) >= 10)))) //frame wrap-around + if (eNB_UE_stats->Po_PUCCH_update == 1) { + eNB_UE_stats->Po_PUCCH_update = 0; + + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; + + if (normalized_rx_power>(target_rx_power + 1)) { + tpc = 0; //-1 + tpc_accumulated--; + } + else if (normalized_rx_power<(target_rx_power - 1)) { + tpc = 2; //+1 + tpc_accumulated++; + } + else { + tpc = 1; //0 + } + /* + LOG_I(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", + module_idP,frameP, subframeP,harq_pid,tpc, + tpc_accumulated,normalized_rx_power,target_rx_power);*/ + + } // Po_PUCCH has been updated + else { + tpc = 1; //0 + } // time to do TPC update + else { + tpc = 1; //0 + } + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = tpc; // dont adjust power when retransmitting + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; + ////deactivate second codeword + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_2 = 0; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_2 = 1; + // + dl_req->number_dci++; + dl_req->number_pdu++; + + // Toggle NDI for next time + LOG_D(MAC, "CC_id %d Frame %d, subframeP %d: Toggling Format1 NDI for UE %d (rnti %x/%d) oldNDI %d\n", + CC_id, frameP, subframeP, UE_id, + UE_list->UE_template[CC_id][UE_id].rnti, harq_pid, UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]); + + UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid] = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid] = mcs; + UE_list->UE_template[CC_id][UE_id].oldmcs2[harq_pid] = 0; + + eNB->TX_req[CC_id].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = TBS; + TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = TBS; + TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char)UE_id].payload[harq_pid]; + eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + + } + else { // There is no data from RLC or MAC header, so don't schedule + + } + } + + + } // UE_id loop + } // CC_id loop + + + fill_DLSCH_dci(module_idP, frameP, subframeP, mbsfn_flag); + + stop_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); + +} //------------------------------------------------------------------------------ void diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c index 3d9cc64f24..e761873095 100644 --- a/openair2/LAYER2/MAC/ue_procedures.c +++ b/openair2/LAYER2/MAC/ue_procedures.c @@ -455,7 +455,11 @@ ue_send_sdu( rx_lengths[i], ENB_FLAG_NO, eNB_index, - 0); + 0 + #ifdef Rel14 + ,0 + #endif + ); } else if ((rx_lcids[i] == DCCH) || (rx_lcids[i] == DCCH1)) { LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],eNB_index,rx_lengths[i]); @@ -520,7 +524,11 @@ void ue_decode_si(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_i len, ENB_FLAG_NO, eNB_index, - 0); + 0 + #ifdef Rel14 + ,0 + #endif + ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_SI, VCD_FUNCTION_OUT); stop_meas(&UE_mac_inst[module_idP].rx_si); if (opt_enabled == 1) { @@ -556,7 +564,11 @@ void ue_decode_p(module_id_t module_idP,int CC_id,frame_t frameP, uint8_t eNB_in len, ENB_FLAG_NO, eNB_index, - 0); + 0 + #ifdef Rel14 + ,0 + #endif + ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_PCCH, VCD_FUNCTION_OUT); stop_meas(&UE_mac_inst[module_idP].rx_p); if (opt_enabled == 1) { @@ -659,7 +671,11 @@ void ue_send_mch_sdu(module_id_t module_idP, uint8_t CC_id, frame_t frameP, uint frameP,0, // unknown subframe M_RNTI, MCCH, - payload_ptr, rx_lengths[i], 0, eNB_index, sync_area); + payload_ptr, rx_lengths[i], 0, eNB_index, sync_area + #ifdef Rel14 + ,0 + #endif + ); } else if (rx_lcids[i] == MTCH) { if (UE_mac_inst[module_idP].msi_status==1) { LOG_I(MAC,"[UE %d] Frame %d : MCH->MTCH for sync area %d (eNB %d, %d bytes)\n",module_idP,frameP, sync_area, eNB_index, rx_lengths[i]); diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c index 222b9f7b41..48351355eb 100644 --- a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c +++ b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c @@ -107,7 +107,7 @@ mac_rrc_data_req( } //------------------------------------------------------------------------------ -int8_t +/*int8_t mac_rrc_data_ind( const module_id_t module_idP, const int CC_idP, @@ -135,7 +135,7 @@ mac_rrc_data_ind( eNB_indexP, mbsfn_sync_area) ); -} +}*/ //------------------------------------------------------------------------------ void diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h index c2325f99bd..720eba88e7 100644 --- a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h +++ b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h @@ -46,7 +46,7 @@ mac_rrc_data_req( const uint8_t mbsfn_sync_areaP ); -int8_t +/*int8_t mac_rrc_data_ind( const module_id_t module_idP, const int CC_idP, @@ -59,7 +59,7 @@ mac_rrc_data_ind( const eNB_flag_t eNB_flagP, const mac_enb_index_t eNB_indexP, const uint8_t mbsfn_sync_area -); +);*/ void mac_lite_sync_ind( const module_id_t module_idP, diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c index a67e86f808..9188e858c1 100644 --- a/openair2/RRC/LITE/L2_interface.c +++ b/openair2/RRC/LITE/L2_interface.c @@ -382,6 +382,9 @@ mac_rrc_data_ind( const eNB_flag_t eNB_flagP, const mac_enb_index_t eNB_indexP, const uint8_t mbsfn_sync_areaP +#ifdef Rel14 + , const boolean_t brOption +#endif ) //-------------------------------------------------------------------------- { @@ -396,6 +399,9 @@ mac_rrc_data_ind( int si_window; */ PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, module_idP, eNB_flagP, rntiP, frameP, sub_frameP,eNB_indexP); +#ifdef Rel14 + ctxt.brOption = brOption; +#endif if(eNB_flagP == ENB_FLAG_NO) { if(srb_idP == BCCH) { diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index f4ed3ca44d..9f70de708e 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1917,6 +1917,7 @@ do_RRCConnectionReconfigurationComplete( return((enc_rval.encoded+7)/8); } +#ifdef Rel14 uint8_t do_RRCConnectionSetup_BR( const protocol_ctxt_t* const ctxt_pP, @@ -2245,7 +2246,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); // memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) - EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(1, sizeof(EPDCCH_SetConfig_r11_t)); epdcch_setconfig_r11->setConfigId_r11 = 0; epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; @@ -2258,7 +2259,10 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; + + epdcch_setconfig_r11->ext2 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11_ext2)); epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; + epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11_ext2_mpdcch_config_r13)); epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; @@ -2352,6 +2356,7 @@ do_RRCConnectionSetup_BR( return((enc_rval.encoded+7)/8); } +#endif //------------------------------------------------------------------------------ diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h index 2250b6815a..d16c53f7cc 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.h @@ -162,6 +162,19 @@ do_RRCConnectionSetup( SRB_ToAddModList_t** SRB_configList, struct PhysicalConfigDedicated** physicalConfigDedicated ); +#ifdef Rel14 +uint8_t +do_RRCConnectionSetup_BR( + const protocol_ctxt_t* const ctxt_pP, + rrc_eNB_ue_context_t* const ue_context_pP, + int CC_id, + uint8_t* const buffer, + const uint8_t transmission_mode, + const uint8_t Transaction_id, + SRB_ToAddModList_t** SRB_configList, + struct PhysicalConfigDedicated** physicalConfigDedicated +); +#endif /** \brief Generate an RRCConnectionReconfiguration DL-DCCH-Message (eNB). This routine configures SRBToAddMod (SRB2) and one DRBToAddMod diff --git a/openair2/RRC/LITE/proto.h b/openair2/RRC/LITE/proto.h index b0179bad8e..fb92b24a1c 100644 --- a/openair2/RRC/LITE/proto.h +++ b/openair2/RRC/LITE/proto.h @@ -314,6 +314,9 @@ mac_rrc_data_ind( const eNB_flag_t eNB_flagP, const mac_enb_index_t eNB_indexP, const uint8_t mbsfn_sync_areaP +#ifdef Rel14 + , const boolean_t brOption +#endif ); void mac_sync_ind( module_id_t Mod_instP, uint8_t status); diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index ffcb7c8178..29c2967004 100644 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -3784,8 +3784,9 @@ rrc_eNB_generate_RRCConnectionSetup( ) //----------------------------------------------------------------------------- { - - bool is_mtc = false; +#ifdef Rel14 + boolean_t is_mtc = ctxt_pP->brOption; +#endif LogicalChannelConfig_t *SRB1_logicalChannelConfig; //,*SRB2_logicalChannelConfig; SRB_ToAddModList_t **SRB_configList; SRB_ToAddMod_t *SRB1_config; @@ -3795,6 +3796,7 @@ rrc_eNB_generate_RRCConnectionSetup( T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); SRB_configList = &ue_context_pP->ue_context.SRB_configList; +#ifdef Rel14 if (is_mtc) { do_RRCConnectionSetup_BR(ctxt_pP, ue_context_pP, @@ -3804,7 +3806,9 @@ rrc_eNB_generate_RRCConnectionSetup( rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), SRB_configList, &ue_context_pP->ue_context.physicalConfigDedicated); - } else { + } else +#endif + { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size = do_RRCConnectionSetup(ctxt_pP, ue_context_pP, From d847f3cad536b88ef9ddae457b49dd4289144ee3 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Mon, 14 Aug 2017 11:04:50 +0200 Subject: [PATCH 020/125] solving some errors --- .gitlab-ci.yml | 0 LICENSE | 0 NOTICE.txt | 0 README.txt | 0 cmake_targets/CMakeLists.txt | 0 cmake_targets/autotests/README.txt | 0 cmake_targets/autotests/core.py | 0 cmake_targets/autotests/log.py | 0 cmake_targets/autotests/openair.py | 0 cmake_targets/autotests/templates/index.html | 0 .../autotests/templates/testcase_report.html | 0 cmake_targets/autotests/test_case_list.xml | 0 cmake_targets/autotests/testsuite_ue_noS1.xml | 0 .../autotests/testsuite_ue_noS1_TCL.xml | 0 cmake_targets/autotests/tools/lib_autotest.py | 0 .../autotests/tools/lib_autotest_analyser.py | 0 .../autotests/tools/wdial.bandrich.conf | 0 .../autotests/v2/actions/alu_epc.bash | 0 .../autotests/v2/actions/alu_epc_stop.bash | 0 .../autotests/v2/actions/alu_hss.bash | 0 .../autotests/v2/actions/bandrich.txt | 0 .../autotests/v2/actions/client_tcp.bash | 0 .../autotests/v2/actions/client_udp.bash | 0 .../v2/actions/clone_repository.bash | 0 .../autotests/v2/actions/compilation.bash | 0 .../autotests/v2/actions/execution.bash | 0 .../v2/actions/execution_compile.bash | 0 cmake_targets/autotests/v2/actions/modem.py | 0 .../autotests/v2/actions/run_enb.bash | 0 .../autotests/v2/actions/server_tcp.bash | 0 .../autotests/v2/actions/server_udp.bash | 0 .../autotests/v2/actions/start_3276.bash | 0 .../autotests/v2/actions/start_3276.py | 0 .../autotests/v2/actions/start_bandrich.bash | 0 .../autotests/v2/actions/start_bandrich.py | 0 .../autotests/v2/actions/stop_3276.py | 0 .../autotests/v2/actions/stop_bandrich.py | 0 .../autotests/v2/actions/wvdial.3276.conf | 0 .../autotests/v2/actions/wvdial.bandrich.conf | 0 cmake_targets/autotests/v2/alu_test.py | 0 .../enb.band38.tm1.usrpb210.tdd.10MHz.conf | 0 .../enb.band38.tm1.usrpb210.tdd.20MHz.conf | 0 .../enb.band38.tm1.usrpb210.tdd.5MHz.conf | 0 .../enb.band7.tm1.usrpb210.fdd.10MHz.conf | 0 .../enb.band7.tm1.usrpb210.fdd.20MHz.conf | 0 .../enb.band7.tm1.usrpb210.fdd.5MHz.conf | 0 .../v2/config/rcc.band7.tm1.if4p5.10MHz.conf | 0 .../v2/config/rcc.band7.tm1.if4p5.20MHz.conf | 0 .../v2/config/rcc.band7.tm1.if4p5.5MHz.conf | 0 ...ru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf | 0 ...ru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf | 0 ...rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf | 0 cmake_targets/autotests/v2/connection.py | 0 cmake_targets/autotests/v2/machine_list.py | 0 cmake_targets/autotests/v2/main.py | 0 cmake_targets/autotests/v2/task.py | 0 cmake_targets/autotests/v2/utils.py | 0 cmake_targets/build_ue | 0 cmake_targets/doxygen/CMakeLists.txt | 0 cmake_targets/epc_test/CMakeLists.template | 0 cmake_targets/lte-simulators/CMakeLists.txt | 0 .../lte_noS1_build_oai/CMakeLists.template | 0 cmake_targets/nas_sim_tools/CMakeLists.txt | 0 .../oaisim_build_oai/CMakeLists.template | 0 .../oaisim_mme_build_oai/CMakeLists.template | 0 .../oaisim_noS1_build_oai/CMakeLists.template | 0 .../s1c_mme_test/CMakeLists.template | 0 cmake_targets/tools/Kbuild.cmake | 0 .../tools/MODULES/CMakeParseArguments.cmake | 0 .../tools/MODULES/CMakeUserFindMySQL.cmake | 0 .../tools/MODULES/CMakeUserUseBison.cmake | 0 .../tools/MODULES/CMakeUserUseFlex.cmake | 0 .../tools/MODULES/FindFreeDiameter.cmake | 0 cmake_targets/tools/MODULES/FindGCCXML.cmake | 0 cmake_targets/tools/MODULES/FindGcrypt.cmake | 0 cmake_targets/tools/MODULES/FindGnuTLS.cmake | 0 cmake_targets/tools/MODULES/FindKbuild.cmake | 0 cmake_targets/tools/MODULES/FindLibXml2.cmake | 0 cmake_targets/tools/MODULES/FindMySQL.cmake | 0 cmake_targets/tools/MODULES/FindNettle.cmake | 0 .../tools/MODULES/FindPostgreSQL.cmake | 0 cmake_targets/tools/MODULES/FindSCTP.cmake | 0 cmake_targets/tools/MODULES/Kbuild.cmake | 0 .../tools/MODULES/cmake_useful.cmake | 0 .../tools/MODULES/kbuild_system.cmake | 0 cmake_targets/tools/MODULES/kmodule.cmake | 0 .../tools/MODULES/path_prefixes.cmake | 0 cmake_targets/tools/asn1tostruct.py | 0 .../tools/example_enb_exmimo_mme_hss.txt | 0 .../example_oaisim_enb_ue_mme_virtual.txt | 0 cmake_targets/tools/exmimo2_2arxg.lime | 0 cmake_targets/tools/exmimo_stop_octave.m | 0 .../RRC.rel10/SystemInformation-r8-IEs.h.diff | 0 .../RRC.rel14/SystemInformation-r8-IEs.h.diff | 0 ...X2ap-CriticalityDiagnostics-IE-List.h.diff | 0 cmake_targets/tools/init_nas_s1 | 0 cmake_targets/tools/run_ue_s1 | 0 cmake_targets/tools/test_helper | 0 common/ran_context.h | 0 common/utils/T/.gitignore | 0 common/utils/T/Makefile | 0 common/utils/T/README | 0 common/utils/T/T.c | 0 common/utils/T/T.h | 0 common/utils/T/T_defs.h | 0 common/utils/T/T_messages.txt | 0 common/utils/T/defs.h | 0 common/utils/T/generate_Txx.c | 0 common/utils/T/genids.c | 0 common/utils/T/local_tracer.c | 0 common/utils/T/plot.c | 0 common/utils/T/tracee/Makefile | 0 common/utils/T/tracee/README | 0 common/utils/T/tracee/tracee.c | 0 common/utils/T/tracer/Makefile | 0 common/utils/T/tracer/config.c | 0 common/utils/T/tracer/config.h | 0 common/utils/T/tracer/database.c | 0 common/utils/T/tracer/database.h | 0 common/utils/T/tracer/defs.h | 0 common/utils/T/tracer/enb.c | 0 common/utils/T/tracer/event.c | 0 common/utils/T/tracer/event.h | 0 common/utils/T/tracer/event_selector.c | 0 common/utils/T/tracer/event_selector.h | 0 common/utils/T/tracer/extract_config.c | 0 common/utils/T/tracer/filter/Makefile | 0 common/utils/T/tracer/filter/filter.c | 0 common/utils/T/tracer/filter/filter.h | 0 common/utils/T/tracer/gui.c | 0 common/utils/T/tracer/gui/Makefile | 0 common/utils/T/tracer/gui/container.c | 0 common/utils/T/tracer/gui/event.c | 0 common/utils/T/tracer/gui/gui.c | 0 common/utils/T/tracer/gui/gui.h | 0 common/utils/T/tracer/gui/gui_defs.h | 0 common/utils/T/tracer/gui/image.c | 0 common/utils/T/tracer/gui/init.c | 0 common/utils/T/tracer/gui/label.c | 0 common/utils/T/tracer/gui/loop.c | 0 common/utils/T/tracer/gui/notify.c | 0 common/utils/T/tracer/gui/positioner.c | 0 common/utils/T/tracer/gui/space.c | 0 common/utils/T/tracer/gui/test.c | 0 common/utils/T/tracer/gui/textarea.c | 0 common/utils/T/tracer/gui/textlist.c | 0 common/utils/T/tracer/gui/timeline.c | 0 common/utils/T/tracer/gui/toplevel_window.c | 0 common/utils/T/tracer/gui/widget.c | 0 common/utils/T/tracer/gui/x.c | 0 common/utils/T/tracer/gui/x.h | 0 common/utils/T/tracer/gui/x_defs.h | 0 common/utils/T/tracer/gui/xy_plot.c | 0 common/utils/T/tracer/hacks/Makefile | 0 .../utils/T/tracer/hacks/dump_nack_signal.c | 0 common/utils/T/tracer/hacks/time_meas.c | 0 common/utils/T/tracer/hacks/timeplot.c | 0 common/utils/T/tracer/handler.c | 0 common/utils/T/tracer/handler.h | 0 common/utils/T/tracer/logger/Makefile | 0 common/utils/T/tracer/logger/framelog.c | 0 common/utils/T/tracer/logger/iqdotlog.c | 0 common/utils/T/tracer/logger/iqlog.c | 0 common/utils/T/tracer/logger/logger.c | 0 common/utils/T/tracer/logger/logger.h | 0 common/utils/T/tracer/logger/logger_defs.h | 0 common/utils/T/tracer/logger/textlog.c | 0 common/utils/T/tracer/logger/throughputlog.c | 0 common/utils/T/tracer/logger/ticked_ttilog.c | 0 common/utils/T/tracer/logger/ticklog.c | 0 common/utils/T/tracer/logger/timelog.c | 0 common/utils/T/tracer/logger/ttilog.c | 0 common/utils/T/tracer/macpdu2wireshark.c | 0 common/utils/T/tracer/openair_logo.h | 0 common/utils/T/tracer/openair_logo.png | Bin common/utils/T/tracer/packet-mac-lte.h | 0 common/utils/T/tracer/plot.c | 0 common/utils/T/tracer/record.c | 0 common/utils/T/tracer/replay.c | 0 common/utils/T/tracer/textlog.c | 0 common/utils/T/tracer/ue.c | 0 common/utils/T/tracer/utils.c | 0 common/utils/T/tracer/utils.h | 0 common/utils/T/tracer/vcd.c | 0 common/utils/T/tracer/view/Makefile | 0 common/utils/T/tracer/view/scrolltti.c | 0 common/utils/T/tracer/view/stdout.c | 0 common/utils/T/tracer/view/textlist.c | 0 common/utils/T/tracer/view/ticktime.c | 0 common/utils/T/tracer/view/time.c | 0 common/utils/T/tracer/view/tti.c | 0 common/utils/T/tracer/view/view.h | 0 common/utils/T/tracer/view/xy.c | 0 common/utils/asn1_conversions.h | 0 common/utils/assertions.h | 0 common/utils/hashtable/hashtable.c | 0 common/utils/hashtable/hashtable.h | 0 common/utils/hashtable/obj_hashtable.c | 0 common/utils/hashtable/obj_hashtable.h | 0 common/utils/itti/Makefile.am | 0 common/utils/itti/assertions.h | 0 common/utils/itti/backtrace.c | 0 common/utils/itti/backtrace.h | 0 common/utils/itti/intertask_interface.c | 0 common/utils/itti/intertask_interface.h | 0 common/utils/itti/intertask_interface_dump.c | 0 common/utils/itti/intertask_interface_dump.h | 0 common/utils/itti/intertask_interface_init.h | 0 common/utils/itti/intertask_interface_types.h | 0 common/utils/itti/intertask_messages_def.h | 0 common/utils/itti/intertask_messages_types.h | 0 common/utils/itti/itti_types.h | 0 common/utils/itti/memory_pools.c | 0 common/utils/itti/memory_pools.h | 0 common/utils/itti/messages_def.h | 0 common/utils/itti/messages_types.h | 0 common/utils/itti/signals.c | 0 common/utils/itti/signals.h | 0 common/utils/itti/tasks_def.h | 0 common/utils/itti/timer.c | 0 common/utils/itti/timer.h | 0 common/utils/itti/timer_messages_def.h | 0 common/utils/itti/timer_messages_types.h | 0 common/utils/itti_analyzer/AUTHORS | 0 common/utils/itti_analyzer/ChangeLog | 0 common/utils/itti_analyzer/INSTALL | 0 common/utils/itti_analyzer/Makefile.am | 0 common/utils/itti_analyzer/NEWS | 0 common/utils/itti_analyzer/README | 0 .../utils/itti_analyzer/common/itti_types.h | 0 common/utils/itti_analyzer/common/logs.h | 0 common/utils/itti_analyzer/common/queue.h | 0 common/utils/itti_analyzer/common/rc.h | 0 common/utils/itti_analyzer/configure.ac | 0 common/utils/itti_analyzer/filters.xml | 0 common/utils/itti_analyzer/filters_mme.xml | 0 common/utils/itti_analyzer/filters_ue_enb.xml | 0 common/utils/itti_analyzer/itti_analyzer.c | 0 .../itti_analyzer/libbuffers/Makefile.am | 0 .../utils/itti_analyzer/libbuffers/buffers.c | 0 .../utils/itti_analyzer/libbuffers/buffers.h | 0 common/utils/itti_analyzer/libbuffers/file.c | 0 common/utils/itti_analyzer/libbuffers/file.h | 0 .../utils/itti_analyzer/libbuffers/socket.c | 0 .../utils/itti_analyzer/libbuffers/socket.h | 0 .../utils/itti_analyzer/libparser/Makefile.am | 0 .../itti_analyzer/libparser/array_type.c | 0 .../itti_analyzer/libparser/array_type.h | 0 .../utils/itti_analyzer/libparser/enum_type.c | 0 .../utils/itti_analyzer/libparser/enum_type.h | 0 .../itti_analyzer/libparser/enum_value_type.c | 0 .../itti_analyzer/libparser/enum_value_type.h | 0 .../itti_analyzer/libparser/field_type.c | 0 .../itti_analyzer/libparser/field_type.h | 0 .../utils/itti_analyzer/libparser/file_type.c | 0 .../utils/itti_analyzer/libparser/file_type.h | 0 .../libparser/fundamental_type.c | 0 .../libparser/fundamental_type.h | 0 .../libparser/intertask_contexts.h | 0 .../itti_analyzer/libparser/pointer_type.c | 0 .../itti_analyzer/libparser/pointer_type.h | 0 .../itti_analyzer/libparser/reference_type.c | 0 .../itti_analyzer/libparser/reference_type.h | 0 .../itti_analyzer/libparser/struct_type.c | 0 .../itti_analyzer/libparser/struct_type.h | 0 .../itti_analyzer/libparser/typedef_type.c | 0 .../itti_analyzer/libparser/typedef_type.h | 0 common/utils/itti_analyzer/libparser/types.c | 0 common/utils/itti_analyzer/libparser/types.h | 0 .../itti_analyzer/libparser/union_type.c | 0 .../itti_analyzer/libparser/union_type.h | 0 .../utils/itti_analyzer/libparser/xml_parse.c | 0 .../utils/itti_analyzer/libparser/xml_parse.h | 0 .../itti_analyzer/libresolver/Makefile.am | 0 .../itti_analyzer/libresolver/locate_root.c | 0 .../itti_analyzer/libresolver/locate_root.h | 0 .../itti_analyzer/libresolver/resolvers.c | 0 .../itti_analyzer/libresolver/resolvers.h | 0 common/utils/itti_analyzer/libui/Makefile.am | 0 .../utils/itti_analyzer/libui/ui_callbacks.c | 0 .../utils/itti_analyzer/libui/ui_callbacks.h | 0 common/utils/itti_analyzer/libui/ui_filters.c | 0 common/utils/itti_analyzer/libui/ui_filters.h | 0 .../utils/itti_analyzer/libui/ui_interface.c | 0 .../utils/itti_analyzer/libui/ui_interface.h | 0 .../itti_analyzer/libui/ui_main_screen.c | 0 .../itti_analyzer/libui/ui_main_screen.h | 0 .../utils/itti_analyzer/libui/ui_menu_bar.c | 0 .../utils/itti_analyzer/libui/ui_menu_bar.h | 0 .../utils/itti_analyzer/libui/ui_notebook.c | 0 .../utils/itti_analyzer/libui/ui_notebook.h | 0 .../utils/itti_analyzer/libui/ui_notif_dlg.c | 0 .../utils/itti_analyzer/libui/ui_notif_dlg.h | 0 .../itti_analyzer/libui/ui_notifications.c | 0 .../itti_analyzer/libui/ui_notifications.h | 0 .../libui/ui_signal_dissect_view.c | 0 .../libui/ui_signal_dissect_view.h | 0 .../utils/itti_analyzer/libui/ui_tree_view.c | 0 .../utils/itti_analyzer/libui/ui_tree_view.h | 0 common/utils/msc/msc.c | 0 common/utils/msc/msc.h | 0 common/utils/system.c | 0 common/utils/system.h | 0 common/utils/time_utils.h | 0 common/utils/utils.c | 0 common/utils/utils.h | 0 enb_dev.config | 2 + enb_dev.creator | 1 + enb_dev.files | 7877 +++++++++++++++++ enb_dev.includes | 143 + oai5g_development.config | 0 oai5g_development.creator | 0 oai5g_development.files | 0 oai5g_development.includes | 0 oaienv | 0 openair1/Makefile | 0 openair1/PHY/CODING/3gpplte.c | 0 openair1/PHY/CODING/3gpplte_sse.c | 0 openair1/PHY/CODING/3gpplte_turbo_decoder.c | 0 .../CODING/3gpplte_turbo_decoder_avx2_16bit.c | 0 .../PHY/CODING/3gpplte_turbo_decoder_sse.c | 0 .../CODING/3gpplte_turbo_decoder_sse_16bit.c | 0 .../CODING/3gpplte_turbo_decoder_sse_8bit.c | 0 openair1/PHY/CODING/Makefile | 0 openair1/PHY/CODING/Makefile.arm | 0 openair1/PHY/CODING/README.txt | 0 openair1/PHY/CODING/TESTBENCH/Makefile | 0 openair1/PHY/CODING/TESTBENCH/README.txt | 0 openair1/PHY/CODING/TESTBENCH/ltetest.c | 0 openair1/PHY/CODING/TESTBENCH/pdcch_test.c | 0 openair1/PHY/CODING/TESTBENCH/viterbi_test.c | 0 openair1/PHY/CODING/ccoding_byte.c | 0 openair1/PHY/CODING/ccoding_byte_lte.c | 0 openair1/PHY/CODING/crc_byte.c | 0 openair1/PHY/CODING/defs.h | 0 openair1/PHY/CODING/extern.h | 0 openair1/PHY/CODING/extern_3GPPinterleaver.h | 0 openair1/PHY/CODING/lte_interleaver.h | 0 openair1/PHY/CODING/lte_interleaver2.h | 0 openair1/PHY/CODING/lte_interleaver_inline.h | 0 openair1/PHY/CODING/lte_rate_matching.c | 0 openair1/PHY/CODING/lte_segmentation.c | 0 openair1/PHY/CODING/lte_tf.m | 0 openair1/PHY/CODING/scrambler.h | 0 openair1/PHY/CODING/vars.h | 0 openair1/PHY/CODING/viterbi.c | 0 openair1/PHY/CODING/viterbi_lte.c | 0 openair1/PHY/INIT/README.txt | 0 openair1/PHY/INIT/defs.h | 0 openair1/PHY/INIT/extern.h | 0 openair1/PHY/INIT/init_top.c | 0 openair1/PHY/INIT/lte_init.c | 0 openair1/PHY/INIT/lte_param_init.c | 0 openair1/PHY/INIT/lte_parms.c | 0 openair1/PHY/INIT/vars.h | 0 openair1/PHY/LTE_ESTIMATION/README.txt | 0 openair1/PHY/LTE_ESTIMATION/adjust_gain.c | 0 .../LTE_ESTIMATION/bf_freq_domain_filters.m | 0 openair1/PHY/LTE_ESTIMATION/defs.h | 0 openair1/PHY/LTE_ESTIMATION/extern.h | 0 openair1/PHY/LTE_ESTIMATION/filt16_32.h | 0 openair1/PHY/LTE_ESTIMATION/filt96_32.h | 0 .../PHY/LTE_ESTIMATION/freq_domain_filters.m | 0 .../PHY/LTE_ESTIMATION/freq_equalization.c | 0 openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c | 0 .../lte_dl_bf_channel_estimation.c | 0 .../lte_dl_channel_estimation.c | 0 .../lte_dl_channel_estimation_emos.c | 0 .../lte_dl_mbsfn_channel_estimation.c | 0 .../PHY/LTE_ESTIMATION/lte_eNB_measurements.c | 0 .../PHY/LTE_ESTIMATION/lte_est_freq_offset.c | 0 openair1/PHY/LTE_ESTIMATION/lte_sync_time.c | 0 .../PHY/LTE_ESTIMATION/lte_sync_timefreq.c | 0 .../PHY/LTE_ESTIMATION/lte_sync_timefreq.m | 0 .../PHY/LTE_ESTIMATION/lte_ue_measurements.c | 0 .../lte_ul_channel_estimation.c | 0 openair1/PHY/LTE_ESTIMATION/pss6144.h | 0 openair1/PHY/LTE_ESTIMATION/vars.h | 0 openair1/PHY/LTE_REFSIG/README.txt | 0 openair1/PHY/LTE_REFSIG/defs.h | 0 openair1/PHY/LTE_REFSIG/gen_mod_table.m | 0 openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c | 0 openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c | 0 openair1/PHY/LTE_REFSIG/lte_dl_uespec.c | 0 openair1/PHY/LTE_REFSIG/lte_gold.c | 0 openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c | 0 openair1/PHY/LTE_REFSIG/lte_ul.m | 0 openair1/PHY/LTE_REFSIG/lte_ul_ref.c | 0 openair1/PHY/LTE_REFSIG/mod_table.h | 0 openair1/PHY/LTE_REFSIG/primary_synch.h | 0 openair1/PHY/LTE_REFSIG/primary_synch.m | 0 openair1/PHY/LTE_TRANSPORT/README.txt | 0 openair1/PHY/LTE_TRANSPORT/dci.h | 0 openair1/PHY/LTE_TRANSPORT/dci_tools.c | 0 openair1/PHY/LTE_TRANSPORT/defs.h | 0 openair1/PHY/LTE_TRANSPORT/dlsch_coding.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c | 0 .../PHY/LTE_TRANSPORT/dlsch_demodulation.c | 0 .../PHY/LTE_TRANSPORT/dlsch_llr_computation.c | 0 .../dlsch_llr_computation_avx2.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h | 0 openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h | 0 openair1/PHY/LTE_TRANSPORT/drs_modulation.c | 0 openair1/PHY/LTE_TRANSPORT/extern.h | 0 openair1/PHY/LTE_TRANSPORT/group_hopping.c | 0 openair1/PHY/LTE_TRANSPORT/if4_tools.c | 0 openair1/PHY/LTE_TRANSPORT/if4_tools.h | 0 openair1/PHY/LTE_TRANSPORT/if5_tools.c | 0 openair1/PHY/LTE_TRANSPORT/if5_tools.h | 0 openair1/PHY/LTE_TRANSPORT/initial_sync.c | 0 openair1/PHY/LTE_TRANSPORT/lte_mcs.c | 0 openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h | 0 openair1/PHY/LTE_TRANSPORT/mdci.h | 0 openair1/PHY/LTE_TRANSPORT/pbch.c | 0 openair1/PHY/LTE_TRANSPORT/pcfich.c | 0 openair1/PHY/LTE_TRANSPORT/pch.c | 0 openair1/PHY/LTE_TRANSPORT/phich.c | 0 openair1/PHY/LTE_TRANSPORT/pilots.c | 0 openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c | 0 openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c | 0 openair1/PHY/LTE_TRANSPORT/pmch.c | 0 openair1/PHY/LTE_TRANSPORT/power_control.c | 0 openair1/PHY/LTE_TRANSPORT/prach.c | 0 openair1/PHY/LTE_TRANSPORT/prach.h | 0 openair1/PHY/LTE_TRANSPORT/print_stats.c | 0 openair1/PHY/LTE_TRANSPORT/proto.h | 0 openair1/PHY/LTE_TRANSPORT/pss.c | 0 openair1/PHY/LTE_TRANSPORT/pucch.c | 0 openair1/PHY/LTE_TRANSPORT/rar_tools.c | 0 openair1/PHY/LTE_TRANSPORT/srs_modulation.c | 0 openair1/PHY/LTE_TRANSPORT/sss.c | 0 openair1/PHY/LTE_TRANSPORT/sss.h | 0 openair1/PHY/LTE_TRANSPORT/sss_gen.m | 0 openair1/PHY/LTE_TRANSPORT/uci.h | 0 openair1/PHY/LTE_TRANSPORT/uci_tools.c | 0 openair1/PHY/LTE_TRANSPORT/ulsch_coding.c | 0 openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c | 0 .../PHY/LTE_TRANSPORT/ulsch_demodulation.c | 0 openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c | 0 openair1/PHY/LTE_TRANSPORT/vars.h | 0 openair1/PHY/LTE_TRANSPORT/vrb_maps.m | 0 openair1/PHY/MODULATION/beamforming.c | 0 openair1/PHY/MODULATION/compute_bf_weights.c | 0 openair1/PHY/MODULATION/defs.h | 0 openair1/PHY/MODULATION/extern.h | 0 openair1/PHY/MODULATION/gen_7_5_kHz.m | 0 openair1/PHY/MODULATION/kHz_7_5.h | 0 openair1/PHY/MODULATION/ofdm_mod.c | 0 openair1/PHY/MODULATION/prach625Hz.h | 0 openair1/PHY/MODULATION/slot_fep.c | 0 openair1/PHY/MODULATION/slot_fep_mbsfn.c | 0 openair1/PHY/MODULATION/slot_fep_ul.c | 0 openair1/PHY/MODULATION/ul_7_5_kHz.c | 0 openair1/PHY/MODULATION/vars.h | 0 openair1/PHY/Makefile.inc | 0 openair1/PHY/TOOLS/8bit_rxdemux.c | 0 openair1/PHY/TOOLS/8bit_txmux.c | 0 openair1/PHY/TOOLS/Makefile | 0 openair1/PHY/TOOLS/alaw_lut.h | 0 openair1/PHY/TOOLS/angle.c | 0 openair1/PHY/TOOLS/cadd_sv.c | 0 openair1/PHY/TOOLS/cadd_vv.c | 0 openair1/PHY/TOOLS/cdot_prod.c | 0 openair1/PHY/TOOLS/cmult_sv.c | 0 openair1/PHY/TOOLS/cmult_vv.c | 0 openair1/PHY/TOOLS/costable.h | 0 openair1/PHY/TOOLS/dB_routines.c | 0 openair1/PHY/TOOLS/dB_routines.h | 0 openair1/PHY/TOOLS/defs.h | 0 openair1/PHY/TOOLS/extern.h | 0 openair1/PHY/TOOLS/file_output.c | 0 openair1/PHY/TOOLS/invSqrt.c | 0 openair1/PHY/TOOLS/log2_approx.c | 0 openair1/PHY/TOOLS/lte_dfts.c | 0 openair1/PHY/TOOLS/lte_phy_scope.c | 0 openair1/PHY/TOOLS/lte_phy_scope.h | 0 openair1/PHY/TOOLS/lte_phy_scope_tm4.c | 0 openair1/PHY/TOOLS/lut.c | 0 openair1/PHY/TOOLS/memory_routines.c | 0 openair1/PHY/TOOLS/read_F.c | 0 openair1/PHY/TOOLS/signal_energy.c | 0 openair1/PHY/TOOLS/smbv.c | 0 openair1/PHY/TOOLS/smbv.h | 0 openair1/PHY/TOOLS/sqrt.c | 0 openair1/PHY/TOOLS/time_meas.c | 0 openair1/PHY/TOOLS/time_meas.h | 0 openair1/PHY/TOOLS/twiddle12288.h | 0 openair1/PHY/TOOLS/twiddle1536.h | 0 openair1/PHY/TOOLS/twiddle18432.h | 0 openair1/PHY/TOOLS/twiddle24576.h | 0 openair1/PHY/TOOLS/twiddle6144.h | 0 openair1/PHY/TOOLS/twiddles4096.h | 0 openair1/PHY/TOOLS/twiddles8192.h | 0 openair1/PHY/TOOLS/vars.h | 0 openair1/PHY/defs.h | 0 openair1/PHY/extern.h | 0 openair1/PHY/impl_defs_lte.h | 0 openair1/PHY/impl_defs_top.h | 0 openair1/PHY/sse_intrin.h | 0 openair1/PHY/types.h | 0 openair1/PHY/vars.h | 0 openair1/README.TXT | 0 openair1/SCHED/Makefile.inc | 0 openair1/SCHED/defs.h | 0 openair1/SCHED/extern.h | 0 openair1/SCHED/phy_mac_stub.c | 0 openair1/SCHED/phy_procedures_emos.h | 0 openair1/SCHED/phy_procedures_lte_common.c | 0 openair1/SCHED/phy_procedures_lte_eNb.c | 0 openair1/SCHED/phy_procedures_lte_ue.c | 0 openair1/SCHED/pucch_pc.c | 0 openair1/SCHED/pusch_pc.c | 0 openair1/SCHED/rt_compat.h | 0 openair1/SCHED/ru_procedures.c | 0 openair1/SCHED/srs_pc.c | 0 openair1/SCHED/vars.h | 0 .../SIMULATION/ETH_TRANSPORT/Makefile.inc | 0 openair1/SIMULATION/ETH_TRANSPORT/README.txt | 0 .../ETH_TRANSPORT/bypass_session_layer.c | 0 openair1/SIMULATION/ETH_TRANSPORT/defs.h | 0 .../SIMULATION/ETH_TRANSPORT/emu_transport.c | 0 openair1/SIMULATION/ETH_TRANSPORT/extern.h | 0 .../SIMULATION/ETH_TRANSPORT/multicast_link.c | 0 .../SIMULATION/ETH_TRANSPORT/multicast_link.h | 0 .../SIMULATION/ETH_TRANSPORT/netlink_init.c | 0 openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c | 0 openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h | 0 openair1/SIMULATION/ETH_TRANSPORT/proto.h | 0 openair1/SIMULATION/ETH_TRANSPORT/socket.c | 0 openair1/SIMULATION/ETH_TRANSPORT/socket.h | 0 openair1/SIMULATION/ETH_TRANSPORT/vars.h | 0 .../Abstraction/Training/create_plots.m | 0 .../Abstraction/Training/delta_BLER_1.m | 0 .../Training/polyfit_beta_training.m | 0 .../Abstraction/Training/polyfit_delta_BLER.m | 0 .../Abstraction/Training/sinr_Eff_Calc.m | 0 .../Training/training_abstraction.m | 0 .../Training/training_top_script.m | 0 .../LTE_PHY/Abstraction/beta_training_EESM.m | 0 .../Abstraction/data_collection_mode5.m | 0 .../LTE_PHY/Abstraction/data_extraction.m | 0 .../LTE_PHY/Abstraction/delta_BLER.m | 0 .../LTE_PHY/Abstraction/delta_BLER_1.m | 0 .../SIMULATION/LTE_PHY/Abstraction/demap_q.m | 0 .../matFiles/16_16_noMF_lte_Mode5_1.mat | Bin .../matFiles/16_16_noMF_lte_Mode5_2.mat | Bin .../matFiles/16_16_noMF_lte_Mode5_3.mat | Bin .../matFiles/16_16_noMF_lte_Mode5_4.mat | Bin .../matFiles/16_16_noMF_lte_Mode5_5.mat | Bin .../matFiles/16_4_noMF_lte_Mode5_1.mat | Bin .../matFiles/16_4_noMF_lte_Mode5_2.mat | Bin .../matFiles/16_4_noMF_lte_Mode5_3.mat | Bin .../matFiles/16_4_noMF_lte_Mode5_4.mat | Bin .../matFiles/16_4_noMF_lte_Mode5_5.mat | Bin .../matFiles/4_16_noMF_lte_Mode5_1.mat | Bin .../matFiles/4_16_noMF_lte_Mode5_2.mat | Bin .../matFiles/4_16_noMF_lte_Mode5_3.mat | Bin .../matFiles/4_16_noMF_lte_Mode5_4.mat | Bin .../matFiles/4_16_noMF_lte_Mode5_5.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat | Bin .../Abstraction/matFiles/data_mode5_16_16.mat | Bin .../data_mode5_4_4_morerealizations.mat | Bin .../matFiles/siso_MI_abs_16Qam.mat | Bin .../Abstraction/matFiles/siso_MI_abs_4Qam.mat | Bin .../matFiles/siso_MI_abs_64Qam.mat | Bin .../LTE_PHY/Abstraction/opposite_q.m | 0 .../bler_tx1_chan18_nrx1_mcs0.csv | 0 .../bler_tx1_chan18_nrx1_mcs1.csv | 0 .../bler_tx1_chan18_nrx1_mcs10.csv | 0 .../bler_tx1_chan18_nrx1_mcs11.csv | 0 .../bler_tx1_chan18_nrx1_mcs12.csv | 0 .../bler_tx1_chan18_nrx1_mcs13.csv | 0 .../bler_tx1_chan18_nrx1_mcs14.csv | 0 .../bler_tx1_chan18_nrx1_mcs15.csv | 0 .../bler_tx1_chan18_nrx1_mcs16.csv | 0 .../bler_tx1_chan18_nrx1_mcs17.csv | 0 .../bler_tx1_chan18_nrx1_mcs18.csv | 0 .../bler_tx1_chan18_nrx1_mcs19.csv | 0 .../bler_tx1_chan18_nrx1_mcs2.csv | 0 .../bler_tx1_chan18_nrx1_mcs20.csv | 0 .../bler_tx1_chan18_nrx1_mcs21.csv | 0 .../bler_tx1_chan18_nrx1_mcs22.csv | 0 .../bler_tx1_chan18_nrx1_mcs23.csv | 0 .../bler_tx1_chan18_nrx1_mcs24.csv | 0 .../bler_tx1_chan18_nrx1_mcs25.csv | 0 .../bler_tx1_chan18_nrx1_mcs26.csv | 0 .../bler_tx1_chan18_nrx1_mcs27.csv | 0 .../bler_tx1_chan18_nrx1_mcs3.csv | 0 .../bler_tx1_chan18_nrx1_mcs4.csv | 0 .../bler_tx1_chan18_nrx1_mcs5.csv | 0 .../bler_tx1_chan18_nrx1_mcs6.csv | 0 .../bler_tx1_chan18_nrx1_mcs7.csv | 0 .../bler_tx1_chan18_nrx1_mcs8.csv | 0 .../bler_tx1_chan18_nrx1_mcs9.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv | 0 .../Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_0.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_100.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_119.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_150.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_200.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_250.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_300.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_350.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_400.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_450.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_500.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_550.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_66.m | 0 .../LTE_PHY/BLER_SIMULATIONS/bler_80.m | 0 .../LTE_PHY/BLER_SIMULATIONS/eval_results.m | 0 .../SIMULATION/LTE_PHY/LTE_Configuration.c | 0 .../SIMULATION/LTE_PHY/LTE_Configuration.h | 0 openair1/SIMULATION/LTE_PHY/Makefile | 0 openair1/SIMULATION/LTE_PHY/README.txt | 0 .../SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m | 0 .../LTE_PHY/REFERENCE_DATA/embms_20_25.m | 0 .../REFERENCE_DATA/oai_embms_r39-1.png | Bin .../LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m | 0 .../LTE_PHY/REFERENCE_DATA/pdsch.txt | 0 .../SIMULATION/LTE_PHY/blerCurvesTemplate.tex | 0 openair1/SIMULATION/LTE_PHY/blerSimus.zip | Bin openair1/SIMULATION/LTE_PHY/dlsim.c | 0 openair1/SIMULATION/LTE_PHY/dlsim_tm4.c | 0 openair1/SIMULATION/LTE_PHY/dlsim_tm7.c | 0 openair1/SIMULATION/LTE_PHY/fancyheadings.sty | 0 openair1/SIMULATION/LTE_PHY/framegen.c | 0 openair1/SIMULATION/LTE_PHY/gpib_send.c | 0 openair1/SIMULATION/LTE_PHY/gpib_send.h | 0 openair1/SIMULATION/LTE_PHY/launch_sim.sh | 0 openair1/SIMULATION/LTE_PHY/mbmssim.c | 0 openair1/SIMULATION/LTE_PHY/pbch_awgn.txt | 0 .../SIMULATION/LTE_PHY/pbch_awgn_interp.txt | 0 openair1/SIMULATION/LTE_PHY/pbchsim.c | 0 openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh | 0 .../SIMULATION/LTE_PHY/pdcch_eval_results.m | 0 openair1/SIMULATION/LTE_PHY/pdcchsim.c | 0 openair1/SIMULATION/LTE_PHY/plotTools/p | 0 .../SIMULATION/LTE_PHY/plotTools/plotTool.m | 0 .../LTE_PHY/plotTools/plot_channel_PePu.m | 0 .../LTE_PHY/plotTools/plot_channel_SePu.m | 0 .../LTE_PHY/plotTools/plot_channels.m | 0 .../LTE_PHY/plotTools/plot_constellations.m | 0 .../LTE_PHY/plotTools/plot_dl_ce_prec_ul.m | 0 .../LTE_PHY/plotTools/plot_dl_ch_est.m | 0 .../plotTools/plot_floating_point_signals.m | 0 .../LTE_PHY/plotTools/plot_srs_ce.m | 0 .../LTE_PHY/plotTools/plot_srs_ce_.m | 0 .../LTE_PHY/plotTools/plot_srs_prec_dl.m | 0 .../LTE_PHY/plotTools/plot_srs_rxF.m | 0 .../SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m | 0 .../LTE_PHY/plotTools/plot_txdata.m | 0 openair1/SIMULATION/LTE_PHY/prachsim.c | 0 .../SIMULATION/LTE_PHY/pucchsignalgegerator.h | 0 .../SIMULATION/LTE_PHY/pucchsignalgenerator.c | 0 openair1/SIMULATION/LTE_PHY/pucchsim.c | 0 openair1/SIMULATION/LTE_PHY/scansim.c | 0 openair1/SIMULATION/LTE_PHY/signalanalyzer.c | 0 openair1/SIMULATION/LTE_PHY/signalanalyzer.h | 0 openair1/SIMULATION/LTE_PHY/syncsim.c | 0 openair1/SIMULATION/LTE_PHY/test.c | 0 .../SIMULATION/LTE_PHY/ulsignalgenerator.c | 0 .../SIMULATION/LTE_PHY/ulsignalgenerator.h | 0 openair1/SIMULATION/LTE_PHY/ulsim.c | 0 openair1/SIMULATION/LTE_PHY/ulsim2.c | 0 openair1/SIMULATION/LTE_PHY/unitary_defs.h | 0 openair1/SIMULATION/Makefile.inc | 0 openair1/SIMULATION/RF/Makefile | 0 openair1/SIMULATION/RF/README.txt | 0 openair1/SIMULATION/RF/adc.c | 0 openair1/SIMULATION/RF/dac.c | 0 openair1/SIMULATION/RF/defs.h | 0 openair1/SIMULATION/RF/rf.c | 0 openair1/SIMULATION/TOOLS/abstraction.c | 0 openair1/SIMULATION/TOOLS/ch_desc_proto.c | 0 openair1/SIMULATION/TOOLS/corr_mat.m | 0 openair1/SIMULATION/TOOLS/defs.h | 0 openair1/SIMULATION/TOOLS/gauss.c | 0 openair1/SIMULATION/TOOLS/llr_quantization.c | 0 openair1/SIMULATION/TOOLS/multipath_channel.c | 0 .../SIMULATION/TOOLS/multipath_tv_channel.c | 0 openair1/SIMULATION/TOOLS/random_channel.c | 0 openair1/SIMULATION/TOOLS/rangen_double.c | 0 openair1/SIMULATION/TOOLS/scm_corrmat.h | 0 openair1/SIMULATION/TOOLS/taus.c | 0 openair2/COMMON/as_message.h | 0 openair2/COMMON/commonDef.h | 0 openair2/COMMON/gtpv1_u_messages_def.h | 0 openair2/COMMON/gtpv1_u_messages_types.h | 0 openair2/COMMON/intertask_interface_conf.h | 0 openair2/COMMON/mac_messages_def.h | 0 openair2/COMMON/mac_messages_types.h | 0 openair2/COMMON/mac_primitives.h | 0 openair2/COMMON/mac_rlc_primitives.h | 0 openair2/COMMON/mac_rrc_primitives.h | 0 openair2/COMMON/messages_def.h | 0 openair2/COMMON/messages_types.h | 0 openair2/COMMON/nas_messages_def.h | 0 openair2/COMMON/nas_messages_types.h | 0 openair2/COMMON/networkDef.h | 0 openair2/COMMON/openair_defs.h | 0 openair2/COMMON/openair_types.h | 0 openair2/COMMON/pdcp_messages_def.h | 0 openair2/COMMON/pdcp_messages_types.h | 0 openair2/COMMON/phy_messages_def.h | 0 openair2/COMMON/phy_messages_types.h | 0 openair2/COMMON/platform_constants.h | 0 openair2/COMMON/platform_types.h | 0 openair2/COMMON/ral_messages_def.h | 0 openair2/COMMON/ral_messages_types.h | 0 openair2/COMMON/rlc_messages_def.h | 0 openair2/COMMON/rlc_messages_types.h | 0 openair2/COMMON/rrc_messages_def.h | 0 openair2/COMMON/rrc_messages_types.h | 0 openair2/COMMON/rrm_config_structs.h | 0 openair2/COMMON/rrm_constants.h | 0 openair2/COMMON/rtos_header.h | 0 openair2/COMMON/s1ap_messages_def.h | 0 openair2/COMMON/s1ap_messages_types.h | 0 openair2/COMMON/sctp_messages_def.h | 0 openair2/COMMON/sctp_messages_types.h | 0 openair2/COMMON/tasks_def.h | 0 openair2/COMMON/udp_messages_def.h | 0 openair2/COMMON/udp_messages_types.h | 0 openair2/COMMON/x2ap_messages_def.h | 0 openair2/COMMON/x2ap_messages_types.h | 0 openair2/DOCS/DOXYGEN/images/Transmission.png | Bin openair2/DOCS/DOXYGEN/images/Transmission.ps | 0 openair2/DOCS/Documentation/flow.txt | 0 openair2/DOCS/TEMPLATES/CODE/Doxyfile | 0 openair2/DOCS/TEMPLATES/CODE/example_doxy.h | 0 openair2/DOCS/TEMPLATES/CODE/images/arch.eps | 0 openair2/DOCS/TEMPLATES/CODE/images/arch.png | Bin openair2/DOCS/TEMPLATES/README/Readme.doxy | 0 openair2/DOCS/TEMPLATES/README/readme.txt | 0 .../CONTROL_MODULES/MAC/flexran_agent_mac.c | 0 .../CONTROL_MODULES/MAC/flexran_agent_mac.h | 0 .../MAC/flexran_agent_mac_defs.h | 0 .../MAC/flexran_agent_mac_internal.c | 0 .../MAC/flexran_agent_mac_internal.h | 0 .../ENB_APP/MESSAGES/V2/config_common.proto | 0 .../ENB_APP/MESSAGES/V2/config_messages.proto | 0 .../MESSAGES/V2/control_delegation.proto | 0 .../MESSAGES/V2/controller_commands.proto | 0 openair2/ENB_APP/MESSAGES/V2/flexran.proto | 0 openair2/ENB_APP/MESSAGES/V2/header.proto | 0 .../ENB_APP/MESSAGES/V2/mac_primitives.proto | 0 .../ENB_APP/MESSAGES/V2/stats_common.proto | 0 .../ENB_APP/MESSAGES/V2/stats_messages.proto | 0 .../ENB_APP/MESSAGES/V2/time_common.proto | 0 openair2/ENB_APP/Makefile.inc | 0 openair2/ENB_APP/enb_app.c | 0 openair2/ENB_APP/enb_app.h | 0 openair2/ENB_APP/enb_config.c | 0 openair2/ENB_APP/enb_config.h | 0 openair2/ENB_APP/flexran_agent.c | 0 openair2/ENB_APP/flexran_agent.h | 0 openair2/ENB_APP/flexran_agent_async.c | 0 openair2/ENB_APP/flexran_agent_async.h | 0 openair2/ENB_APP/flexran_agent_common.c | 0 openair2/ENB_APP/flexran_agent_common.h | 0 .../ENB_APP/flexran_agent_common_internal.c | 0 .../ENB_APP/flexran_agent_common_internal.h | 0 openair2/ENB_APP/flexran_agent_defs.h | 0 openair2/ENB_APP/flexran_agent_extern.h | 0 openair2/ENB_APP/flexran_agent_handler.c | 0 openair2/ENB_APP/flexran_agent_net_comm.c | 0 openair2/ENB_APP/flexran_agent_net_comm.h | 0 openair2/ENB_APP/flexran_agent_task_manager.c | 0 openair2/ENB_APP/flexran_agent_task_manager.h | 0 openair2/LAYER2/MAC/config.c | 4 +- openair2/LAYER2/MAC/defs.h | 0 openair2/LAYER2/MAC/eNB_scheduler.c | 0 openair2/LAYER2/MAC/eNB_scheduler_RA.c | 0 openair2/LAYER2/MAC/eNB_scheduler_bch.c | 0 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 948 -- openair2/LAYER2/MAC/eNB_scheduler_mch.c | 0 .../LAYER2/MAC/eNB_scheduler_primitives.c | 0 openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 6 +- openair2/LAYER2/MAC/extern.h | 0 openair2/LAYER2/MAC/flexran_agent_mac_proto.h | 0 .../MAC/flexran_agent_scheduler_dataplane.c | 0 .../MAC/flexran_agent_scheduler_dlsch_ue.c | 0 .../flexran_agent_scheduler_dlsch_ue_remote.c | 0 .../flexran_agent_scheduler_dlsch_ue_remote.h | 0 openair2/LAYER2/MAC/flexran_dci_conversions.h | 0 openair2/LAYER2/MAC/l1_helpers.c | 0 openair2/LAYER2/MAC/lte_transport_init.c | 0 openair2/LAYER2/MAC/main.c | 0 openair2/LAYER2/MAC/openair2_proc.c | 0 openair2/LAYER2/MAC/pre_processor.c | 0 openair2/LAYER2/MAC/proto.h | 0 openair2/LAYER2/MAC/ra_procedures.c | 0 openair2/LAYER2/MAC/rar_tools.c | 0 openair2/LAYER2/MAC/ue_procedures.c | 0 openair2/LAYER2/MAC/vars.h | 0 openair2/LAYER2/Makefile.inc | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp.h | 0 .../PDCP_v10.1.0/pdcp_control_primitive.c | 0 .../pdcp_control_primitives_proto_extern.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c | 0 .../LAYER2/PDCP_v10.1.0/pdcp_primitives.c | 0 .../LAYER2/PDCP_v10.1.0/pdcp_primitives.h | 0 .../LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c | 0 .../PDCP_v10.1.0/pdcp_sequence_manager.c | 0 .../PDCP_v10.1.0/pdcp_sequence_manager.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h | 0 .../RLC/AM_v9.3.0/rlc_am_proto_extern.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h | 0 .../RLC/AM_v9.3.0/rlc_am_segments_holes.c | 0 .../RLC/AM_v9.3.0/rlc_am_segments_holes.h | 0 .../RLC/AM_v9.3.0/rlc_am_status_report.c | 0 .../RLC/AM_v9.3.0/rlc_am_status_report.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h | 0 .../AM_v9.3.0/rlc_am_timer_poll_retransmit.c | 0 .../AM_v9.3.0/rlc_am_timer_poll_retransmit.h | 0 .../RLC/AM_v9.3.0/rlc_am_timer_reordering.c | 0 .../RLC/AM_v9.3.0/rlc_am_timer_reordering.h | 0 .../AM_v9.3.0/rlc_am_timer_status_prohibit.c | 0 .../AM_v9.3.0/rlc_am_timer_status_prohibit.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h | 0 .../LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/Makefile | 0 openair2/LAYER2/RLC/UM_v9.3.0/README | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h | 0 .../RLC/UM_v9.3.0/rlc_um_control_primitives.c | 0 .../RLC/UM_v9.3.0/rlc_um_control_primitives.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h | 0 .../RLC/UM_v9.3.0/rlc_um_very_simple_test.c | 0 .../RLC/UM_v9.3.0/rlc_um_very_simple_test.h | 0 openair2/LAYER2/RLC/mac_primitives.h | 0 openair2/LAYER2/RLC/rlc.c | 0 openair2/LAYER2/RLC/rlc.h | 0 openair2/LAYER2/RLC/rlc_def.h | 0 openair2/LAYER2/RLC/rlc_def_lte.h | 0 openair2/LAYER2/RLC/rlc_mac.c | 0 openair2/LAYER2/RLC/rlc_mpls.c | 0 openair2/LAYER2/RLC/rlc_primitives.h | 0 openair2/LAYER2/RLC/rlc_rrc.c | 0 openair2/LAYER2/openair2_proc.c | 0 openair2/LAYER2/register.c | 0 openair2/LAYER2/register.h | 0 .../DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c | 0 .../DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h | 0 .../DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c | 0 .../DRIVER/CELLULAR/NASMT/nasmt_classifier.c | 0 .../NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c | 0 .../DRIVER/CELLULAR/NASMT/nasmt_constant.h | 0 .../NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c | 0 .../DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c | 0 .../DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h | 0 .../NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c | 0 .../NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h | 0 .../NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h | 0 .../NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c | 0 .../DRIVER/CELLULAR/NASMT/nasmt_variables.h | 0 .../DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c | 0 .../DRIVER/CELLULAR/NASRG/nasrg_classifier.c | 0 .../NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c | 0 .../DRIVER/CELLULAR/NASRG/nasrg_constant.h | 0 .../NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c | 0 .../DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c | 0 .../DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h | 0 .../NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c | 0 .../NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h | 0 .../NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h | 0 .../NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c | 0 .../DRIVER/CELLULAR/NASRG/nasrg_variables.h | 0 .../NAS/DRIVER/CELLULAR/NETLTEST/netltest.c | 0 .../DRIVER/CELLULAR/NETLTEST/nettestPDCP.c | 0 openair2/NAS/Makefile.inc | 0 openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h | 0 openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c | 0 .../NAS/SIMU_CELLULAR/rrm_fifo_standalone.c | 0 .../NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c | 0 openair2/NETWORK_DRIVER/LITE/classifier.c | 0 openair2/NETWORK_DRIVER/LITE/common.c | 0 openair2/NETWORK_DRIVER/LITE/constant.h | 0 openair2/NETWORK_DRIVER/LITE/device.c | 0 openair2/NETWORK_DRIVER/LITE/ioctl.c | 0 openair2/NETWORK_DRIVER/LITE/ioctl.h | 0 openair2/NETWORK_DRIVER/LITE/local.h | 0 openair2/NETWORK_DRIVER/LITE/netlink.c | 0 openair2/NETWORK_DRIVER/LITE/proto_extern.h | 0 openair2/NETWORK_DRIVER/LITE/sap.h | 0 openair2/NETWORK_DRIVER/LITE/tool.c | 0 openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile | 0 .../NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c | 0 .../NETWORK_DRIVER/MESH/TESTBENCH/testbench.c | 0 openair2/NETWORK_DRIVER/MESH/classifier.c | 0 openair2/NETWORK_DRIVER/MESH/common.c | 0 openair2/NETWORK_DRIVER/MESH/constant.h | 0 openair2/NETWORK_DRIVER/MESH/device.c | 0 openair2/NETWORK_DRIVER/MESH/ioctl.c | 0 openair2/NETWORK_DRIVER/MESH/ioctl.h | 0 openair2/NETWORK_DRIVER/MESH/local.h | 0 openair2/NETWORK_DRIVER/MESH/mesh.c | 0 openair2/NETWORK_DRIVER/MESH/netlink.c | 0 openair2/NETWORK_DRIVER/MESH/proto_extern.h | 0 .../NETWORK_DRIVER/MESH/rrc_nas_primitives.h | 0 openair2/NETWORK_DRIVER/MESH/sap.h | 0 openair2/NETWORK_DRIVER/MESH/tool.c | 0 openair2/NETWORK_DRIVER/UE_IP/common.c | 0 openair2/NETWORK_DRIVER/UE_IP/constant.h | 0 openair2/NETWORK_DRIVER/UE_IP/device.c | 0 openair2/NETWORK_DRIVER/UE_IP/local.h | 0 openair2/NETWORK_DRIVER/UE_IP/netlink.c | 0 openair2/NETWORK_DRIVER/UE_IP/proto_extern.h | 0 openair2/NETWORK_DRIVER/UE_IP/sap.h | 0 openair2/PHY_INTERFACE/IF_Module.c | 0 openair2/PHY_INTERFACE/IF_Module.h | 0 openair2/PHY_INTERFACE/defs.h | 0 openair2/PHY_INTERFACE/extern.h | 0 openair2/PHY_INTERFACE/mac_phy_primitives.c | 0 openair2/PHY_INTERFACE/mac_phy_primitives.h | 0 openair2/PHY_INTERFACE/vars.h | 0 .../L2_INTERFACE/openair_rrc_L2_interface.c | 0 .../L2_INTERFACE/openair_rrc_L2_interface.h | 0 openair2/RRC/LITE/L2_interface.c | 0 openair2/RRC/LITE/MESSAGES/Makefile | 0 openair2/RRC/LITE/MESSAGES/Makefile.inc | 0 openair2/RRC/LITE/MESSAGES/README.txt | 0 openair2/RRC/LITE/MESSAGES/asn1_msg.c | 4 +- openair2/RRC/LITE/MESSAGES/asn1_msg.h | 0 openair2/RRC/LITE/MESSAGES/asn1_patch | 0 .../EUTRA-InterNodeDefinitions-ah0.asn | 0 .../EUTRA-InterNodeDefinitions-c60.asn | 0 .../ASN1_files/EUTRA-RRC-Definitions-86.asn | 0 .../ASN1_files/EUTRA-RRC-Definitions-ah0.asn | 0 .../ASN1_files/EUTRA-RRC-Definitions-c60.asn | 0 .../ASN1_files/EUTRA-UE-Variables-ah0.asn | 0 .../ASN1_files/EUTRA-UE-Variables-c60.asn | 0 .../MESSAGES/asn1c/ASN1_files/RRC-e10.asn | 0 .../ASN1_files/extract_asn1_from_spec.pl | 0 openair2/RRC/LITE/MESSAGES/rtai_mem.c | 0 openair2/RRC/LITE/MESSAGES/rtai_mem.h | 0 openair2/RRC/LITE/defs.h | 0 openair2/RRC/LITE/extern.h | 0 openair2/RRC/LITE/mesh_top.c | 0 openair2/RRC/LITE/plmn_data.h | 0 openair2/RRC/LITE/proto.h | 0 openair2/RRC/LITE/rrc_2_rrm_msg.c | 0 openair2/RRC/LITE/rrc_UE.c | 0 openair2/RRC/LITE/rrc_UE_ral.c | 0 openair2/RRC/LITE/rrc_UE_ral.h | 0 openair2/RRC/LITE/rrc_common.c | 0 openair2/RRC/LITE/rrc_eNB.c | 0 openair2/RRC/LITE/rrc_eNB_GTPV1U.c | 0 openair2/RRC/LITE/rrc_eNB_GTPV1U.h | 0 openair2/RRC/LITE/rrc_eNB_S1AP.c | 0 openair2/RRC/LITE/rrc_eNB_S1AP.h | 0 openair2/RRC/LITE/rrc_eNB_UE_context.c | 0 openair2/RRC/LITE/rrc_eNB_UE_context.h | 0 openair2/RRC/LITE/rrc_eNB_ral.c | 0 openair2/RRC/LITE/rrc_eNB_ral.h | 0 openair2/RRC/LITE/rrc_rrm_interface.c | 0 openair2/RRC/LITE/rrc_rrm_interface.h | 0 openair2/RRC/LITE/rrc_types.h | 0 openair2/RRC/LITE/rrm_2_rrc_msg.c | 0 openair2/RRC/LITE/utils.c | 0 openair2/RRC/LITE/vars.h | 0 openair2/RRC/NAS/Makefile.inc | 0 openair2/RRC/NAS/nas_config.c | 0 openair2/RRC/NAS/nas_config.h | 0 openair2/RRC/NAS/rb_config.c | 0 openair2/RRC/NAS/rb_config.h | 0 openair2/UTIL/ASYNC_IF/link_manager.c | 0 openair2/UTIL/ASYNC_IF/link_manager.h | 0 openair2/UTIL/ASYNC_IF/message_queue.c | 0 openair2/UTIL/ASYNC_IF/message_queue.h | 0 openair2/UTIL/ASYNC_IF/ringbuffer_queue.c | 0 openair2/UTIL/ASYNC_IF/ringbuffer_queue.h | 0 openair2/UTIL/ASYNC_IF/socket_link.c | 0 openair2/UTIL/ASYNC_IF/socket_link.h | 0 openair2/UTIL/BIGPHYS/bigphys.c | 0 openair2/UTIL/BIGPHYS/defs.h | 0 openair2/UTIL/CLI/cli.c | 0 openair2/UTIL/CLI/cli.h | 0 openair2/UTIL/CLI/cli_cmd.c | 0 openair2/UTIL/CLI/cli_if.h | 0 openair2/UTIL/CLI/cli_server.c | 0 openair2/UTIL/FIFO/pad_list.c | 0 openair2/UTIL/FIFO/pad_list.h | 0 openair2/UTIL/FIFO/types.h | 0 .../LFDS/liblfds6.1.1/liblfds611/building.txt | 0 .../UTIL/LFDS/liblfds6.1.1/liblfds611/dirs | 0 .../liblfds6.1.1/liblfds611/inc/liblfds611.h | 0 .../liblfds6.1.1/liblfds611/liblfds611.def | 0 .../liblfds6.1.1/liblfds611/liblfds611.sln | 0 .../liblfds6.1.1/liblfds611/liblfds611.vcproj | 0 .../liblfds6.1.1/liblfds611/makefile.linux | 0 .../liblfds6.1.1/liblfds611/makefile.windows | 0 .../LFDS/liblfds6.1.1/liblfds611/readme.txt | 0 .../runme_before_win_kernel_build_readme.txt | 0 ...me_before_win_kernel_dynamic_lib_build.bat | 0 ...nme_before_win_kernel_static_lib_build.bat | 0 .../liblfds6.1.1/liblfds611/sources.dynamic | 0 .../liblfds6.1.1/liblfds611/sources.static | 0 .../LFDS/liblfds6.1.1/liblfds611/src/dirs | 0 .../liblfds611/src/driver_entry.c | 0 .../liblfds611/src/driver_entry_readme.txt | 0 .../lfds611_abstraction_cas.c | 0 .../lfds611_abstraction_dcas.c | 0 .../lfds611_abstraction_free.c | 0 .../lfds611_abstraction_increment.c | 0 .../lfds611_abstraction_internal_body.h | 0 .../lfds611_abstraction_internal_wrapper.h | 0 .../lfds611_abstraction_malloc.c | 0 .../lfds611_freelist_delete.c | 0 .../lfds611_freelist_get_and_set.c | 0 .../lfds611_freelist_internal.h | 0 .../lfds611_freelist/lfds611_freelist_new.c | 0 .../lfds611_freelist_pop_push.c | 0 .../lfds611_freelist/lfds611_freelist_query.c | 0 ...lfds611_liblfds_abstraction_test_helpers.c | 0 .../lfds611_liblfds_aligned_free.c | 0 .../lfds611_liblfds_aligned_malloc.c | 0 .../lfds611_liblfds_internal.h | 0 .../lfds611_liblfds_readme.txt | 0 .../src/lfds611_queue/lfds611_queue_delete.c | 0 .../lfds611_queue/lfds611_queue_internal.h | 0 .../src/lfds611_queue/lfds611_queue_new.c | 0 .../src/lfds611_queue/lfds611_queue_query.c | 0 .../src/lfds611_queue/lfds611_queue_queue.c | 0 .../lfds611_ringbuffer_delete.c | 0 .../lfds611_ringbuffer_get_and_put.c | 0 .../lfds611_ringbuffer_internal.h | 0 .../lfds611_ringbuffer_new.c | 0 .../lfds611_ringbuffer_query.c | 0 .../src/lfds611_slist/lfds611_slist_delete.c | 0 .../lfds611_slist/lfds611_slist_get_and_set.c | 0 .../lfds611_slist/lfds611_slist_internal.h | 0 .../src/lfds611_slist/lfds611_slist_link.c | 0 .../src/lfds611_slist/lfds611_slist_new.c | 0 .../src/lfds611_stack/lfds611_stack_delete.c | 0 .../lfds611_stack/lfds611_stack_internal.h | 0 .../src/lfds611_stack/lfds611_stack_new.c | 0 .../lfds611_stack/lfds611_stack_push_pop.c | 0 .../src/lfds611_stack/lfds611_stack_query.c | 0 .../liblfds611/src/liblfds611_internal.h | 0 .../UTIL/LFDS/liblfds6.1.1/test/building.txt | 0 .../LFDS/liblfds6.1.1/test/makefile.linux | 0 .../LFDS/liblfds6.1.1/test/makefile.windows | 0 .../LFDS/liblfds6.1.1/test/src/abstraction.h | 0 .../test/src/abstraction_cpu_count.c | 0 .../test/src/abstraction_thread_start.c | 0 .../test/src/abstraction_thread_wait.c | 0 .../test/src/benchmark_freelist.c | 0 .../liblfds6.1.1/test/src/benchmark_queue.c | 0 .../test/src/benchmark_ringbuffer.c | 0 .../liblfds6.1.1/test/src/benchmark_stack.c | 0 .../LFDS/liblfds6.1.1/test/src/internal.h | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/main.c | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/misc.c | 0 .../LFDS/liblfds6.1.1/test/src/structures.h | 0 .../liblfds6.1.1/test/src/test_abstraction.c | 0 .../liblfds6.1.1/test/src/test_freelist.c | 0 .../LFDS/liblfds6.1.1/test/src/test_queue.c | 0 .../liblfds6.1.1/test/src/test_ringbuffer.c | 0 .../LFDS/liblfds6.1.1/test/src/test_slist.c | 0 .../LFDS/liblfds6.1.1/test/src/test_stack.c | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln | 0 .../UTIL/LFDS/liblfds6.1.1/test/test.vcproj | 0 .../liblfds700/build/gcc_and_gnumake/Makefile | 0 .../build/gcc_kbuild_and_gnumake/Kbuild | 0 .../build/gcc_kbuild_and_gnumake/Makefile | 0 .../liblfds700.def | 0 .../sdk_for_windows_7_and_gnumake/makefile | 0 .../liblfds700.def | 0 .../liblfds700.sln | 0 .../liblfds700.vcxproj | 0 .../liblfds700.vcxproj.filters | 0 .../liblfds700.vcxproj.user | 0 .../driver_entry.c | 0 .../liblfds700.def | 0 .../liblfds700.sln | 0 .../liblfds700.vcxproj | 0 .../liblfds700.vcxproj.filters | 0 .../liblfds700.vcxproj.user | 0 .../driver_entry.c | 0 .../liblfds700.def | 0 .../liblfds700.sln | 0 .../liblfds700.vcxproj | 0 .../liblfds700.vcxproj.filters | 0 .../liblfds700.vcxproj.user | 0 .../liblfds700/build/wdk_7.1/dirs | 0 ..._entry_renamed_to_avoid_compiler_warning.c | 0 .../liblfds700/build/wdk_7.1/liblfds700.def | 0 .../readme_before_win_kernel_build.txt | 0 ...me_before_win_kernel_dynamic_lib_build.bat | 0 ...nme_before_win_kernel_static_lib_build.bat | 0 .../liblfds700/build/wdk_7.1/sources.dynamic | 0 .../liblfds700/build/wdk_7.1/sources.static | 0 .../liblfds7.0.0/liblfds700/inc/liblfds700.h | 0 .../lfds700_btree_addonly_unbalanced.h | 0 .../inc/liblfds700/lfds700_freelist.h | 0 .../inc/liblfds700/lfds700_hash_addonly.h | 0 ...fds700_list_addonly_ordered_singlylinked.h | 0 ...s700_list_addonly_singlylinked_unordered.h | 0 .../liblfds700/inc/liblfds700/lfds700_misc.h | 0 ...ds700_porting_abstraction_layer_compiler.h | 0 ...rting_abstraction_layer_operating_system.h | 0 ...s700_porting_abstraction_layer_processor.h | 0 .../liblfds700/inc/liblfds700/lfds700_queue.h | 0 ...ue_bounded_singleconsumer_singleproducer.h | 0 .../inc/liblfds700/lfds700_ringbuffer.h | 0 .../liblfds700/inc/liblfds700/lfds700_stack.h | 0 ...lfds700_btree_addonly_unbalanced_cleanup.c | 0 .../lfds700_btree_addonly_unbalanced_get.c | 0 .../lfds700_btree_addonly_unbalanced_init.c | 0 .../lfds700_btree_addonly_unbalanced_insert.c | 0 ...fds700_btree_addonly_unbalanced_internal.h | 0 .../lfds700_btree_addonly_unbalanced_query.c | 0 .../lfds700_freelist_cleanup.c | 0 .../lfds700_freelist/lfds700_freelist_init.c | 0 .../lfds700_freelist_internal.h | 0 .../lfds700_freelist/lfds700_freelist_pop.c | 0 .../lfds700_freelist/lfds700_freelist_push.c | 0 .../lfds700_freelist/lfds700_freelist_query.c | 0 .../lfds700_hash_addonly_cleanup.c | 0 .../lfds700_hash_addonly_get.c | 0 .../lfds700_hash_addonly_init.c | 0 .../lfds700_hash_addonly_insert.c | 0 .../lfds700_hash_addonly_internal.h | 0 .../lfds700_hash_addonly_iterate.c | 0 .../lfds700_hash_addonly_query.c | 0 ...ist_addonly_ordered_singlylinked_cleanup.c | 0 ...00_list_addonly_ordered_singlylinked_get.c | 0 ...0_list_addonly_ordered_singlylinked_init.c | 0 ...list_addonly_ordered_singlylinked_insert.c | 0 ...st_addonly_ordered_singlylinked_internal.h | 0 ..._list_addonly_ordered_singlylinked_query.c | 0 ...t_addonly_singlylinked_unordered_cleanup.c | 0 ..._list_addonly_singlylinked_unordered_get.c | 0 ...list_addonly_singlylinked_unordered_init.c | 0 ...st_addonly_singlylinked_unordered_insert.c | 0 ..._addonly_singlylinked_unordered_internal.h | 0 ...ist_addonly_singlylinked_unordered_query.c | 0 .../src/lfds700_misc/lfds700_misc_cleanup.c | 0 .../src/lfds700_misc/lfds700_misc_globals.c | 0 .../src/lfds700_misc/lfds700_misc_init.c | 0 .../src/lfds700_misc/lfds700_misc_internal.h | 0 .../src/lfds700_misc/lfds700_misc_prng.c | 0 .../src/lfds700_misc/lfds700_misc_query.c | 0 .../src/lfds700_queue/lfds700_queue_cleanup.c | 0 .../src/lfds700_queue/lfds700_queue_dequeue.c | 0 .../src/lfds700_queue/lfds700_queue_enqueue.c | 0 .../src/lfds700_queue/lfds700_queue_init.c | 0 .../lfds700_queue/lfds700_queue_internal.h | 0 .../src/lfds700_queue/lfds700_queue_query.c | 0 ...ed_singleconsumer_singleproducer_cleanup.c | 0 ...ed_singleconsumer_singleproducer_dequeue.c | 0 ...ed_singleconsumer_singleproducer_enqueue.c | 0 ...unded_singleconsumer_singleproducer_init.c | 0 ...d_singleconsumer_singleproducer_internal.h | 0 ...nded_singleconsumer_singleproducer_query.c | 0 .../lfds700_ringbuffer_cleanup.c | 0 .../lfds700_ringbuffer_init.c | 0 .../lfds700_ringbuffer_internal.h | 0 .../lfds700_ringbuffer_query.c | 0 .../lfds700_ringbuffer_read.c | 0 .../lfds700_ringbuffer_write.c | 0 .../src/lfds700_stack/lfds700_stack_cleanup.c | 0 .../src/lfds700_stack/lfds700_stack_init.c | 0 .../lfds700_stack/lfds700_stack_internal.h | 0 .../src/lfds700_stack/lfds700_stack_pop.c | 0 .../src/lfds700_stack/lfds700_stack_push.c | 0 .../src/lfds700_stack/lfds700_stack_query.c | 0 .../liblfds700/src/liblfds700_internal.h | 0 .../test/build/gcc_and_gnumake/Makefile | 0 .../sdk_for_windows_7_and_gnumake/makefile | 0 .../visual_studio_professional_2012/test.sln | 0 .../test.vcxproj | 0 .../test.vcxproj.filters | 0 .../test.vcxproj.user | 0 .../LFDS/liblfds7.0.0/test/src/internal.h | 0 .../UTIL/LFDS/liblfds7.0.0/test/src/main.c | 0 .../UTIL/LFDS/liblfds7.0.0/test/src/misc.c | 0 .../test_lfds700_btree_addonly_unbalanced.c | 0 ...ds700_btree_addonly_unbalanced_alignment.c | 0 ...tree_addonly_unbalanced_random_adds_fail.c | 0 ...nbalanced_random_adds_fail_and_overwrite.c | 0 ...addonly_unbalanced_random_adds_overwrite.c | 0 .../test/src/test_lfds700_freelist.c | 0 .../src/test_lfds700_freelist_alignment.c | 0 .../test/src/test_lfds700_freelist_popping.c | 0 ...est_lfds700_freelist_popping_and_pushing.c | 0 .../test/src/test_lfds700_freelist_pushing.c | 0 ...ds700_freelist_rapid_popping_and_pushing.c | 0 .../test/src/test_lfds700_hash_addonly.c | 0 .../src/test_lfds700_hash_addonly_alignment.c | 0 .../src/test_lfds700_hash_addonly_iterate.c | 0 ...st_lfds700_hash_addonly_random_adds_fail.c | 0 ...h_addonly_random_adds_fail_and_overwrite.c | 0 ...ds700_hash_addonly_random_adds_overwrite.c | 0 ...fds700_list_addonly_ordered_singlylinked.c | 0 ...t_addonly_ordered_singlylinked_alignment.c | 0 ...addonly_ordered_singlylinked_new_ordered.c | 0 ...red_singlylinked_new_ordered_with_cursor.c | 0 ...s700_list_addonly_singlylinked_unordered.c | 0 ...addonly_singlylinked_unordered_alignment.c | 0 ...addonly_singlylinked_unordered_new_after.c | 0 ...t_addonly_singlylinked_unordered_new_end.c | 0 ...addonly_singlylinked_unordered_new_start.c | 0 ...lfds700_porting_abstraction_layer_atomic.c | 0 ...700_porting_abstraction_layer_atomic_cas.c | 0 ...00_porting_abstraction_layer_atomic_dcas.c | 0 ...orting_abstraction_layer_atomic_exchange.c | 0 .../test/src/test_lfds700_queue.c | 0 .../test/src/test_lfds700_queue_alignment.c | 0 ...ue_bounded_singleconsumer_singleproducer.c | 0 ..._singleconsumer_singleproducer_dequeuing.c | 0 ..._singleconsumer_singleproducer_enqueuing.c | 0 ...r_singleproducer_enqueuing_and_dequeuing.c | 0 .../test/src/test_lfds700_queue_dequeuing.c | 0 .../test/src/test_lfds700_queue_enqueuing.c | 0 ...st_lfds700_queue_enqueuing_and_dequeuing.c | 0 ..._queue_enqueuing_and_dequeuing_with_free.c | 0 ...uing_with_malloc_and_dequeuing_with_free.c | 0 ...s700_queue_rapid_enqueuing_and_dequeuing.c | 0 .../test/src/test_lfds700_ringbuffer.c | 0 .../src/test_lfds700_ringbuffer_reading.c | 0 ...t_lfds700_ringbuffer_reading_and_writing.c | 0 .../src/test_lfds700_ringbuffer_writing.c | 0 .../test/src/test_lfds700_stack.c | 0 .../test/src/test_lfds700_stack_alignment.c | 0 .../test/src/test_lfds700_stack_popping.c | 0 .../test_lfds700_stack_popping_and_pushing.c | 0 .../test/src/test_lfds700_stack_pushing.c | 0 ..._lfds700_stack_rapid_popping_and_pushing.c | 0 ...g_abstraction_layer_get_logical_core_ids.c | 0 ...rting_abstraction_layer_operating_system.h | 0 ...t_porting_abstraction_layer_thread_start.c | 0 ...st_porting_abstraction_layer_thread_wait.c | 0 .../LFDS/liblfds7.0.0/test/src/util_cmdline.c | 0 .../LFDS/liblfds7.0.0/test/src/util_cmdline.h | 0 .../test/src/util_memory_helpers.c | 0 .../test/src/util_memory_helpers.h | 0 .../test/src/util_thread_starter.c | 0 .../test/src/util_thread_starter.h | 0 openair2/UTIL/LISTS/list.c | 0 openair2/UTIL/LISTS/list.h | 0 openair2/UTIL/LISTS/list2.c | 0 openair2/UTIL/LOG/README.txt | 0 openair2/UTIL/LOG/log.c | 0 openair2/UTIL/LOG/log.h | 0 openair2/UTIL/LOG/log_extern.h | 0 openair2/UTIL/LOG/log_if.h | 0 openair2/UTIL/LOG/vcd_signal_dumper.c | 0 openair2/UTIL/LOG/vcd_signal_dumper.h | 0 openair2/UTIL/MATH/crc_byte.c | 0 openair2/UTIL/MATH/oml.c | 0 openair2/UTIL/MATH/oml.h | 0 openair2/UTIL/MATH/random.c | 0 openair2/UTIL/MATH/random_proto_extern.h | 0 openair2/UTIL/MATH/taus.c | 0 openair2/UTIL/MEM/mem_block.c | 0 openair2/UTIL/MEM/mem_block.h | 0 openair2/UTIL/MEM/mem_mngt.c | 0 openair2/UTIL/MEM/mem_mngt_proto_extern.h | 0 openair2/UTIL/MEM/mem_pool.h | 0 openair2/UTIL/Makefile.inc | 0 openair2/UTIL/OCG/.directory | 0 openair2/UTIL/OCG/Doxyfile | 0 openair2/UTIL/OCG/OCG.c | 0 openair2/UTIL/OCG/OCG.h | 0 openair2/UTIL/OCG/OCG_call_emu.c | 0 openair2/UTIL/OCG/OCG_call_emu.h | 0 openair2/UTIL/OCG/OCG_config_mobi.c | 0 openair2/UTIL/OCG/OCG_config_mobi.h | 0 openair2/UTIL/OCG/OCG_create_dir.c | 0 openair2/UTIL/OCG/OCG_create_dir.h | 0 openair2/UTIL/OCG/OCG_detect_file.c | 0 openair2/UTIL/OCG/OCG_detect_file.h | 0 openair2/UTIL/OCG/OCG_extern.h | 0 openair2/UTIL/OCG/OCG_generate_report.c | 0 openair2/UTIL/OCG/OCG_generate_report.h | 0 openair2/UTIL/OCG/OCG_get_opt.c | 0 openair2/UTIL/OCG/OCG_get_opt.h | 0 openair2/UTIL/OCG/OCG_if.h | 0 openair2/UTIL/OCG/OCG_parse_XML.c | 0 openair2/UTIL/OCG/OCG_parse_XML.h | 0 openair2/UTIL/OCG/OCG_parse_filename.c | 0 openair2/UTIL/OCG/OCG_parse_filename.h | 0 openair2/UTIL/OCG/OCG_save_XML.c | 0 openair2/UTIL/OCG/OCG_save_XML.h | 0 openair2/UTIL/OCG/OCG_vars.h | 0 .../UTIL/OCG/XML_to_mobigen/RWMEmulator.xml | 0 openair2/UTIL/OCG/eurecom_20110208110244.xml | 0 .../OCG/local_XML/Lusheng.20110208110244.xml | 0 openair2/UTIL/OCG/makefile | 0 openair2/UTIL/OCG/readme.txt | 0 openair2/UTIL/OCG/temp_output/OCG_report.xml | 0 openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf | Bin openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf | Bin openair2/UTIL/OMG/TRACE/README.TXT | 0 openair2/UTIL/OMG/TRACE/example_trace.tr | 0 openair2/UTIL/OMG/TRACE/handover.tr | 0 openair2/UTIL/OMG/TRACE/handover_1ue.tr | 0 openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr | 0 openair2/UTIL/OMG/TRACE/mobility_2ues.tr | 0 openair2/UTIL/OMG/TRACE/mobility_3ues.tr | 0 openair2/UTIL/OMG/TRACE/regular.tr | 0 openair2/UTIL/OMG/TRACE/static_1enb.tr | 0 openair2/UTIL/OMG/TRACE/static_2ues.tr | 0 openair2/UTIL/OMG/TRACE/zero_speed.tr | 0 openair2/UTIL/OMG/common.c | 0 openair2/UTIL/OMG/defs.h | 0 openair2/UTIL/OMG/grid.c | 0 openair2/UTIL/OMG/grid.h | 0 openair2/UTIL/OMG/job.c | 0 openair2/UTIL/OMG/makefile | 0 openair2/UTIL/OMG/makefile_old | 0 openair2/UTIL/OMG/makefile_standalone | 0 openair2/UTIL/OMG/mobility.txt | 0 openair2/UTIL/OMG/mobility_parser.c | 0 openair2/UTIL/OMG/mobility_parser.h | 0 openair2/UTIL/OMG/omg.c | 0 openair2/UTIL/OMG/omg.h | 0 openair2/UTIL/OMG/omg_constants.h | 0 openair2/UTIL/OMG/omg_hashtable.c | 0 openair2/UTIL/OMG/omg_hashtable.h | 0 openair2/UTIL/OMG/omg_vars.h | 0 openair2/UTIL/OMG/rwalk.c | 0 openair2/UTIL/OMG/rwalk.h | 0 openair2/UTIL/OMG/rwp.c | 0 openair2/UTIL/OMG/rwp.h | 0 openair2/UTIL/OMG/static.c | 0 openair2/UTIL/OMG/static.h | 0 openair2/UTIL/OMG/steadystaterwp.c | 0 openair2/UTIL/OMG/steadystaterwp.h | 0 openair2/UTIL/OMG/trace.c | 0 openair2/UTIL/OMG/trace.h | 0 openair2/UTIL/OMG/trace_hashtable.c | 0 openair2/UTIL/OMG/trace_hashtable.h | 0 openair2/UTIL/OMV/README.txt | 0 openair2/UTIL/OMV/blue.png | Bin openair2/UTIL/OMV/communicationthread.cpp | 0 openair2/UTIL/OMV/communicationthread.h | 0 openair2/UTIL/OMV/green.png | Bin openair2/UTIL/OMV/jpg.jpeg | Bin openair2/UTIL/OMV/mus.png | Bin openair2/UTIL/OMV/mywindow.cpp | 0 openair2/UTIL/OMV/mywindow.h | 0 openair2/UTIL/OMV/new.jpg | Bin openair2/UTIL/OMV/new2.jpg | Bin openair2/UTIL/OMV/omv.cpp | 0 openair2/UTIL/OMV/openglwidget.cpp | 0 openair2/UTIL/OMV/openglwidget.h | 0 openair2/UTIL/OMV/red.png | Bin openair2/UTIL/OMV/structures.h | 0 openair2/UTIL/OMV/white.png | Bin openair2/UTIL/OMV/wow.png | Bin openair2/UTIL/OPT/README.txt | 0 openair2/UTIL/OPT/mac_pcap.h | 0 openair2/UTIL/OPT/opt.h | 0 openair2/UTIL/OPT/packet-mac-lte.h | 0 openair2/UTIL/OPT/probe.c | 0 openair2/UTIL/OPT/vars.h | 0 openair2/UTIL/OSA/README | 0 openair2/UTIL/OSA/osa_defs.h | 0 openair2/UTIL/OSA/osa_internal.h | 0 openair2/UTIL/OSA/osa_key_deriver.c | 0 openair2/UTIL/OSA/osa_rijndael.c | 0 openair2/UTIL/OSA/osa_rijndael.h | 0 openair2/UTIL/OSA/osa_snow3g.c | 0 openair2/UTIL/OSA/osa_snow3g.h | 0 openair2/UTIL/OSA/osa_stream_eea.c | 0 openair2/UTIL/OSA/osa_stream_eia.c | 0 openair2/UTIL/OSD/OCG.pid | 0 openair2/UTIL/OSD/OpenAirEmu.conf | 0 openair2/UTIL/OSD/Platform_is_running.php | 0 openair2/UTIL/OSD/README.txt | 0 openair2/UTIL/OSD/css/blueprint.css | 0 openair2/UTIL/OSD/css/fix-ie-rtl.css | 0 openair2/UTIL/OSD/css/fix-ie.css | 0 openair2/UTIL/OSD/css/ie.css | 0 openair2/UTIL/OSD/css/ie6.css | 0 openair2/UTIL/OSD/css/images/false.png | Bin openair2/UTIL/OSD/css/images/false2.png | Bin openair2/UTIL/OSD/css/images/lquote.png | Bin openair2/UTIL/OSD/css/images/true.png | Bin openair2/UTIL/OSD/css/images/warning.png | Bin openair2/UTIL/OSD/css/print.css | 0 openair2/UTIL/OSD/css/screen.css | 0 openair2/UTIL/OSD/css/style.css | 0 openair2/UTIL/OSD/form.php | 0 openair2/UTIL/OSD/header.php | 0 openair2/UTIL/OSD/httpd-result.conf | 0 openair2/UTIL/OSD/index.php | 0 openair2/UTIL/OSD/jquery/jquery.js | 0 openair2/UTIL/OSD/recep.php | 0 openair2/UTIL/OSD/toto.php | 0 openair2/UTIL/OTG/Doxyfile | 0 openair2/UTIL/OTG/help_OTGplot.txt | 0 openair2/UTIL/OTG/main.c | 0 openair2/UTIL/OTG/makefile | 0 openair2/UTIL/OTG/otg.c | 0 openair2/UTIL/OTG/otg.h | 0 openair2/UTIL/OTG/otg_config.h | 0 openair2/UTIL/OTG/otg_defs.h | 0 openair2/UTIL/OTG/otg_externs.h | 0 openair2/UTIL/OTG/otg_form.c | 0 openair2/UTIL/OTG/otg_form.h | 0 openair2/UTIL/OTG/otg_kpi.c | 0 openair2/UTIL/OTG/otg_kpi.h | 0 openair2/UTIL/OTG/otg_models.c | 0 openair2/UTIL/OTG/otg_models.h | 0 openair2/UTIL/OTG/otg_rx.c | 0 openair2/UTIL/OTG/otg_rx.h | 0 openair2/UTIL/OTG/otg_rx_socket.c | 0 openair2/UTIL/OTG/otg_rx_socket.h | 0 openair2/UTIL/OTG/otg_tx.c | 0 openair2/UTIL/OTG/otg_tx.h | 0 openair2/UTIL/OTG/otg_tx_socket.c | 0 openair2/UTIL/OTG/otg_tx_socket.h | 0 openair2/UTIL/OTG/otg_vars.h | 0 openair2/UTIL/OTG/traffic_config.h | 0 openair2/UTIL/TIMER/umts_timer.c | 0 openair2/UTIL/TIMER/umts_timer.h | 0 openair2/UTIL/TIMER/umts_timer_proto_extern.h | 0 openair2/UTIL/TIMER/umts_timer_struct.h | 0 openair2/UTIL/TRACE/fifo_printf.c | 0 openair2/UTIL/TRACE/fifo_printf.h | 0 .../UTIL/TRACE/fifo_printf_proto_extern.h | 0 openair2/UTIL/TRACE/print.h | 0 .../X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc | 0 .../ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn | 0 .../ASN1/R.UNKNOWN/X2AP-Constants.asn | 0 .../ASN1/R.UNKNOWN/X2AP-Containers.asn | 0 .../X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn | 0 .../ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn | 0 .../ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn | 0 .../X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn | 0 openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py | 0 openair2/X2AP/x2ap.c | 0 openair2/X2AP/x2ap.h | 0 openair2/X2AP/x2ap_common.c | 0 openair2/X2AP/x2ap_common.h | 0 openair3/COMMON/as_message.h | 0 openair3/COMMON/common_types.h | 0 openair3/COMMON/gtpv1_u_messages_def.h | 0 openair3/COMMON/gtpv1_u_messages_types.h | 0 openair3/COMMON/intertask_interface_conf.h | 0 openair3/COMMON/messages_def.h | 0 openair3/COMMON/messages_types.h | 0 openair3/COMMON/nas_messages_def.h | 0 openair3/COMMON/nas_messages_types.h | 0 openair3/COMMON/s1ap_messages_def.h | 0 openair3/COMMON/s1ap_messages_types.h | 0 openair3/COMMON/sctp_messages_def.h | 0 openair3/COMMON/sctp_messages_types.h | 0 openair3/COMMON/security_types.h | 0 openair3/COMMON/tasks_def.h | 0 openair3/COMMON/udp_messages_def.h | 0 openair3/COMMON/udp_messages_types.h | 0 openair3/DOCS/DOXYGEN/Doxyfile.in | 0 openair3/DOCS/DOXYGEN/Makefile.am | 0 .../Latex/DefaultBearer/DefaultBearer.pdf | Bin .../Latex/DefaultBearer/DefaultBearer.tex | 0 openair3/DOCS/Latex/EPC/EPC.pdf | Bin openair3/DOCS/Latex/EPC/EPC.tex | 0 openair3/DOCS/Latex/EPC/Makefile | 0 openair3/DOCS/Makefile.am | 0 openair3/GTPV1-U/Makefile.am | 0 openair3/GTPV1-U/Makefile.eNB | 0 openair3/GTPV1-U/gtpv1u.h | 0 openair3/GTPV1-U/gtpv1u_eNB.c | 0 openair3/GTPV1-U/gtpv1u_eNB_defs.h | 0 openair3/GTPV1-U/gtpv1u_eNB_task.h | 0 openair3/GTPV1-U/gtpv1u_sgw_defs.h | 0 openair3/GTPV1-U/gtpv1u_task.c | 0 openair3/GTPV1-U/gtpv1u_teid_pool.c | 0 openair3/GTPV1-U/nw-gtpv1u/AUTHORS | 0 openair3/GTPV1-U/nw-gtpv1u/COPYING | 0 openair3/GTPV1-U/nw-gtpv1u/ChangeLog | 0 openair3/GTPV1-U/nw-gtpv1u/NEWS | 0 openair3/GTPV1-U/nw-gtpv1u/README | 0 .../GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h | 0 .../nw-gtpv1u/include/NwGtpv1uPrivate.h | 0 .../GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h | 0 .../include/NwGtpv1uTunnelEndPoint.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h | 0 .../GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h | 0 .../GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h | 0 .../GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h | 0 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c | 0 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c | 0 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c | 0 .../nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c | 0 .../GTPV1-U/nw-gtpv1u/test-app/Makefile.am | 0 .../GTPV1-U/nw-gtpv1u/test-app/Makefile.in | 0 .../test-app/nw-helloworld/Makefile.am | 0 .../test-app/nw-helloworld/Makefile.in | 0 .../nw-gtpv1u/test-app/nw-helloworld/NwEvt.h | 0 .../nw-helloworld/NwMiniLogMgrEntity.c | 0 .../nw-helloworld/NwMiniLogMgrEntity.h | 0 .../nw-helloworld/NwMiniTmrMgrEntity.c | 0 .../nw-helloworld/NwMiniTmrMgrEntity.h | 0 .../test-app/nw-helloworld/NwMiniUdpEntity.c | 0 .../test-app/nw-helloworld/NwMiniUdpEntity.h | 0 .../test-app/nw-helloworld/NwMiniUlpEntity.c | 0 .../test-app/nw-helloworld/NwMiniUlpEntity.h | 0 .../test-app/nw-helloworld/helloworld.c | 0 openair3/NAS/COMMON/API/NETWORK/Makefile | 0 openair3/NAS/COMMON/API/NETWORK/as_message.c | 0 openair3/NAS/COMMON/API/NETWORK/as_message.h | 0 openair3/NAS/COMMON/API/NETWORK/l2_message.h | 0 openair3/NAS/COMMON/API/NETWORK/nas_message.c | 0 openair3/NAS/COMMON/API/NETWORK/nas_message.h | 0 openair3/NAS/COMMON/API/NETWORK/network_api.c | 0 openair3/NAS/COMMON/API/NETWORK/network_api.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachAccept.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachAccept.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachComplete.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachComplete.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachReject.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachReject.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachRequest.h | 0 .../COMMON/EMM/MSG/AuthenticationFailure.c | 0 .../COMMON/EMM/MSG/AuthenticationFailure.h | 0 .../NAS/COMMON/EMM/MSG/AuthenticationReject.c | 0 .../NAS/COMMON/EMM/MSG/AuthenticationReject.h | 0 .../COMMON/EMM/MSG/AuthenticationRequest.c | 0 .../COMMON/EMM/MSG/AuthenticationRequest.h | 0 .../COMMON/EMM/MSG/AuthenticationResponse.c | 0 .../COMMON/EMM/MSG/AuthenticationResponse.h | 0 .../COMMON/EMM/MSG/CsServiceNotification.c | 0 .../COMMON/EMM/MSG/CsServiceNotification.h | 0 openair3/NAS/COMMON/EMM/MSG/DetachAccept.c | 0 openair3/NAS/COMMON/EMM/MSG/DetachAccept.h | 0 openair3/NAS/COMMON/EMM/MSG/DetachRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/DetachRequest.h | 0 .../NAS/COMMON/EMM/MSG/DownlinkNasTransport.c | 0 .../NAS/COMMON/EMM/MSG/DownlinkNasTransport.h | 0 openair3/NAS/COMMON/EMM/MSG/EmmInformation.c | 0 openair3/NAS/COMMON/EMM/MSG/EmmInformation.h | 0 openair3/NAS/COMMON/EMM/MSG/EmmStatus.c | 0 openair3/NAS/COMMON/EMM/MSG/EmmStatus.h | 0 .../COMMON/EMM/MSG/ExtendedServiceRequest.c | 0 .../COMMON/EMM/MSG/ExtendedServiceRequest.h | 0 .../COMMON/EMM/MSG/GutiReallocationCommand.c | 0 .../COMMON/EMM/MSG/GutiReallocationCommand.h | 0 .../COMMON/EMM/MSG/GutiReallocationComplete.c | 0 .../COMMON/EMM/MSG/GutiReallocationComplete.h | 0 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h | 0 .../NAS/COMMON/EMM/MSG/IdentityResponse.c | 0 .../NAS/COMMON/EMM/MSG/IdentityResponse.h | 0 openair3/NAS/COMMON/EMM/MSG/Makefile | 0 .../COMMON/EMM/MSG/NASSecurityModeCommand.h | 0 .../COMMON/EMM/MSG/NASSecurityModeComplete.h | 0 .../NAS/COMMON/EMM/MSG/SecurityModeCommand.c | 0 .../NAS/COMMON/EMM/MSG/SecurityModeComplete.c | 0 .../NAS/COMMON/EMM/MSG/SecurityModeReject.c | 0 .../NAS/COMMON/EMM/MSG/SecurityModeReject.h | 0 openair3/NAS/COMMON/EMM/MSG/ServiceReject.c | 0 openair3/NAS/COMMON/EMM/MSG/ServiceReject.h | 0 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h | 0 .../COMMON/EMM/MSG/TrackingAreaUpdateAccept.c | 0 .../COMMON/EMM/MSG/TrackingAreaUpdateAccept.h | 0 .../EMM/MSG/TrackingAreaUpdateComplete.c | 0 .../EMM/MSG/TrackingAreaUpdateComplete.h | 0 .../COMMON/EMM/MSG/TrackingAreaUpdateReject.c | 0 .../COMMON/EMM/MSG/TrackingAreaUpdateReject.h | 0 .../EMM/MSG/TrackingAreaUpdateRequest.c | 0 .../EMM/MSG/TrackingAreaUpdateRequest.h | 0 .../NAS/COMMON/EMM/MSG/UplinkNasTransport.c | 0 .../NAS/COMMON/EMM/MSG/UplinkNasTransport.h | 0 openair3/NAS/COMMON/EMM/MSG/emm_cause.h | 0 openair3/NAS/COMMON/EMM/MSG/emm_msg.c | 0 openair3/NAS/COMMON/EMM/MSG/emm_msg.h | 0 openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h | 0 .../ActivateDedicatedEpsBearerContextAccept.c | 0 .../ActivateDedicatedEpsBearerContextAccept.h | 0 .../ActivateDedicatedEpsBearerContextReject.c | 0 .../ActivateDedicatedEpsBearerContextReject.h | 0 ...ActivateDedicatedEpsBearerContextRequest.c | 0 ...ActivateDedicatedEpsBearerContextRequest.h | 0 .../ActivateDefaultEpsBearerContextAccept.c | 0 .../ActivateDefaultEpsBearerContextAccept.h | 0 .../ActivateDefaultEpsBearerContextReject.c | 0 .../ActivateDefaultEpsBearerContextReject.h | 0 .../ActivateDefaultEpsBearerContextRequest.c | 0 .../ActivateDefaultEpsBearerContextRequest.h | 0 .../ESM/MSG/BearerResourceAllocationReject.c | 0 .../ESM/MSG/BearerResourceAllocationReject.h | 0 .../ESM/MSG/BearerResourceAllocationRequest.c | 0 .../ESM/MSG/BearerResourceAllocationRequest.h | 0 .../MSG/BearerResourceModificationReject.c | 0 .../MSG/BearerResourceModificationReject.h | 0 .../MSG/BearerResourceModificationRequest.c | 0 .../MSG/BearerResourceModificationRequest.h | 0 .../MSG/DeactivateEpsBearerContextAccept.c | 0 .../MSG/DeactivateEpsBearerContextAccept.h | 0 .../MSG/DeactivateEpsBearerContextRequest.c | 0 .../MSG/DeactivateEpsBearerContextRequest.h | 0 .../COMMON/ESM/MSG/EsmInformationRequest.c | 0 .../COMMON/ESM/MSG/EsmInformationRequest.h | 0 .../COMMON/ESM/MSG/EsmInformationResponse.c | 0 .../COMMON/ESM/MSG/EsmInformationResponse.h | 0 openair3/NAS/COMMON/ESM/MSG/EsmStatus.c | 0 openair3/NAS/COMMON/ESM/MSG/EsmStatus.h | 0 openair3/NAS/COMMON/ESM/MSG/Makefile | 0 .../ESM/MSG/ModifyEpsBearerContextAccept.c | 0 .../ESM/MSG/ModifyEpsBearerContextAccept.h | 0 .../ESM/MSG/ModifyEpsBearerContextReject.c | 0 .../ESM/MSG/ModifyEpsBearerContextReject.h | 0 .../ESM/MSG/ModifyEpsBearerContextRequest.c | 0 .../ESM/MSG/ModifyEpsBearerContextRequest.h | 0 .../COMMON/ESM/MSG/PdnConnectivityReject.c | 0 .../COMMON/ESM/MSG/PdnConnectivityReject.h | 0 .../COMMON/ESM/MSG/PdnConnectivityRequest.c | 0 .../COMMON/ESM/MSG/PdnConnectivityRequest.h | 0 .../NAS/COMMON/ESM/MSG/PdnDisconnectReject.c | 0 .../NAS/COMMON/ESM/MSG/PdnDisconnectReject.h | 0 .../NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c | 0 .../NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h | 0 openair3/NAS/COMMON/ESM/MSG/esm_cause.h | 0 openair3/NAS/COMMON/ESM/MSG/esm_msg.c | 0 openair3/NAS/COMMON/ESM/MSG/esm_msg.h | 0 openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h | 0 openair3/NAS/COMMON/IES/AccessPointName.c | 0 openair3/NAS/COMMON/IES/AccessPointName.h | 0 .../NAS/COMMON/IES/AdditionalUpdateResult.c | 0 .../NAS/COMMON/IES/AdditionalUpdateResult.h | 0 .../NAS/COMMON/IES/AdditionalUpdateType.c | 0 .../NAS/COMMON/IES/AdditionalUpdateType.h | 0 .../COMMON/IES/ApnAggregateMaximumBitRate.c | 0 .../COMMON/IES/ApnAggregateMaximumBitRate.h | 0 .../IES/AuthenticationFailureParameter.c | 0 .../IES/AuthenticationFailureParameter.h | 0 .../COMMON/IES/AuthenticationParameterAutn.c | 0 .../COMMON/IES/AuthenticationParameterAutn.h | 0 .../COMMON/IES/AuthenticationParameterRand.c | 0 .../COMMON/IES/AuthenticationParameterRand.h | 0 .../IES/AuthenticationResponseParameter.c | 0 .../IES/AuthenticationResponseParameter.h | 0 .../COMMON/IES/CipheringKeySequenceNumber.c | 0 .../COMMON/IES/CipheringKeySequenceNumber.h | 0 openair3/NAS/COMMON/IES/Cli.c | 0 openair3/NAS/COMMON/IES/Cli.h | 0 openair3/NAS/COMMON/IES/CsfbResponse.c | 0 openair3/NAS/COMMON/IES/CsfbResponse.h | 0 openair3/NAS/COMMON/IES/DaylightSavingTime.c | 0 openair3/NAS/COMMON/IES/DaylightSavingTime.h | 0 openair3/NAS/COMMON/IES/DetachType.c | 0 openair3/NAS/COMMON/IES/DetachType.h | 0 openair3/NAS/COMMON/IES/DrxParameter.c | 0 openair3/NAS/COMMON/IES/DrxParameter.h | 0 openair3/NAS/COMMON/IES/EmergencyNumberList.c | 0 openair3/NAS/COMMON/IES/EmergencyNumberList.h | 0 openair3/NAS/COMMON/IES/EmmCause.c | 0 openair3/NAS/COMMON/IES/EmmCause.h | 0 openair3/NAS/COMMON/IES/EpsAttachResult.c | 0 openair3/NAS/COMMON/IES/EpsAttachResult.h | 0 openair3/NAS/COMMON/IES/EpsAttachType.c | 0 openair3/NAS/COMMON/IES/EpsAttachType.h | 0 .../NAS/COMMON/IES/EpsBearerContextStatus.c | 0 .../NAS/COMMON/IES/EpsBearerContextStatus.h | 0 openair3/NAS/COMMON/IES/EpsBearerIdentity.c | 0 openair3/NAS/COMMON/IES/EpsBearerIdentity.h | 0 openair3/NAS/COMMON/IES/EpsMobileIdentity.c | 0 openair3/NAS/COMMON/IES/EpsMobileIdentity.h | 0 .../NAS/COMMON/IES/EpsNetworkFeatureSupport.c | 0 .../NAS/COMMON/IES/EpsNetworkFeatureSupport.h | 0 openair3/NAS/COMMON/IES/EpsQualityOfService.c | 0 openair3/NAS/COMMON/IES/EpsQualityOfService.h | 0 openair3/NAS/COMMON/IES/EpsUpdateResult.c | 0 openair3/NAS/COMMON/IES/EpsUpdateResult.h | 0 openair3/NAS/COMMON/IES/EpsUpdateType.c | 0 openair3/NAS/COMMON/IES/EpsUpdateType.h | 0 openair3/NAS/COMMON/IES/EsmCause.c | 0 openair3/NAS/COMMON/IES/EsmCause.h | 0 .../COMMON/IES/EsmInformationTransferFlag.c | 0 .../COMMON/IES/EsmInformationTransferFlag.h | 0 openair3/NAS/COMMON/IES/EsmMessageContainer.c | 0 openair3/NAS/COMMON/IES/EsmMessageContainer.h | 0 openair3/NAS/COMMON/IES/GprsTimer.c | 0 openair3/NAS/COMMON/IES/GprsTimer.h | 0 openair3/NAS/COMMON/IES/GutiType.c | 0 openair3/NAS/COMMON/IES/GutiType.h | 0 openair3/NAS/COMMON/IES/IdentityType2.c | 0 openair3/NAS/COMMON/IES/IdentityType2.h | 0 openair3/NAS/COMMON/IES/ImeisvRequest.c | 0 openair3/NAS/COMMON/IES/ImeisvRequest.h | 0 .../NAS/COMMON/IES/KsiAndSequenceNumber.c | 0 .../NAS/COMMON/IES/KsiAndSequenceNumber.h | 0 openair3/NAS/COMMON/IES/LcsClientIdentity.c | 0 openair3/NAS/COMMON/IES/LcsClientIdentity.h | 0 openair3/NAS/COMMON/IES/LcsIndicator.c | 0 openair3/NAS/COMMON/IES/LcsIndicator.h | 0 .../NAS/COMMON/IES/LinkedEpsBearerIdentity.c | 0 .../NAS/COMMON/IES/LinkedEpsBearerIdentity.h | 0 .../IES/LlcServiceAccessPointIdentifier.c | 0 .../IES/LlcServiceAccessPointIdentifier.h | 0 .../COMMON/IES/LocationAreaIdentification.c | 0 .../COMMON/IES/LocationAreaIdentification.h | 0 openair3/NAS/COMMON/IES/Makefile | 0 openair3/NAS/COMMON/IES/MessageType.c | 0 openair3/NAS/COMMON/IES/MessageType.h | 0 openair3/NAS/COMMON/IES/MobileIdentity.c | 0 openair3/NAS/COMMON/IES/MobileIdentity.h | 0 .../NAS/COMMON/IES/MobileStationClassmark2.c | 0 .../NAS/COMMON/IES/MobileStationClassmark2.h | 0 .../NAS/COMMON/IES/MobileStationClassmark3.c | 0 .../NAS/COMMON/IES/MobileStationClassmark3.h | 0 openair3/NAS/COMMON/IES/MsNetworkCapability.c | 0 openair3/NAS/COMMON/IES/MsNetworkCapability.h | 0 .../NAS/COMMON/IES/MsNetworkFeatureSupport.c | 0 .../NAS/COMMON/IES/MsNetworkFeatureSupport.h | 0 openair3/NAS/COMMON/IES/NasKeySetIdentifier.c | 0 openair3/NAS/COMMON/IES/NasKeySetIdentifier.h | 0 openair3/NAS/COMMON/IES/NasMessageContainer.c | 0 openair3/NAS/COMMON/IES/NasMessageContainer.h | 0 openair3/NAS/COMMON/IES/NasRequestType.c | 0 openair3/NAS/COMMON/IES/NasRequestType.h | 0 .../NAS/COMMON/IES/NasSecurityAlgorithms.c | 0 .../NAS/COMMON/IES/NasSecurityAlgorithms.h | 0 openair3/NAS/COMMON/IES/NetworkName.c | 0 openair3/NAS/COMMON/IES/NetworkName.h | 0 openair3/NAS/COMMON/IES/Nonce.c | 0 openair3/NAS/COMMON/IES/Nonce.h | 0 openair3/NAS/COMMON/IES/PTmsiSignature.c | 0 openair3/NAS/COMMON/IES/PTmsiSignature.h | 0 .../NAS/COMMON/IES/PacketFlowIdentifier.c | 0 .../NAS/COMMON/IES/PacketFlowIdentifier.h | 0 openair3/NAS/COMMON/IES/PagingIdentity.c | 0 openair3/NAS/COMMON/IES/PagingIdentity.h | 0 openair3/NAS/COMMON/IES/PdnAddress.c | 0 openair3/NAS/COMMON/IES/PdnAddress.h | 0 openair3/NAS/COMMON/IES/PdnType.c | 0 openair3/NAS/COMMON/IES/PdnType.h | 0 openair3/NAS/COMMON/IES/PlmnList.c | 0 openair3/NAS/COMMON/IES/PlmnList.h | 0 .../COMMON/IES/ProcedureTransactionIdentity.c | 0 .../COMMON/IES/ProcedureTransactionIdentity.h | 0 .../COMMON/IES/ProtocolConfigurationOptions.c | 0 .../COMMON/IES/ProtocolConfigurationOptions.h | 0 .../NAS/COMMON/IES/ProtocolDiscriminator.c | 0 .../NAS/COMMON/IES/ProtocolDiscriminator.h | 0 openair3/NAS/COMMON/IES/QualityOfService.c | 0 openair3/NAS/COMMON/IES/QualityOfService.h | 0 openair3/NAS/COMMON/IES/RadioPriority.c | 0 openair3/NAS/COMMON/IES/RadioPriority.h | 0 openair3/NAS/COMMON/IES/SecurityHeaderType.c | 0 openair3/NAS/COMMON/IES/SecurityHeaderType.h | 0 openair3/NAS/COMMON/IES/ServiceType.c | 0 openair3/NAS/COMMON/IES/ServiceType.h | 0 openair3/NAS/COMMON/IES/ShortMac.c | 0 openair3/NAS/COMMON/IES/ShortMac.h | 0 openair3/NAS/COMMON/IES/SsCode.c | 0 openair3/NAS/COMMON/IES/SsCode.h | 0 openair3/NAS/COMMON/IES/SupportedCodecList.c | 0 openair3/NAS/COMMON/IES/SupportedCodecList.h | 0 openair3/NAS/COMMON/IES/TimeZone.c | 0 openair3/NAS/COMMON/IES/TimeZone.h | 0 openair3/NAS/COMMON/IES/TimeZoneAndTime.c | 0 openair3/NAS/COMMON/IES/TimeZoneAndTime.h | 0 openair3/NAS/COMMON/IES/TmsiStatus.c | 0 openair3/NAS/COMMON/IES/TmsiStatus.h | 0 .../NAS/COMMON/IES/TrackingAreaIdentity.c | 0 .../NAS/COMMON/IES/TrackingAreaIdentity.h | 0 .../NAS/COMMON/IES/TrackingAreaIdentityList.c | 0 .../NAS/COMMON/IES/TrackingAreaIdentityList.h | 0 .../IES/TrafficFlowAggregateDescription.c | 0 .../IES/TrafficFlowAggregateDescription.h | 0 openair3/NAS/COMMON/IES/TrafficFlowTemplate.c | 0 openair3/NAS/COMMON/IES/TrafficFlowTemplate.h | 0 .../NAS/COMMON/IES/TransactionIdentifier.c | 0 .../NAS/COMMON/IES/TransactionIdentifier.h | 0 openair3/NAS/COMMON/IES/UeNetworkCapability.c | 0 openair3/NAS/COMMON/IES/UeNetworkCapability.h | 0 ...UeRadioCapabilityInformationUpdateNeeded.c | 0 ...UeRadioCapabilityInformationUpdateNeeded.h | 0 .../NAS/COMMON/IES/UeSecurityCapability.c | 0 .../NAS/COMMON/IES/UeSecurityCapability.h | 0 .../VoiceDomainPreferenceAndUeUsageSetting.c | 0 .../VoiceDomainPreferenceAndUeUsageSetting.h | 0 openair3/NAS/COMMON/UTIL/Makefile | 0 openair3/NAS/COMMON/UTIL/OctetString.c | 0 openair3/NAS/COMMON/UTIL/OctetString.h | 0 openair3/NAS/COMMON/UTIL/TLVDecoder.c | 0 openair3/NAS/COMMON/UTIL/TLVDecoder.h | 0 openair3/NAS/COMMON/UTIL/TLVEncoder.c | 0 openair3/NAS/COMMON/UTIL/TLVEncoder.h | 0 openair3/NAS/COMMON/UTIL/device.c | 0 openair3/NAS/COMMON/UTIL/device.h | 0 openair3/NAS/COMMON/UTIL/memory.c | 0 openair3/NAS/COMMON/UTIL/memory.h | 0 openair3/NAS/COMMON/UTIL/nas_log.c | 0 openair3/NAS/COMMON/UTIL/nas_log.h | 0 openair3/NAS/COMMON/UTIL/nas_timer.c | 0 openair3/NAS/COMMON/UTIL/nas_timer.h | 0 openair3/NAS/COMMON/UTIL/parser.c | 0 openair3/NAS/COMMON/UTIL/parser.h | 0 openair3/NAS/COMMON/UTIL/socket.c | 0 openair3/NAS/COMMON/UTIL/socket.h | 0 openair3/NAS/COMMON/UTIL/stty.c | 0 openair3/NAS/COMMON/UTIL/tst/Makefile | 0 openair3/NAS/COMMON/UTIL/tst/timer.c | 0 openair3/NAS/COMMON/UTIL/tst/timer_debug.txt | 0 openair3/NAS/COMMON/commonDef.h | 0 openair3/NAS/COMMON/networkDef.h | 0 openair3/NAS/COMMON/securityDef.h | 0 openair3/NAS/COMMON/userDef.h | 0 openair3/NAS/TEST/AS_SIMULATOR/Makefile | 0 openair3/NAS/TEST/AS_SIMULATOR/as_data.c | 0 openair3/NAS/TEST/AS_SIMULATOR/as_data.h | 0 openair3/NAS/TEST/AS_SIMULATOR/as_process.c | 0 openair3/NAS/TEST/AS_SIMULATOR/as_process.h | 0 openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c | 0 .../TEST/AS_SIMULATOR/as_simulator_parser.c | 0 .../TEST/AS_SIMULATOR/as_simulator_parser.h | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_data.c | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_data.h | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_process.c | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_process.h | 0 openair3/NAS/TEST/MSC/ActivatePDN.png | Bin .../NAS/TEST/MSC/AuthenticationReject.png | Bin openair3/NAS/TEST/MSC/DeactivatePDN.png | Bin openair3/NAS/TEST/MSC/InitialAttach.png | Bin openair3/NAS/TEST/MSC/InitialAttachReject.png | Bin openair3/NAS/TEST/MSC/NomalDetach.png | Bin openair3/NAS/TEST/MSC/README | 0 openair3/NAS/TEST/MSC/SwitchOffDetach.png | Bin openair3/NAS/TEST/NETWORK/Makefile | 0 openair3/NAS/TEST/NETWORK/README | 0 openair3/NAS/TEST/NETWORK/network_parser.c | 0 openair3/NAS/TEST/NETWORK/network_parser.h | 0 openair3/NAS/TEST/NETWORK/network_simulator.c | 0 openair3/NAS/TEST/USER/Makefile | 0 openair3/NAS/TEST/USER/user_parser.c | 0 openair3/NAS/TEST/USER/user_parser.h | 0 openair3/NAS/TEST/USER/user_simulator.c | 0 openair3/NAS/TOOLS/conf2uedata.c | 0 openair3/NAS/TOOLS/conf2uedata.h | 0 openair3/NAS/TOOLS/conf_emm.c | 0 openair3/NAS/TOOLS/conf_emm.h | 0 openair3/NAS/TOOLS/conf_network.c | 0 openair3/NAS/TOOLS/conf_network.h | 0 openair3/NAS/TOOLS/conf_parser.c | 0 openair3/NAS/TOOLS/conf_parser.h | 0 openair3/NAS/TOOLS/conf_user_data.c | 0 openair3/NAS/TOOLS/conf_user_data.h | 0 openair3/NAS/TOOLS/conf_user_plmn.c | 0 openair3/NAS/TOOLS/conf_user_plmn.h | 0 openair3/NAS/TOOLS/conf_usim.c | 0 openair3/NAS/TOOLS/conf_usim.h | 0 openair3/NAS/TOOLS/display.c | 0 openair3/NAS/TOOLS/display.h | 0 openair3/NAS/TOOLS/fs.c | 0 openair3/NAS/TOOLS/fs.h | 0 openair3/NAS/TOOLS/network.h | 0 openair3/NAS/TOOLS/nvram.c | 0 openair3/NAS/TOOLS/ue_bcom_test.conf | 0 openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf | 0 openair3/NAS/TOOLS/ue_tcl_test.conf | 0 openair3/NAS/TOOLS/usim.c | 0 openair3/NAS/UE/API/USER/at_command.c | 0 openair3/NAS/UE/API/USER/at_command.h | 0 openair3/NAS/UE/API/USER/at_error.c | 0 openair3/NAS/UE/API/USER/at_error.h | 0 openair3/NAS/UE/API/USER/at_response.c | 0 openair3/NAS/UE/API/USER/at_response.h | 0 openair3/NAS/UE/API/USER/tst/at_parser.c | 0 openair3/NAS/UE/API/USER/tst/at_parser.in | 0 openair3/NAS/UE/API/USER/tst/at_parser.in.bis | 0 openair3/NAS/UE/API/USER/tst/at_parser.out | 0 .../NAS/UE/API/USER/tst/at_parser.out.bis | 0 openair3/NAS/UE/API/USER/tst/smartcom.txt | 0 openair3/NAS/UE/API/USER/user_api.c | 0 openair3/NAS/UE/API/USER/user_api.h | 0 openair3/NAS/UE/API/USER/user_api_defs.h | 0 openair3/NAS/UE/API/USER/user_indication.c | 0 openair3/NAS/UE/API/USER/user_indication.h | 0 openair3/NAS/UE/API/USIM/aka_functions.c | 0 openair3/NAS/UE/API/USIM/aka_functions.h | 0 openair3/NAS/UE/API/USIM/usim_api.c | 0 openair3/NAS/UE/API/USIM/usim_api.h | 0 openair3/NAS/UE/EMM/Attach.c | 0 openair3/NAS/UE/EMM/Authentication.c | 0 openair3/NAS/UE/EMM/Authentication.h | 0 openair3/NAS/UE/EMM/Detach.c | 0 openair3/NAS/UE/EMM/EmmStatusHdl.c | 0 openair3/NAS/UE/EMM/Identification.c | 0 openair3/NAS/UE/EMM/IdleMode.c | 0 openair3/NAS/UE/EMM/IdleMode.h | 0 openair3/NAS/UE/EMM/IdleMode_defs.h | 0 openair3/NAS/UE/EMM/LowerLayer.c | 0 openair3/NAS/UE/EMM/LowerLayer.h | 0 openair3/NAS/UE/EMM/LowerLayer_defs.h | 0 openair3/NAS/UE/EMM/SAP/EmmDeregistered.c | 0 .../UE/EMM/SAP/EmmDeregisteredAttachNeeded.c | 0 .../SAP/EmmDeregisteredAttemptingToAttach.c | 0 .../NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c | 0 .../EMM/SAP/EmmDeregisteredLimitedService.c | 0 .../EMM/SAP/EmmDeregisteredNoCellAvailable.c | 0 .../NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c | 0 .../UE/EMM/SAP/EmmDeregisteredNormalService.c | 0 .../UE/EMM/SAP/EmmDeregisteredPlmnSearch.c | 0 openair3/NAS/UE/EMM/SAP/EmmNull.c | 0 openair3/NAS/UE/EMM/SAP/EmmRegistered.c | 0 .../EMM/SAP/EmmRegisteredAttemptingToUpdate.c | 0 .../SAP/EmmRegisteredImsiDetachInitiated.c | 0 .../NAS/UE/EMM/SAP/EmmRegisteredInitiated.c | 0 .../UE/EMM/SAP/EmmRegisteredLimitedService.c | 0 .../UE/EMM/SAP/EmmRegisteredNoCellAvailable.c | 0 .../UE/EMM/SAP/EmmRegisteredNormalService.c | 0 .../NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c | 0 .../UE/EMM/SAP/EmmRegisteredUpdateNeeded.c | 0 .../UE/EMM/SAP/EmmServiceRequestInitiated.c | 0 .../SAP/EmmTrackingAreaUpdatingInitiated.c | 0 openair3/NAS/UE/EMM/SAP/emm_as.c | 0 openair3/NAS/UE/EMM/SAP/emm_as.h | 0 openair3/NAS/UE/EMM/SAP/emm_asDef.h | 0 openair3/NAS/UE/EMM/SAP/emm_esm.c | 0 openair3/NAS/UE/EMM/SAP/emm_esm.h | 0 openair3/NAS/UE/EMM/SAP/emm_esmDef.h | 0 openair3/NAS/UE/EMM/SAP/emm_fsm.c | 0 openair3/NAS/UE/EMM/SAP/emm_fsm.h | 0 openair3/NAS/UE/EMM/SAP/emm_recv.c | 0 openair3/NAS/UE/EMM/SAP/emm_recv.h | 0 openair3/NAS/UE/EMM/SAP/emm_reg.c | 0 openair3/NAS/UE/EMM/SAP/emm_reg.h | 0 openair3/NAS/UE/EMM/SAP/emm_regDef.h | 0 openair3/NAS/UE/EMM/SAP/emm_sap.c | 0 openair3/NAS/UE/EMM/SAP/emm_sap.h | 0 openair3/NAS/UE/EMM/SAP/emm_send.c | 0 openair3/NAS/UE/EMM/SAP/emm_send.h | 0 openair3/NAS/UE/EMM/SecurityModeControl.c | 0 openair3/NAS/UE/EMM/SecurityModeControl.h | 0 openair3/NAS/UE/EMM/ServiceRequestHdl.c | 0 openair3/NAS/UE/EMM/TrackingAreaUpdate.c | 0 openair3/NAS/UE/EMM/emmData.h | 0 openair3/NAS/UE/EMM/emm_fsm_defs.h | 0 openair3/NAS/UE/EMM/emm_main.c | 0 openair3/NAS/UE/EMM/emm_main.h | 0 openair3/NAS/UE/EMM/emm_proc.h | 0 openair3/NAS/UE/EMM/emm_proc_defs.h | 0 openair3/NAS/UE/EMM/emm_timers.h | 0 .../ESM/DedicatedEpsBearerContextActivation.c | 0 .../ESM/DefaultEpsBearerContextActivation.c | 0 .../NAS/UE/ESM/EpsBearerContextDeactivation.c | 0 openair3/NAS/UE/ESM/EsmStatusHdl.c | 0 openair3/NAS/UE/ESM/PdnConnectivity.c | 0 openair3/NAS/UE/ESM/PdnDisconnect.c | 0 openair3/NAS/UE/ESM/SAP/esm_recv.c | 0 openair3/NAS/UE/ESM/SAP/esm_recv.h | 0 openair3/NAS/UE/ESM/SAP/esm_sap.c | 0 openair3/NAS/UE/ESM/SAP/esm_sap.h | 0 openair3/NAS/UE/ESM/SAP/esm_sapDef.h | 0 openair3/NAS/UE/ESM/SAP/esm_send.c | 0 openair3/NAS/UE/ESM/SAP/esm_send.h | 0 openair3/NAS/UE/ESM/esmData.h | 0 openair3/NAS/UE/ESM/esm_ebr.c | 0 openair3/NAS/UE/ESM/esm_ebr.h | 0 openair3/NAS/UE/ESM/esm_ebr_context.c | 0 openair3/NAS/UE/ESM/esm_ebr_context.h | 0 openair3/NAS/UE/ESM/esm_ip.c | 0 openair3/NAS/UE/ESM/esm_main.c | 0 openair3/NAS/UE/ESM/esm_main.h | 0 openair3/NAS/UE/ESM/esm_proc.h | 0 openair3/NAS/UE/ESM/esm_pt.c | 0 openair3/NAS/UE/ESM/esm_pt.h | 0 openair3/NAS/UE/ESM/esm_pt_defs.h | 0 openair3/NAS/UE/UEprocess.c | 0 openair3/NAS/UE/nas_itti_messaging.c | 0 openair3/NAS/UE/nas_itti_messaging.h | 0 openair3/NAS/UE/nas_network.c | 0 openair3/NAS/UE/nas_network.h | 0 openair3/NAS/UE/nas_parser.c | 0 openair3/NAS/UE/nas_parser.h | 0 openair3/NAS/UE/nas_proc.c | 0 openair3/NAS/UE/nas_proc.h | 0 openair3/NAS/UE/nas_proc_defs.h | 0 openair3/NAS/UE/nas_ue_task.c | 0 openair3/NAS/UE/nas_ue_task.h | 0 openair3/NAS/UE/nas_user.c | 0 openair3/NAS/UE/nas_user.h | 0 openair3/NAS/UE/user_defs.h | 0 .../ASN1/R10.5/S1AP-CommonDataTypes.asn | 0 .../MESSAGES/ASN1/R10.5/S1AP-Constants.asn | 0 .../MESSAGES/ASN1/R10.5/S1AP-Containers.asn | 0 .../S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn | 0 .../MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn | 0 .../ASN1/R10.5/S1AP-PDU-Descriptions.asn | 0 .../S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn | 0 .../ASN1/R8.10/S1AP-CommonDataTypes.asn | 0 .../MESSAGES/ASN1/R8.10/S1AP-Constants.asn | 0 .../S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn | 0 .../MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn | 0 .../S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn | 0 .../ASN1/R9.8/S1AP-CommonDataTypes.asn | 0 .../MESSAGES/ASN1/R9.8/S1AP-Constants.asn | 0 .../MESSAGES/ASN1/R9.8/S1AP-Containers.asn | 0 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn | 0 .../MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn | 0 .../ASN1/R9.8/S1AP-PDU-Descriptions.asn | 0 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn | 0 openair3/S1AP/MESSAGES/ASN1/README | 0 openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py | 0 openair3/S1AP/s1ap_common.c | 0 openair3/S1AP/s1ap_common.h | 0 openair3/S1AP/s1ap_eNB.c | 0 openair3/S1AP/s1ap_eNB.h | 0 .../s1ap_eNB_context_management_procedures.c | 0 .../s1ap_eNB_context_management_procedures.h | 0 openair3/S1AP/s1ap_eNB_decoder.c | 0 openair3/S1AP/s1ap_eNB_decoder.h | 0 openair3/S1AP/s1ap_eNB_default_values.h | 0 openair3/S1AP/s1ap_eNB_defs.h | 0 openair3/S1AP/s1ap_eNB_encoder.c | 0 openair3/S1AP/s1ap_eNB_encoder.h | 0 openair3/S1AP/s1ap_eNB_handlers.c | 0 openair3/S1AP/s1ap_eNB_handlers.h | 0 openair3/S1AP/s1ap_eNB_itti_messaging.c | 0 openair3/S1AP/s1ap_eNB_itti_messaging.h | 0 .../S1AP/s1ap_eNB_management_procedures.c | 0 .../S1AP/s1ap_eNB_management_procedures.h | 0 openair3/S1AP/s1ap_eNB_nas_procedures.c | 0 openair3/S1AP/s1ap_eNB_nas_procedures.h | 0 openair3/S1AP/s1ap_eNB_nnsf.c | 0 openair3/S1AP/s1ap_eNB_nnsf.h | 0 openair3/S1AP/s1ap_eNB_overload.c | 0 openair3/S1AP/s1ap_eNB_overload.h | 0 openair3/S1AP/s1ap_eNB_trace.c | 0 openair3/S1AP/s1ap_eNB_trace.h | 0 openair3/S1AP/s1ap_eNB_ue_context.c | 0 openair3/S1AP/s1ap_eNB_ue_context.h | 0 openair3/SCTP/sctp_common.c | 0 openair3/SCTP/sctp_common.h | 0 openair3/SCTP/sctp_default_values.h | 0 openair3/SCTP/sctp_eNB_defs.h | 0 openair3/SCTP/sctp_eNB_itti_messaging.c | 0 openair3/SCTP/sctp_eNB_itti_messaging.h | 0 openair3/SCTP/sctp_eNB_task.c | 0 openair3/SCTP/sctp_eNB_task.h | 0 openair3/SCTP/sctp_primitives_client.c | 0 openair3/SCTP/sctp_primitives_client.h | 0 openair3/SECU/kdf.c | 0 openair3/SECU/key_nas_deriver.c | 0 openair3/SECU/key_nas_encryption.c | 0 openair3/SECU/nas_stream_eea1.c | 0 openair3/SECU/nas_stream_eea2.c | 0 openair3/SECU/nas_stream_eia1.c | 0 openair3/SECU/nas_stream_eia2.c | 0 openair3/SECU/rijndael.c | 0 openair3/SECU/rijndael.h | 0 openair3/SECU/secu_defs.h | 0 openair3/SECU/snow3g.c | 0 openair3/SECU/snow3g.h | 0 .../attach_complete.pdml | 0 .../enb.band7.tm1.usrpb210.epc.local.conf | 0 .../TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml | 0 openair3/TEST/EPC_TEST/generate_scenario.c | 0 openair3/TEST/EPC_TEST/generate_scenario.h | 0 openair3/TEST/EPC_TEST/play_scenario.c | 0 openair3/TEST/EPC_TEST/play_scenario.h | 0 openair3/TEST/EPC_TEST/play_scenario_decode.c | 0 .../TEST/EPC_TEST/play_scenario_display.c | 0 openair3/TEST/EPC_TEST/play_scenario_fsm.c | 0 openair3/TEST/EPC_TEST/play_scenario_parse.c | 0 openair3/TEST/EPC_TEST/play_scenario_s1ap.c | 0 .../EPC_TEST/play_scenario_s1ap_compare_ie.c | 0 .../EPC_TEST/play_scenario_s1ap_eNB_defs.h | 0 openair3/TEST/EPC_TEST/play_scenario_sctp.c | 0 openair3/TEST/Makefile.am | 0 openair3/TEST/oaisim_mme_client_test.c | 0 openair3/TEST/oaisim_mme_itti_test.c | 0 openair3/TEST/oaisim_mme_list_benchmark.c | 0 openair3/TEST/oaisim_mme_s1ap_test.c | 0 openair3/TEST/oaisim_mme_sctp_test.c | 0 openair3/TEST/oaisim_mme_test_s1c.c | 0 openair3/TEST/oaisim_mme_test_s1c.h | 0 openair3/TEST/oaisim_mme_test_s1c_s1ap.c | 0 openair3/TEST/oaisim_mme_test_s1c_s1ap.h | 0 openair3/TEST/oaisim_mme_test_s1c_scenario.c | 0 openair3/TEST/oaisim_mme_test_s1c_scenario.h | 0 openair3/TEST/oaisim_mme_test_s1c_scenario1.c | 0 openair3/TEST/test_aes128_cmac_encrypt.c | 0 openair3/TEST/test_aes128_ctr_decrypt.c | 0 openair3/TEST/test_aes128_ctr_encrypt.c | 0 openair3/TEST/test_kdf.c | 0 openair3/TEST/test_s1ap.c | 0 openair3/TEST/test_secu.c | 0 openair3/TEST/test_secu_kenb.c | 0 openair3/TEST/test_secu_knas.c | 0 openair3/TEST/test_secu_knas_encrypt_eea1.c | 0 openair3/TEST/test_secu_knas_encrypt_eea2.c | 0 openair3/TEST/test_secu_knas_encrypt_eia1.c | 0 openair3/TEST/test_secu_knas_encrypt_eia2.c | 0 openair3/TEST/test_secu_knas_stream_int.c | 0 openair3/UDP/udp_eNB_task.c | 0 openair3/UDP/udp_eNB_task.h | 0 openair3/UTILS/CONF/COPYING | 0 openair3/UTILS/Makefile.am | 0 openair3/UTILS/conversions.c | 0 openair3/UTILS/conversions.h | 0 openair3/UTILS/enum_string.c | 0 openair3/UTILS/enum_string.h | 0 openair3/UTILS/log.c | 0 openair3/UTILS/log.h | 0 openair3/UTILS/mcc_mnc_itu.c | 0 openair3/UTILS/mcc_mnc_itu.h | 0 openair3/UTILS/mme_config.c | 0 openair3/UTILS/mme_config.h | 0 openair3/UTILS/mme_default_values.h | 0 openair3/UTILS/mme_parser.y | 0 openair3/UTILS/mme_scanner.l | 0 openair3/UTILS/queue.h | 0 openair3/UTILS/tree.h | 0 openair3/valgrind.sh | 0 pre-commit | 0 svn2git/README.txt | 0 svn2git/authors.txt | 0 svn2git/authors_original.txt | 0 svn2git/authors_original_java_output.txt | 0 svn2git/git-author-rewrite.sh | 0 .../ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c | 0 .../ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h | 0 targets/ARCH/COMMON/common_lib.c | 0 targets/ARCH/COMMON/common_lib.h | 0 .../ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c | 0 .../ETHERNET/USERSPACE/LIB/ethernet_lib.c | 0 .../ETHERNET/USERSPACE/LIB/ethernet_lib.h | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h | 0 .../ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi | 0 .../ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs | 0 .../ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm | 0 .../ARCH/EXMIMO/BITSTREAM/express-mimo2.bit | Bin .../ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf | Bin .../ARCH/EXMIMO/BITSTREAM/express-mimo2.msk | Bin targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd | 0 .../ARCH/EXMIMO/BITSTREAM/prom_generate.cmd | 0 targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd | 0 targets/ARCH/EXMIMO/DEFS/openair_device.h | 0 targets/ARCH/EXMIMO/DEFS/pcie_interface.h | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h | 0 .../ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c | 0 .../ARCH/EXMIMO/DRIVER/eurecom/module_main.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h | 0 .../ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c | 0 .../ARCH/EXMIMO/DRIVER/exmimo3/module_main.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h | 0 targets/ARCH/EXMIMO/DRIVER/readme.txt | 0 .../EXMIMO/DRIVER/telecomparistech/Makefile | 0 .../EXMIMO/DRIVER/telecomparistech/em1_dev.c | 0 .../EXMIMO/DRIVER/telecomparistech/em1_drv.c | 0 .../EXMIMO/DRIVER/telecomparistech/em1_drv.h | 0 .../EXMIMO/DRIVER/telecomparistech/em1_drv.sh | 0 .../DRIVER/telecomparistech/em1_fifos.c | 0 .../DRIVER/telecomparistech/em1_ioctl.c | 0 .../EXMIMO/DRIVER/telecomparistech/em1_mmap.c | 0 .../EXMIMO/DRIVER/telecomparistech/em1_rw.c | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/example.c | 0 .../ARCH/EXMIMO/USERSPACE/LIB/gain_control.c | 0 .../ARCH/EXMIMO/USERSPACE/LIB/gain_control.h | 0 .../ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c | 0 .../ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h | 0 .../EXMIMO/USERSPACE/OAI_FW_INIT/Makefile | 0 .../ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h | 0 .../EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h | 0 .../EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c | 0 .../EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m | 0 .../USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m | 0 .../EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m | 0 .../USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m | 0 .../EXMIMO/USERSPACE/OCTAVE/exmimo_config.m | 0 .../USERSPACE/OCTAVE/exmimo_config_off.m | 0 .../USERSPACE/OCTAVE/exmimo_test_loopback.m | 0 .../USERSPACE/OCTAVE/exmimo_test_multicard.m | 0 .../USERSPACE/OCTAVE/freq_calibration.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc | 0 .../EXMIMO/USERSPACE/OCTAVE/initial_sync.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m | 0 .../EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h | 0 .../USERSPACE/OCTAVE/oarf_config_exmimo.cc | 0 .../EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc | 0 .../OCTAVE/oarf_get_num_detected_cards.cc | 0 .../USERSPACE/OCTAVE/oarf_send_frame.cc | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc | 0 .../OCTAVE/oarf_stop_without_reset.cc | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m | 0 .../USERSPACE/OCTAVE/rx_calibration_exmimo.m | 0 .../USERSPACE/OCTAVE/rx_calibration_rffe.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m | 0 .../USERSPACE/OCTAVE/txsig_multicard_sync.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m | 0 targets/ARCH/LMSSDR/LimeSDR.ini | 0 targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp | 0 .../ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp | 0 targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc | 0 targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp | 0 targets/COMMON/Makefile.inc | 0 targets/COMMON/create_tasks.c | 0 targets/COMMON/create_tasks.h | 0 targets/COMMON/openairinterface5g_limits.h | 0 targets/COMMON/threads_t.h | 0 targets/DOCS/Doxyfile | 0 targets/DOCS/api_icic.xml | 0 targets/DOCS/images/oai_logo.png | Bin targets/DOCS/oaiemu.doc | Bin targets/DOCS/oaisim_walkthrough.pdf | Bin targets/DOCS/path_loss_oaisim.xlsx | Bin targets/Makefile | 0 targets/Makefile.common | 0 targets/Makerules | 0 .../GENERIC-LTE-EPC/CONF/UE_config.xml | 0 .../CONF/enb.band13.exmimo2.conf | 0 .../CONF/enb.band13.rel10.exmimo2.conf | 0 .../CONF/enb.band13.tm1.25PRB.lmssdr.conf | 0 .../CONF/enb.band13.tm1.50PRB.lmssdr.conf | 0 .../CONF/enb.band13.tm1.50PRB.sedora.conf | 0 .../CONF/enb.band13.tm1.rrh.usrpb210.conf | 0 .../CONF/enb.band13.tm1.usrpb210.conf | 0 .../CONF/enb.band3.tm1.usrpb210.conf | 0 .../CONF/enb.band38.exmimo2.conf | 0 ...nb.band38.generic.oaisim.local_no_mme.conf | 0 .../CONF/enb.band38.tm1.exmimo2.conf | 0 ...and38.tm1.generic.oaisim.local_no_mme.conf | 0 .../CONF/enb.band38.tm1.usrpb210.conf | 0 .../CONF/enb.band38.tm7.exmimo2.conf | 0 .../CONF/enb.band39.tm1.exmimo2.conf | 0 .../CONF/enb.band4.exmimo2.conf | 0 .../CONF/enb.band4.tm1.usrpb210.conf | 0 .../CONF/enb.band40.tm1.usrpb210.conf | 0 .../enb.band5.flexran.50PRB.usrpb210.conf | 0 .../CONF/enb.band5.flexran.usrpb210.conf | 0 .../CONF/enb.band5.tm1.usrpb210.conf | 0 .../CONF/enb.band7.exmimo2.conf | 0 .../CONF/enb.band7.exmimo2_2a.conf | 0 .../enb.band7.flexran.50PRB.usrpb210.conf | 0 ...enb.band7.flexran.oaisim.local_no_mme.conf | 0 .../CONF/enb.band7.flexran.usrpb210.conf | 0 .../CONF/enb.band7.generic.conf | 0 .../enb.band7.generic.oaisim.local_mme.conf | 0 ...enb.band7.generic.oaisim.local_no_mme.conf | 0 .../CONF/enb.band7.tm1.100PRB.usrpb210.conf | 0 .../CONF/enb.band7.tm1.100PRB.usrpx310.conf | 0 .../CONF/enb.band7.tm1.25PRB.lmssdr.conf | 0 .../CONF/enb.band7.tm1.25PRB.usrpb210.conf | 0 .../CONF/enb.band7.tm1.50PRB.bladerfx40.conf | 0 .../CONF/enb.band7.tm1.50PRB.lmssdr.conf | 0 .../enb.band7.tm1.50PRB.rrh.usrpb210.conf | 0 .../CONF/enb.band7.tm1.50PRB.usrpb210.conf | 0 .../CONF/enb.band7.tm1.50PRB.usrpx310.conf | 0 .../CONF/enb.band7.tm1.bladerfx40.conf | 0 .../CONF/enb.band7.tm1.exmimo2.conf | 0 .../CONF/enb.band7.tm1.exmimo2.openEPC.conf | 0 ...nb.band7.tm1.generic.oaisim.local_mme.conf | 0 ...band7.tm1.generic.oaisim.local_no_mme.conf | 0 .../CONF/enb.band7.tm1.rrh.usrpb210.conf | 0 .../CONF/enb.band7.tm1.usrpb210.conf | 0 .../CONF/enb.band7.tm1.usrpx310.conf | 0 .../CONF/enb.band7.tm2.100PRB.usrpb210.conf | 0 .../CONF/enb.band7.tm2.100PRB.usrpx310.conf | 0 .../CONF/enb.band7.tm2.50PRB.usrpb210.conf | 0 .../CONF/enb.band7.tm2.50PRB.usrpx310.conf | 0 .../CONF/enb.band7.tm2.usrpb210.conf | 0 .../CONF/enb.band7.tm2.usrpx310.conf | 0 .../CONF/enb.band7.tm7.exmimo2.conf | 0 .../CONF/enb.band7.usrpb210.conf | 0 .../CONF/enb.dual.band13_band4.exmimo2.conf | 0 .../CONF/enb.dual.band38_band44.conf | 0 .../CONF/enb.dual.band7_band20.conf | 0 .../enb.dual.rel10.band13_band4.exmimo2.conf | 0 .../GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf | 0 .../GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf | 0 ...le.enb.band7.epc_eur.local.exmimo2_2a.conf | 0 .../CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf | 0 .../CONF/rcc.band7.tm1.if4p5.100PRB.conf | 0 .../rcc.band7.tm1.if4p5.100PRB.usrpb210.conf | 0 .../CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf | 0 .../rcc.band7.tm1.if4p5.25PRB.usrpb210.conf | 0 .../CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf | 0 .../rcc.band7.tm1.if4p5.50PRB.usrpb210.conf | 0 .../rcc.band7.tm1.if5.100PRB.usrpb210.conf | 0 .../rcc.band7.tm1.if5.25PRB.usrpb210.conf | 0 .../rcc.band7.tm1.if5.50PRB.usrpb210.conf | 0 .../CONF/rcc.band7.tm1.if5.usrpb210.conf | 0 .../CONF/rcc.band7.tm1.usrpb210.conf | 0 .../rru.band7.tm1.if4p5.100PRB.usrpb210.conf | 0 .../rru.band7.tm1.if4p5.25PRB.oaisim.conf | 0 .../rru.band7.tm1.if4p5.25PRB.usrpb210.conf | 0 .../rru.band7.tm1.if4p5.50PRB.oaisim.conf | 0 ....band7.tm1.if4p5.50PRB.usrpb210-conga.conf | 0 .../rru.band7.tm1.if4p5.50PRB.usrpb210.conf | 0 .../CONF/rru.band7.tm1.if4p5.usrpb210.conf | 0 .../rru.band7.tm1.if5.100PRB.usrpb210.conf | 0 .../rru.band7.tm1.if5.25PRB.usrpb210.conf | 0 .../rru.band7.tm1.if5.50PRB.usrpb210.conf | 0 .../CONF/rru.band7.tm1.if5.usrpb210.conf | 0 .../CONF/rru.band7.tm1.usrpb210.conf | 0 .../GENERIC-LTE-EPC/CONF/rru.oaisim.conf | 0 .../PROJECTS/LOCALIZATION/filesave0811.mat | 0 targets/PROJECTS/LOCALIZATION/generation.m | 0 targets/PROJECTS/LOCALIZATION/initial_sync.m | 0 targets/PROJECTS/LOCALIZATION/initparams.m | 0 targets/PROJECTS/LOCALIZATION/plots.m | 0 targets/PROJECTS/LOCALIZATION/recup.m | 0 targets/PROJECTS/LOCALIZATION/where2.m | 0 .../PROJECTS/LOCALIZATION/where2_v1_final.mat | 0 targets/PROJECTS/LOCALIZATION/where2_vf.m | 0 targets/PROJECTS/TDDREC/f_ch_est.m | 0 targets/PROJECTS/TDDREC/f_ofdm_mod.m | 0 targets/PROJECTS/TDDREC/f_ofdm_rx.m | 0 targets/PROJECTS/TDDREC/f_ofdm_tx.m | 0 targets/PROJECTS/TDDREC/f_tls_ap.m | 0 targets/PROJECTS/TDDREC/f_tls_diag.m | 0 targets/PROJECTS/TDDREC/f_tls_svd.m | 0 targets/PROJECTS/TDDREC/s_beamforming.m | 0 targets/PROJECTS/TDDREC/s_calib.m | 0 targets/PROJECTS/TDDREC/s_draw_F.m | 0 targets/PROJECTS/TDDREC/s_init_params.m | 0 targets/PROJECTS/TDDREC/s_run_meas.m | 0 targets/PROJECTS/TDDREC/v0/alterproj.m | 0 targets/PROJECTS/TDDREC/v0/beamforming.m | 0 targets/PROJECTS/TDDREC/v0/calibration.m | 0 targets/PROJECTS/TDDREC/v0/genorthqpskseq.m | 0 targets/PROJECTS/TDDREC/v0/genrandpskseq.m | 0 targets/PROJECTS/TDDREC/v0/initparams.m | 0 targets/PROJECTS/TDDREC/v0/initparams2.m | 0 targets/PROJECTS/TDDREC/v0/ofdm_mod.m | 0 targets/PROJECTS/TDDREC/v0/readme.txt | 0 .../PROJECTS/TDDREC/v0/runmeas_full_duplex.m | 0 .../PROJECTS/TDDREC/v0/runmeas_long_chanest.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_mimo.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m | 0 .../PROJECTS/TDDREC/v4_CH_EST/s_init_params.m | 0 targets/README.txt | 0 targets/RT/LAUNCH_SCRIPTS/load_module.sh | 0 targets/RT/LAUNCH_SCRIPTS/nas_enb.sh | 0 targets/RT/LAUNCH_SCRIPTS/nas_ue.sh | 0 targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_emos.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_rf.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_ue.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_ue2.sh | 0 targets/RT/LAUNCH_SCRIPTS/stop_rf.sh | 0 targets/RT/Makefile | 0 targets/RT/USER/.runinfo | 0 targets/RT/USER/.ue.nvram | Bin targets/RT/USER/.ue_emm.nvram | Bin targets/RT/USER/.usim.nvram | Bin targets/RT/USER/Makefile | 0 targets/RT/USER/Makefile.agilent | 0 targets/RT/USER/Makefile.msg_many | 0 targets/RT/USER/TOOLS/thread_ipc.c | 0 targets/RT/USER/TOOLS/thread_ipc.h | 0 targets/RT/USER/UE_transport_IQ.c | 0 targets/RT/USER/condtest.c | 0 targets/RT/USER/eNB_exmimo2.gtkw | 0 targets/RT/USER/eNB_transport_IQ.c | 0 targets/RT/USER/eNB_usrp.gtkw | 0 targets/RT/USER/emos-raw.c | 0 targets/RT/USER/exmimo2_2arxg.lime | 0 targets/RT/USER/exmimo2_2brxg.lime | 0 targets/RT/USER/init_b200.sh | 0 targets/RT/USER/init_exmimo.sh | 0 targets/RT/USER/init_exmimo2.sh | 0 targets/RT/USER/lte-enb.c | 0 targets/RT/USER/lte-ran.c | 0 targets/RT/USER/lte-ru.c | 0 targets/RT/USER/lte-softmodem.c | 0 targets/RT/USER/lte-softmodem.h | 0 targets/RT/USER/lte-ue.c | 0 targets/RT/USER/msg_helper.c | 0 targets/RT/USER/msg_many.c | 0 targets/RT/USER/msg_many.h | 0 targets/RT/USER/rau_if4_single_thread.gtkw | 0 targets/RT/USER/rcc_if4.gtkw | 0 targets/RT/USER/rcc_if5.gtkw | 0 targets/RT/USER/rrh.c | 0 targets/RT/USER/rrh.gtkw | 0 targets/RT/USER/rrh_gw.c | 0 targets/RT/USER/rrh_gw.h | 0 targets/RT/USER/rrh_gw_externs.h | 0 targets/RT/USER/rru_if4p5_single_thread.gtkw | 0 targets/RT/USER/rru_if4p5_usrp.gtkw | 0 targets/RT/USER/rru_if5_usrp.gtkw | 0 targets/RT/USER/rt_wrapper.c | 0 targets/RT/USER/rt_wrapper.h | 0 targets/RT/USER/sleeptest.c | 0 targets/RT/USER/stats.c | 0 targets/RT/USER/stats.fd | 0 targets/RT/USER/stats.h | 0 targets/RT/USER/synctest.c | 0 targets/RT/USER/ue_exmimo2.gtkw | 0 targets/RT/USER/ue_usrp.gtkw | 0 targets/SCRIPTS/install_asn1.sh | 0 .../SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile | 0 .../SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile | 0 targets/SIMU/EXAMPLES/OSD/README.txt | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_0.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_1.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_10.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_11.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_120.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_121.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_122.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_123.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_124.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_125.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_126.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_127.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_128.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_129.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_13.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_14.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_15.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_16.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_17.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_18.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_19.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_2.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_20.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_21.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_22.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_27.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_29.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_3.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_33.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_34.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_4.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_40.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_41.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_42.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_43.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_5.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_6.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_60.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_7.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_70.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_8.xml | 0 .../SIMU/EXAMPLES/OSD/WEBXML/template_9.xml | 0 targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile | 0 targets/SIMU/PROC/Process.c | 0 targets/SIMU/PROC/Process.h | 0 targets/SIMU/PROC/Tsync.h | 0 targets/SIMU/PROC/channel_sim_proc.c | 0 targets/SIMU/PROC/channel_sim_proc.h | 0 targets/SIMU/PROC/interface.h | 0 targets/SIMU/USER/.ue.nvram | Bin targets/SIMU/USER/.ue_emm.nvram | Bin targets/SIMU/USER/.usim.nvram | Bin targets/SIMU/USER/Makefile | 0 targets/SIMU/USER/channel_sim.c | 0 targets/SIMU/USER/cor_SF_sim.c | 0 targets/SIMU/USER/cor_SF_sim.h | 0 targets/SIMU/USER/event_handler.c | 0 targets/SIMU/USER/event_handler.h | 0 targets/SIMU/USER/files/MI_16qam.csv | 0 targets/SIMU/USER/files/MI_16qam.txt | 0 targets/SIMU/USER/files/MI_4qam.csv | 0 targets/SIMU/USER/files/MI_4qam.txt | 0 targets/SIMU/USER/files/MI_64qam.csv | 0 targets/SIMU/USER/files/MI_64qam.txt | 0 targets/SIMU/USER/init_lte.c | 0 targets/SIMU/USER/init_lte.h | 0 targets/SIMU/USER/oaisim.c | 0 targets/SIMU/USER/oaisim.h | 0 targets/SIMU/USER/oaisim_config.c | 0 targets/SIMU/USER/oaisim_config.h | 0 targets/SIMU/USER/oaisim_functions.c | 0 targets/SIMU/USER/oaisim_functions.h | 0 targets/SIMU/USER/oaisim_pad.c | 0 targets/SIMU/USER/phy_procedures_sim_form.c | 0 targets/SIMU/USER/phy_procedures_sim_form.fd | 0 targets/SIMU/USER/phy_procedures_sim_form.h | 0 targets/SIMU/USER/plot_results.m | 0 targets/SIMU/USER/sinr_sim.c | 0 targets/SIMU/USER/threadpool.c | 0 targets/SIMU/USER/threadpool.h | 0 targets/TEST/AT_COMMANDS/oaisim.c | 0 targets/TEST/OAI/README | 0 targets/TEST/OAI/case01.py | 0 targets/TEST/OAI/case02.py | 0 targets/TEST/OAI/case03.py | 0 targets/TEST/OAI/case04.py | 0 targets/TEST/OAI/case05.py | 0 targets/TEST/OAI/case11.py | 0 targets/TEST/OAI/case12.py | 0 targets/TEST/OAI/case13.py | 0 targets/TEST/OAI/core.py | 0 targets/TEST/OAI/log.py | 0 targets/TEST/OAI/openair.py | 0 targets/TEST/OAI/test01.py | 0 targets/TEST/OAI/test02.py | 0 targets/TEST/PACKET_TRACER/README.txt | 0 targets/TEST/PACKET_TRACER/messages/Msg4.txt | 0 .../messages/rrcconnectionreconfiguration.txt | 0 .../messages/rrcconnectionsetup.txt | 0 targets/TEST/PACKET_TRACER/messages/sib1.txt | 0 targets/TEST/PACKET_TRACER/messages/sib2.txt | 0 .../PACKET_TRACER/messages/sib2_3_oai.txt | 0 .../messages/sib2_3_oai_Rel10.txt | 0 targets/TEST/PACKET_TRACER/messages/sib3.txt | 0 targets/TEST/PACKET_TRACER/pt.c | 0 targets/TEST/PDCP/readme.txt | 0 targets/TEST/PDCP/test_pdcp.c | 0 targets/TEST/PDCP/test_pdcp.h | 0 targets/TEST/PDCP/test_util.h | 0 targets/TEST/PDCP/todo.txt | 0 targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c | 0 targets/TEST/RLC_AM_V9.3.0/oaisim.c | 0 targets/TEST/RLC_UM_V9.3.0/oaisim.c | 0 .../TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp | 0 targets/TEST/ROHDE_SCHWARZ/Makefile | 0 targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp | 0 targets/TEST/ROHDE_SCHWARZ/TcpClient.h | 0 targets/itti_vcd_tasks.sav | 0 2621 files changed, 8032 insertions(+), 953 deletions(-) mode change 100644 => 100755 .gitlab-ci.yml mode change 100644 => 100755 LICENSE mode change 100644 => 100755 NOTICE.txt mode change 100644 => 100755 README.txt mode change 100644 => 100755 cmake_targets/CMakeLists.txt mode change 100644 => 100755 cmake_targets/autotests/README.txt mode change 100644 => 100755 cmake_targets/autotests/core.py mode change 100644 => 100755 cmake_targets/autotests/log.py mode change 100644 => 100755 cmake_targets/autotests/openair.py mode change 100644 => 100755 cmake_targets/autotests/templates/index.html mode change 100644 => 100755 cmake_targets/autotests/templates/testcase_report.html mode change 100644 => 100755 cmake_targets/autotests/test_case_list.xml mode change 100644 => 100755 cmake_targets/autotests/testsuite_ue_noS1.xml mode change 100644 => 100755 cmake_targets/autotests/testsuite_ue_noS1_TCL.xml mode change 100644 => 100755 cmake_targets/autotests/tools/lib_autotest.py mode change 100644 => 100755 cmake_targets/autotests/tools/lib_autotest_analyser.py mode change 100644 => 100755 cmake_targets/autotests/tools/wdial.bandrich.conf mode change 100644 => 100755 cmake_targets/autotests/v2/actions/alu_epc.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/alu_epc_stop.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/alu_hss.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/bandrich.txt mode change 100644 => 100755 cmake_targets/autotests/v2/actions/client_tcp.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/client_udp.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/clone_repository.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/compilation.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/execution.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/execution_compile.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/modem.py mode change 100644 => 100755 cmake_targets/autotests/v2/actions/run_enb.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/server_tcp.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/server_udp.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/start_3276.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/start_3276.py mode change 100644 => 100755 cmake_targets/autotests/v2/actions/start_bandrich.bash mode change 100644 => 100755 cmake_targets/autotests/v2/actions/start_bandrich.py mode change 100644 => 100755 cmake_targets/autotests/v2/actions/stop_3276.py mode change 100644 => 100755 cmake_targets/autotests/v2/actions/stop_bandrich.py mode change 100644 => 100755 cmake_targets/autotests/v2/actions/wvdial.3276.conf mode change 100644 => 100755 cmake_targets/autotests/v2/actions/wvdial.bandrich.conf mode change 100644 => 100755 cmake_targets/autotests/v2/alu_test.py mode change 100644 => 100755 cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf mode change 100644 => 100755 cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf mode change 100644 => 100755 cmake_targets/autotests/v2/connection.py mode change 100644 => 100755 cmake_targets/autotests/v2/machine_list.py mode change 100644 => 100755 cmake_targets/autotests/v2/main.py mode change 100644 => 100755 cmake_targets/autotests/v2/task.py mode change 100644 => 100755 cmake_targets/autotests/v2/utils.py mode change 100644 => 100755 cmake_targets/build_ue mode change 100644 => 100755 cmake_targets/doxygen/CMakeLists.txt mode change 100644 => 100755 cmake_targets/epc_test/CMakeLists.template mode change 100644 => 100755 cmake_targets/lte-simulators/CMakeLists.txt mode change 100644 => 100755 cmake_targets/lte_noS1_build_oai/CMakeLists.template mode change 100644 => 100755 cmake_targets/nas_sim_tools/CMakeLists.txt mode change 100644 => 100755 cmake_targets/oaisim_build_oai/CMakeLists.template mode change 100644 => 100755 cmake_targets/oaisim_mme_build_oai/CMakeLists.template mode change 100644 => 100755 cmake_targets/oaisim_noS1_build_oai/CMakeLists.template mode change 100644 => 100755 cmake_targets/s1c_mme_test/CMakeLists.template mode change 100644 => 100755 cmake_targets/tools/Kbuild.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/CMakeParseArguments.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/CMakeUserUseBison.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindFreeDiameter.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindGCCXML.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindGcrypt.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindGnuTLS.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindKbuild.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindLibXml2.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindMySQL.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindNettle.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindPostgreSQL.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/FindSCTP.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/Kbuild.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/cmake_useful.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/kbuild_system.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/kmodule.cmake mode change 100644 => 100755 cmake_targets/tools/MODULES/path_prefixes.cmake mode change 100644 => 100755 cmake_targets/tools/asn1tostruct.py mode change 100644 => 100755 cmake_targets/tools/example_enb_exmimo_mme_hss.txt mode change 100644 => 100755 cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt mode change 100644 => 100755 cmake_targets/tools/exmimo2_2arxg.lime mode change 100644 => 100755 cmake_targets/tools/exmimo_stop_octave.m mode change 100644 => 100755 cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff mode change 100644 => 100755 cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff mode change 100644 => 100755 cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff mode change 100644 => 100755 cmake_targets/tools/init_nas_s1 mode change 100644 => 100755 cmake_targets/tools/run_ue_s1 mode change 100644 => 100755 cmake_targets/tools/test_helper mode change 100644 => 100755 common/ran_context.h mode change 100644 => 100755 common/utils/T/.gitignore mode change 100644 => 100755 common/utils/T/Makefile mode change 100644 => 100755 common/utils/T/README mode change 100644 => 100755 common/utils/T/T.c mode change 100644 => 100755 common/utils/T/T.h mode change 100644 => 100755 common/utils/T/T_defs.h mode change 100644 => 100755 common/utils/T/T_messages.txt mode change 100644 => 100755 common/utils/T/defs.h mode change 100644 => 100755 common/utils/T/generate_Txx.c mode change 100644 => 100755 common/utils/T/genids.c mode change 100644 => 100755 common/utils/T/local_tracer.c mode change 100644 => 100755 common/utils/T/plot.c mode change 100644 => 100755 common/utils/T/tracee/Makefile mode change 100644 => 100755 common/utils/T/tracee/README mode change 100644 => 100755 common/utils/T/tracee/tracee.c mode change 100644 => 100755 common/utils/T/tracer/Makefile mode change 100644 => 100755 common/utils/T/tracer/config.c mode change 100644 => 100755 common/utils/T/tracer/config.h mode change 100644 => 100755 common/utils/T/tracer/database.c mode change 100644 => 100755 common/utils/T/tracer/database.h mode change 100644 => 100755 common/utils/T/tracer/defs.h mode change 100644 => 100755 common/utils/T/tracer/enb.c mode change 100644 => 100755 common/utils/T/tracer/event.c mode change 100644 => 100755 common/utils/T/tracer/event.h mode change 100644 => 100755 common/utils/T/tracer/event_selector.c mode change 100644 => 100755 common/utils/T/tracer/event_selector.h mode change 100644 => 100755 common/utils/T/tracer/extract_config.c mode change 100644 => 100755 common/utils/T/tracer/filter/Makefile mode change 100644 => 100755 common/utils/T/tracer/filter/filter.c mode change 100644 => 100755 common/utils/T/tracer/filter/filter.h mode change 100644 => 100755 common/utils/T/tracer/gui.c mode change 100644 => 100755 common/utils/T/tracer/gui/Makefile mode change 100644 => 100755 common/utils/T/tracer/gui/container.c mode change 100644 => 100755 common/utils/T/tracer/gui/event.c mode change 100644 => 100755 common/utils/T/tracer/gui/gui.c mode change 100644 => 100755 common/utils/T/tracer/gui/gui.h mode change 100644 => 100755 common/utils/T/tracer/gui/gui_defs.h mode change 100644 => 100755 common/utils/T/tracer/gui/image.c mode change 100644 => 100755 common/utils/T/tracer/gui/init.c mode change 100644 => 100755 common/utils/T/tracer/gui/label.c mode change 100644 => 100755 common/utils/T/tracer/gui/loop.c mode change 100644 => 100755 common/utils/T/tracer/gui/notify.c mode change 100644 => 100755 common/utils/T/tracer/gui/positioner.c mode change 100644 => 100755 common/utils/T/tracer/gui/space.c mode change 100644 => 100755 common/utils/T/tracer/gui/test.c mode change 100644 => 100755 common/utils/T/tracer/gui/textarea.c mode change 100644 => 100755 common/utils/T/tracer/gui/textlist.c mode change 100644 => 100755 common/utils/T/tracer/gui/timeline.c mode change 100644 => 100755 common/utils/T/tracer/gui/toplevel_window.c mode change 100644 => 100755 common/utils/T/tracer/gui/widget.c mode change 100644 => 100755 common/utils/T/tracer/gui/x.c mode change 100644 => 100755 common/utils/T/tracer/gui/x.h mode change 100644 => 100755 common/utils/T/tracer/gui/x_defs.h mode change 100644 => 100755 common/utils/T/tracer/gui/xy_plot.c mode change 100644 => 100755 common/utils/T/tracer/hacks/Makefile mode change 100644 => 100755 common/utils/T/tracer/hacks/dump_nack_signal.c mode change 100644 => 100755 common/utils/T/tracer/hacks/time_meas.c mode change 100644 => 100755 common/utils/T/tracer/hacks/timeplot.c mode change 100644 => 100755 common/utils/T/tracer/handler.c mode change 100644 => 100755 common/utils/T/tracer/handler.h mode change 100644 => 100755 common/utils/T/tracer/logger/Makefile mode change 100644 => 100755 common/utils/T/tracer/logger/framelog.c mode change 100644 => 100755 common/utils/T/tracer/logger/iqdotlog.c mode change 100644 => 100755 common/utils/T/tracer/logger/iqlog.c mode change 100644 => 100755 common/utils/T/tracer/logger/logger.c mode change 100644 => 100755 common/utils/T/tracer/logger/logger.h mode change 100644 => 100755 common/utils/T/tracer/logger/logger_defs.h mode change 100644 => 100755 common/utils/T/tracer/logger/textlog.c mode change 100644 => 100755 common/utils/T/tracer/logger/throughputlog.c mode change 100644 => 100755 common/utils/T/tracer/logger/ticked_ttilog.c mode change 100644 => 100755 common/utils/T/tracer/logger/ticklog.c mode change 100644 => 100755 common/utils/T/tracer/logger/timelog.c mode change 100644 => 100755 common/utils/T/tracer/logger/ttilog.c mode change 100644 => 100755 common/utils/T/tracer/macpdu2wireshark.c mode change 100644 => 100755 common/utils/T/tracer/openair_logo.h mode change 100644 => 100755 common/utils/T/tracer/openair_logo.png mode change 100644 => 100755 common/utils/T/tracer/packet-mac-lte.h mode change 100644 => 100755 common/utils/T/tracer/plot.c mode change 100644 => 100755 common/utils/T/tracer/record.c mode change 100644 => 100755 common/utils/T/tracer/replay.c mode change 100644 => 100755 common/utils/T/tracer/textlog.c mode change 100644 => 100755 common/utils/T/tracer/ue.c mode change 100644 => 100755 common/utils/T/tracer/utils.c mode change 100644 => 100755 common/utils/T/tracer/utils.h mode change 100644 => 100755 common/utils/T/tracer/vcd.c mode change 100644 => 100755 common/utils/T/tracer/view/Makefile mode change 100644 => 100755 common/utils/T/tracer/view/scrolltti.c mode change 100644 => 100755 common/utils/T/tracer/view/stdout.c mode change 100644 => 100755 common/utils/T/tracer/view/textlist.c mode change 100644 => 100755 common/utils/T/tracer/view/ticktime.c mode change 100644 => 100755 common/utils/T/tracer/view/time.c mode change 100644 => 100755 common/utils/T/tracer/view/tti.c mode change 100644 => 100755 common/utils/T/tracer/view/view.h mode change 100644 => 100755 common/utils/T/tracer/view/xy.c mode change 100644 => 100755 common/utils/asn1_conversions.h mode change 100644 => 100755 common/utils/assertions.h mode change 100644 => 100755 common/utils/hashtable/hashtable.c mode change 100644 => 100755 common/utils/hashtable/hashtable.h mode change 100644 => 100755 common/utils/hashtable/obj_hashtable.c mode change 100644 => 100755 common/utils/hashtable/obj_hashtable.h mode change 100644 => 100755 common/utils/itti/Makefile.am mode change 100644 => 100755 common/utils/itti/assertions.h mode change 100644 => 100755 common/utils/itti/backtrace.c mode change 100644 => 100755 common/utils/itti/backtrace.h mode change 100644 => 100755 common/utils/itti/intertask_interface.c mode change 100644 => 100755 common/utils/itti/intertask_interface.h mode change 100644 => 100755 common/utils/itti/intertask_interface_dump.c mode change 100644 => 100755 common/utils/itti/intertask_interface_dump.h mode change 100644 => 100755 common/utils/itti/intertask_interface_init.h mode change 100644 => 100755 common/utils/itti/intertask_interface_types.h mode change 100644 => 100755 common/utils/itti/intertask_messages_def.h mode change 100644 => 100755 common/utils/itti/intertask_messages_types.h mode change 100644 => 100755 common/utils/itti/itti_types.h mode change 100644 => 100755 common/utils/itti/memory_pools.c mode change 100644 => 100755 common/utils/itti/memory_pools.h mode change 100644 => 100755 common/utils/itti/messages_def.h mode change 100644 => 100755 common/utils/itti/messages_types.h mode change 100644 => 100755 common/utils/itti/signals.c mode change 100644 => 100755 common/utils/itti/signals.h mode change 100644 => 100755 common/utils/itti/tasks_def.h mode change 100644 => 100755 common/utils/itti/timer.c mode change 100644 => 100755 common/utils/itti/timer.h mode change 100644 => 100755 common/utils/itti/timer_messages_def.h mode change 100644 => 100755 common/utils/itti/timer_messages_types.h mode change 100644 => 100755 common/utils/itti_analyzer/AUTHORS mode change 100644 => 100755 common/utils/itti_analyzer/ChangeLog mode change 100644 => 100755 common/utils/itti_analyzer/INSTALL mode change 100644 => 100755 common/utils/itti_analyzer/Makefile.am mode change 100644 => 100755 common/utils/itti_analyzer/NEWS mode change 100644 => 100755 common/utils/itti_analyzer/README mode change 100644 => 100755 common/utils/itti_analyzer/common/itti_types.h mode change 100644 => 100755 common/utils/itti_analyzer/common/logs.h mode change 100644 => 100755 common/utils/itti_analyzer/common/queue.h mode change 100644 => 100755 common/utils/itti_analyzer/common/rc.h mode change 100644 => 100755 common/utils/itti_analyzer/configure.ac mode change 100644 => 100755 common/utils/itti_analyzer/filters.xml mode change 100644 => 100755 common/utils/itti_analyzer/filters_mme.xml mode change 100644 => 100755 common/utils/itti_analyzer/filters_ue_enb.xml mode change 100644 => 100755 common/utils/itti_analyzer/itti_analyzer.c mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/Makefile.am mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/buffers.c mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/buffers.h mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/file.c mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/file.h mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/socket.c mode change 100644 => 100755 common/utils/itti_analyzer/libbuffers/socket.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/Makefile.am mode change 100644 => 100755 common/utils/itti_analyzer/libparser/array_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/array_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/enum_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/enum_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/enum_value_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/enum_value_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/field_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/field_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/file_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/file_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/fundamental_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/fundamental_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/intertask_contexts.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/pointer_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/pointer_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/reference_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/reference_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/struct_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/struct_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/typedef_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/typedef_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/types.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/types.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/union_type.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/union_type.h mode change 100644 => 100755 common/utils/itti_analyzer/libparser/xml_parse.c mode change 100644 => 100755 common/utils/itti_analyzer/libparser/xml_parse.h mode change 100644 => 100755 common/utils/itti_analyzer/libresolver/Makefile.am mode change 100644 => 100755 common/utils/itti_analyzer/libresolver/locate_root.c mode change 100644 => 100755 common/utils/itti_analyzer/libresolver/locate_root.h mode change 100644 => 100755 common/utils/itti_analyzer/libresolver/resolvers.c mode change 100644 => 100755 common/utils/itti_analyzer/libresolver/resolvers.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/Makefile.am mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_callbacks.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_callbacks.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_filters.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_filters.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_interface.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_interface.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_main_screen.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_main_screen.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_menu_bar.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_menu_bar.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_notebook.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_notebook.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_notif_dlg.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_notif_dlg.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_notifications.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_notifications.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_signal_dissect_view.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_signal_dissect_view.h mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_tree_view.c mode change 100644 => 100755 common/utils/itti_analyzer/libui/ui_tree_view.h mode change 100644 => 100755 common/utils/msc/msc.c mode change 100644 => 100755 common/utils/msc/msc.h mode change 100644 => 100755 common/utils/system.c mode change 100644 => 100755 common/utils/system.h mode change 100644 => 100755 common/utils/time_utils.h mode change 100644 => 100755 common/utils/utils.c mode change 100644 => 100755 common/utils/utils.h create mode 100755 enb_dev.config create mode 100755 enb_dev.creator create mode 100755 enb_dev.files create mode 100755 enb_dev.includes mode change 100644 => 100755 oai5g_development.config mode change 100644 => 100755 oai5g_development.creator mode change 100644 => 100755 oai5g_development.files mode change 100644 => 100755 oai5g_development.includes mode change 100644 => 100755 oaienv mode change 100644 => 100755 openair1/Makefile mode change 100644 => 100755 openair1/PHY/CODING/3gpplte.c mode change 100644 => 100755 openair1/PHY/CODING/3gpplte_sse.c mode change 100644 => 100755 openair1/PHY/CODING/3gpplte_turbo_decoder.c mode change 100644 => 100755 openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c mode change 100644 => 100755 openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c mode change 100644 => 100755 openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c mode change 100644 => 100755 openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c mode change 100644 => 100755 openair1/PHY/CODING/Makefile mode change 100644 => 100755 openair1/PHY/CODING/Makefile.arm mode change 100644 => 100755 openair1/PHY/CODING/README.txt mode change 100644 => 100755 openair1/PHY/CODING/TESTBENCH/Makefile mode change 100644 => 100755 openair1/PHY/CODING/TESTBENCH/README.txt mode change 100644 => 100755 openair1/PHY/CODING/TESTBENCH/ltetest.c mode change 100644 => 100755 openair1/PHY/CODING/TESTBENCH/pdcch_test.c mode change 100644 => 100755 openair1/PHY/CODING/TESTBENCH/viterbi_test.c mode change 100644 => 100755 openair1/PHY/CODING/ccoding_byte.c mode change 100644 => 100755 openair1/PHY/CODING/ccoding_byte_lte.c mode change 100644 => 100755 openair1/PHY/CODING/crc_byte.c mode change 100644 => 100755 openair1/PHY/CODING/defs.h mode change 100644 => 100755 openair1/PHY/CODING/extern.h mode change 100644 => 100755 openair1/PHY/CODING/extern_3GPPinterleaver.h mode change 100644 => 100755 openair1/PHY/CODING/lte_interleaver.h mode change 100644 => 100755 openair1/PHY/CODING/lte_interleaver2.h mode change 100644 => 100755 openair1/PHY/CODING/lte_interleaver_inline.h mode change 100644 => 100755 openair1/PHY/CODING/lte_rate_matching.c mode change 100644 => 100755 openair1/PHY/CODING/lte_segmentation.c mode change 100644 => 100755 openair1/PHY/CODING/lte_tf.m mode change 100644 => 100755 openair1/PHY/CODING/scrambler.h mode change 100644 => 100755 openair1/PHY/CODING/vars.h mode change 100644 => 100755 openair1/PHY/CODING/viterbi.c mode change 100644 => 100755 openair1/PHY/CODING/viterbi_lte.c mode change 100644 => 100755 openair1/PHY/INIT/README.txt mode change 100644 => 100755 openair1/PHY/INIT/defs.h mode change 100644 => 100755 openair1/PHY/INIT/extern.h mode change 100644 => 100755 openair1/PHY/INIT/init_top.c mode change 100644 => 100755 openair1/PHY/INIT/lte_init.c mode change 100644 => 100755 openair1/PHY/INIT/lte_param_init.c mode change 100644 => 100755 openair1/PHY/INIT/lte_parms.c mode change 100644 => 100755 openair1/PHY/INIT/vars.h mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/README.txt mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/adjust_gain.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/defs.h mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/extern.h mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/filt16_32.h mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/filt96_32.h mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/freq_equalization.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_sync_time.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/pss6144.h mode change 100644 => 100755 openair1/PHY/LTE_ESTIMATION/vars.h mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/README.txt mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/defs.h mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/gen_mod_table.m mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_dl_uespec.c mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_gold.c mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_ul.m mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/lte_ul_ref.c mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/mod_table.h mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/primary_synch.h mode change 100644 => 100755 openair1/PHY/LTE_REFSIG/primary_synch.m mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/README.txt mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dci.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dci_tools.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/defs.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_coding.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/drs_modulation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/extern.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/group_hopping.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/if4_tools.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/if4_tools.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/if5_tools.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/if5_tools.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/initial_sync.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/lte_mcs.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/mdci.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pbch.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pcfich.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pch.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/phich.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pilots.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pmch.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/power_control.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/prach.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/prach.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/print_stats.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/proto.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pss.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/pucch.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/rar_tools.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/srs_modulation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/sss.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/sss.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/sss_gen.m mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/uci.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/uci_tools.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/ulsch_coding.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/vars.h mode change 100644 => 100755 openair1/PHY/LTE_TRANSPORT/vrb_maps.m mode change 100644 => 100755 openair1/PHY/MODULATION/beamforming.c mode change 100644 => 100755 openair1/PHY/MODULATION/compute_bf_weights.c mode change 100644 => 100755 openair1/PHY/MODULATION/defs.h mode change 100644 => 100755 openair1/PHY/MODULATION/extern.h mode change 100644 => 100755 openair1/PHY/MODULATION/gen_7_5_kHz.m mode change 100644 => 100755 openair1/PHY/MODULATION/kHz_7_5.h mode change 100644 => 100755 openair1/PHY/MODULATION/ofdm_mod.c mode change 100644 => 100755 openair1/PHY/MODULATION/prach625Hz.h mode change 100644 => 100755 openair1/PHY/MODULATION/slot_fep.c mode change 100644 => 100755 openair1/PHY/MODULATION/slot_fep_mbsfn.c mode change 100644 => 100755 openair1/PHY/MODULATION/slot_fep_ul.c mode change 100644 => 100755 openair1/PHY/MODULATION/ul_7_5_kHz.c mode change 100644 => 100755 openair1/PHY/MODULATION/vars.h mode change 100644 => 100755 openair1/PHY/Makefile.inc mode change 100644 => 100755 openair1/PHY/TOOLS/8bit_rxdemux.c mode change 100644 => 100755 openair1/PHY/TOOLS/8bit_txmux.c mode change 100644 => 100755 openair1/PHY/TOOLS/Makefile mode change 100644 => 100755 openair1/PHY/TOOLS/alaw_lut.h mode change 100644 => 100755 openair1/PHY/TOOLS/angle.c mode change 100644 => 100755 openair1/PHY/TOOLS/cadd_sv.c mode change 100644 => 100755 openair1/PHY/TOOLS/cadd_vv.c mode change 100644 => 100755 openair1/PHY/TOOLS/cdot_prod.c mode change 100644 => 100755 openair1/PHY/TOOLS/cmult_sv.c mode change 100644 => 100755 openair1/PHY/TOOLS/cmult_vv.c mode change 100644 => 100755 openair1/PHY/TOOLS/costable.h mode change 100644 => 100755 openair1/PHY/TOOLS/dB_routines.c mode change 100644 => 100755 openair1/PHY/TOOLS/dB_routines.h mode change 100644 => 100755 openair1/PHY/TOOLS/defs.h mode change 100644 => 100755 openair1/PHY/TOOLS/extern.h mode change 100644 => 100755 openair1/PHY/TOOLS/file_output.c mode change 100644 => 100755 openair1/PHY/TOOLS/invSqrt.c mode change 100644 => 100755 openair1/PHY/TOOLS/log2_approx.c mode change 100644 => 100755 openair1/PHY/TOOLS/lte_dfts.c mode change 100644 => 100755 openair1/PHY/TOOLS/lte_phy_scope.c mode change 100644 => 100755 openair1/PHY/TOOLS/lte_phy_scope.h mode change 100644 => 100755 openair1/PHY/TOOLS/lte_phy_scope_tm4.c mode change 100644 => 100755 openair1/PHY/TOOLS/lut.c mode change 100644 => 100755 openair1/PHY/TOOLS/memory_routines.c mode change 100644 => 100755 openair1/PHY/TOOLS/read_F.c mode change 100644 => 100755 openair1/PHY/TOOLS/signal_energy.c mode change 100644 => 100755 openair1/PHY/TOOLS/smbv.c mode change 100644 => 100755 openair1/PHY/TOOLS/smbv.h mode change 100644 => 100755 openair1/PHY/TOOLS/sqrt.c mode change 100644 => 100755 openair1/PHY/TOOLS/time_meas.c mode change 100644 => 100755 openair1/PHY/TOOLS/time_meas.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddle12288.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddle1536.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddle18432.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddle24576.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddle6144.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddles4096.h mode change 100644 => 100755 openair1/PHY/TOOLS/twiddles8192.h mode change 100644 => 100755 openair1/PHY/TOOLS/vars.h mode change 100644 => 100755 openair1/PHY/defs.h mode change 100644 => 100755 openair1/PHY/extern.h mode change 100644 => 100755 openair1/PHY/impl_defs_lte.h mode change 100644 => 100755 openair1/PHY/impl_defs_top.h mode change 100644 => 100755 openair1/PHY/sse_intrin.h mode change 100644 => 100755 openair1/PHY/types.h mode change 100644 => 100755 openair1/PHY/vars.h mode change 100644 => 100755 openair1/README.TXT mode change 100644 => 100755 openair1/SCHED/Makefile.inc mode change 100644 => 100755 openair1/SCHED/defs.h mode change 100644 => 100755 openair1/SCHED/extern.h mode change 100644 => 100755 openair1/SCHED/phy_mac_stub.c mode change 100644 => 100755 openair1/SCHED/phy_procedures_emos.h mode change 100644 => 100755 openair1/SCHED/phy_procedures_lte_common.c mode change 100644 => 100755 openair1/SCHED/phy_procedures_lte_eNb.c mode change 100644 => 100755 openair1/SCHED/phy_procedures_lte_ue.c mode change 100644 => 100755 openair1/SCHED/pucch_pc.c mode change 100644 => 100755 openair1/SCHED/pusch_pc.c mode change 100644 => 100755 openair1/SCHED/rt_compat.h mode change 100644 => 100755 openair1/SCHED/ru_procedures.c mode change 100644 => 100755 openair1/SCHED/srs_pc.c mode change 100644 => 100755 openair1/SCHED/vars.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/README.txt mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/defs.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/extern.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/proto.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/socket.c mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/socket.h mode change 100644 => 100755 openair1/SIMULATION/ETH_TRANSPORT/vars.h mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/LTE_Configuration.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/LTE_Configuration.h mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/Makefile mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/README.txt mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/blerSimus.zip mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/dlsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/dlsim_tm4.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/dlsim_tm7.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/fancyheadings.sty mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/framegen.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/gpib_send.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/gpib_send.h mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/launch_sim.sh mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/mbmssim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pbch_awgn.txt mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pbchsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pdcchsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/p mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/prachsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/pucchsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/scansim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/signalanalyzer.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/signalanalyzer.h mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/syncsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/test.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/ulsim.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/ulsim2.c mode change 100644 => 100755 openair1/SIMULATION/LTE_PHY/unitary_defs.h mode change 100644 => 100755 openair1/SIMULATION/Makefile.inc mode change 100644 => 100755 openair1/SIMULATION/RF/Makefile mode change 100644 => 100755 openair1/SIMULATION/RF/README.txt mode change 100644 => 100755 openair1/SIMULATION/RF/adc.c mode change 100644 => 100755 openair1/SIMULATION/RF/dac.c mode change 100644 => 100755 openair1/SIMULATION/RF/defs.h mode change 100644 => 100755 openair1/SIMULATION/RF/rf.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/abstraction.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/ch_desc_proto.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/corr_mat.m mode change 100644 => 100755 openair1/SIMULATION/TOOLS/defs.h mode change 100644 => 100755 openair1/SIMULATION/TOOLS/gauss.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/llr_quantization.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/multipath_channel.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/multipath_tv_channel.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/random_channel.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/rangen_double.c mode change 100644 => 100755 openair1/SIMULATION/TOOLS/scm_corrmat.h mode change 100644 => 100755 openair1/SIMULATION/TOOLS/taus.c mode change 100644 => 100755 openair2/COMMON/as_message.h mode change 100644 => 100755 openair2/COMMON/commonDef.h mode change 100644 => 100755 openair2/COMMON/gtpv1_u_messages_def.h mode change 100644 => 100755 openair2/COMMON/gtpv1_u_messages_types.h mode change 100644 => 100755 openair2/COMMON/intertask_interface_conf.h mode change 100644 => 100755 openair2/COMMON/mac_messages_def.h mode change 100644 => 100755 openair2/COMMON/mac_messages_types.h mode change 100644 => 100755 openair2/COMMON/mac_primitives.h mode change 100644 => 100755 openair2/COMMON/mac_rlc_primitives.h mode change 100644 => 100755 openair2/COMMON/mac_rrc_primitives.h mode change 100644 => 100755 openair2/COMMON/messages_def.h mode change 100644 => 100755 openair2/COMMON/messages_types.h mode change 100644 => 100755 openair2/COMMON/nas_messages_def.h mode change 100644 => 100755 openair2/COMMON/nas_messages_types.h mode change 100644 => 100755 openair2/COMMON/networkDef.h mode change 100644 => 100755 openair2/COMMON/openair_defs.h mode change 100644 => 100755 openair2/COMMON/openair_types.h mode change 100644 => 100755 openair2/COMMON/pdcp_messages_def.h mode change 100644 => 100755 openair2/COMMON/pdcp_messages_types.h mode change 100644 => 100755 openair2/COMMON/phy_messages_def.h mode change 100644 => 100755 openair2/COMMON/phy_messages_types.h mode change 100644 => 100755 openair2/COMMON/platform_constants.h mode change 100644 => 100755 openair2/COMMON/platform_types.h mode change 100644 => 100755 openair2/COMMON/ral_messages_def.h mode change 100644 => 100755 openair2/COMMON/ral_messages_types.h mode change 100644 => 100755 openair2/COMMON/rlc_messages_def.h mode change 100644 => 100755 openair2/COMMON/rlc_messages_types.h mode change 100644 => 100755 openair2/COMMON/rrc_messages_def.h mode change 100644 => 100755 openair2/COMMON/rrc_messages_types.h mode change 100644 => 100755 openair2/COMMON/rrm_config_structs.h mode change 100644 => 100755 openair2/COMMON/rrm_constants.h mode change 100644 => 100755 openair2/COMMON/rtos_header.h mode change 100644 => 100755 openair2/COMMON/s1ap_messages_def.h mode change 100644 => 100755 openair2/COMMON/s1ap_messages_types.h mode change 100644 => 100755 openair2/COMMON/sctp_messages_def.h mode change 100644 => 100755 openair2/COMMON/sctp_messages_types.h mode change 100644 => 100755 openair2/COMMON/tasks_def.h mode change 100644 => 100755 openair2/COMMON/udp_messages_def.h mode change 100644 => 100755 openair2/COMMON/udp_messages_types.h mode change 100644 => 100755 openair2/COMMON/x2ap_messages_def.h mode change 100644 => 100755 openair2/COMMON/x2ap_messages_types.h mode change 100644 => 100755 openair2/DOCS/DOXYGEN/images/Transmission.png mode change 100644 => 100755 openair2/DOCS/DOXYGEN/images/Transmission.ps mode change 100644 => 100755 openair2/DOCS/Documentation/flow.txt mode change 100644 => 100755 openair2/DOCS/TEMPLATES/CODE/Doxyfile mode change 100644 => 100755 openair2/DOCS/TEMPLATES/CODE/example_doxy.h mode change 100644 => 100755 openair2/DOCS/TEMPLATES/CODE/images/arch.eps mode change 100644 => 100755 openair2/DOCS/TEMPLATES/CODE/images/arch.png mode change 100644 => 100755 openair2/DOCS/TEMPLATES/README/Readme.doxy mode change 100644 => 100755 openair2/DOCS/TEMPLATES/README/readme.txt mode change 100644 => 100755 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c mode change 100644 => 100755 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h mode change 100644 => 100755 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h mode change 100644 => 100755 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c mode change 100644 => 100755 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/config_common.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/config_messages.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/control_delegation.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/controller_commands.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/flexran.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/header.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/stats_common.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/stats_messages.proto mode change 100644 => 100755 openair2/ENB_APP/MESSAGES/V2/time_common.proto mode change 100644 => 100755 openair2/ENB_APP/Makefile.inc mode change 100644 => 100755 openair2/ENB_APP/enb_app.c mode change 100644 => 100755 openair2/ENB_APP/enb_app.h mode change 100644 => 100755 openair2/ENB_APP/enb_config.c mode change 100644 => 100755 openair2/ENB_APP/enb_config.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_async.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_async.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_common.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_common.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_common_internal.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_common_internal.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_defs.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_extern.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_handler.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_net_comm.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_net_comm.h mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_task_manager.c mode change 100644 => 100755 openair2/ENB_APP/flexran_agent_task_manager.h mode change 100644 => 100755 openair2/LAYER2/MAC/config.c mode change 100644 => 100755 openair2/LAYER2/MAC/defs.h mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler.c mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler_RA.c mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler_bch.c mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler_mch.c mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler_primitives.c mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler_ulsch.c mode change 100644 => 100755 openair2/LAYER2/MAC/extern.h mode change 100644 => 100755 openair2/LAYER2/MAC/flexran_agent_mac_proto.h mode change 100644 => 100755 openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c mode change 100644 => 100755 openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c mode change 100644 => 100755 openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c mode change 100644 => 100755 openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h mode change 100644 => 100755 openair2/LAYER2/MAC/flexran_dci_conversions.h mode change 100644 => 100755 openair2/LAYER2/MAC/l1_helpers.c mode change 100644 => 100755 openair2/LAYER2/MAC/lte_transport_init.c mode change 100644 => 100755 openair2/LAYER2/MAC/main.c mode change 100644 => 100755 openair2/LAYER2/MAC/openair2_proc.c mode change 100644 => 100755 openair2/LAYER2/MAC/pre_processor.c mode change 100644 => 100755 openair2/LAYER2/MAC/proto.h mode change 100644 => 100755 openair2/LAYER2/MAC/ra_procedures.c mode change 100644 => 100755 openair2/LAYER2/MAC/rar_tools.c mode change 100644 => 100755 openair2/LAYER2/MAC/ue_procedures.c mode change 100644 => 100755 openair2/LAYER2/MAC/vars.h mode change 100644 => 100755 openair2/LAYER2/Makefile.inc mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp.h mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c mode change 100644 => 100755 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c mode change 100644 => 100755 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h mode change 100644 => 100755 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c mode change 100644 => 100755 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h mode change 100644 => 100755 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h mode change 100644 => 100755 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c mode change 100644 => 100755 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h mode change 100644 => 100755 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/Makefile mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/README mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c mode change 100644 => 100755 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h mode change 100644 => 100755 openair2/LAYER2/RLC/mac_primitives.h mode change 100644 => 100755 openair2/LAYER2/RLC/rlc.c mode change 100644 => 100755 openair2/LAYER2/RLC/rlc.h mode change 100644 => 100755 openair2/LAYER2/RLC/rlc_def.h mode change 100644 => 100755 openair2/LAYER2/RLC/rlc_def_lte.h mode change 100644 => 100755 openair2/LAYER2/RLC/rlc_mac.c mode change 100644 => 100755 openair2/LAYER2/RLC/rlc_mpls.c mode change 100644 => 100755 openair2/LAYER2/RLC/rlc_primitives.h mode change 100644 => 100755 openair2/LAYER2/RLC/rlc_rrc.c mode change 100644 => 100755 openair2/LAYER2/openair2_proc.c mode change 100644 => 100755 openair2/LAYER2/register.c mode change 100644 => 100755 openair2/LAYER2/register.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c mode change 100644 => 100755 openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c mode change 100644 => 100755 openair2/NAS/Makefile.inc mode change 100644 => 100755 openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h mode change 100644 => 100755 openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c mode change 100644 => 100755 openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/classifier.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/common.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/constant.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/device.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/ioctl.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/ioctl.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/local.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/netlink.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/proto_extern.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/sap.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/LITE/tool.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/classifier.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/common.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/constant.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/device.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/ioctl.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/ioctl.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/local.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/mesh.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/netlink.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/proto_extern.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/sap.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/MESH/tool.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/common.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/constant.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/device.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/local.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/netlink.c mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/proto_extern.h mode change 100644 => 100755 openair2/NETWORK_DRIVER/UE_IP/sap.h mode change 100644 => 100755 openair2/PHY_INTERFACE/IF_Module.c mode change 100644 => 100755 openair2/PHY_INTERFACE/IF_Module.h mode change 100644 => 100755 openair2/PHY_INTERFACE/defs.h mode change 100644 => 100755 openair2/PHY_INTERFACE/extern.h mode change 100644 => 100755 openair2/PHY_INTERFACE/mac_phy_primitives.c mode change 100644 => 100755 openair2/PHY_INTERFACE/mac_phy_primitives.h mode change 100644 => 100755 openair2/PHY_INTERFACE/vars.h mode change 100644 => 100755 openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c mode change 100644 => 100755 openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h mode change 100644 => 100755 openair2/RRC/LITE/L2_interface.c mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/Makefile mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/Makefile.inc mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/README.txt mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1_msg.c mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1_msg.h mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1_patch mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/rtai_mem.c mode change 100644 => 100755 openair2/RRC/LITE/MESSAGES/rtai_mem.h mode change 100644 => 100755 openair2/RRC/LITE/defs.h mode change 100644 => 100755 openair2/RRC/LITE/extern.h mode change 100644 => 100755 openair2/RRC/LITE/mesh_top.c mode change 100644 => 100755 openair2/RRC/LITE/plmn_data.h mode change 100644 => 100755 openair2/RRC/LITE/proto.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_2_rrm_msg.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_UE.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_UE_ral.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_UE_ral.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_common.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_GTPV1U.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_GTPV1U.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_S1AP.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_S1AP.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_UE_context.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_UE_context.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_ral.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_eNB_ral.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_rrm_interface.c mode change 100644 => 100755 openair2/RRC/LITE/rrc_rrm_interface.h mode change 100644 => 100755 openair2/RRC/LITE/rrc_types.h mode change 100644 => 100755 openair2/RRC/LITE/rrm_2_rrc_msg.c mode change 100644 => 100755 openair2/RRC/LITE/utils.c mode change 100644 => 100755 openair2/RRC/LITE/vars.h mode change 100644 => 100755 openair2/RRC/NAS/Makefile.inc mode change 100644 => 100755 openair2/RRC/NAS/nas_config.c mode change 100644 => 100755 openair2/RRC/NAS/nas_config.h mode change 100644 => 100755 openair2/RRC/NAS/rb_config.c mode change 100644 => 100755 openair2/RRC/NAS/rb_config.h mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/link_manager.c mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/link_manager.h mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/message_queue.c mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/message_queue.h mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/ringbuffer_queue.c mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/ringbuffer_queue.h mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/socket_link.c mode change 100644 => 100755 openair2/UTIL/ASYNC_IF/socket_link.h mode change 100644 => 100755 openair2/UTIL/BIGPHYS/bigphys.c mode change 100644 => 100755 openair2/UTIL/BIGPHYS/defs.h mode change 100644 => 100755 openair2/UTIL/CLI/cli.c mode change 100644 => 100755 openair2/UTIL/CLI/cli.h mode change 100644 => 100755 openair2/UTIL/CLI/cli_cmd.c mode change 100644 => 100755 openair2/UTIL/CLI/cli_if.h mode change 100644 => 100755 openair2/UTIL/CLI/cli_server.c mode change 100644 => 100755 openair2/UTIL/FIFO/pad_list.c mode change 100644 => 100755 openair2/UTIL/FIFO/pad_list.h mode change 100644 => 100755 openair2/UTIL/FIFO/types.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.linux mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.windows mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.windows mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_and_gnumake/Makefile mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Makefile mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.user mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.user mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.user mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/build/gcc_and_gnumake/Makefile mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/build/sdk_for_windows_7_and_gnumake/makefile mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.user mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c mode change 100644 => 100755 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h mode change 100644 => 100755 openair2/UTIL/LISTS/list.c mode change 100644 => 100755 openair2/UTIL/LISTS/list.h mode change 100644 => 100755 openair2/UTIL/LISTS/list2.c mode change 100644 => 100755 openair2/UTIL/LOG/README.txt mode change 100644 => 100755 openair2/UTIL/LOG/log.c mode change 100644 => 100755 openair2/UTIL/LOG/log.h mode change 100644 => 100755 openair2/UTIL/LOG/log_extern.h mode change 100644 => 100755 openair2/UTIL/LOG/log_if.h mode change 100644 => 100755 openair2/UTIL/LOG/vcd_signal_dumper.c mode change 100644 => 100755 openair2/UTIL/LOG/vcd_signal_dumper.h mode change 100644 => 100755 openair2/UTIL/MATH/crc_byte.c mode change 100644 => 100755 openair2/UTIL/MATH/oml.c mode change 100644 => 100755 openair2/UTIL/MATH/oml.h mode change 100644 => 100755 openair2/UTIL/MATH/random.c mode change 100644 => 100755 openair2/UTIL/MATH/random_proto_extern.h mode change 100644 => 100755 openair2/UTIL/MATH/taus.c mode change 100644 => 100755 openair2/UTIL/MEM/mem_block.c mode change 100644 => 100755 openair2/UTIL/MEM/mem_block.h mode change 100644 => 100755 openair2/UTIL/MEM/mem_mngt.c mode change 100644 => 100755 openair2/UTIL/MEM/mem_mngt_proto_extern.h mode change 100644 => 100755 openair2/UTIL/MEM/mem_pool.h mode change 100644 => 100755 openair2/UTIL/Makefile.inc mode change 100644 => 100755 openair2/UTIL/OCG/.directory mode change 100644 => 100755 openair2/UTIL/OCG/Doxyfile mode change 100644 => 100755 openair2/UTIL/OCG/OCG.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_call_emu.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_call_emu.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_config_mobi.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_config_mobi.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_create_dir.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_create_dir.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_detect_file.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_detect_file.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_extern.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_generate_report.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_generate_report.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_get_opt.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_get_opt.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_if.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_parse_XML.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_parse_XML.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_parse_filename.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_parse_filename.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_save_XML.c mode change 100644 => 100755 openair2/UTIL/OCG/OCG_save_XML.h mode change 100644 => 100755 openair2/UTIL/OCG/OCG_vars.h mode change 100644 => 100755 openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml mode change 100644 => 100755 openair2/UTIL/OCG/eurecom_20110208110244.xml mode change 100644 => 100755 openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml mode change 100644 => 100755 openair2/UTIL/OCG/makefile mode change 100644 => 100755 openair2/UTIL/OCG/readme.txt mode change 100644 => 100755 openair2/UTIL/OCG/temp_output/OCG_report.xml mode change 100644 => 100755 openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/README.TXT mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/example_trace.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/handover.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/handover_1ue.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/mobility_2ues.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/mobility_3ues.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/regular.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/static_1enb.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/static_2ues.tr mode change 100644 => 100755 openair2/UTIL/OMG/TRACE/zero_speed.tr mode change 100644 => 100755 openair2/UTIL/OMG/common.c mode change 100644 => 100755 openair2/UTIL/OMG/defs.h mode change 100644 => 100755 openair2/UTIL/OMG/grid.c mode change 100644 => 100755 openair2/UTIL/OMG/grid.h mode change 100644 => 100755 openair2/UTIL/OMG/job.c mode change 100644 => 100755 openair2/UTIL/OMG/makefile mode change 100644 => 100755 openair2/UTIL/OMG/makefile_old mode change 100644 => 100755 openair2/UTIL/OMG/makefile_standalone mode change 100644 => 100755 openair2/UTIL/OMG/mobility.txt mode change 100644 => 100755 openair2/UTIL/OMG/mobility_parser.c mode change 100644 => 100755 openair2/UTIL/OMG/mobility_parser.h mode change 100644 => 100755 openair2/UTIL/OMG/omg.c mode change 100644 => 100755 openair2/UTIL/OMG/omg.h mode change 100644 => 100755 openair2/UTIL/OMG/omg_constants.h mode change 100644 => 100755 openair2/UTIL/OMG/omg_hashtable.c mode change 100644 => 100755 openair2/UTIL/OMG/omg_hashtable.h mode change 100644 => 100755 openair2/UTIL/OMG/omg_vars.h mode change 100644 => 100755 openair2/UTIL/OMG/rwalk.c mode change 100644 => 100755 openair2/UTIL/OMG/rwalk.h mode change 100644 => 100755 openair2/UTIL/OMG/rwp.c mode change 100644 => 100755 openair2/UTIL/OMG/rwp.h mode change 100644 => 100755 openair2/UTIL/OMG/static.c mode change 100644 => 100755 openair2/UTIL/OMG/static.h mode change 100644 => 100755 openair2/UTIL/OMG/steadystaterwp.c mode change 100644 => 100755 openair2/UTIL/OMG/steadystaterwp.h mode change 100644 => 100755 openair2/UTIL/OMG/trace.c mode change 100644 => 100755 openair2/UTIL/OMG/trace.h mode change 100644 => 100755 openair2/UTIL/OMG/trace_hashtable.c mode change 100644 => 100755 openair2/UTIL/OMG/trace_hashtable.h mode change 100644 => 100755 openair2/UTIL/OMV/README.txt mode change 100644 => 100755 openair2/UTIL/OMV/blue.png mode change 100644 => 100755 openair2/UTIL/OMV/communicationthread.cpp mode change 100644 => 100755 openair2/UTIL/OMV/communicationthread.h mode change 100644 => 100755 openair2/UTIL/OMV/green.png mode change 100644 => 100755 openair2/UTIL/OMV/jpg.jpeg mode change 100644 => 100755 openair2/UTIL/OMV/mus.png mode change 100644 => 100755 openair2/UTIL/OMV/mywindow.cpp mode change 100644 => 100755 openair2/UTIL/OMV/mywindow.h mode change 100644 => 100755 openair2/UTIL/OMV/new.jpg mode change 100644 => 100755 openair2/UTIL/OMV/new2.jpg mode change 100644 => 100755 openair2/UTIL/OMV/omv.cpp mode change 100644 => 100755 openair2/UTIL/OMV/openglwidget.cpp mode change 100644 => 100755 openair2/UTIL/OMV/openglwidget.h mode change 100644 => 100755 openair2/UTIL/OMV/red.png mode change 100644 => 100755 openair2/UTIL/OMV/structures.h mode change 100644 => 100755 openair2/UTIL/OMV/white.png mode change 100644 => 100755 openair2/UTIL/OMV/wow.png mode change 100644 => 100755 openair2/UTIL/OPT/README.txt mode change 100644 => 100755 openair2/UTIL/OPT/mac_pcap.h mode change 100644 => 100755 openair2/UTIL/OPT/opt.h mode change 100644 => 100755 openair2/UTIL/OPT/packet-mac-lte.h mode change 100644 => 100755 openair2/UTIL/OPT/probe.c mode change 100644 => 100755 openair2/UTIL/OPT/vars.h mode change 100644 => 100755 openair2/UTIL/OSA/README mode change 100644 => 100755 openair2/UTIL/OSA/osa_defs.h mode change 100644 => 100755 openair2/UTIL/OSA/osa_internal.h mode change 100644 => 100755 openair2/UTIL/OSA/osa_key_deriver.c mode change 100644 => 100755 openair2/UTIL/OSA/osa_rijndael.c mode change 100644 => 100755 openair2/UTIL/OSA/osa_rijndael.h mode change 100644 => 100755 openair2/UTIL/OSA/osa_snow3g.c mode change 100644 => 100755 openair2/UTIL/OSA/osa_snow3g.h mode change 100644 => 100755 openair2/UTIL/OSA/osa_stream_eea.c mode change 100644 => 100755 openair2/UTIL/OSA/osa_stream_eia.c mode change 100644 => 100755 openair2/UTIL/OSD/OCG.pid mode change 100644 => 100755 openair2/UTIL/OSD/OpenAirEmu.conf mode change 100644 => 100755 openair2/UTIL/OSD/Platform_is_running.php mode change 100644 => 100755 openair2/UTIL/OSD/README.txt mode change 100644 => 100755 openair2/UTIL/OSD/css/blueprint.css mode change 100644 => 100755 openair2/UTIL/OSD/css/fix-ie-rtl.css mode change 100644 => 100755 openair2/UTIL/OSD/css/fix-ie.css mode change 100644 => 100755 openair2/UTIL/OSD/css/ie.css mode change 100644 => 100755 openair2/UTIL/OSD/css/ie6.css mode change 100644 => 100755 openair2/UTIL/OSD/css/images/false.png mode change 100644 => 100755 openair2/UTIL/OSD/css/images/false2.png mode change 100644 => 100755 openair2/UTIL/OSD/css/images/lquote.png mode change 100644 => 100755 openair2/UTIL/OSD/css/images/true.png mode change 100644 => 100755 openair2/UTIL/OSD/css/images/warning.png mode change 100644 => 100755 openair2/UTIL/OSD/css/print.css mode change 100644 => 100755 openair2/UTIL/OSD/css/screen.css mode change 100644 => 100755 openair2/UTIL/OSD/css/style.css mode change 100644 => 100755 openair2/UTIL/OSD/form.php mode change 100644 => 100755 openair2/UTIL/OSD/header.php mode change 100644 => 100755 openair2/UTIL/OSD/httpd-result.conf mode change 100644 => 100755 openair2/UTIL/OSD/index.php mode change 100644 => 100755 openair2/UTIL/OSD/jquery/jquery.js mode change 100644 => 100755 openair2/UTIL/OSD/recep.php mode change 100644 => 100755 openair2/UTIL/OSD/toto.php mode change 100644 => 100755 openair2/UTIL/OTG/Doxyfile mode change 100644 => 100755 openair2/UTIL/OTG/help_OTGplot.txt mode change 100644 => 100755 openair2/UTIL/OTG/main.c mode change 100644 => 100755 openair2/UTIL/OTG/makefile mode change 100644 => 100755 openair2/UTIL/OTG/otg.c mode change 100644 => 100755 openair2/UTIL/OTG/otg.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_config.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_defs.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_externs.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_form.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_form.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_kpi.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_kpi.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_models.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_models.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_rx.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_rx.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_rx_socket.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_rx_socket.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_tx.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_tx.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_tx_socket.c mode change 100644 => 100755 openair2/UTIL/OTG/otg_tx_socket.h mode change 100644 => 100755 openair2/UTIL/OTG/otg_vars.h mode change 100644 => 100755 openair2/UTIL/OTG/traffic_config.h mode change 100644 => 100755 openair2/UTIL/TIMER/umts_timer.c mode change 100644 => 100755 openair2/UTIL/TIMER/umts_timer.h mode change 100644 => 100755 openair2/UTIL/TIMER/umts_timer_proto_extern.h mode change 100644 => 100755 openair2/UTIL/TIMER/umts_timer_struct.h mode change 100644 => 100755 openair2/UTIL/TRACE/fifo_printf.c mode change 100644 => 100755 openair2/UTIL/TRACE/fifo_printf.h mode change 100644 => 100755 openair2/UTIL/TRACE/fifo_printf_proto_extern.h mode change 100644 => 100755 openair2/UTIL/TRACE/print.h mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn mode change 100644 => 100755 openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py mode change 100644 => 100755 openair2/X2AP/x2ap.c mode change 100644 => 100755 openair2/X2AP/x2ap.h mode change 100644 => 100755 openair2/X2AP/x2ap_common.c mode change 100644 => 100755 openair2/X2AP/x2ap_common.h mode change 100644 => 100755 openair3/COMMON/as_message.h mode change 100644 => 100755 openair3/COMMON/common_types.h mode change 100644 => 100755 openair3/COMMON/gtpv1_u_messages_def.h mode change 100644 => 100755 openair3/COMMON/gtpv1_u_messages_types.h mode change 100644 => 100755 openair3/COMMON/intertask_interface_conf.h mode change 100644 => 100755 openair3/COMMON/messages_def.h mode change 100644 => 100755 openair3/COMMON/messages_types.h mode change 100644 => 100755 openair3/COMMON/nas_messages_def.h mode change 100644 => 100755 openair3/COMMON/nas_messages_types.h mode change 100644 => 100755 openair3/COMMON/s1ap_messages_def.h mode change 100644 => 100755 openair3/COMMON/s1ap_messages_types.h mode change 100644 => 100755 openair3/COMMON/sctp_messages_def.h mode change 100644 => 100755 openair3/COMMON/sctp_messages_types.h mode change 100644 => 100755 openair3/COMMON/security_types.h mode change 100644 => 100755 openair3/COMMON/tasks_def.h mode change 100644 => 100755 openair3/COMMON/udp_messages_def.h mode change 100644 => 100755 openair3/COMMON/udp_messages_types.h mode change 100644 => 100755 openair3/DOCS/DOXYGEN/Doxyfile.in mode change 100644 => 100755 openair3/DOCS/DOXYGEN/Makefile.am mode change 100644 => 100755 openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf mode change 100644 => 100755 openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex mode change 100644 => 100755 openair3/DOCS/Latex/EPC/EPC.pdf mode change 100644 => 100755 openair3/DOCS/Latex/EPC/EPC.tex mode change 100644 => 100755 openair3/DOCS/Latex/EPC/Makefile mode change 100644 => 100755 openair3/DOCS/Makefile.am mode change 100644 => 100755 openair3/GTPV1-U/Makefile.am mode change 100644 => 100755 openair3/GTPV1-U/Makefile.eNB mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u.h mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u_eNB.c mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u_eNB_defs.h mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u_eNB_task.h mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u_sgw_defs.h mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u_task.c mode change 100644 => 100755 openair3/GTPV1-U/gtpv1u_teid_pool.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/AUTHORS mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/COPYING mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/ChangeLog mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/NEWS mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/README mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.am mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.in mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h mode change 100644 => 100755 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/Makefile mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/as_message.c mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/as_message.h mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/l2_message.h mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/nas_message.c mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/nas_message.h mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/network_api.c mode change 100644 => 100755 openair3/NAS/COMMON/API/NETWORK/network_api.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachComplete.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachComplete.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachReject.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachReject.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AttachRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/DetachAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/DetachAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/DetachRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/DetachRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/EmmInformation.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/EmmInformation.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/EmmStatus.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/EmmStatus.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/Makefile mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/ServiceReject.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/ServiceReject.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/emm_cause.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/emm_msg.c mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/emm_msg.h mode change 100644 => 100755 openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/EsmStatus.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/EsmStatus.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/Makefile mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/esm_cause.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/esm_msg.c mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/esm_msg.h mode change 100644 => 100755 openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AccessPointName.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AccessPointName.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AdditionalUpdateResult.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AdditionalUpdateResult.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AdditionalUpdateType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AdditionalUpdateType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationParameterRand.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationParameterRand.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/Cli.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/Cli.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/CsfbResponse.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/CsfbResponse.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/DaylightSavingTime.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/DaylightSavingTime.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/DetachType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/DetachType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/DrxParameter.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/DrxParameter.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EmergencyNumberList.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EmergencyNumberList.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EmmCause.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EmmCause.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsAttachResult.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsAttachResult.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsAttachType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsAttachType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsBearerContextStatus.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsBearerContextStatus.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsBearerIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsBearerIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsMobileIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsMobileIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsQualityOfService.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsQualityOfService.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsUpdateResult.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsUpdateResult.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsUpdateType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EpsUpdateType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EsmCause.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EsmCause.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/EsmMessageContainer.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/EsmMessageContainer.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/GprsTimer.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/GprsTimer.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/GutiType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/GutiType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/IdentityType2.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/IdentityType2.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ImeisvRequest.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ImeisvRequest.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/LcsClientIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/LcsClientIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/LcsIndicator.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/LcsIndicator.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/LocationAreaIdentification.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/LocationAreaIdentification.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/Makefile mode change 100644 => 100755 openair3/NAS/COMMON/IES/MessageType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/MessageType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/MobileIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/MobileIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/MobileStationClassmark2.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/MobileStationClassmark2.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/MobileStationClassmark3.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/MobileStationClassmark3.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/MsNetworkCapability.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/MsNetworkCapability.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasKeySetIdentifier.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasKeySetIdentifier.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasMessageContainer.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasMessageContainer.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasRequestType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasRequestType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/NetworkName.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/NetworkName.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/Nonce.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/Nonce.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/PTmsiSignature.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/PTmsiSignature.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/PacketFlowIdentifier.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/PacketFlowIdentifier.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/PagingIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/PagingIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/PdnAddress.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/PdnAddress.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/PdnType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/PdnType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/PlmnList.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/PlmnList.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ProtocolDiscriminator.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ProtocolDiscriminator.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/QualityOfService.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/QualityOfService.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/RadioPriority.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/RadioPriority.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/SecurityHeaderType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/SecurityHeaderType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ServiceType.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ServiceType.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/ShortMac.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/ShortMac.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/SsCode.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/SsCode.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/SupportedCodecList.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/SupportedCodecList.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TimeZone.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TimeZone.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TimeZoneAndTime.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TimeZoneAndTime.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TmsiStatus.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TmsiStatus.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrackingAreaIdentity.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrackingAreaIdentity.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrafficFlowTemplate.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TrafficFlowTemplate.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/TransactionIdentifier.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/TransactionIdentifier.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/UeNetworkCapability.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/UeNetworkCapability.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/UeSecurityCapability.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/UeSecurityCapability.h mode change 100644 => 100755 openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c mode change 100644 => 100755 openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/Makefile mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/OctetString.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/OctetString.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/TLVDecoder.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/TLVDecoder.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/TLVEncoder.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/TLVEncoder.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/device.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/device.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/memory.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/memory.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/nas_log.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/nas_log.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/nas_timer.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/nas_timer.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/parser.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/parser.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/socket.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/socket.h mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/stty.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/tst/Makefile mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/tst/timer.c mode change 100644 => 100755 openair3/NAS/COMMON/UTIL/tst/timer_debug.txt mode change 100644 => 100755 openair3/NAS/COMMON/commonDef.h mode change 100644 => 100755 openair3/NAS/COMMON/networkDef.h mode change 100644 => 100755 openair3/NAS/COMMON/securityDef.h mode change 100644 => 100755 openair3/NAS/COMMON/userDef.h mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/Makefile mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_data.c mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_data.h mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_process.c mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_process.h mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/nas_data.c mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/nas_data.h mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/nas_process.c mode change 100644 => 100755 openair3/NAS/TEST/AS_SIMULATOR/nas_process.h mode change 100644 => 100755 openair3/NAS/TEST/MSC/ActivatePDN.png mode change 100644 => 100755 openair3/NAS/TEST/MSC/AuthenticationReject.png mode change 100644 => 100755 openair3/NAS/TEST/MSC/DeactivatePDN.png mode change 100644 => 100755 openair3/NAS/TEST/MSC/InitialAttach.png mode change 100644 => 100755 openair3/NAS/TEST/MSC/InitialAttachReject.png mode change 100644 => 100755 openair3/NAS/TEST/MSC/NomalDetach.png mode change 100644 => 100755 openair3/NAS/TEST/MSC/README mode change 100644 => 100755 openair3/NAS/TEST/MSC/SwitchOffDetach.png mode change 100644 => 100755 openair3/NAS/TEST/NETWORK/Makefile mode change 100644 => 100755 openair3/NAS/TEST/NETWORK/README mode change 100644 => 100755 openair3/NAS/TEST/NETWORK/network_parser.c mode change 100644 => 100755 openair3/NAS/TEST/NETWORK/network_parser.h mode change 100644 => 100755 openair3/NAS/TEST/NETWORK/network_simulator.c mode change 100644 => 100755 openair3/NAS/TEST/USER/Makefile mode change 100644 => 100755 openair3/NAS/TEST/USER/user_parser.c mode change 100644 => 100755 openair3/NAS/TEST/USER/user_parser.h mode change 100644 => 100755 openair3/NAS/TEST/USER/user_simulator.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf2uedata.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf2uedata.h mode change 100644 => 100755 openair3/NAS/TOOLS/conf_emm.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf_emm.h mode change 100644 => 100755 openair3/NAS/TOOLS/conf_network.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf_network.h mode change 100644 => 100755 openair3/NAS/TOOLS/conf_parser.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf_parser.h mode change 100644 => 100755 openair3/NAS/TOOLS/conf_user_data.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf_user_data.h mode change 100644 => 100755 openair3/NAS/TOOLS/conf_user_plmn.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf_user_plmn.h mode change 100644 => 100755 openair3/NAS/TOOLS/conf_usim.c mode change 100644 => 100755 openair3/NAS/TOOLS/conf_usim.h mode change 100644 => 100755 openair3/NAS/TOOLS/display.c mode change 100644 => 100755 openair3/NAS/TOOLS/display.h mode change 100644 => 100755 openair3/NAS/TOOLS/fs.c mode change 100644 => 100755 openair3/NAS/TOOLS/fs.h mode change 100644 => 100755 openair3/NAS/TOOLS/network.h mode change 100644 => 100755 openair3/NAS/TOOLS/nvram.c mode change 100644 => 100755 openair3/NAS/TOOLS/ue_bcom_test.conf mode change 100644 => 100755 openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf mode change 100644 => 100755 openair3/NAS/TOOLS/ue_tcl_test.conf mode change 100644 => 100755 openair3/NAS/TOOLS/usim.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/at_command.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/at_command.h mode change 100644 => 100755 openair3/NAS/UE/API/USER/at_error.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/at_error.h mode change 100644 => 100755 openair3/NAS/UE/API/USER/at_response.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/at_response.h mode change 100644 => 100755 openair3/NAS/UE/API/USER/tst/at_parser.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/tst/at_parser.in mode change 100644 => 100755 openair3/NAS/UE/API/USER/tst/at_parser.in.bis mode change 100644 => 100755 openair3/NAS/UE/API/USER/tst/at_parser.out mode change 100644 => 100755 openair3/NAS/UE/API/USER/tst/at_parser.out.bis mode change 100644 => 100755 openair3/NAS/UE/API/USER/tst/smartcom.txt mode change 100644 => 100755 openair3/NAS/UE/API/USER/user_api.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/user_api.h mode change 100644 => 100755 openair3/NAS/UE/API/USER/user_api_defs.h mode change 100644 => 100755 openair3/NAS/UE/API/USER/user_indication.c mode change 100644 => 100755 openair3/NAS/UE/API/USER/user_indication.h mode change 100644 => 100755 openair3/NAS/UE/API/USIM/aka_functions.c mode change 100644 => 100755 openair3/NAS/UE/API/USIM/aka_functions.h mode change 100644 => 100755 openair3/NAS/UE/API/USIM/usim_api.c mode change 100644 => 100755 openair3/NAS/UE/API/USIM/usim_api.h mode change 100644 => 100755 openair3/NAS/UE/EMM/Attach.c mode change 100644 => 100755 openair3/NAS/UE/EMM/Authentication.c mode change 100644 => 100755 openair3/NAS/UE/EMM/Authentication.h mode change 100644 => 100755 openair3/NAS/UE/EMM/Detach.c mode change 100644 => 100755 openair3/NAS/UE/EMM/EmmStatusHdl.c mode change 100644 => 100755 openair3/NAS/UE/EMM/Identification.c mode change 100644 => 100755 openair3/NAS/UE/EMM/IdleMode.c mode change 100644 => 100755 openair3/NAS/UE/EMM/IdleMode.h mode change 100644 => 100755 openair3/NAS/UE/EMM/IdleMode_defs.h mode change 100644 => 100755 openair3/NAS/UE/EMM/LowerLayer.c mode change 100644 => 100755 openair3/NAS/UE/EMM/LowerLayer.h mode change 100644 => 100755 openair3/NAS/UE/EMM/LowerLayer_defs.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregistered.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmNull.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegistered.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_as.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_as.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_asDef.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_esm.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_esm.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_esmDef.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_fsm.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_fsm.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_recv.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_recv.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_reg.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_reg.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_regDef.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_sap.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_sap.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_send.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SAP/emm_send.h mode change 100644 => 100755 openair3/NAS/UE/EMM/SecurityModeControl.c mode change 100644 => 100755 openair3/NAS/UE/EMM/SecurityModeControl.h mode change 100644 => 100755 openair3/NAS/UE/EMM/ServiceRequestHdl.c mode change 100644 => 100755 openair3/NAS/UE/EMM/TrackingAreaUpdate.c mode change 100644 => 100755 openair3/NAS/UE/EMM/emmData.h mode change 100644 => 100755 openair3/NAS/UE/EMM/emm_fsm_defs.h mode change 100644 => 100755 openair3/NAS/UE/EMM/emm_main.c mode change 100644 => 100755 openair3/NAS/UE/EMM/emm_main.h mode change 100644 => 100755 openair3/NAS/UE/EMM/emm_proc.h mode change 100644 => 100755 openair3/NAS/UE/EMM/emm_proc_defs.h mode change 100644 => 100755 openair3/NAS/UE/EMM/emm_timers.h mode change 100644 => 100755 openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c mode change 100644 => 100755 openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c mode change 100644 => 100755 openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c mode change 100644 => 100755 openair3/NAS/UE/ESM/EsmStatusHdl.c mode change 100644 => 100755 openair3/NAS/UE/ESM/PdnConnectivity.c mode change 100644 => 100755 openair3/NAS/UE/ESM/PdnDisconnect.c mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_recv.c mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_recv.h mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_sap.c mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_sap.h mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_sapDef.h mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_send.c mode change 100644 => 100755 openair3/NAS/UE/ESM/SAP/esm_send.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esmData.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_ebr.c mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_ebr.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_ebr_context.c mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_ebr_context.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_ip.c mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_main.c mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_main.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_proc.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_pt.c mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_pt.h mode change 100644 => 100755 openair3/NAS/UE/ESM/esm_pt_defs.h mode change 100644 => 100755 openair3/NAS/UE/UEprocess.c mode change 100644 => 100755 openair3/NAS/UE/nas_itti_messaging.c mode change 100644 => 100755 openair3/NAS/UE/nas_itti_messaging.h mode change 100644 => 100755 openair3/NAS/UE/nas_network.c mode change 100644 => 100755 openair3/NAS/UE/nas_network.h mode change 100644 => 100755 openair3/NAS/UE/nas_parser.c mode change 100644 => 100755 openair3/NAS/UE/nas_parser.h mode change 100644 => 100755 openair3/NAS/UE/nas_proc.c mode change 100644 => 100755 openair3/NAS/UE/nas_proc.h mode change 100644 => 100755 openair3/NAS/UE/nas_proc_defs.h mode change 100644 => 100755 openair3/NAS/UE/nas_ue_task.c mode change 100644 => 100755 openair3/NAS/UE/nas_ue_task.h mode change 100644 => 100755 openair3/NAS/UE/nas_user.c mode change 100644 => 100755 openair3/NAS/UE/nas_user.h mode change 100644 => 100755 openair3/NAS/UE/user_defs.h mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/README mode change 100644 => 100755 openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py mode change 100644 => 100755 openair3/S1AP/s1ap_common.c mode change 100644 => 100755 openair3/S1AP/s1ap_common.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_context_management_procedures.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_context_management_procedures.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_decoder.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_decoder.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_default_values.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_defs.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_encoder.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_encoder.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_handlers.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_handlers.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_itti_messaging.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_itti_messaging.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_management_procedures.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_management_procedures.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_nas_procedures.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_nas_procedures.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_nnsf.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_nnsf.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_overload.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_overload.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_trace.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_trace.h mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_ue_context.c mode change 100644 => 100755 openair3/S1AP/s1ap_eNB_ue_context.h mode change 100644 => 100755 openair3/SCTP/sctp_common.c mode change 100644 => 100755 openair3/SCTP/sctp_common.h mode change 100644 => 100755 openair3/SCTP/sctp_default_values.h mode change 100644 => 100755 openair3/SCTP/sctp_eNB_defs.h mode change 100644 => 100755 openair3/SCTP/sctp_eNB_itti_messaging.c mode change 100644 => 100755 openair3/SCTP/sctp_eNB_itti_messaging.h mode change 100644 => 100755 openair3/SCTP/sctp_eNB_task.c mode change 100644 => 100755 openair3/SCTP/sctp_eNB_task.h mode change 100644 => 100755 openair3/SCTP/sctp_primitives_client.c mode change 100644 => 100755 openair3/SCTP/sctp_primitives_client.h mode change 100644 => 100755 openair3/SECU/kdf.c mode change 100644 => 100755 openair3/SECU/key_nas_deriver.c mode change 100644 => 100755 openair3/SECU/key_nas_encryption.c mode change 100644 => 100755 openair3/SECU/nas_stream_eea1.c mode change 100644 => 100755 openair3/SECU/nas_stream_eea2.c mode change 100644 => 100755 openair3/SECU/nas_stream_eia1.c mode change 100644 => 100755 openair3/SECU/nas_stream_eia2.c mode change 100644 => 100755 openair3/SECU/rijndael.c mode change 100644 => 100755 openair3/SECU/rijndael.h mode change 100644 => 100755 openair3/SECU/secu_defs.h mode change 100644 => 100755 openair3/SECU/snow3g.c mode change 100644 => 100755 openair3/SECU/snow3g.h mode change 100644 => 100755 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml mode change 100644 => 100755 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf mode change 100644 => 100755 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml mode change 100644 => 100755 openair3/TEST/EPC_TEST/generate_scenario.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/generate_scenario.h mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario.h mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_decode.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_display.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_fsm.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_parse.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_s1ap.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h mode change 100644 => 100755 openair3/TEST/EPC_TEST/play_scenario_sctp.c mode change 100644 => 100755 openair3/TEST/Makefile.am mode change 100644 => 100755 openair3/TEST/oaisim_mme_client_test.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_itti_test.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_list_benchmark.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_s1ap_test.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_sctp_test.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c.h mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c_s1ap.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c_s1ap.h mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c_scenario.c mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c_scenario.h mode change 100644 => 100755 openair3/TEST/oaisim_mme_test_s1c_scenario1.c mode change 100644 => 100755 openair3/TEST/test_aes128_cmac_encrypt.c mode change 100644 => 100755 openair3/TEST/test_aes128_ctr_decrypt.c mode change 100644 => 100755 openair3/TEST/test_aes128_ctr_encrypt.c mode change 100644 => 100755 openair3/TEST/test_kdf.c mode change 100644 => 100755 openair3/TEST/test_s1ap.c mode change 100644 => 100755 openair3/TEST/test_secu.c mode change 100644 => 100755 openair3/TEST/test_secu_kenb.c mode change 100644 => 100755 openair3/TEST/test_secu_knas.c mode change 100644 => 100755 openair3/TEST/test_secu_knas_encrypt_eea1.c mode change 100644 => 100755 openair3/TEST/test_secu_knas_encrypt_eea2.c mode change 100644 => 100755 openair3/TEST/test_secu_knas_encrypt_eia1.c mode change 100644 => 100755 openair3/TEST/test_secu_knas_encrypt_eia2.c mode change 100644 => 100755 openair3/TEST/test_secu_knas_stream_int.c mode change 100644 => 100755 openair3/UDP/udp_eNB_task.c mode change 100644 => 100755 openair3/UDP/udp_eNB_task.h mode change 100644 => 100755 openair3/UTILS/CONF/COPYING mode change 100644 => 100755 openair3/UTILS/Makefile.am mode change 100644 => 100755 openair3/UTILS/conversions.c mode change 100644 => 100755 openair3/UTILS/conversions.h mode change 100644 => 100755 openair3/UTILS/enum_string.c mode change 100644 => 100755 openair3/UTILS/enum_string.h mode change 100644 => 100755 openair3/UTILS/log.c mode change 100644 => 100755 openair3/UTILS/log.h mode change 100644 => 100755 openair3/UTILS/mcc_mnc_itu.c mode change 100644 => 100755 openair3/UTILS/mcc_mnc_itu.h mode change 100644 => 100755 openair3/UTILS/mme_config.c mode change 100644 => 100755 openair3/UTILS/mme_config.h mode change 100644 => 100755 openair3/UTILS/mme_default_values.h mode change 100644 => 100755 openair3/UTILS/mme_parser.y mode change 100644 => 100755 openair3/UTILS/mme_scanner.l mode change 100644 => 100755 openair3/UTILS/queue.h mode change 100644 => 100755 openair3/UTILS/tree.h mode change 100644 => 100755 openair3/valgrind.sh mode change 100644 => 100755 pre-commit mode change 100644 => 100755 svn2git/README.txt mode change 100644 => 100755 svn2git/authors.txt mode change 100644 => 100755 svn2git/authors_original.txt mode change 100644 => 100755 svn2git/authors_original_java_output.txt mode change 100644 => 100755 svn2git/git-author-rewrite.sh mode change 100644 => 100755 targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c mode change 100644 => 100755 targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h mode change 100644 => 100755 targets/ARCH/COMMON/common_lib.c mode change 100644 => 100755 targets/ARCH/COMMON/common_lib.h mode change 100644 => 100755 targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc mode change 100644 => 100755 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c mode change 100644 => 100755 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c mode change 100644 => 100755 targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c mode change 100644 => 100755 targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h mode change 100644 => 100755 targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd mode change 100644 => 100755 targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd mode change 100644 => 100755 targets/ARCH/EXMIMO/DEFS/openair_device.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DEFS/pcie_interface.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/readme.txt mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/Makefile mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c mode change 100644 => 100755 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/LIB/example.c mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m mode change 100644 => 100755 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m mode change 100644 => 100755 targets/ARCH/LMSSDR/LimeSDR.ini mode change 100644 => 100755 targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp mode change 100644 => 100755 targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp mode change 100644 => 100755 targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc mode change 100644 => 100755 targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp mode change 100644 => 100755 targets/COMMON/Makefile.inc mode change 100644 => 100755 targets/COMMON/create_tasks.c mode change 100644 => 100755 targets/COMMON/create_tasks.h mode change 100644 => 100755 targets/COMMON/openairinterface5g_limits.h mode change 100644 => 100755 targets/COMMON/threads_t.h mode change 100644 => 100755 targets/DOCS/Doxyfile mode change 100644 => 100755 targets/DOCS/api_icic.xml mode change 100644 => 100755 targets/DOCS/images/oai_logo.png mode change 100644 => 100755 targets/DOCS/oaiemu.doc mode change 100644 => 100755 targets/DOCS/oaisim_walkthrough.pdf mode change 100644 => 100755 targets/DOCS/path_loss_oaisim.xlsx mode change 100644 => 100755 targets/Makefile mode change 100644 => 100755 targets/Makefile.common mode change 100644 => 100755 targets/Makerules mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/filesave0811.mat mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/generation.m mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/initial_sync.m mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/initparams.m mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/plots.m mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/recup.m mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/where2.m mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/where2_v1_final.mat mode change 100644 => 100755 targets/PROJECTS/LOCALIZATION/where2_vf.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_ch_est.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_ofdm_mod.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_ofdm_rx.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_ofdm_tx.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_tls_ap.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_tls_diag.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/f_tls_svd.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/s_beamforming.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/s_calib.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/s_draw_F.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/s_init_params.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/s_run_meas.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/alterproj.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/beamforming.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/calibration.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/genorthqpskseq.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/genrandpskseq.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/initparams.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/initparams2.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/ofdm_mod.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/readme.txt mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/runmeas_mimo.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m mode change 100644 => 100755 targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m mode change 100644 => 100755 targets/README.txt mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/load_module.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/nas_enb.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/nas_ue.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_emos.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_rf.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_ue.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/start_ue2.sh mode change 100644 => 100755 targets/RT/LAUNCH_SCRIPTS/stop_rf.sh mode change 100644 => 100755 targets/RT/Makefile mode change 100644 => 100755 targets/RT/USER/.runinfo mode change 100644 => 100755 targets/RT/USER/.ue.nvram mode change 100644 => 100755 targets/RT/USER/.ue_emm.nvram mode change 100644 => 100755 targets/RT/USER/.usim.nvram mode change 100644 => 100755 targets/RT/USER/Makefile mode change 100644 => 100755 targets/RT/USER/Makefile.agilent mode change 100644 => 100755 targets/RT/USER/Makefile.msg_many mode change 100644 => 100755 targets/RT/USER/TOOLS/thread_ipc.c mode change 100644 => 100755 targets/RT/USER/TOOLS/thread_ipc.h mode change 100644 => 100755 targets/RT/USER/UE_transport_IQ.c mode change 100644 => 100755 targets/RT/USER/condtest.c mode change 100644 => 100755 targets/RT/USER/eNB_exmimo2.gtkw mode change 100644 => 100755 targets/RT/USER/eNB_transport_IQ.c mode change 100644 => 100755 targets/RT/USER/eNB_usrp.gtkw mode change 100644 => 100755 targets/RT/USER/emos-raw.c mode change 100644 => 100755 targets/RT/USER/exmimo2_2arxg.lime mode change 100644 => 100755 targets/RT/USER/exmimo2_2brxg.lime mode change 100644 => 100755 targets/RT/USER/init_b200.sh mode change 100644 => 100755 targets/RT/USER/init_exmimo.sh mode change 100644 => 100755 targets/RT/USER/init_exmimo2.sh mode change 100644 => 100755 targets/RT/USER/lte-enb.c mode change 100644 => 100755 targets/RT/USER/lte-ran.c mode change 100644 => 100755 targets/RT/USER/lte-ru.c mode change 100644 => 100755 targets/RT/USER/lte-softmodem.c mode change 100644 => 100755 targets/RT/USER/lte-softmodem.h mode change 100644 => 100755 targets/RT/USER/lte-ue.c mode change 100644 => 100755 targets/RT/USER/msg_helper.c mode change 100644 => 100755 targets/RT/USER/msg_many.c mode change 100644 => 100755 targets/RT/USER/msg_many.h mode change 100644 => 100755 targets/RT/USER/rau_if4_single_thread.gtkw mode change 100644 => 100755 targets/RT/USER/rcc_if4.gtkw mode change 100644 => 100755 targets/RT/USER/rcc_if5.gtkw mode change 100644 => 100755 targets/RT/USER/rrh.c mode change 100644 => 100755 targets/RT/USER/rrh.gtkw mode change 100644 => 100755 targets/RT/USER/rrh_gw.c mode change 100644 => 100755 targets/RT/USER/rrh_gw.h mode change 100644 => 100755 targets/RT/USER/rrh_gw_externs.h mode change 100644 => 100755 targets/RT/USER/rru_if4p5_single_thread.gtkw mode change 100644 => 100755 targets/RT/USER/rru_if4p5_usrp.gtkw mode change 100644 => 100755 targets/RT/USER/rru_if5_usrp.gtkw mode change 100644 => 100755 targets/RT/USER/rt_wrapper.c mode change 100644 => 100755 targets/RT/USER/rt_wrapper.h mode change 100644 => 100755 targets/RT/USER/sleeptest.c mode change 100644 => 100755 targets/RT/USER/stats.c mode change 100644 => 100755 targets/RT/USER/stats.fd mode change 100644 => 100755 targets/RT/USER/stats.h mode change 100644 => 100755 targets/RT/USER/synctest.c mode change 100644 => 100755 targets/RT/USER/ue_exmimo2.gtkw mode change 100644 => 100755 targets/RT/USER/ue_usrp.gtkw mode change 100644 => 100755 targets/SCRIPTS/install_asn1.sh mode change 100644 => 100755 targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile mode change 100644 => 100755 targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/README.txt mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml mode change 100644 => 100755 targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile mode change 100644 => 100755 targets/SIMU/PROC/Process.c mode change 100644 => 100755 targets/SIMU/PROC/Process.h mode change 100644 => 100755 targets/SIMU/PROC/Tsync.h mode change 100644 => 100755 targets/SIMU/PROC/channel_sim_proc.c mode change 100644 => 100755 targets/SIMU/PROC/channel_sim_proc.h mode change 100644 => 100755 targets/SIMU/PROC/interface.h mode change 100644 => 100755 targets/SIMU/USER/.ue.nvram mode change 100644 => 100755 targets/SIMU/USER/.ue_emm.nvram mode change 100644 => 100755 targets/SIMU/USER/.usim.nvram mode change 100644 => 100755 targets/SIMU/USER/Makefile mode change 100644 => 100755 targets/SIMU/USER/channel_sim.c mode change 100644 => 100755 targets/SIMU/USER/cor_SF_sim.c mode change 100644 => 100755 targets/SIMU/USER/cor_SF_sim.h mode change 100644 => 100755 targets/SIMU/USER/event_handler.c mode change 100644 => 100755 targets/SIMU/USER/event_handler.h mode change 100644 => 100755 targets/SIMU/USER/files/MI_16qam.csv mode change 100644 => 100755 targets/SIMU/USER/files/MI_16qam.txt mode change 100644 => 100755 targets/SIMU/USER/files/MI_4qam.csv mode change 100644 => 100755 targets/SIMU/USER/files/MI_4qam.txt mode change 100644 => 100755 targets/SIMU/USER/files/MI_64qam.csv mode change 100644 => 100755 targets/SIMU/USER/files/MI_64qam.txt mode change 100644 => 100755 targets/SIMU/USER/init_lte.c mode change 100644 => 100755 targets/SIMU/USER/init_lte.h mode change 100644 => 100755 targets/SIMU/USER/oaisim.c mode change 100644 => 100755 targets/SIMU/USER/oaisim.h mode change 100644 => 100755 targets/SIMU/USER/oaisim_config.c mode change 100644 => 100755 targets/SIMU/USER/oaisim_config.h mode change 100644 => 100755 targets/SIMU/USER/oaisim_functions.c mode change 100644 => 100755 targets/SIMU/USER/oaisim_functions.h mode change 100644 => 100755 targets/SIMU/USER/oaisim_pad.c mode change 100644 => 100755 targets/SIMU/USER/phy_procedures_sim_form.c mode change 100644 => 100755 targets/SIMU/USER/phy_procedures_sim_form.fd mode change 100644 => 100755 targets/SIMU/USER/phy_procedures_sim_form.h mode change 100644 => 100755 targets/SIMU/USER/plot_results.m mode change 100644 => 100755 targets/SIMU/USER/sinr_sim.c mode change 100644 => 100755 targets/SIMU/USER/threadpool.c mode change 100644 => 100755 targets/SIMU/USER/threadpool.h mode change 100644 => 100755 targets/TEST/AT_COMMANDS/oaisim.c mode change 100644 => 100755 targets/TEST/OAI/README mode change 100644 => 100755 targets/TEST/OAI/case01.py mode change 100644 => 100755 targets/TEST/OAI/case02.py mode change 100644 => 100755 targets/TEST/OAI/case03.py mode change 100644 => 100755 targets/TEST/OAI/case04.py mode change 100644 => 100755 targets/TEST/OAI/case05.py mode change 100644 => 100755 targets/TEST/OAI/case11.py mode change 100644 => 100755 targets/TEST/OAI/case12.py mode change 100644 => 100755 targets/TEST/OAI/case13.py mode change 100644 => 100755 targets/TEST/OAI/core.py mode change 100644 => 100755 targets/TEST/OAI/log.py mode change 100644 => 100755 targets/TEST/OAI/openair.py mode change 100644 => 100755 targets/TEST/OAI/test01.py mode change 100644 => 100755 targets/TEST/OAI/test02.py mode change 100644 => 100755 targets/TEST/PACKET_TRACER/README.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/Msg4.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/sib1.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/sib2.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/messages/sib3.txt mode change 100644 => 100755 targets/TEST/PACKET_TRACER/pt.c mode change 100644 => 100755 targets/TEST/PDCP/readme.txt mode change 100644 => 100755 targets/TEST/PDCP/test_pdcp.c mode change 100644 => 100755 targets/TEST/PDCP/test_pdcp.h mode change 100644 => 100755 targets/TEST/PDCP/test_util.h mode change 100644 => 100755 targets/TEST/PDCP/todo.txt mode change 100644 => 100755 targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c mode change 100644 => 100755 targets/TEST/RLC_AM_V9.3.0/oaisim.c mode change 100644 => 100755 targets/TEST/RLC_UM_V9.3.0/oaisim.c mode change 100644 => 100755 targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp mode change 100644 => 100755 targets/TEST/ROHDE_SCHWARZ/Makefile mode change 100644 => 100755 targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp mode change 100644 => 100755 targets/TEST/ROHDE_SCHWARZ/TcpClient.h mode change 100644 => 100755 targets/itti_vcd_tasks.sav diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml old mode 100644 new mode 100755 diff --git a/LICENSE b/LICENSE old mode 100644 new mode 100755 diff --git a/NOTICE.txt b/NOTICE.txt old mode 100644 new mode 100755 diff --git a/README.txt b/README.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/core.py b/cmake_targets/autotests/core.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/log.py b/cmake_targets/autotests/log.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/openair.py b/cmake_targets/autotests/openair.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/templates/index.html b/cmake_targets/autotests/templates/index.html old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/templates/testcase_report.html b/cmake_targets/autotests/templates/testcase_report.html old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/testsuite_ue_noS1.xml b/cmake_targets/autotests/testsuite_ue_noS1.xml old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/testsuite_ue_noS1_TCL.xml b/cmake_targets/autotests/testsuite_ue_noS1_TCL.xml old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/tools/lib_autotest.py b/cmake_targets/autotests/tools/lib_autotest.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/tools/lib_autotest_analyser.py b/cmake_targets/autotests/tools/lib_autotest_analyser.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/tools/wdial.bandrich.conf b/cmake_targets/autotests/tools/wdial.bandrich.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/alu_epc.bash b/cmake_targets/autotests/v2/actions/alu_epc.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/alu_epc_stop.bash b/cmake_targets/autotests/v2/actions/alu_epc_stop.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/alu_hss.bash b/cmake_targets/autotests/v2/actions/alu_hss.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/bandrich.txt b/cmake_targets/autotests/v2/actions/bandrich.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/client_tcp.bash b/cmake_targets/autotests/v2/actions/client_tcp.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/client_udp.bash b/cmake_targets/autotests/v2/actions/client_udp.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/clone_repository.bash b/cmake_targets/autotests/v2/actions/clone_repository.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/compilation.bash b/cmake_targets/autotests/v2/actions/compilation.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/execution.bash b/cmake_targets/autotests/v2/actions/execution.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/execution_compile.bash b/cmake_targets/autotests/v2/actions/execution_compile.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/modem.py b/cmake_targets/autotests/v2/actions/modem.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/run_enb.bash b/cmake_targets/autotests/v2/actions/run_enb.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/server_tcp.bash b/cmake_targets/autotests/v2/actions/server_tcp.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/server_udp.bash b/cmake_targets/autotests/v2/actions/server_udp.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/start_3276.bash b/cmake_targets/autotests/v2/actions/start_3276.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/start_3276.py b/cmake_targets/autotests/v2/actions/start_3276.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/start_bandrich.bash b/cmake_targets/autotests/v2/actions/start_bandrich.bash old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/start_bandrich.py b/cmake_targets/autotests/v2/actions/start_bandrich.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/stop_3276.py b/cmake_targets/autotests/v2/actions/stop_3276.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/stop_bandrich.py b/cmake_targets/autotests/v2/actions/stop_bandrich.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/wvdial.3276.conf b/cmake_targets/autotests/v2/actions/wvdial.3276.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/actions/wvdial.bandrich.conf b/cmake_targets/autotests/v2/actions/wvdial.bandrich.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/alu_test.py b/cmake_targets/autotests/v2/alu_test.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/connection.py b/cmake_targets/autotests/v2/connection.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/machine_list.py b/cmake_targets/autotests/v2/machine_list.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/main.py b/cmake_targets/autotests/v2/main.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/task.py b/cmake_targets/autotests/v2/task.py old mode 100644 new mode 100755 diff --git a/cmake_targets/autotests/v2/utils.py b/cmake_targets/autotests/v2/utils.py old mode 100644 new mode 100755 diff --git a/cmake_targets/build_ue b/cmake_targets/build_ue old mode 100644 new mode 100755 diff --git a/cmake_targets/doxygen/CMakeLists.txt b/cmake_targets/doxygen/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/epc_test/CMakeLists.template b/cmake_targets/epc_test/CMakeLists.template old mode 100644 new mode 100755 diff --git a/cmake_targets/lte-simulators/CMakeLists.txt b/cmake_targets/lte-simulators/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template old mode 100644 new mode 100755 diff --git a/cmake_targets/nas_sim_tools/CMakeLists.txt b/cmake_targets/nas_sim_tools/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/oaisim_build_oai/CMakeLists.template b/cmake_targets/oaisim_build_oai/CMakeLists.template old mode 100644 new mode 100755 diff --git a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template old mode 100644 new mode 100755 diff --git a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template old mode 100644 new mode 100755 diff --git a/cmake_targets/s1c_mme_test/CMakeLists.template b/cmake_targets/s1c_mme_test/CMakeLists.template old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/Kbuild.cmake b/cmake_targets/tools/Kbuild.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/CMakeParseArguments.cmake b/cmake_targets/tools/MODULES/CMakeParseArguments.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake b/cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/CMakeUserUseBison.cmake b/cmake_targets/tools/MODULES/CMakeUserUseBison.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake b/cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindFreeDiameter.cmake b/cmake_targets/tools/MODULES/FindFreeDiameter.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindGCCXML.cmake b/cmake_targets/tools/MODULES/FindGCCXML.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindGcrypt.cmake b/cmake_targets/tools/MODULES/FindGcrypt.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindGnuTLS.cmake b/cmake_targets/tools/MODULES/FindGnuTLS.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindKbuild.cmake b/cmake_targets/tools/MODULES/FindKbuild.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindLibXml2.cmake b/cmake_targets/tools/MODULES/FindLibXml2.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindMySQL.cmake b/cmake_targets/tools/MODULES/FindMySQL.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindNettle.cmake b/cmake_targets/tools/MODULES/FindNettle.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindPostgreSQL.cmake b/cmake_targets/tools/MODULES/FindPostgreSQL.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/FindSCTP.cmake b/cmake_targets/tools/MODULES/FindSCTP.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/Kbuild.cmake b/cmake_targets/tools/MODULES/Kbuild.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/cmake_useful.cmake b/cmake_targets/tools/MODULES/cmake_useful.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/kbuild_system.cmake b/cmake_targets/tools/MODULES/kbuild_system.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/kmodule.cmake b/cmake_targets/tools/MODULES/kmodule.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/MODULES/path_prefixes.cmake b/cmake_targets/tools/MODULES/path_prefixes.cmake old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/asn1tostruct.py b/cmake_targets/tools/asn1tostruct.py old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/example_enb_exmimo_mme_hss.txt b/cmake_targets/tools/example_enb_exmimo_mme_hss.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt b/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/exmimo2_2arxg.lime b/cmake_targets/tools/exmimo2_2arxg.lime old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/exmimo_stop_octave.m b/cmake_targets/tools/exmimo_stop_octave.m old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff b/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff b/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/init_nas_s1 b/cmake_targets/tools/init_nas_s1 old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/run_ue_s1 b/cmake_targets/tools/run_ue_s1 old mode 100644 new mode 100755 diff --git a/cmake_targets/tools/test_helper b/cmake_targets/tools/test_helper old mode 100644 new mode 100755 diff --git a/common/ran_context.h b/common/ran_context.h old mode 100644 new mode 100755 diff --git a/common/utils/T/.gitignore b/common/utils/T/.gitignore old mode 100644 new mode 100755 diff --git a/common/utils/T/Makefile b/common/utils/T/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/README b/common/utils/T/README old mode 100644 new mode 100755 diff --git a/common/utils/T/T.c b/common/utils/T/T.c old mode 100644 new mode 100755 diff --git a/common/utils/T/T.h b/common/utils/T/T.h old mode 100644 new mode 100755 diff --git a/common/utils/T/T_defs.h b/common/utils/T/T_defs.h old mode 100644 new mode 100755 diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt old mode 100644 new mode 100755 diff --git a/common/utils/T/defs.h b/common/utils/T/defs.h old mode 100644 new mode 100755 diff --git a/common/utils/T/generate_Txx.c b/common/utils/T/generate_Txx.c old mode 100644 new mode 100755 diff --git a/common/utils/T/genids.c b/common/utils/T/genids.c old mode 100644 new mode 100755 diff --git a/common/utils/T/local_tracer.c b/common/utils/T/local_tracer.c old mode 100644 new mode 100755 diff --git a/common/utils/T/plot.c b/common/utils/T/plot.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracee/Makefile b/common/utils/T/tracee/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracee/README b/common/utils/T/tracee/README old mode 100644 new mode 100755 diff --git a/common/utils/T/tracee/tracee.c b/common/utils/T/tracee/tracee.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/config.c b/common/utils/T/tracer/config.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/config.h b/common/utils/T/tracer/config.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/defs.h b/common/utils/T/tracer/defs.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/event.c b/common/utils/T/tracer/event.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/event.h b/common/utils/T/tracer/event.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/event_selector.c b/common/utils/T/tracer/event_selector.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/event_selector.h b/common/utils/T/tracer/event_selector.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/extract_config.c b/common/utils/T/tracer/extract_config.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/filter/Makefile b/common/utils/T/tracer/filter/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/filter/filter.c b/common/utils/T/tracer/filter/filter.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/filter/filter.h b/common/utils/T/tracer/filter/filter.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui.c b/common/utils/T/tracer/gui.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/Makefile b/common/utils/T/tracer/gui/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/container.c b/common/utils/T/tracer/gui/container.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/event.c b/common/utils/T/tracer/gui/event.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/gui.c b/common/utils/T/tracer/gui/gui.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/gui.h b/common/utils/T/tracer/gui/gui.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/gui_defs.h b/common/utils/T/tracer/gui/gui_defs.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/image.c b/common/utils/T/tracer/gui/image.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/init.c b/common/utils/T/tracer/gui/init.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/label.c b/common/utils/T/tracer/gui/label.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/loop.c b/common/utils/T/tracer/gui/loop.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/notify.c b/common/utils/T/tracer/gui/notify.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/positioner.c b/common/utils/T/tracer/gui/positioner.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/space.c b/common/utils/T/tracer/gui/space.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/test.c b/common/utils/T/tracer/gui/test.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/textarea.c b/common/utils/T/tracer/gui/textarea.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/textlist.c b/common/utils/T/tracer/gui/textlist.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/timeline.c b/common/utils/T/tracer/gui/timeline.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/toplevel_window.c b/common/utils/T/tracer/gui/toplevel_window.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/widget.c b/common/utils/T/tracer/gui/widget.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/x.c b/common/utils/T/tracer/gui/x.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/x.h b/common/utils/T/tracer/gui/x.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/x_defs.h b/common/utils/T/tracer/gui/x_defs.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/gui/xy_plot.c b/common/utils/T/tracer/gui/xy_plot.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/hacks/Makefile b/common/utils/T/tracer/hacks/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/hacks/dump_nack_signal.c b/common/utils/T/tracer/hacks/dump_nack_signal.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/hacks/time_meas.c b/common/utils/T/tracer/hacks/time_meas.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/hacks/timeplot.c b/common/utils/T/tracer/hacks/timeplot.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/handler.c b/common/utils/T/tracer/handler.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/handler.h b/common/utils/T/tracer/handler.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/framelog.c b/common/utils/T/tracer/logger/framelog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/iqdotlog.c b/common/utils/T/tracer/logger/iqdotlog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/iqlog.c b/common/utils/T/tracer/logger/iqlog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/logger.c b/common/utils/T/tracer/logger/logger.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/logger_defs.h b/common/utils/T/tracer/logger/logger_defs.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/textlog.c b/common/utils/T/tracer/logger/textlog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/throughputlog.c b/common/utils/T/tracer/logger/throughputlog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/ticked_ttilog.c b/common/utils/T/tracer/logger/ticked_ttilog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/ticklog.c b/common/utils/T/tracer/logger/ticklog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/timelog.c b/common/utils/T/tracer/logger/timelog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/logger/ttilog.c b/common/utils/T/tracer/logger/ttilog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/macpdu2wireshark.c b/common/utils/T/tracer/macpdu2wireshark.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/openair_logo.h b/common/utils/T/tracer/openair_logo.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/openair_logo.png b/common/utils/T/tracer/openair_logo.png old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/packet-mac-lte.h b/common/utils/T/tracer/packet-mac-lte.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/plot.c b/common/utils/T/tracer/plot.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/record.c b/common/utils/T/tracer/record.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/replay.c b/common/utils/T/tracer/replay.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/ue.c b/common/utils/T/tracer/ue.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/utils.c b/common/utils/T/tracer/utils.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/utils.h b/common/utils/T/tracer/utils.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/vcd.c b/common/utils/T/tracer/vcd.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/Makefile b/common/utils/T/tracer/view/Makefile old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/scrolltti.c b/common/utils/T/tracer/view/scrolltti.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/stdout.c b/common/utils/T/tracer/view/stdout.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/textlist.c b/common/utils/T/tracer/view/textlist.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/ticktime.c b/common/utils/T/tracer/view/ticktime.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/time.c b/common/utils/T/tracer/view/time.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/tti.c b/common/utils/T/tracer/view/tti.c old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/view.h b/common/utils/T/tracer/view/view.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/view/xy.c b/common/utils/T/tracer/view/xy.c old mode 100644 new mode 100755 diff --git a/common/utils/asn1_conversions.h b/common/utils/asn1_conversions.h old mode 100644 new mode 100755 diff --git a/common/utils/assertions.h b/common/utils/assertions.h old mode 100644 new mode 100755 diff --git a/common/utils/hashtable/hashtable.c b/common/utils/hashtable/hashtable.c old mode 100644 new mode 100755 diff --git a/common/utils/hashtable/hashtable.h b/common/utils/hashtable/hashtable.h old mode 100644 new mode 100755 diff --git a/common/utils/hashtable/obj_hashtable.c b/common/utils/hashtable/obj_hashtable.c old mode 100644 new mode 100755 diff --git a/common/utils/hashtable/obj_hashtable.h b/common/utils/hashtable/obj_hashtable.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/Makefile.am b/common/utils/itti/Makefile.am old mode 100644 new mode 100755 diff --git a/common/utils/itti/assertions.h b/common/utils/itti/assertions.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/backtrace.c b/common/utils/itti/backtrace.c old mode 100644 new mode 100755 diff --git a/common/utils/itti/backtrace.h b/common/utils/itti/backtrace.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_interface.c b/common/utils/itti/intertask_interface.c old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_interface.h b/common/utils/itti/intertask_interface.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_interface_dump.c b/common/utils/itti/intertask_interface_dump.c old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_interface_dump.h b/common/utils/itti/intertask_interface_dump.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_interface_init.h b/common/utils/itti/intertask_interface_init.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_interface_types.h b/common/utils/itti/intertask_interface_types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_messages_def.h b/common/utils/itti/intertask_messages_def.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/intertask_messages_types.h b/common/utils/itti/intertask_messages_types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/itti_types.h b/common/utils/itti/itti_types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/memory_pools.c b/common/utils/itti/memory_pools.c old mode 100644 new mode 100755 diff --git a/common/utils/itti/memory_pools.h b/common/utils/itti/memory_pools.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/messages_def.h b/common/utils/itti/messages_def.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/messages_types.h b/common/utils/itti/messages_types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/signals.c b/common/utils/itti/signals.c old mode 100644 new mode 100755 diff --git a/common/utils/itti/signals.h b/common/utils/itti/signals.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/tasks_def.h b/common/utils/itti/tasks_def.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/timer.c b/common/utils/itti/timer.c old mode 100644 new mode 100755 diff --git a/common/utils/itti/timer.h b/common/utils/itti/timer.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/timer_messages_def.h b/common/utils/itti/timer_messages_def.h old mode 100644 new mode 100755 diff --git a/common/utils/itti/timer_messages_types.h b/common/utils/itti/timer_messages_types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/AUTHORS b/common/utils/itti_analyzer/AUTHORS old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/ChangeLog b/common/utils/itti_analyzer/ChangeLog old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/INSTALL b/common/utils/itti_analyzer/INSTALL old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/Makefile.am b/common/utils/itti_analyzer/Makefile.am old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/NEWS b/common/utils/itti_analyzer/NEWS old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/README b/common/utils/itti_analyzer/README old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/common/itti_types.h b/common/utils/itti_analyzer/common/itti_types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/common/logs.h b/common/utils/itti_analyzer/common/logs.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/common/queue.h b/common/utils/itti_analyzer/common/queue.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/common/rc.h b/common/utils/itti_analyzer/common/rc.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/configure.ac b/common/utils/itti_analyzer/configure.ac old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/filters.xml b/common/utils/itti_analyzer/filters.xml old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/filters_mme.xml b/common/utils/itti_analyzer/filters_mme.xml old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/filters_ue_enb.xml b/common/utils/itti_analyzer/filters_ue_enb.xml old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/itti_analyzer.c b/common/utils/itti_analyzer/itti_analyzer.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/Makefile.am b/common/utils/itti_analyzer/libbuffers/Makefile.am old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/buffers.c b/common/utils/itti_analyzer/libbuffers/buffers.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/buffers.h b/common/utils/itti_analyzer/libbuffers/buffers.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/file.c b/common/utils/itti_analyzer/libbuffers/file.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/file.h b/common/utils/itti_analyzer/libbuffers/file.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/socket.c b/common/utils/itti_analyzer/libbuffers/socket.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libbuffers/socket.h b/common/utils/itti_analyzer/libbuffers/socket.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/Makefile.am b/common/utils/itti_analyzer/libparser/Makefile.am old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/array_type.c b/common/utils/itti_analyzer/libparser/array_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/array_type.h b/common/utils/itti_analyzer/libparser/array_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/enum_type.c b/common/utils/itti_analyzer/libparser/enum_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/enum_type.h b/common/utils/itti_analyzer/libparser/enum_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/enum_value_type.c b/common/utils/itti_analyzer/libparser/enum_value_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/enum_value_type.h b/common/utils/itti_analyzer/libparser/enum_value_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/field_type.c b/common/utils/itti_analyzer/libparser/field_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/field_type.h b/common/utils/itti_analyzer/libparser/field_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/file_type.c b/common/utils/itti_analyzer/libparser/file_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/file_type.h b/common/utils/itti_analyzer/libparser/file_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/fundamental_type.c b/common/utils/itti_analyzer/libparser/fundamental_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/fundamental_type.h b/common/utils/itti_analyzer/libparser/fundamental_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/intertask_contexts.h b/common/utils/itti_analyzer/libparser/intertask_contexts.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/pointer_type.c b/common/utils/itti_analyzer/libparser/pointer_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/pointer_type.h b/common/utils/itti_analyzer/libparser/pointer_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/reference_type.c b/common/utils/itti_analyzer/libparser/reference_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/reference_type.h b/common/utils/itti_analyzer/libparser/reference_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/struct_type.c b/common/utils/itti_analyzer/libparser/struct_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/struct_type.h b/common/utils/itti_analyzer/libparser/struct_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/typedef_type.c b/common/utils/itti_analyzer/libparser/typedef_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/typedef_type.h b/common/utils/itti_analyzer/libparser/typedef_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/types.c b/common/utils/itti_analyzer/libparser/types.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/types.h b/common/utils/itti_analyzer/libparser/types.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/union_type.c b/common/utils/itti_analyzer/libparser/union_type.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/union_type.h b/common/utils/itti_analyzer/libparser/union_type.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/xml_parse.c b/common/utils/itti_analyzer/libparser/xml_parse.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libparser/xml_parse.h b/common/utils/itti_analyzer/libparser/xml_parse.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libresolver/Makefile.am b/common/utils/itti_analyzer/libresolver/Makefile.am old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libresolver/locate_root.c b/common/utils/itti_analyzer/libresolver/locate_root.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libresolver/locate_root.h b/common/utils/itti_analyzer/libresolver/locate_root.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libresolver/resolvers.c b/common/utils/itti_analyzer/libresolver/resolvers.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libresolver/resolvers.h b/common/utils/itti_analyzer/libresolver/resolvers.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/Makefile.am b/common/utils/itti_analyzer/libui/Makefile.am old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.c b/common/utils/itti_analyzer/libui/ui_callbacks.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.h b/common/utils/itti_analyzer/libui/ui_callbacks.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_filters.c b/common/utils/itti_analyzer/libui/ui_filters.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_filters.h b/common/utils/itti_analyzer/libui/ui_filters.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_interface.c b/common/utils/itti_analyzer/libui/ui_interface.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_interface.h b/common/utils/itti_analyzer/libui/ui_interface.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_main_screen.c b/common/utils/itti_analyzer/libui/ui_main_screen.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_main_screen.h b/common/utils/itti_analyzer/libui/ui_main_screen.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_menu_bar.c b/common/utils/itti_analyzer/libui/ui_menu_bar.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_menu_bar.h b/common/utils/itti_analyzer/libui/ui_menu_bar.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_notebook.c b/common/utils/itti_analyzer/libui/ui_notebook.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_notebook.h b/common/utils/itti_analyzer/libui/ui_notebook.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_notif_dlg.c b/common/utils/itti_analyzer/libui/ui_notif_dlg.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_notif_dlg.h b/common/utils/itti_analyzer/libui/ui_notif_dlg.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_notifications.c b/common/utils/itti_analyzer/libui/ui_notifications.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_notifications.h b/common/utils/itti_analyzer/libui/ui_notifications.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_signal_dissect_view.c b/common/utils/itti_analyzer/libui/ui_signal_dissect_view.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_signal_dissect_view.h b/common/utils/itti_analyzer/libui/ui_signal_dissect_view.h old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_tree_view.c b/common/utils/itti_analyzer/libui/ui_tree_view.c old mode 100644 new mode 100755 diff --git a/common/utils/itti_analyzer/libui/ui_tree_view.h b/common/utils/itti_analyzer/libui/ui_tree_view.h old mode 100644 new mode 100755 diff --git a/common/utils/msc/msc.c b/common/utils/msc/msc.c old mode 100644 new mode 100755 diff --git a/common/utils/msc/msc.h b/common/utils/msc/msc.h old mode 100644 new mode 100755 diff --git a/common/utils/system.c b/common/utils/system.c old mode 100644 new mode 100755 diff --git a/common/utils/system.h b/common/utils/system.h old mode 100644 new mode 100755 diff --git a/common/utils/time_utils.h b/common/utils/time_utils.h old mode 100644 new mode 100755 diff --git a/common/utils/utils.c b/common/utils/utils.c old mode 100644 new mode 100755 diff --git a/common/utils/utils.h b/common/utils/utils.h old mode 100644 new mode 100755 diff --git a/enb_dev.config b/enb_dev.config new file mode 100755 index 0000000000..e0284f4257 --- /dev/null +++ b/enb_dev.config @@ -0,0 +1,2 @@ +// Add predefined macros for your project here. For example: +// #define THE_ANSWER 42 diff --git a/enb_dev.creator b/enb_dev.creator new file mode 100755 index 0000000000..e94cbbd302 --- /dev/null +++ b/enb_dev.creator @@ -0,0 +1 @@ +[General] diff --git a/enb_dev.files b/enb_dev.files new file mode 100755 index 0000000000..b176552d68 --- /dev/null +++ b/enb_dev.files @@ -0,0 +1,7877 @@ +cmake_targets/at_commands/CMakeLists.txt +cmake_targets/autotests/templates/index.html +cmake_targets/autotests/templates/testcase_report.html +cmake_targets/autotests/tools/autotest_analyser.py +cmake_targets/autotests/tools/configure_cots_bandrich_ue.py +cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py +cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py +cmake_targets/autotests/tools/configure_usrpb210.py +cmake_targets/autotests/tools/find_usb_path.bash +cmake_targets/autotests/tools/free_mem.bash +cmake_targets/autotests/tools/git-retry.sh +cmake_targets/autotests/tools/iperf3_script +cmake_targets/autotests/tools/iperf3_script_phone +cmake_targets/autotests/tools/iperf_script +cmake_targets/autotests/tools/iperf_script_phone +cmake_targets/autotests/tools/lib_autotest.py +cmake_targets/autotests/tools/lib_autotest_analyser.py +cmake_targets/autotests/tools/remove_old_programs.bash +cmake_targets/autotests/tools/run_gdb +cmake_targets/autotests/tools/search_repl.py +cmake_targets/autotests/tools/wdial.bandrich.conf +cmake_targets/autotests/v2/actions/alu_epc.bash +cmake_targets/autotests/v2/actions/alu_epc_stop.bash +cmake_targets/autotests/v2/actions/alu_hss.bash +cmake_targets/autotests/v2/actions/bandrich.txt +cmake_targets/autotests/v2/actions/client_tcp.bash +cmake_targets/autotests/v2/actions/client_udp.bash +cmake_targets/autotests/v2/actions/clone_repository.bash +cmake_targets/autotests/v2/actions/compilation.bash +cmake_targets/autotests/v2/actions/execution.bash +cmake_targets/autotests/v2/actions/execution_compile.bash +cmake_targets/autotests/v2/actions/modem.py +cmake_targets/autotests/v2/actions/run_enb.bash +cmake_targets/autotests/v2/actions/server_tcp.bash +cmake_targets/autotests/v2/actions/server_udp.bash +cmake_targets/autotests/v2/actions/start_3276.bash +cmake_targets/autotests/v2/actions/start_3276.py +cmake_targets/autotests/v2/actions/start_bandrich.bash +cmake_targets/autotests/v2/actions/start_bandrich.py +cmake_targets/autotests/v2/actions/stop_3276.py +cmake_targets/autotests/v2/actions/stop_bandrich.py +cmake_targets/autotests/v2/actions/wvdial.3276.conf +cmake_targets/autotests/v2/actions/wvdial.bandrich.conf +cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf +cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf +cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf +cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf +cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf +cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf +cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf +cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf +cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf +cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf +cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf +cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf +cmake_targets/autotests/v2/alu_test.py +cmake_targets/autotests/v2/connection.py +cmake_targets/autotests/v2/machine_list.py +cmake_targets/autotests/v2/main.py +cmake_targets/autotests/v2/task.py +cmake_targets/autotests/v2/utils.py +cmake_targets/autotests/core.py +cmake_targets/autotests/log.py +cmake_targets/autotests/openair.py +cmake_targets/autotests/README.txt +cmake_targets/autotests/run_compilation_autotests.bash +cmake_targets/autotests/run_exec_autotests.bash +cmake_targets/autotests/run_exec_lte-softmodem_tests.py +cmake_targets/autotests/test_case_list.xml +cmake_targets/autotests/testsuite_ue_noS1.xml +cmake_targets/autotests/testsuite_ue_noS1_TCL.xml +cmake_targets/doxygen/CMakeLists.txt +cmake_targets/epc_test/CMakeLists.template +cmake_targets/log/lte-softmodem.Rel14.txt +cmake_targets/lte-simulators/CMakeLists.txt +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin +cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/1 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/10 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/11 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/15 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/16 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/17 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/18 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/19 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/2 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/20 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/21 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/22 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/23 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/24 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/25 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/26 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/27 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/28 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/29 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/3 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/30 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/31 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/32 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/33 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/34 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/35 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/36 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/37 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/38 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/39 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/4 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/40 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/41 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/42 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/43 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/44 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/45 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/46 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/47 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/48 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/49 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/5 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/50 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/51 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/52 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/53 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/54 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/55 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/56 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/57 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/58 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/59 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/6 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/60 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/61 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/62 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/63 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/64 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/65 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/66 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/67 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/68 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/69 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/7 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/70 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/71 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/72 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/73 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/74 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/75 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/76 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/77 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/78 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/79 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/8 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/80 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/81 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/82 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/83 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/9 +cmake_targets/lte_build_oai/build/CMakeFiles/Progress/count.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn1_constants.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_application.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_internal.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_system.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/converter-sample.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_compare.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_ies_defs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_xer_print.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn1_constants.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_application.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_internal.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_system.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/converter-sample.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_ies_defs.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_xer_print.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn1_constants.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_application.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_internal.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_system.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/compare.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/converter-sample.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.c +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.h +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip/Kbuild +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/C.includecache +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.internal +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/build.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean_target.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/depend.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/DependInfo.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/flags.make +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/link.txt +cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/progress.make +cmake_targets/lte_build_oai/build/CMakeFiles/cmake.check_cache +cmake_targets/lte_build_oai/build/CMakeFiles/CMakeDirectoryInformation.cmake +cmake_targets/lte_build_oai/build/CMakeFiles/CMakeOutput.log +cmake_targets/lte_build_oai/build/CMakeFiles/CMakeRuleHashes.txt +cmake_targets/lte_build_oai/build/CMakeFiles/progress.marks +cmake_targets/lte_build_oai/build/CMakeFiles/TargetDirectories.txt +cmake_targets/lte_build_oai/build/cmake_install.cmake +cmake_targets/lte_build_oai/build/CMakeCache.txt +cmake_targets/lte_build_oai/build/libGTPV1U.a +cmake_targets/lte_build_oai/build/libHASHTABLE.a +cmake_targets/lte_build_oai/build/libITTI.a +cmake_targets/lte_build_oai/build/libLFDS.a +cmake_targets/lte_build_oai/build/libLFDS7.a +cmake_targets/lte_build_oai/build/libPHY.a +cmake_targets/lte_build_oai/build/libRRC_LIB.a +cmake_targets/lte_build_oai/build/libS1AP_ENB.a +cmake_targets/lte_build_oai/build/libS1AP_LIB.a +cmake_targets/lte_build_oai/build/libSCHED_LIB.a +cmake_targets/lte_build_oai/build/libSCTP_CLIENT.a +cmake_targets/lte_build_oai/build/libSECU_CN.a +cmake_targets/lte_build_oai/build/libSECU_OSA.a +cmake_targets/lte_build_oai/build/libUDP.a +cmake_targets/lte_build_oai/build/libUTIL.a +cmake_targets/lte_build_oai/CMakeLists.txt +cmake_targets/lte_noS1_build_oai/CMakeLists.template +cmake_targets/nas_sim_tools/CMakeLists.txt +cmake_targets/oaisim_build_oai/CMakeLists.template +cmake_targets/oaisim_mme_build_oai/CMakeLists.template +cmake_targets/oaisim_noS1_build_oai/CMakeLists.template +cmake_targets/s1c_mme_test/CMakeLists.template +cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff +cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff +cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff +cmake_targets/tools/MODULES/cmake_useful.cmake +cmake_targets/tools/MODULES/CMakeParseArguments.cmake +cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake +cmake_targets/tools/MODULES/CMakeUserUseBison.cmake +cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake +cmake_targets/tools/MODULES/FindFreeDiameter.cmake +cmake_targets/tools/MODULES/FindGCCXML.cmake +cmake_targets/tools/MODULES/FindGcrypt.cmake +cmake_targets/tools/MODULES/FindGnuTLS.cmake +cmake_targets/tools/MODULES/FindKbuild.cmake +cmake_targets/tools/MODULES/FindLibXml2.cmake +cmake_targets/tools/MODULES/FindMySQL.cmake +cmake_targets/tools/MODULES/FindNettle.cmake +cmake_targets/tools/MODULES/FindPostgreSQL.cmake +cmake_targets/tools/MODULES/FindSCTP.cmake +cmake_targets/tools/MODULES/Kbuild.cmake +cmake_targets/tools/MODULES/kbuild_system.cmake +cmake_targets/tools/MODULES/kmodule.cmake +cmake_targets/tools/MODULES/path_prefixes.cmake +cmake_targets/tools/asn1tostruct.py +cmake_targets/tools/build_helper +cmake_targets/tools/build_test_epc_tools +cmake_targets/tools/example_enb_exmimo_mme_hss.txt +cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt +cmake_targets/tools/exmimo2_2arxg.lime +cmake_targets/tools/exmimo2_2brxg.lime +cmake_targets/tools/exmimo_stop_octave.m +cmake_targets/tools/fix_asn1 +cmake_targets/tools/generate_asn1 +cmake_targets/tools/generate_protobuf +cmake_targets/tools/indent_source_code +cmake_targets/tools/init_exmimo2 +cmake_targets/tools/init_nas_nos1 +cmake_targets/tools/init_nas_s1 +cmake_targets/tools/Kbuild.cmake +cmake_targets/tools/make_agent_cache +cmake_targets/tools/mem_usage +cmake_targets/tools/perf_oai.bash +cmake_targets/tools/run_enb_s1_exmimo +cmake_targets/tools/run_enb_s1_usrp +cmake_targets/tools/run_enb_ue_virt_noS1 +cmake_targets/tools/run_enb_ue_virt_s1 +cmake_targets/tools/run_ue_s1 +cmake_targets/tools/start_bladerf.py +cmake_targets/tools/stop_exmimo2 +cmake_targets/tools/test_helper +cmake_targets/build_oai +cmake_targets/build_ue +cmake_targets/CMakeLists.txt +cmake_targets/snap_environment.sh +common/utils/collection/queue.h +common/utils/collection/tree.h +common/utils/hashtable/hashtable.c +common/utils/hashtable/hashtable.h +common/utils/hashtable/obj_hashtable.c +common/utils/hashtable/obj_hashtable.h +common/utils/itti/assertions.h +common/utils/itti/backtrace.c +common/utils/itti/backtrace.h +common/utils/itti/intertask_interface.c +common/utils/itti/intertask_interface.h +common/utils/itti/intertask_interface_dump.c +common/utils/itti/intertask_interface_dump.h +common/utils/itti/intertask_interface_init.h +common/utils/itti/intertask_interface_types.h +common/utils/itti/intertask_messages_def.h +common/utils/itti/intertask_messages_types.h +common/utils/itti/itti_types.h +common/utils/itti/memory_pools.c +common/utils/itti/memory_pools.h +common/utils/itti/messages_def.h +common/utils/itti/messages_types.h +common/utils/itti/signals.c +common/utils/itti/signals.h +common/utils/itti/tasks_def.h +common/utils/itti/timer.c +common/utils/itti/timer.h +common/utils/itti/timer_messages_def.h +common/utils/itti/timer_messages_types.h +common/utils/itti_analyzer/common/itti_types.h +common/utils/itti_analyzer/common/logs.h +common/utils/itti_analyzer/common/queue.h +common/utils/itti_analyzer/common/rc.h +common/utils/itti_analyzer/libbuffers/buffers.c +common/utils/itti_analyzer/libbuffers/buffers.h +common/utils/itti_analyzer/libbuffers/file.c +common/utils/itti_analyzer/libbuffers/file.h +common/utils/itti_analyzer/libbuffers/socket.c +common/utils/itti_analyzer/libbuffers/socket.h +common/utils/itti_analyzer/libparser/array_type.c +common/utils/itti_analyzer/libparser/array_type.h +common/utils/itti_analyzer/libparser/enum_type.c +common/utils/itti_analyzer/libparser/enum_type.h +common/utils/itti_analyzer/libparser/enum_value_type.c +common/utils/itti_analyzer/libparser/enum_value_type.h +common/utils/itti_analyzer/libparser/field_type.c +common/utils/itti_analyzer/libparser/field_type.h +common/utils/itti_analyzer/libparser/file_type.c +common/utils/itti_analyzer/libparser/file_type.h +common/utils/itti_analyzer/libparser/fundamental_type.c +common/utils/itti_analyzer/libparser/fundamental_type.h +common/utils/itti_analyzer/libparser/intertask_contexts.h +common/utils/itti_analyzer/libparser/pointer_type.c +common/utils/itti_analyzer/libparser/pointer_type.h +common/utils/itti_analyzer/libparser/reference_type.c +common/utils/itti_analyzer/libparser/reference_type.h +common/utils/itti_analyzer/libparser/struct_type.c +common/utils/itti_analyzer/libparser/struct_type.h +common/utils/itti_analyzer/libparser/typedef_type.c +common/utils/itti_analyzer/libparser/typedef_type.h +common/utils/itti_analyzer/libparser/types.c +common/utils/itti_analyzer/libparser/types.h +common/utils/itti_analyzer/libparser/union_type.c +common/utils/itti_analyzer/libparser/union_type.h +common/utils/itti_analyzer/libparser/xml_parse.c +common/utils/itti_analyzer/libparser/xml_parse.h +common/utils/itti_analyzer/libresolver/locate_root.c +common/utils/itti_analyzer/libresolver/locate_root.h +common/utils/itti_analyzer/libresolver/resolvers.c +common/utils/itti_analyzer/libresolver/resolvers.h +common/utils/itti_analyzer/libui/ui_callbacks.c +common/utils/itti_analyzer/libui/ui_callbacks.h +common/utils/itti_analyzer/libui/ui_filters.c +common/utils/itti_analyzer/libui/ui_filters.h +common/utils/itti_analyzer/libui/ui_interface.c +common/utils/itti_analyzer/libui/ui_interface.h +common/utils/itti_analyzer/libui/ui_main_screen.c +common/utils/itti_analyzer/libui/ui_main_screen.h +common/utils/itti_analyzer/libui/ui_menu_bar.c +common/utils/itti_analyzer/libui/ui_menu_bar.h +common/utils/itti_analyzer/libui/ui_notebook.c +common/utils/itti_analyzer/libui/ui_notebook.h +common/utils/itti_analyzer/libui/ui_notif_dlg.c +common/utils/itti_analyzer/libui/ui_notif_dlg.h +common/utils/itti_analyzer/libui/ui_notifications.c +common/utils/itti_analyzer/libui/ui_notifications.h +common/utils/itti_analyzer/libui/ui_signal_dissect_view.c +common/utils/itti_analyzer/libui/ui_signal_dissect_view.h +common/utils/itti_analyzer/libui/ui_tree_view.c +common/utils/itti_analyzer/libui/ui_tree_view.h +common/utils/itti_analyzer/AUTHORS +common/utils/itti_analyzer/autogen.sh +common/utils/itti_analyzer/ChangeLog +common/utils/itti_analyzer/configure.ac +common/utils/itti_analyzer/filters.xml +common/utils/itti_analyzer/filters_mme.xml +common/utils/itti_analyzer/filters_ue_enb.xml +common/utils/itti_analyzer/INSTALL +common/utils/itti_analyzer/itti_analyzer.c +common/utils/itti_analyzer/NEWS +common/utils/itti_analyzer/README +common/utils/msc/msc.c +common/utils/msc/msc.h +common/utils/T/tracee/README +common/utils/T/tracee/tracee.c +common/utils/T/tracer/filter/filter.c +common/utils/T/tracer/filter/filter.h +common/utils/T/tracer/gui/container.c +common/utils/T/tracer/gui/event.c +common/utils/T/tracer/gui/gui.c +common/utils/T/tracer/gui/gui.h +common/utils/T/tracer/gui/gui_defs.h +common/utils/T/tracer/gui/image.c +common/utils/T/tracer/gui/init.c +common/utils/T/tracer/gui/label.c +common/utils/T/tracer/gui/loop.c +common/utils/T/tracer/gui/notify.c +common/utils/T/tracer/gui/positioner.c +common/utils/T/tracer/gui/space.c +common/utils/T/tracer/gui/test.c +common/utils/T/tracer/gui/textarea.c +common/utils/T/tracer/gui/textlist.c +common/utils/T/tracer/gui/timeline.c +common/utils/T/tracer/gui/toplevel_window.c +common/utils/T/tracer/gui/widget.c +common/utils/T/tracer/gui/x.c +common/utils/T/tracer/gui/x.h +common/utils/T/tracer/gui/x_defs.h +common/utils/T/tracer/gui/xy_plot.c +common/utils/T/tracer/hacks/dump_nack_signal.c +common/utils/T/tracer/hacks/time_meas.c +common/utils/T/tracer/hacks/timeplot.c +common/utils/T/tracer/logger/framelog.c +common/utils/T/tracer/logger/iqdotlog.c +common/utils/T/tracer/logger/iqlog.c +common/utils/T/tracer/logger/logger.c +common/utils/T/tracer/logger/logger.h +common/utils/T/tracer/logger/logger_defs.h +common/utils/T/tracer/logger/textlog.c +common/utils/T/tracer/logger/throughputlog.c +common/utils/T/tracer/logger/ticked_ttilog.c +common/utils/T/tracer/logger/ticklog.c +common/utils/T/tracer/logger/timelog.c +common/utils/T/tracer/logger/ttilog.c +common/utils/T/tracer/view/scrolltti.c +common/utils/T/tracer/view/stdout.c +common/utils/T/tracer/view/textlist.c +common/utils/T/tracer/view/ticktime.c +common/utils/T/tracer/view/time.c +common/utils/T/tracer/view/tti.c +common/utils/T/tracer/view/view.h +common/utils/T/tracer/view/xy.c +common/utils/T/tracer/config.c +common/utils/T/tracer/config.h +common/utils/T/tracer/database.c +common/utils/T/tracer/database.h +common/utils/T/tracer/defs.h +common/utils/T/tracer/enb.c +common/utils/T/tracer/event.c +common/utils/T/tracer/event.h +common/utils/T/tracer/event_selector.c +common/utils/T/tracer/event_selector.h +common/utils/T/tracer/extract_config.c +common/utils/T/tracer/gui.c +common/utils/T/tracer/handler.c +common/utils/T/tracer/handler.h +common/utils/T/tracer/macpdu2wireshark.c +common/utils/T/tracer/openair_logo.h +common/utils/T/tracer/openair_logo.png +common/utils/T/tracer/packet-mac-lte.h +common/utils/T/tracer/plot.c +common/utils/T/tracer/record.c +common/utils/T/tracer/replay.c +common/utils/T/tracer/textlog.c +common/utils/T/tracer/ue.c +common/utils/T/tracer/utils.c +common/utils/T/tracer/utils.h +common/utils/T/tracer/vcd.c +common/utils/T/defs.h +common/utils/T/generate_Txx.c +common/utils/T/genids.c +common/utils/T/local_tracer.c +common/utils/T/plot.c +common/utils/T/README +common/utils/T/T.c +common/utils/T/T.h +common/utils/T/T_defs.h +common/utils/T/T_messages.txt +common/utils/asn1_conversions.h +common/utils/assertions.h +common/utils/system.c +common/utils/system.h +common/utils/time_utils.h +common/utils/utils.c +common/utils/utils.h +common/ran_context.h +openair1/PHY/CODING/TESTBENCH/ltetest.c +openair1/PHY/CODING/TESTBENCH/pdcch_test.c +openair1/PHY/CODING/TESTBENCH/README.txt +openair1/PHY/CODING/TESTBENCH/viterbi_test.c +openair1/PHY/CODING/3gpplte.c +openair1/PHY/CODING/3gpplte_sse.c +openair1/PHY/CODING/3gpplte_turbo_decoder.c +openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c +openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c +openair1/PHY/CODING/ccoding_byte.c +openair1/PHY/CODING/ccoding_byte_lte.c +openair1/PHY/CODING/crc_byte.c +openair1/PHY/CODING/defs.h +openair1/PHY/CODING/extern.h +openair1/PHY/CODING/extern_3GPPinterleaver.h +openair1/PHY/CODING/lte_interleaver.h +openair1/PHY/CODING/lte_interleaver2.h +openair1/PHY/CODING/lte_interleaver_inline.h +openair1/PHY/CODING/lte_rate_matching.c +openair1/PHY/CODING/lte_segmentation.c +openair1/PHY/CODING/lte_tf.m +openair1/PHY/CODING/README.txt +openair1/PHY/CODING/scrambler.h +openair1/PHY/CODING/vars.h +openair1/PHY/CODING/viterbi.c +openair1/PHY/CODING/viterbi_lte.c +openair1/PHY/INIT/defs.h +openair1/PHY/INIT/extern.h +openair1/PHY/INIT/init_top.c +openair1/PHY/INIT/lte_init.c +openair1/PHY/INIT/lte_param_init.c +openair1/PHY/INIT/lte_parms.c +openair1/PHY/INIT/README.txt +openair1/PHY/INIT/vars.h +openair1/PHY/LTE_ESTIMATION/adjust_gain.c +openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m +openair1/PHY/LTE_ESTIMATION/defs.h +openair1/PHY/LTE_ESTIMATION/extern.h +openair1/PHY/LTE_ESTIMATION/filt16_32.h +openair1/PHY/LTE_ESTIMATION/filt96_32.h +openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m +openair1/PHY/LTE_ESTIMATION/freq_equalization.c +openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c +openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c +openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c +openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c +openair1/PHY/LTE_ESTIMATION/lte_sync_time.c +openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c +openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m +openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c +openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +openair1/PHY/LTE_ESTIMATION/pss6144.h +openair1/PHY/LTE_ESTIMATION/README.txt +openair1/PHY/LTE_ESTIMATION/vars.h +openair1/PHY/LTE_REFSIG/defs.h +openair1/PHY/LTE_REFSIG/gen_mod_table.m +openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c +openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c +openair1/PHY/LTE_REFSIG/lte_dl_uespec.c +openair1/PHY/LTE_REFSIG/lte_gold.c +openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c +openair1/PHY/LTE_REFSIG/lte_ul.m +openair1/PHY/LTE_REFSIG/lte_ul_ref.c +openair1/PHY/LTE_REFSIG/mod_table.h +openair1/PHY/LTE_REFSIG/primary_synch.h +openair1/PHY/LTE_REFSIG/primary_synch.m +openair1/PHY/LTE_REFSIG/README.txt +openair1/PHY/LTE_TRANSPORT/dci.c +openair1/PHY/LTE_TRANSPORT/dci.h +openair1/PHY/LTE_TRANSPORT/dci_tools.c +openair1/PHY/LTE_TRANSPORT/defs.h +openair1/PHY/LTE_TRANSPORT/dlsch_coding.c +openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c +openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c +openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c +openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c +openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c +openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c +openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h +openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h +openair1/PHY/LTE_TRANSPORT/drs_modulation.c +openair1/PHY/LTE_TRANSPORT/extern.h +openair1/PHY/LTE_TRANSPORT/group_hopping.c +openair1/PHY/LTE_TRANSPORT/if4_tools.c +openair1/PHY/LTE_TRANSPORT/if4_tools.h +openair1/PHY/LTE_TRANSPORT/if5_tools.c +openair1/PHY/LTE_TRANSPORT/if5_tools.h +openair1/PHY/LTE_TRANSPORT/initial_sync.c +openair1/PHY/LTE_TRANSPORT/lte_mcs.c +openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h +openair1/PHY/LTE_TRANSPORT/mdci.h +openair1/PHY/LTE_TRANSPORT/pbch.c +openair1/PHY/LTE_TRANSPORT/pcfich.c +openair1/PHY/LTE_TRANSPORT/pch.c +openair1/PHY/LTE_TRANSPORT/phich.c +openair1/PHY/LTE_TRANSPORT/pilots.c +openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c +openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c +openair1/PHY/LTE_TRANSPORT/pmch.c +openair1/PHY/LTE_TRANSPORT/power_control.c +openair1/PHY/LTE_TRANSPORT/prach.c +openair1/PHY/LTE_TRANSPORT/prach.h +openair1/PHY/LTE_TRANSPORT/print_stats.c +openair1/PHY/LTE_TRANSPORT/proto.h +openair1/PHY/LTE_TRANSPORT/pss.c +openair1/PHY/LTE_TRANSPORT/pucch.c +openair1/PHY/LTE_TRANSPORT/rar_tools.c +openair1/PHY/LTE_TRANSPORT/README.txt +openair1/PHY/LTE_TRANSPORT/srs_modulation.c +openair1/PHY/LTE_TRANSPORT/sss.c +openair1/PHY/LTE_TRANSPORT/sss.h +openair1/PHY/LTE_TRANSPORT/sss_gen.m +openair1/PHY/LTE_TRANSPORT/uci.h +openair1/PHY/LTE_TRANSPORT/uci_tools.c +openair1/PHY/LTE_TRANSPORT/ulsch_coding.c +openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c +openair1/PHY/LTE_TRANSPORT/vars.h +openair1/PHY/LTE_TRANSPORT/vrb_maps.m +openair1/PHY/MODULATION/beamforming.c +openair1/PHY/MODULATION/compute_bf_weights.c +openair1/PHY/MODULATION/defs.h +openair1/PHY/MODULATION/extern.h +openair1/PHY/MODULATION/gen_7_5_kHz.m +openair1/PHY/MODULATION/kHz_7_5.h +openair1/PHY/MODULATION/ofdm_mod.c +openair1/PHY/MODULATION/prach625Hz.h +openair1/PHY/MODULATION/slot_fep.c +openair1/PHY/MODULATION/slot_fep_mbsfn.c +openair1/PHY/MODULATION/slot_fep_ul.c +openair1/PHY/MODULATION/ul_7_5_kHz.c +openair1/PHY/MODULATION/vars.h +openair1/PHY/TOOLS/8bit_rxdemux.c +openair1/PHY/TOOLS/8bit_txmux.c +openair1/PHY/TOOLS/alaw_lut.h +openair1/PHY/TOOLS/angle.c +openair1/PHY/TOOLS/cadd_sv.c +openair1/PHY/TOOLS/cadd_vv.c +openair1/PHY/TOOLS/cdot_prod.c +openair1/PHY/TOOLS/cmult_sv.c +openair1/PHY/TOOLS/cmult_vv.c +openair1/PHY/TOOLS/costable.h +openair1/PHY/TOOLS/dB_routines.c +openair1/PHY/TOOLS/dB_routines.h +openair1/PHY/TOOLS/defs.h +openair1/PHY/TOOLS/extern.h +openair1/PHY/TOOLS/file_output.c +openair1/PHY/TOOLS/invSqrt.c +openair1/PHY/TOOLS/log2_approx.c +openair1/PHY/TOOLS/lte_dfts.c +openair1/PHY/TOOLS/lte_phy_scope.c +openair1/PHY/TOOLS/lte_phy_scope.h +openair1/PHY/TOOLS/lte_phy_scope_tm4.c +openair1/PHY/TOOLS/lut.c +openair1/PHY/TOOLS/memory_routines.c +openair1/PHY/TOOLS/read_F.c +openair1/PHY/TOOLS/signal_energy.c +openair1/PHY/TOOLS/smbv.c +openair1/PHY/TOOLS/smbv.h +openair1/PHY/TOOLS/sqrt.c +openair1/PHY/TOOLS/time_meas.c +openair1/PHY/TOOLS/time_meas.h +openair1/PHY/TOOLS/twiddle12288.h +openair1/PHY/TOOLS/twiddle1536.h +openair1/PHY/TOOLS/twiddle18432.h +openair1/PHY/TOOLS/twiddle24576.h +openair1/PHY/TOOLS/twiddle6144.h +openair1/PHY/TOOLS/twiddles4096.h +openair1/PHY/TOOLS/twiddles8192.h +openair1/PHY/TOOLS/vars.h +openair1/PHY/defs.h +openair1/PHY/extern.h +openair1/PHY/impl_defs_lte.h +openair1/PHY/impl_defs_top.h +openair1/PHY/sse_intrin.h +openair1/PHY/types.h +openair1/PHY/vars.h +openair1/SCHED/defs.h +openair1/SCHED/extern.h +openair1/SCHED/phy_mac_stub.c +openair1/SCHED/phy_procedures_emos.h +openair1/SCHED/phy_procedures_lte_common.c +openair1/SCHED/phy_procedures_lte_eNb.c +openair1/SCHED/phy_procedures_lte_ue.c +openair1/SCHED/pucch_pc.c +openair1/SCHED/pusch_pc.c +openair1/SCHED/rt_compat.h +openair1/SCHED/ru_procedures.c +openair1/SCHED/srs_pc.c +openair1/SCHED/vars.h +openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c +openair1/SIMULATION/ETH_TRANSPORT/defs.h +openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c +openair1/SIMULATION/ETH_TRANSPORT/extern.h +openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c +openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h +openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c +openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c +openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h +openair1/SIMULATION/ETH_TRANSPORT/proto.h +openair1/SIMULATION/ETH_TRANSPORT/README.txt +openair1/SIMULATION/ETH_TRANSPORT/socket.c +openair1/SIMULATION/ETH_TRANSPORT/socket.h +openair1/SIMULATION/ETH_TRANSPORT/vars.h +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex +openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls +openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m +openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m +openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m +openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m +openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m +openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m +openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m +openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m +openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m +openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m +openair1/SIMULATION/LTE_PHY/plotTools/p +openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m +openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m +openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m +openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt +openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex +openair1/SIMULATION/LTE_PHY/blerSimus.zip +openair1/SIMULATION/LTE_PHY/dlsim.c +openair1/SIMULATION/LTE_PHY/dlsim_tm4.c +openair1/SIMULATION/LTE_PHY/dlsim_tm7.c +openair1/SIMULATION/LTE_PHY/fancyheadings.sty +openair1/SIMULATION/LTE_PHY/framegen.c +openair1/SIMULATION/LTE_PHY/gpib_send.c +openair1/SIMULATION/LTE_PHY/gpib_send.h +openair1/SIMULATION/LTE_PHY/launch_sim.sh +openair1/SIMULATION/LTE_PHY/LTE_Configuration.c +openair1/SIMULATION/LTE_PHY/LTE_Configuration.h +openair1/SIMULATION/LTE_PHY/mat2wv.m +openair1/SIMULATION/LTE_PHY/mbmssim.c +openair1/SIMULATION/LTE_PHY/pbch_awgn.txt +openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt +openair1/SIMULATION/LTE_PHY/pbchsim.c +openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh +openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m +openair1/SIMULATION/LTE_PHY/pdcchsim.c +openair1/SIMULATION/LTE_PHY/prachsim.c +openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h +openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c +openair1/SIMULATION/LTE_PHY/pucchsim.c +openair1/SIMULATION/LTE_PHY/README.txt +openair1/SIMULATION/LTE_PHY/scansim.c +openair1/SIMULATION/LTE_PHY/signalanalyzer.c +openair1/SIMULATION/LTE_PHY/signalanalyzer.h +openair1/SIMULATION/LTE_PHY/syncsim.c +openair1/SIMULATION/LTE_PHY/test.c +openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c +openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h +openair1/SIMULATION/LTE_PHY/ulsim.c +openair1/SIMULATION/LTE_PHY/ulsim2.c +openair1/SIMULATION/LTE_PHY/unitary_defs.h +openair1/SIMULATION/RF/adc.c +openair1/SIMULATION/RF/dac.c +openair1/SIMULATION/RF/defs.h +openair1/SIMULATION/RF/README.txt +openair1/SIMULATION/RF/rf.c +openair1/SIMULATION/TOOLS/abstraction.c +openair1/SIMULATION/TOOLS/ch_desc_proto.c +openair1/SIMULATION/TOOLS/corr_mat.m +openair1/SIMULATION/TOOLS/defs.h +openair1/SIMULATION/TOOLS/gauss.c +openair1/SIMULATION/TOOLS/llr_quantization.c +openair1/SIMULATION/TOOLS/multipath_channel.c +openair1/SIMULATION/TOOLS/multipath_tv_channel.c +openair1/SIMULATION/TOOLS/random_channel.c +openair1/SIMULATION/TOOLS/rangen_double.c +openair1/SIMULATION/TOOLS/scm.m +openair1/SIMULATION/TOOLS/scm_corrmat.h +openair1/SIMULATION/TOOLS/taus.c +openair1/README.TXT +openair2/COMMON/as_message.h +openair2/COMMON/commonDef.h +openair2/COMMON/gtpv1_u_messages_def.h +openair2/COMMON/gtpv1_u_messages_types.h +openair2/COMMON/intertask_interface_conf.h +openair2/COMMON/mac_messages_def.h +openair2/COMMON/mac_messages_types.h +openair2/COMMON/mac_primitives.h +openair2/COMMON/mac_rlc_primitives.h +openair2/COMMON/mac_rrc_primitives.h +openair2/COMMON/messages_def.h +openair2/COMMON/messages_types.h +openair2/COMMON/nas_messages_def.h +openair2/COMMON/nas_messages_types.h +openair2/COMMON/networkDef.h +openair2/COMMON/openair_defs.h +openair2/COMMON/openair_types.h +openair2/COMMON/pdcp_messages_def.h +openair2/COMMON/pdcp_messages_types.h +openair2/COMMON/phy_messages_def.h +openair2/COMMON/phy_messages_types.h +openair2/COMMON/platform_constants.h +openair2/COMMON/platform_types.h +openair2/COMMON/ral_messages_def.h +openair2/COMMON/ral_messages_types.h +openair2/COMMON/rlc_messages_def.h +openair2/COMMON/rlc_messages_types.h +openair2/COMMON/rrc_messages_def.h +openair2/COMMON/rrc_messages_types.h +openair2/COMMON/rrm_config_structs.h +openair2/COMMON/rrm_constants.h +openair2/COMMON/rtos_header.h +openair2/COMMON/s1ap_messages_def.h +openair2/COMMON/s1ap_messages_types.h +openair2/COMMON/sctp_messages_def.h +openair2/COMMON/sctp_messages_types.h +openair2/COMMON/tasks_def.h +openair2/COMMON/udp_messages_def.h +openair2/COMMON/udp_messages_types.h +openair2/COMMON/x2ap_messages_def.h +openair2/COMMON/x2ap_messages_types.h +openair2/DOCS/Documentation/flow.txt +openair2/DOCS/DOXYGEN/images/cellular_topology.doc +openair2/DOCS/DOXYGEN/images/cellular_topology.pdf +openair2/DOCS/DOXYGEN/images/cellular_topology_small.png +openair2/DOCS/DOXYGEN/images/channel server.png +openair2/DOCS/DOXYGEN/images/channel server.vsd +openair2/DOCS/DOXYGEN/images/convolutional.png +openair2/DOCS/DOXYGEN/images/convolutional.vsd +openair2/DOCS/DOXYGEN/images/Diapositive6.JPG +openair2/DOCS/DOXYGEN/images/DLC_arch.png +openair2/DOCS/DOXYGEN/images/Framing.png +openair2/DOCS/DOXYGEN/images/Framing.vsd +openair2/DOCS/DOXYGEN/images/irs_dcf.jpg +openair2/DOCS/DOXYGEN/images/irs_pcf.jpg +openair2/DOCS/DOXYGEN/images/layer2_stack.jpg +openair2/DOCS/DOXYGEN/images/layer2_stack.pdf +openair2/DOCS/DOXYGEN/images/layer2_stack.png +openair2/DOCS/DOXYGEN/images/MAC Services.vsd +openair2/DOCS/DOXYGEN/images/MAC_arch.eps +openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG +openair2/DOCS/DOXYGEN/images/mac_channels.png +openair2/DOCS/DOXYGEN/images/MAC_Measurements.png +openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd +openair2/DOCS/DOXYGEN/images/MAC_Services.eps +openair2/DOCS/DOXYGEN/images/MAC_Services.vsd +openair2/DOCS/DOXYGEN/images/MAC_Services2.eps +openair2/DOCS/DOXYGEN/images/MAC_Services2.png +openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png +openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd +openair2/DOCS/DOXYGEN/images/mac_wbs.jpg +openair2/DOCS/DOXYGEN/images/macphynet.eps +openair2/DOCS/DOXYGEN/images/macphynet.png +openair2/DOCS/DOXYGEN/images/mesh_frame.pdf +openair2/DOCS/DOXYGEN/images/mesh_topology.pdf +openair2/DOCS/DOXYGEN/images/mesh_topology_small.png +openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png +openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd +openair2/DOCS/DOXYGEN/images/PHY_arch.eps +openair2/DOCS/DOXYGEN/images/PHY_arch.png +openair2/DOCS/DOXYGEN/images/PHY_arch.vsd +openair2/DOCS/DOXYGEN/images/QAM modulation.png +openair2/DOCS/DOXYGEN/images/QAM modulation.vsd +openair2/DOCS/DOXYGEN/images/QAMmodulation.png +openair2/DOCS/DOXYGEN/images/scrambler.png +openair2/DOCS/DOXYGEN/images/scrambler.vsd +openair2/DOCS/DOXYGEN/images/Transmission.pdf +openair2/DOCS/DOXYGEN/images/Transmission.png +openair2/DOCS/DOXYGEN/images/Transmission.ps +openair2/DOCS/DOXYGEN/images/w3g4f_framing.png +openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd +openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd +openair2/DOCS/DOXYGEN/Doxyfile +openair2/DOCS/TEMPLATES/CODE/images/arch.eps +openair2/DOCS/TEMPLATES/CODE/images/arch.png +openair2/DOCS/TEMPLATES/CODE/Doxyfile +openair2/DOCS/TEMPLATES/CODE/example_doxy.h +openair2/DOCS/TEMPLATES/README/Readme.doxy +openair2/DOCS/TEMPLATES/README/readme.txt +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c +openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h +openair2/ENB_APP/MESSAGES/V2/config_common.proto +openair2/ENB_APP/MESSAGES/V2/config_messages.proto +openair2/ENB_APP/MESSAGES/V2/control_delegation.proto +openair2/ENB_APP/MESSAGES/V2/controller_commands.proto +openair2/ENB_APP/MESSAGES/V2/flexran.proto +openair2/ENB_APP/MESSAGES/V2/header.proto +openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto +openair2/ENB_APP/MESSAGES/V2/stats_common.proto +openair2/ENB_APP/MESSAGES/V2/stats_messages.proto +openair2/ENB_APP/MESSAGES/V2/time_common.proto +openair2/ENB_APP/enb_app.c +openair2/ENB_APP/enb_app.h +openair2/ENB_APP/enb_config.c +openair2/ENB_APP/enb_config.h +openair2/ENB_APP/flexran_agent.c +openair2/ENB_APP/flexran_agent.h +openair2/ENB_APP/flexran_agent_async.c +openair2/ENB_APP/flexran_agent_async.h +openair2/ENB_APP/flexran_agent_common.c +openair2/ENB_APP/flexran_agent_common.h +openair2/ENB_APP/flexran_agent_common_internal.c +openair2/ENB_APP/flexran_agent_common_internal.h +openair2/ENB_APP/flexran_agent_defs.h +openair2/ENB_APP/flexran_agent_extern.h +openair2/ENB_APP/flexran_agent_handler.c +openair2/ENB_APP/flexran_agent_net_comm.c +openair2/ENB_APP/flexran_agent_net_comm.h +openair2/ENB_APP/flexran_agent_task_manager.c +openair2/ENB_APP/flexran_agent_task_manager.h +openair2/LAYER2/MAC/config.c +openair2/LAYER2/MAC/defs.h +openair2/LAYER2/MAC/eNB_scheduler.c +openair2/LAYER2/MAC/eNB_scheduler_bch.c +openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +openair2/LAYER2/MAC/eNB_scheduler_mch.c +openair2/LAYER2/MAC/eNB_scheduler_primitives.c +openair2/LAYER2/MAC/eNB_scheduler_RA.c +openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +openair2/LAYER2/MAC/extern.h +openair2/LAYER2/MAC/flexran_agent_mac_proto.h +openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c +openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c +openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c +openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h +openair2/LAYER2/MAC/flexran_dci_conversions.h +openair2/LAYER2/MAC/l1_helpers.c +openair2/LAYER2/MAC/lte_transport_init.c +openair2/LAYER2/MAC/main.c +openair2/LAYER2/MAC/openair2_proc.c +openair2/LAYER2/MAC/pre_processor.c +openair2/LAYER2/MAC/proto.h +openair2/LAYER2/MAC/ra_procedures.c +openair2/LAYER2/MAC/rar_tools.c +openair2/LAYER2/MAC/ue_procedures.c +openair2/LAYER2/MAC/vars.h +openair2/LAYER2/PDCP_v10.1.0/pdcp.c +openair2/LAYER2/PDCP_v10.1.0/pdcp.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h +openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c +openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c +openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h +openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h +openair2/LAYER2/RLC/UM_v9.3.0/README +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c +openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h +openair2/LAYER2/RLC/mac_primitives.h +openair2/LAYER2/RLC/rlc.c +openair2/LAYER2/RLC/rlc.h +openair2/LAYER2/RLC/rlc_def.h +openair2/LAYER2/RLC/rlc_def_lte.h +openair2/LAYER2/RLC/rlc_mac.c +openair2/LAYER2/RLC/rlc_mpls.c +openair2/LAYER2/RLC/rlc_primitives.h +openair2/LAYER2/RLC/rlc_rrc.c +openair2/LAYER2/openair2_proc.c +openair2/LAYER2/register.c +openair2/LAYER2/register.h +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c +openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c +openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h +openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest +openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c +openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c +openair2/NAS/DRIVER/CELLULAR/readme.txt +openair2/NAS/DRIVER/CELLULAR/start_mt_cellular +openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_noradvd +openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_radvd +openair2/NAS/DRIVER/CELLULAR/stop_mt_cellular +openair2/NAS/DRIVER/CELLULAR/stop_rg_cellular +openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h +openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c +openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c +openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c +openair2/NETWORK_DRIVER/LITE/classifier.c +openair2/NETWORK_DRIVER/LITE/common.c +openair2/NETWORK_DRIVER/LITE/constant.h +openair2/NETWORK_DRIVER/LITE/device.c +openair2/NETWORK_DRIVER/LITE/ioctl.c +openair2/NETWORK_DRIVER/LITE/ioctl.h +openair2/NETWORK_DRIVER/LITE/local.h +openair2/NETWORK_DRIVER/LITE/netlink.c +openair2/NETWORK_DRIVER/LITE/proto_extern.h +openair2/NETWORK_DRIVER/LITE/sap.h +openair2/NETWORK_DRIVER/LITE/tool.c +openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c +openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c +openair2/NETWORK_DRIVER/MESH/classifier.c +openair2/NETWORK_DRIVER/MESH/common.c +openair2/NETWORK_DRIVER/MESH/constant.h +openair2/NETWORK_DRIVER/MESH/device.c +openair2/NETWORK_DRIVER/MESH/ioctl.c +openair2/NETWORK_DRIVER/MESH/ioctl.h +openair2/NETWORK_DRIVER/MESH/local.h +openair2/NETWORK_DRIVER/MESH/mesh.c +openair2/NETWORK_DRIVER/MESH/netlink.c +openair2/NETWORK_DRIVER/MESH/proto_extern.h +openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h +openair2/NETWORK_DRIVER/MESH/sap.h +openair2/NETWORK_DRIVER/MESH/tool.c +openair2/NETWORK_DRIVER/UE_IP/common.c +openair2/NETWORK_DRIVER/UE_IP/constant.h +openair2/NETWORK_DRIVER/UE_IP/device.c +openair2/NETWORK_DRIVER/UE_IP/local.h +openair2/NETWORK_DRIVER/UE_IP/netlink.c +openair2/NETWORK_DRIVER/UE_IP/proto_extern.h +openair2/NETWORK_DRIVER/UE_IP/README +openair2/NETWORK_DRIVER/UE_IP/sap.h +openair2/PHY_INTERFACE/defs.h +openair2/PHY_INTERFACE/extern.h +openair2/PHY_INTERFACE/IF_Module.c +openair2/PHY_INTERFACE/IF_Module.h +openair2/PHY_INTERFACE/mac_phy_primitives.c +openair2/PHY_INTERFACE/mac_phy_primitives.h +openair2/PHY_INTERFACE/vars.h +openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c +openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-860.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-a20.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-c60.txt +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl +openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn +openair2/RRC/LITE/MESSAGES/asn1_msg.c +openair2/RRC/LITE/MESSAGES/asn1_msg.h +openair2/RRC/LITE/MESSAGES/asn1_patch +openair2/RRC/LITE/MESSAGES/README.txt +openair2/RRC/LITE/MESSAGES/rtai_mem.c +openair2/RRC/LITE/MESSAGES/rtai_mem.h +openair2/RRC/LITE/defs.h +openair2/RRC/LITE/extern.h +openair2/RRC/LITE/L2_interface.c +openair2/RRC/LITE/mesh_top.c +openair2/RRC/LITE/plmn_data.h +openair2/RRC/LITE/proto.h +openair2/RRC/LITE/rrc_2_rrm_msg.c +openair2/RRC/LITE/rrc_common.c +openair2/RRC/LITE/rrc_eNB.c +openair2/RRC/LITE/rrc_eNB_GTPV1U.c +openair2/RRC/LITE/rrc_eNB_GTPV1U.h +openair2/RRC/LITE/rrc_eNB_ral.c +openair2/RRC/LITE/rrc_eNB_ral.h +openair2/RRC/LITE/rrc_eNB_S1AP.c +openair2/RRC/LITE/rrc_eNB_S1AP.h +openair2/RRC/LITE/rrc_eNB_UE_context.c +openair2/RRC/LITE/rrc_eNB_UE_context.h +openair2/RRC/LITE/rrc_rrm_interface.c +openair2/RRC/LITE/rrc_rrm_interface.h +openair2/RRC/LITE/rrc_types.h +openair2/RRC/LITE/rrc_UE.c +openair2/RRC/LITE/rrc_UE_ral.c +openair2/RRC/LITE/rrc_UE_ral.h +openair2/RRC/LITE/rrm_2_rrc_msg.c +openair2/RRC/LITE/utils.c +openair2/RRC/LITE/vars.h +openair2/RRC/NAS/nas_config.c +openair2/RRC/NAS/nas_config.h +openair2/RRC/NAS/rb_config.c +openair2/RRC/NAS/rb_config.h +openair2/UTIL/ASYNC_IF/link_manager.c +openair2/UTIL/ASYNC_IF/link_manager.h +openair2/UTIL/ASYNC_IF/message_queue.c +openair2/UTIL/ASYNC_IF/message_queue.h +openair2/UTIL/ASYNC_IF/ringbuffer_queue.c +openair2/UTIL/ASYNC_IF/ringbuffer_queue.h +openair2/UTIL/ASYNC_IF/socket_link.c +openair2/UTIL/ASYNC_IF/socket_link.h +openair2/UTIL/BIGPHYS/bigphys.c +openair2/UTIL/BIGPHYS/defs.h +openair2/UTIL/CLI/cli.c +openair2/UTIL/CLI/cli.h +openair2/UTIL/CLI/cli_cmd.c +openair2/UTIL/CLI/cli_if.h +openair2/UTIL/CLI/cli_server.c +openair2/UTIL/FIFO/pad_list.c +openair2/UTIL/FIFO/pad_list.h +openair2/UTIL/FIFO/types.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c +openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c +openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt +openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln +openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h +openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln +openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj +openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters +openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c +openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h +openair2/UTIL/LISTS/list.c +openair2/UTIL/LISTS/list.h +openair2/UTIL/LISTS/list2.c +openair2/UTIL/LOG/log.c +openair2/UTIL/LOG/log.h +openair2/UTIL/LOG/log_extern.h +openair2/UTIL/LOG/log_if.h +openair2/UTIL/LOG/README.txt +openair2/UTIL/LOG/vcd_signal_dumper.c +openair2/UTIL/LOG/vcd_signal_dumper.h +openair2/UTIL/MATH/crc_byte.c +openair2/UTIL/MATH/oml.c +openair2/UTIL/MATH/oml.h +openair2/UTIL/MATH/random.c +openair2/UTIL/MATH/random_proto_extern.h +openair2/UTIL/MATH/taus.c +openair2/UTIL/MEM/mem_block.c +openair2/UTIL/MEM/mem_block.h +openair2/UTIL/MEM/mem_mngt.c +openair2/UTIL/MEM/mem_mngt_proto_extern.h +openair2/UTIL/MEM/mem_pool.h +openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml +openair2/UTIL/OCG/temp_output/OCG_report.xml +openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml +openair2/UTIL/OCG/Doxyfile +openair2/UTIL/OCG/eurecom_20110208110244.xml +openair2/UTIL/OCG/OCG.c +openair2/UTIL/OCG/OCG.h +openair2/UTIL/OCG/OCG_call_emu.c +openair2/UTIL/OCG/OCG_call_emu.h +openair2/UTIL/OCG/OCG_config_mobi.c +openair2/UTIL/OCG/OCG_config_mobi.h +openair2/UTIL/OCG/OCG_create_dir.c +openair2/UTIL/OCG/OCG_create_dir.h +openair2/UTIL/OCG/OCG_detect_file.c +openair2/UTIL/OCG/OCG_detect_file.h +openair2/UTIL/OCG/OCG_extern.h +openair2/UTIL/OCG/OCG_generate_report.c +openair2/UTIL/OCG/OCG_generate_report.h +openair2/UTIL/OCG/OCG_get_opt.c +openair2/UTIL/OCG/OCG_get_opt.h +openair2/UTIL/OCG/OCG_if.h +openair2/UTIL/OCG/OCG_parse_filename.c +openair2/UTIL/OCG/OCG_parse_filename.h +openair2/UTIL/OCG/OCG_parse_XML.c +openair2/UTIL/OCG/OCG_parse_XML.h +openair2/UTIL/OCG/OCG_save_XML.c +openair2/UTIL/OCG/OCG_save_XML.h +openair2/UTIL/OCG/OCG_vars.h +openair2/UTIL/OCG/readme.txt +openair2/UTIL/OMG/TRACE/example_trace.tr +openair2/UTIL/OMG/TRACE/handover.tr +openair2/UTIL/OMG/TRACE/handover_1ue.tr +openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr +openair2/UTIL/OMG/TRACE/mobility_2ues.tr +openair2/UTIL/OMG/TRACE/mobility_3ues.tr +openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf +openair2/UTIL/OMG/TRACE/README.TXT +openair2/UTIL/OMG/TRACE/regular.tr +openair2/UTIL/OMG/TRACE/static_1enb.tr +openair2/UTIL/OMG/TRACE/static_2ues.tr +openair2/UTIL/OMG/TRACE/zero_speed.tr +openair2/UTIL/OMG/common.c +openair2/UTIL/OMG/defs.h +openair2/UTIL/OMG/grid.c +openair2/UTIL/OMG/grid.h +openair2/UTIL/OMG/job.c +openair2/UTIL/OMG/mobility.txt +openair2/UTIL/OMG/mobility_parser.c +openair2/UTIL/OMG/mobility_parser.h +openair2/UTIL/OMG/omg.c +openair2/UTIL/OMG/omg.h +openair2/UTIL/OMG/omg_constants.h +openair2/UTIL/OMG/omg_hashtable.c +openair2/UTIL/OMG/omg_hashtable.h +openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf +openair2/UTIL/OMG/omg_vars.h +openair2/UTIL/OMG/README.TXT +openair2/UTIL/OMG/rwalk.c +openair2/UTIL/OMG/rwalk.h +openair2/UTIL/OMG/rwp.c +openair2/UTIL/OMG/rwp.h +openair2/UTIL/OMG/static.c +openair2/UTIL/OMG/static.h +openair2/UTIL/OMG/steadystaterwp.c +openair2/UTIL/OMG/steadystaterwp.h +openair2/UTIL/OMG/trace.c +openair2/UTIL/OMG/trace.h +openair2/UTIL/OMG/trace_hashtable.c +openair2/UTIL/OMG/trace_hashtable.h +openair2/UTIL/OMV/blue.png +openair2/UTIL/OMV/communicationthread.cpp +openair2/UTIL/OMV/communicationthread.h +openair2/UTIL/OMV/green.png +openair2/UTIL/OMV/jpg.jpeg +openair2/UTIL/OMV/mus.png +openair2/UTIL/OMV/mywindow.cpp +openair2/UTIL/OMV/mywindow.h +openair2/UTIL/OMV/new.jpg +openair2/UTIL/OMV/new2.jpg +openair2/UTIL/OMV/omv.cpp +openair2/UTIL/OMV/openglwidget.cpp +openair2/UTIL/OMV/openglwidget.h +openair2/UTIL/OMV/README.txt +openair2/UTIL/OMV/red.png +openair2/UTIL/OMV/structures.h +openair2/UTIL/OMV/white.png +openair2/UTIL/OMV/wow.png +openair2/UTIL/OPT/mac_pcap.h +openair2/UTIL/OPT/opt.h +openair2/UTIL/OPT/packet-mac-lte.h +openair2/UTIL/OPT/probe.c +openair2/UTIL/OPT/README.txt +openair2/UTIL/OPT/vars.h +openair2/UTIL/OSA/osa_defs.h +openair2/UTIL/OSA/osa_internal.h +openair2/UTIL/OSA/osa_key_deriver.c +openair2/UTIL/OSA/osa_rijndael.c +openair2/UTIL/OSA/osa_rijndael.h +openair2/UTIL/OSA/osa_snow3g.c +openair2/UTIL/OSA/osa_snow3g.h +openair2/UTIL/OSA/osa_stream_eea.c +openair2/UTIL/OSA/osa_stream_eia.c +openair2/UTIL/OSA/README +openair2/UTIL/OSD/css/images/false.png +openair2/UTIL/OSD/css/images/false2.png +openair2/UTIL/OSD/css/images/lquote.png +openair2/UTIL/OSD/css/images/true.png +openair2/UTIL/OSD/css/images/warning.png +openair2/UTIL/OSD/css/blueprint.css +openair2/UTIL/OSD/css/fix-ie-rtl.css +openair2/UTIL/OSD/css/fix-ie.css +openair2/UTIL/OSD/css/ie.css +openair2/UTIL/OSD/css/ie6.css +openair2/UTIL/OSD/css/print.css +openair2/UTIL/OSD/css/screen.css +openair2/UTIL/OSD/css/style.css +openair2/UTIL/OSD/jquery/jquery.js +openair2/UTIL/OSD/fake_oaisim +openair2/UTIL/OSD/form.php +openair2/UTIL/OSD/header.php +openair2/UTIL/OSD/httpd-result.conf +openair2/UTIL/OSD/index.php +openair2/UTIL/OSD/OCG.pid +openair2/UTIL/OSD/OpenAirEmu.conf +openair2/UTIL/OSD/Platform_is_running.php +openair2/UTIL/OSD/README.txt +openair2/UTIL/OSD/recep.php +openair2/UTIL/OSD/toto.php +openair2/UTIL/OTG/Doxyfile +openair2/UTIL/OTG/help_OTGplot.txt +openair2/UTIL/OTG/main.c +openair2/UTIL/OTG/otg.c +openair2/UTIL/OTG/otg.h +openair2/UTIL/OTG/otg_config.h +openair2/UTIL/OTG/otg_defs.h +openair2/UTIL/OTG/otg_externs.h +openair2/UTIL/OTG/otg_form.c +openair2/UTIL/OTG/otg_form.h +openair2/UTIL/OTG/otg_kpi.c +openair2/UTIL/OTG/otg_kpi.h +openair2/UTIL/OTG/otg_models.c +openair2/UTIL/OTG/otg_models.h +openair2/UTIL/OTG/otg_rx.c +openair2/UTIL/OTG/otg_rx.h +openair2/UTIL/OTG/otg_rx_socket.c +openair2/UTIL/OTG/otg_rx_socket.h +openair2/UTIL/OTG/otg_tx.c +openair2/UTIL/OTG/otg_tx.h +openair2/UTIL/OTG/otg_tx_socket.c +openair2/UTIL/OTG/otg_tx_socket.h +openair2/UTIL/OTG/otg_vars.h +openair2/UTIL/OTG/OTGplot +openair2/UTIL/OTG/traffic_config.h +openair2/UTIL/TIMER/umts_timer.c +openair2/UTIL/TIMER/umts_timer.h +openair2/UTIL/TIMER/umts_timer_proto_extern.h +openair2/UTIL/TIMER/umts_timer_struct.h +openair2/UTIL/TRACE/fifo_printf.c +openair2/UTIL/TRACE/fifo_printf.h +openair2/UTIL/TRACE/fifo_printf_proto_extern.h +openair2/UTIL/TRACE/print.h +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn +openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn +openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn +openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py +openair2/X2AP/x2ap.c +openair2/X2AP/x2ap.h +openair2/X2AP/x2ap_common.c +openair2/X2AP/x2ap_common.h +openair3/COMMON/as_message.h +openair3/COMMON/common_types.h +openair3/COMMON/gtpv1_u_messages_def.h +openair3/COMMON/gtpv1_u_messages_types.h +openair3/COMMON/intertask_interface_conf.h +openair3/COMMON/messages_def.h +openair3/COMMON/messages_types.h +openair3/COMMON/nas_messages_def.h +openair3/COMMON/nas_messages_types.h +openair3/COMMON/s1ap_messages_def.h +openair3/COMMON/s1ap_messages_types.h +openair3/COMMON/sctp_messages_def.h +openair3/COMMON/sctp_messages_types.h +openair3/COMMON/security_types.h +openair3/COMMON/tasks_def.h +openair3/COMMON/udp_messages_def.h +openair3/COMMON/udp_messages_types.h +openair3/DOCS/DOXYGEN/Doxyfile.in +openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf +openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex +openair3/DOCS/Latex/EPC/EPC.pdf +openair3/DOCS/Latex/EPC/EPC.tex +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h +openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h +openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c +openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h +openair3/GTPV1-U/nw-gtpv1u/AUTHORS +openair3/GTPV1-U/nw-gtpv1u/ChangeLog +openair3/GTPV1-U/nw-gtpv1u/COPYING +openair3/GTPV1-U/nw-gtpv1u/NEWS +openair3/GTPV1-U/nw-gtpv1u/README +openair3/GTPV1-U/gtpv1u.h +openair3/GTPV1-U/gtpv1u_eNB.c +openair3/GTPV1-U/gtpv1u_eNB_defs.h +openair3/GTPV1-U/gtpv1u_eNB_task.h +openair3/GTPV1-U/gtpv1u_sgw_defs.h +openair3/GTPV1-U/gtpv1u_task.c +openair3/GTPV1-U/gtpv1u_teid_pool.c +openair3/NAS/COMMON/API/NETWORK/as_message.c +openair3/NAS/COMMON/API/NETWORK/as_message.h +openair3/NAS/COMMON/API/NETWORK/l2_message.h +openair3/NAS/COMMON/API/NETWORK/nas_message.c +openair3/NAS/COMMON/API/NETWORK/nas_message.h +openair3/NAS/COMMON/API/NETWORK/network_api.c +openair3/NAS/COMMON/API/NETWORK/network_api.h +openair3/NAS/COMMON/EMM/MSG/AttachAccept.c +openair3/NAS/COMMON/EMM/MSG/AttachAccept.h +openair3/NAS/COMMON/EMM/MSG/AttachComplete.c +openair3/NAS/COMMON/EMM/MSG/AttachComplete.h +openair3/NAS/COMMON/EMM/MSG/AttachReject.c +openair3/NAS/COMMON/EMM/MSG/AttachReject.h +openair3/NAS/COMMON/EMM/MSG/AttachRequest.c +openair3/NAS/COMMON/EMM/MSG/AttachRequest.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h +openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c +openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h +openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c +openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h +openair3/NAS/COMMON/EMM/MSG/DetachAccept.c +openair3/NAS/COMMON/EMM/MSG/DetachAccept.h +openair3/NAS/COMMON/EMM/MSG/DetachRequest.c +openair3/NAS/COMMON/EMM/MSG/DetachRequest.h +openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c +openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h +openair3/NAS/COMMON/EMM/MSG/emm_cause.h +openair3/NAS/COMMON/EMM/MSG/emm_msg.c +openair3/NAS/COMMON/EMM/MSG/emm_msg.h +openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h +openair3/NAS/COMMON/EMM/MSG/EmmInformation.c +openair3/NAS/COMMON/EMM/MSG/EmmInformation.h +openair3/NAS/COMMON/EMM/MSG/EmmStatus.c +openair3/NAS/COMMON/EMM/MSG/EmmStatus.h +openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c +openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h +openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c +openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h +openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c +openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h +openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c +openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h +openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c +openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h +openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h +openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h +openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c +openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c +openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c +openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h +openair3/NAS/COMMON/EMM/MSG/ServiceReject.c +openair3/NAS/COMMON/EMM/MSG/ServiceReject.h +openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c +openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c +openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h +openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c +openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c +openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/esm_cause.h +openair3/NAS/COMMON/ESM/MSG/esm_msg.c +openair3/NAS/COMMON/ESM/MSG/esm_msg.h +openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h +openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c +openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h +openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c +openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h +openair3/NAS/COMMON/ESM/MSG/EsmStatus.c +openair3/NAS/COMMON/ESM/MSG/EsmStatus.h +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c +openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c +openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c +openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h +openair3/NAS/COMMON/IES/AccessPointName.c +openair3/NAS/COMMON/IES/AccessPointName.h +openair3/NAS/COMMON/IES/AdditionalUpdateResult.c +openair3/NAS/COMMON/IES/AdditionalUpdateResult.h +openair3/NAS/COMMON/IES/AdditionalUpdateType.c +openair3/NAS/COMMON/IES/AdditionalUpdateType.h +openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c +openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h +openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c +openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h +openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c +openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h +openair3/NAS/COMMON/IES/AuthenticationParameterRand.c +openair3/NAS/COMMON/IES/AuthenticationParameterRand.h +openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c +openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h +openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c +openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h +openair3/NAS/COMMON/IES/Cli.c +openair3/NAS/COMMON/IES/Cli.h +openair3/NAS/COMMON/IES/CsfbResponse.c +openair3/NAS/COMMON/IES/CsfbResponse.h +openair3/NAS/COMMON/IES/DaylightSavingTime.c +openair3/NAS/COMMON/IES/DaylightSavingTime.h +openair3/NAS/COMMON/IES/DetachType.c +openair3/NAS/COMMON/IES/DetachType.h +openair3/NAS/COMMON/IES/DrxParameter.c +openair3/NAS/COMMON/IES/DrxParameter.h +openair3/NAS/COMMON/IES/EmergencyNumberList.c +openair3/NAS/COMMON/IES/EmergencyNumberList.h +openair3/NAS/COMMON/IES/EmmCause.c +openair3/NAS/COMMON/IES/EmmCause.h +openair3/NAS/COMMON/IES/EpsAttachResult.c +openair3/NAS/COMMON/IES/EpsAttachResult.h +openair3/NAS/COMMON/IES/EpsAttachType.c +openair3/NAS/COMMON/IES/EpsAttachType.h +openair3/NAS/COMMON/IES/EpsBearerContextStatus.c +openair3/NAS/COMMON/IES/EpsBearerContextStatus.h +openair3/NAS/COMMON/IES/EpsBearerIdentity.c +openair3/NAS/COMMON/IES/EpsBearerIdentity.h +openair3/NAS/COMMON/IES/EpsMobileIdentity.c +openair3/NAS/COMMON/IES/EpsMobileIdentity.h +openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c +openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h +openair3/NAS/COMMON/IES/EpsQualityOfService.c +openair3/NAS/COMMON/IES/EpsQualityOfService.h +openair3/NAS/COMMON/IES/EpsUpdateResult.c +openair3/NAS/COMMON/IES/EpsUpdateResult.h +openair3/NAS/COMMON/IES/EpsUpdateType.c +openair3/NAS/COMMON/IES/EpsUpdateType.h +openair3/NAS/COMMON/IES/EsmCause.c +openair3/NAS/COMMON/IES/EsmCause.h +openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c +openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h +openair3/NAS/COMMON/IES/EsmMessageContainer.c +openair3/NAS/COMMON/IES/EsmMessageContainer.h +openair3/NAS/COMMON/IES/GprsTimer.c +openair3/NAS/COMMON/IES/GprsTimer.h +openair3/NAS/COMMON/IES/GutiType.c +openair3/NAS/COMMON/IES/GutiType.h +openair3/NAS/COMMON/IES/IdentityType2.c +openair3/NAS/COMMON/IES/IdentityType2.h +openair3/NAS/COMMON/IES/ImeisvRequest.c +openair3/NAS/COMMON/IES/ImeisvRequest.h +openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c +openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h +openair3/NAS/COMMON/IES/LcsClientIdentity.c +openair3/NAS/COMMON/IES/LcsClientIdentity.h +openair3/NAS/COMMON/IES/LcsIndicator.c +openair3/NAS/COMMON/IES/LcsIndicator.h +openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c +openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h +openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c +openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h +openair3/NAS/COMMON/IES/LocationAreaIdentification.c +openair3/NAS/COMMON/IES/LocationAreaIdentification.h +openair3/NAS/COMMON/IES/MessageType.c +openair3/NAS/COMMON/IES/MessageType.h +openair3/NAS/COMMON/IES/MobileIdentity.c +openair3/NAS/COMMON/IES/MobileIdentity.h +openair3/NAS/COMMON/IES/MobileStationClassmark2.c +openair3/NAS/COMMON/IES/MobileStationClassmark2.h +openair3/NAS/COMMON/IES/MobileStationClassmark3.c +openair3/NAS/COMMON/IES/MobileStationClassmark3.h +openair3/NAS/COMMON/IES/MsNetworkCapability.c +openair3/NAS/COMMON/IES/MsNetworkCapability.h +openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c +openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h +openair3/NAS/COMMON/IES/NasKeySetIdentifier.c +openair3/NAS/COMMON/IES/NasKeySetIdentifier.h +openair3/NAS/COMMON/IES/NasMessageContainer.c +openair3/NAS/COMMON/IES/NasMessageContainer.h +openair3/NAS/COMMON/IES/NasRequestType.c +openair3/NAS/COMMON/IES/NasRequestType.h +openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c +openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h +openair3/NAS/COMMON/IES/NetworkName.c +openair3/NAS/COMMON/IES/NetworkName.h +openair3/NAS/COMMON/IES/Nonce.c +openair3/NAS/COMMON/IES/Nonce.h +openair3/NAS/COMMON/IES/PacketFlowIdentifier.c +openair3/NAS/COMMON/IES/PacketFlowIdentifier.h +openair3/NAS/COMMON/IES/PagingIdentity.c +openair3/NAS/COMMON/IES/PagingIdentity.h +openair3/NAS/COMMON/IES/PdnAddress.c +openair3/NAS/COMMON/IES/PdnAddress.h +openair3/NAS/COMMON/IES/PdnType.c +openair3/NAS/COMMON/IES/PdnType.h +openair3/NAS/COMMON/IES/PlmnList.c +openair3/NAS/COMMON/IES/PlmnList.h +openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c +openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h +openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c +openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h +openair3/NAS/COMMON/IES/ProtocolDiscriminator.c +openair3/NAS/COMMON/IES/ProtocolDiscriminator.h +openair3/NAS/COMMON/IES/PTmsiSignature.c +openair3/NAS/COMMON/IES/PTmsiSignature.h +openair3/NAS/COMMON/IES/QualityOfService.c +openair3/NAS/COMMON/IES/QualityOfService.h +openair3/NAS/COMMON/IES/RadioPriority.c +openair3/NAS/COMMON/IES/RadioPriority.h +openair3/NAS/COMMON/IES/SecurityHeaderType.c +openair3/NAS/COMMON/IES/SecurityHeaderType.h +openair3/NAS/COMMON/IES/ServiceType.c +openair3/NAS/COMMON/IES/ServiceType.h +openair3/NAS/COMMON/IES/ShortMac.c +openair3/NAS/COMMON/IES/ShortMac.h +openair3/NAS/COMMON/IES/SsCode.c +openair3/NAS/COMMON/IES/SsCode.h +openair3/NAS/COMMON/IES/SupportedCodecList.c +openair3/NAS/COMMON/IES/SupportedCodecList.h +openair3/NAS/COMMON/IES/TimeZone.c +openair3/NAS/COMMON/IES/TimeZone.h +openair3/NAS/COMMON/IES/TimeZoneAndTime.c +openair3/NAS/COMMON/IES/TimeZoneAndTime.h +openair3/NAS/COMMON/IES/TmsiStatus.c +openair3/NAS/COMMON/IES/TmsiStatus.h +openair3/NAS/COMMON/IES/TrackingAreaIdentity.c +openair3/NAS/COMMON/IES/TrackingAreaIdentity.h +openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c +openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h +openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c +openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h +openair3/NAS/COMMON/IES/TrafficFlowTemplate.c +openair3/NAS/COMMON/IES/TrafficFlowTemplate.h +openair3/NAS/COMMON/IES/TransactionIdentifier.c +openair3/NAS/COMMON/IES/TransactionIdentifier.h +openair3/NAS/COMMON/IES/UeNetworkCapability.c +openair3/NAS/COMMON/IES/UeNetworkCapability.h +openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c +openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h +openair3/NAS/COMMON/IES/UeSecurityCapability.c +openair3/NAS/COMMON/IES/UeSecurityCapability.h +openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c +openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h +openair3/NAS/COMMON/UTIL/tst/timer.c +openair3/NAS/COMMON/UTIL/tst/timer_debug.txt +openair3/NAS/COMMON/UTIL/device.c +openair3/NAS/COMMON/UTIL/device.h +openair3/NAS/COMMON/UTIL/memory.c +openair3/NAS/COMMON/UTIL/memory.h +openair3/NAS/COMMON/UTIL/nas_log.c +openair3/NAS/COMMON/UTIL/nas_log.h +openair3/NAS/COMMON/UTIL/nas_timer.c +openair3/NAS/COMMON/UTIL/nas_timer.h +openair3/NAS/COMMON/UTIL/OctetString.c +openair3/NAS/COMMON/UTIL/OctetString.h +openair3/NAS/COMMON/UTIL/parser.c +openair3/NAS/COMMON/UTIL/parser.h +openair3/NAS/COMMON/UTIL/socket.c +openair3/NAS/COMMON/UTIL/socket.h +openair3/NAS/COMMON/UTIL/stty.c +openair3/NAS/COMMON/UTIL/TLVDecoder.c +openair3/NAS/COMMON/UTIL/TLVDecoder.h +openair3/NAS/COMMON/UTIL/TLVEncoder.c +openair3/NAS/COMMON/UTIL/TLVEncoder.h +openair3/NAS/COMMON/commonDef.h +openair3/NAS/COMMON/networkDef.h +openair3/NAS/COMMON/securityDef.h +openair3/NAS/COMMON/userDef.h +openair3/NAS/TEST/AS_SIMULATOR/as_data.c +openair3/NAS/TEST/AS_SIMULATOR/as_data.h +openair3/NAS/TEST/AS_SIMULATOR/as_process.c +openair3/NAS/TEST/AS_SIMULATOR/as_process.h +openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c +openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c +openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h +openair3/NAS/TEST/AS_SIMULATOR/nas_data.c +openair3/NAS/TEST/AS_SIMULATOR/nas_data.h +openair3/NAS/TEST/AS_SIMULATOR/nas_process.c +openair3/NAS/TEST/AS_SIMULATOR/nas_process.h +openair3/NAS/TEST/MSC/ActivatePDN.png +openair3/NAS/TEST/MSC/AuthenticationReject.png +openair3/NAS/TEST/MSC/DeactivatePDN.png +openair3/NAS/TEST/MSC/InitialAttach.png +openair3/NAS/TEST/MSC/InitialAttachReject.png +openair3/NAS/TEST/MSC/msc_gen.py +openair3/NAS/TEST/MSC/NomalDetach.png +openair3/NAS/TEST/MSC/README +openair3/NAS/TEST/MSC/SwitchOffDetach.png +openair3/NAS/TEST/NETWORK/network_parser.c +openair3/NAS/TEST/NETWORK/network_parser.h +openair3/NAS/TEST/NETWORK/network_simulator.c +openair3/NAS/TEST/NETWORK/README +openair3/NAS/TEST/USER/user_parser.c +openair3/NAS/TEST/USER/user_parser.h +openair3/NAS/TEST/USER/user_simulator.c +openair3/NAS/TOOLS/conf2uedata.c +openair3/NAS/TOOLS/conf2uedata.h +openair3/NAS/TOOLS/conf_emm.c +openair3/NAS/TOOLS/conf_emm.h +openair3/NAS/TOOLS/conf_network.c +openair3/NAS/TOOLS/conf_network.h +openair3/NAS/TOOLS/conf_parser.c +openair3/NAS/TOOLS/conf_parser.h +openair3/NAS/TOOLS/conf_user_data.c +openair3/NAS/TOOLS/conf_user_data.h +openair3/NAS/TOOLS/conf_user_plmn.c +openair3/NAS/TOOLS/conf_user_plmn.h +openair3/NAS/TOOLS/conf_usim.c +openair3/NAS/TOOLS/conf_usim.h +openair3/NAS/TOOLS/display.c +openair3/NAS/TOOLS/display.h +openair3/NAS/TOOLS/fs.c +openair3/NAS/TOOLS/fs.h +openair3/NAS/TOOLS/network.h +openair3/NAS/TOOLS/nvram.c +openair3/NAS/TOOLS/ue_bcom_test.conf +openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf +openair3/NAS/TOOLS/ue_tcl_test.conf +openair3/NAS/TOOLS/usim.c +openair3/NAS/UE/API/USER/tst/at_parser.c +openair3/NAS/UE/API/USER/tst/at_parser.in +openair3/NAS/UE/API/USER/tst/at_parser.in.bis +openair3/NAS/UE/API/USER/tst/at_parser.out +openair3/NAS/UE/API/USER/tst/at_parser.out.bis +openair3/NAS/UE/API/USER/tst/smartcom.txt +openair3/NAS/UE/API/USER/at_command.c +openair3/NAS/UE/API/USER/at_command.h +openair3/NAS/UE/API/USER/at_error.c +openair3/NAS/UE/API/USER/at_error.h +openair3/NAS/UE/API/USER/at_response.c +openair3/NAS/UE/API/USER/at_response.h +openair3/NAS/UE/API/USER/user_api.c +openair3/NAS/UE/API/USER/user_api.h +openair3/NAS/UE/API/USER/user_api_defs.h +openair3/NAS/UE/API/USER/user_indication.c +openair3/NAS/UE/API/USER/user_indication.h +openair3/NAS/UE/API/USIM/aka_functions.c +openair3/NAS/UE/API/USIM/aka_functions.h +openair3/NAS/UE/API/USIM/usim_api.c +openair3/NAS/UE/API/USIM/usim_api.h +openair3/NAS/UE/EMM/SAP/emm_as.c +openair3/NAS/UE/EMM/SAP/emm_as.h +openair3/NAS/UE/EMM/SAP/emm_asDef.h +openair3/NAS/UE/EMM/SAP/emm_esm.c +openair3/NAS/UE/EMM/SAP/emm_esm.h +openair3/NAS/UE/EMM/SAP/emm_esmDef.h +openair3/NAS/UE/EMM/SAP/emm_fsm.c +openair3/NAS/UE/EMM/SAP/emm_fsm.h +openair3/NAS/UE/EMM/SAP/emm_recv.c +openair3/NAS/UE/EMM/SAP/emm_recv.h +openair3/NAS/UE/EMM/SAP/emm_reg.c +openair3/NAS/UE/EMM/SAP/emm_reg.h +openair3/NAS/UE/EMM/SAP/emm_regDef.h +openair3/NAS/UE/EMM/SAP/emm_sap.c +openair3/NAS/UE/EMM/SAP/emm_sap.h +openair3/NAS/UE/EMM/SAP/emm_send.c +openair3/NAS/UE/EMM/SAP/emm_send.h +openair3/NAS/UE/EMM/SAP/EmmDeregistered.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c +openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c +openair3/NAS/UE/EMM/SAP/EmmNull.c +openair3/NAS/UE/EMM/SAP/EmmRegistered.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c +openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c +openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c +openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c +openair3/NAS/UE/EMM/Attach.c +openair3/NAS/UE/EMM/Authentication.c +openair3/NAS/UE/EMM/Authentication.h +openair3/NAS/UE/EMM/Detach.c +openair3/NAS/UE/EMM/emm_fsm_defs.h +openair3/NAS/UE/EMM/emm_main.c +openair3/NAS/UE/EMM/emm_main.h +openair3/NAS/UE/EMM/emm_proc.h +openair3/NAS/UE/EMM/emm_proc_defs.h +openair3/NAS/UE/EMM/emm_timers.h +openair3/NAS/UE/EMM/emmData.h +openair3/NAS/UE/EMM/EmmStatusHdl.c +openair3/NAS/UE/EMM/Identification.c +openair3/NAS/UE/EMM/IdleMode.c +openair3/NAS/UE/EMM/IdleMode.h +openair3/NAS/UE/EMM/IdleMode_defs.h +openair3/NAS/UE/EMM/LowerLayer.c +openair3/NAS/UE/EMM/LowerLayer.h +openair3/NAS/UE/EMM/LowerLayer_defs.h +openair3/NAS/UE/EMM/SecurityModeControl.c +openair3/NAS/UE/EMM/SecurityModeControl.h +openair3/NAS/UE/EMM/ServiceRequestHdl.c +openair3/NAS/UE/EMM/TrackingAreaUpdate.c +openair3/NAS/UE/ESM/SAP/esm_recv.c +openair3/NAS/UE/ESM/SAP/esm_recv.h +openair3/NAS/UE/ESM/SAP/esm_sap.c +openair3/NAS/UE/ESM/SAP/esm_sap.h +openair3/NAS/UE/ESM/SAP/esm_sapDef.h +openair3/NAS/UE/ESM/SAP/esm_send.c +openair3/NAS/UE/ESM/SAP/esm_send.h +openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c +openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c +openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c +openair3/NAS/UE/ESM/esm_ebr.c +openair3/NAS/UE/ESM/esm_ebr.h +openair3/NAS/UE/ESM/esm_ebr_context.c +openair3/NAS/UE/ESM/esm_ebr_context.h +openair3/NAS/UE/ESM/esm_ip.c +openair3/NAS/UE/ESM/esm_main.c +openair3/NAS/UE/ESM/esm_main.h +openair3/NAS/UE/ESM/esm_proc.h +openair3/NAS/UE/ESM/esm_pt.c +openair3/NAS/UE/ESM/esm_pt.h +openair3/NAS/UE/ESM/esm_pt_defs.h +openair3/NAS/UE/ESM/esmData.h +openair3/NAS/UE/ESM/EsmStatusHdl.c +openair3/NAS/UE/ESM/PdnConnectivity.c +openair3/NAS/UE/ESM/PdnDisconnect.c +openair3/NAS/UE/nas_itti_messaging.c +openair3/NAS/UE/nas_itti_messaging.h +openair3/NAS/UE/nas_network.c +openair3/NAS/UE/nas_network.h +openair3/NAS/UE/nas_parser.c +openair3/NAS/UE/nas_parser.h +openair3/NAS/UE/nas_proc.c +openair3/NAS/UE/nas_proc.h +openair3/NAS/UE/nas_proc_defs.h +openair3/NAS/UE/nas_ue_task.c +openair3/NAS/UE/nas_ue_task.h +openair3/NAS/UE/nas_user.c +openair3/NAS/UE/nas_user.h +openair3/NAS/UE/UEprocess.c +openair3/NAS/UE/user_defs.h +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn +openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn +openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn +openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn +openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py +openair3/S1AP/MESSAGES/ASN1/README +openair3/S1AP/s1ap_common.c +openair3/S1AP/s1ap_common.h +openair3/S1AP/s1ap_eNB.c +openair3/S1AP/s1ap_eNB.h +openair3/S1AP/s1ap_eNB_context_management_procedures.c +openair3/S1AP/s1ap_eNB_context_management_procedures.h +openair3/S1AP/s1ap_eNB_decoder.c +openair3/S1AP/s1ap_eNB_decoder.h +openair3/S1AP/s1ap_eNB_default_values.h +openair3/S1AP/s1ap_eNB_defs.h +openair3/S1AP/s1ap_eNB_encoder.c +openair3/S1AP/s1ap_eNB_encoder.h +openair3/S1AP/s1ap_eNB_handlers.c +openair3/S1AP/s1ap_eNB_handlers.h +openair3/S1AP/s1ap_eNB_itti_messaging.c +openair3/S1AP/s1ap_eNB_itti_messaging.h +openair3/S1AP/s1ap_eNB_management_procedures.c +openair3/S1AP/s1ap_eNB_management_procedures.h +openair3/S1AP/s1ap_eNB_nas_procedures.c +openair3/S1AP/s1ap_eNB_nas_procedures.h +openair3/S1AP/s1ap_eNB_nnsf.c +openair3/S1AP/s1ap_eNB_nnsf.h +openair3/S1AP/s1ap_eNB_overload.c +openair3/S1AP/s1ap_eNB_overload.h +openair3/S1AP/s1ap_eNB_trace.c +openair3/S1AP/s1ap_eNB_trace.h +openair3/S1AP/s1ap_eNB_ue_context.c +openair3/S1AP/s1ap_eNB_ue_context.h +openair3/SCTP/sctp_common.c +openair3/SCTP/sctp_common.h +openair3/SCTP/sctp_default_values.h +openair3/SCTP/sctp_eNB_defs.h +openair3/SCTP/sctp_eNB_itti_messaging.c +openair3/SCTP/sctp_eNB_itti_messaging.h +openair3/SCTP/sctp_eNB_task.c +openair3/SCTP/sctp_eNB_task.h +openair3/SCTP/sctp_primitives_client.c +openair3/SCTP/sctp_primitives_client.h +openair3/SECU/kdf.c +openair3/SECU/key_nas_deriver.c +openair3/SECU/key_nas_encryption.c +openair3/SECU/nas_stream_eea1.c +openair3/SECU/nas_stream_eea2.c +openair3/SECU/nas_stream_eia1.c +openair3/SECU/nas_stream_eia2.c +openair3/SECU/rijndael.c +openair3/SECU/rijndael.h +openair3/SECU/secu_defs.h +openair3/SECU/snow3g.c +openair3/SECU/snow3g.h +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf +openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml +openair3/TEST/EPC_TEST/generate_scenario.c +openair3/TEST/EPC_TEST/generate_scenario.h +openair3/TEST/EPC_TEST/play_scenario.c +openair3/TEST/EPC_TEST/play_scenario.h +openair3/TEST/EPC_TEST/play_scenario_decode.c +openair3/TEST/EPC_TEST/play_scenario_display.c +openair3/TEST/EPC_TEST/play_scenario_fsm.c +openair3/TEST/EPC_TEST/play_scenario_parse.c +openair3/TEST/EPC_TEST/play_scenario_s1ap.c +openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c +openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h +openair3/TEST/EPC_TEST/play_scenario_sctp.c +openair3/TEST/oaisim_mme_client_test.c +openair3/TEST/oaisim_mme_itti_test.c +openair3/TEST/oaisim_mme_list_benchmark.c +openair3/TEST/oaisim_mme_s1ap_test.c +openair3/TEST/oaisim_mme_sctp_test.c +openair3/TEST/oaisim_mme_test_s1c.c +openair3/TEST/oaisim_mme_test_s1c.h +openair3/TEST/oaisim_mme_test_s1c_s1ap.c +openair3/TEST/oaisim_mme_test_s1c_s1ap.h +openair3/TEST/oaisim_mme_test_s1c_scenario.c +openair3/TEST/oaisim_mme_test_s1c_scenario.h +openair3/TEST/oaisim_mme_test_s1c_scenario1.c +openair3/TEST/test_aes128_cmac_encrypt.c +openair3/TEST/test_aes128_ctr_decrypt.c +openair3/TEST/test_aes128_ctr_encrypt.c +openair3/TEST/test_kdf.c +openair3/TEST/test_s1ap.c +openair3/TEST/test_secu.c +openair3/TEST/test_secu_kenb.c +openair3/TEST/test_secu_knas.c +openair3/TEST/test_secu_knas_encrypt_eea1.c +openair3/TEST/test_secu_knas_encrypt_eea2.c +openair3/TEST/test_secu_knas_encrypt_eia1.c +openair3/TEST/test_secu_knas_encrypt_eia2.c +openair3/TEST/test_secu_knas_stream_int.c +openair3/UDP/udp_eNB_task.c +openair3/UDP/udp_eNB_task.h +openair3/UTILS/CONF/COPYING +openair3/UTILS/conversions.c +openair3/UTILS/conversions.h +openair3/UTILS/enum_string.c +openair3/UTILS/enum_string.h +openair3/UTILS/log.c +openair3/UTILS/log.h +openair3/UTILS/mcc_mnc_itu.c +openair3/UTILS/mcc_mnc_itu.h +openair3/UTILS/mme_config.c +openair3/UTILS/mme_config.h +openair3/UTILS/mme_default_values.h +openair3/UTILS/mme_parser.y +openair3/UTILS/mme_scanner.l +openair3/UTILS/queue.h +openair3/UTILS/tree.h +openair3/valgrind.sh +svn2git/authors.txt +svn2git/authors_original.txt +svn2git/authors_original_java_output.txt +svn2git/check_diff_author.sh +svn2git/git-author-rewrite.sh +svn2git/README.txt +targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c +targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h +targets/ARCH/COMMON/common_lib.c +targets/ARCH/COMMON/common_lib.h +targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c +targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c +targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c +targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h +targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs +targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf +targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk +targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd +targets/ARCH/EXMIMO/BITSTREAM/program_fpga +targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd +targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd +targets/ARCH/EXMIMO/DEFS/openair_device.h +targets/ARCH/EXMIMO/DEFS/pcie_interface.h +targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h +targets/ARCH/EXMIMO/DRIVER/eurecom/do_reenumerate_expressmimo.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/do_reinsert_driver.sh +targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c +targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h +targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c +targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c +targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c +targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reenumerate_expressmimo.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reinsert_driver.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h +targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c +targets/ARCH/EXMIMO/DRIVER/exmimo3/test_script.sh +targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c +targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c +targets/ARCH/EXMIMO/DRIVER/readme.txt +targets/ARCH/EXMIMO/USERSPACE/LIB/example.c +targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c +targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h +targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c +targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo1 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v9 +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m +targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m +targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp +targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp +targets/ARCH/LMSSDR/LimeSDR.ini +targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini +targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini +targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini +targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini +targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +targets/COMMON/create_tasks.c +targets/COMMON/create_tasks.h +targets/COMMON/openairinterface5g_limits.h +targets/COMMON/threads_t.h +targets/DOCS/images/oai_logo.png +targets/DOCS/api_icic.xml +targets/DOCS/Doxyfile +targets/DOCS/E-UTRAN_User_Guide.docx +targets/DOCS/E-UTRAN_User_Guide.pdf +targets/DOCS/oai_L1_L2_procedures.pdf +targets/DOCS/oaiemu.doc +targets/DOCS/oaisim_walkthrough.pdf +targets/DOCS/openair_header.tex +targets/DOCS/path_loss_oaisim.xlsx +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf +targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf +targets/PROJECTS/E-MBMS/build_all.bash +targets/PROJECTS/E-MBMS/enb.conf +targets/PROJECTS/E-MBMS/start_enb.bash +targets/PROJECTS/E-MBMS/start_ue.bash +targets/PROJECTS/E-MBMS/utils.bash +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.centos.nord.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.memphis.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.epc_eur.local.exmimo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf +targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml +targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash +targets/PROJECTS/GENERIC-LTE-EPC/networks.bash +targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash +targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash +targets/PROJECTS/GENERIC-LTE-EPC/utils.bash +targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash +targets/PROJECTS/LOCALIZATION/filesave0811.mat +targets/PROJECTS/LOCALIZATION/generation.m +targets/PROJECTS/LOCALIZATION/initial_sync.m +targets/PROJECTS/LOCALIZATION/initparams.m +targets/PROJECTS/LOCALIZATION/plots.m +targets/PROJECTS/LOCALIZATION/recup.m +targets/PROJECTS/LOCALIZATION/where2.m +targets/PROJECTS/LOCALIZATION/where2_v1_final.mat +targets/PROJECTS/LOCALIZATION/where2_vf.m +targets/PROJECTS/TDDREC/v0/alterproj.m +targets/PROJECTS/TDDREC/v0/beamforming.m +targets/PROJECTS/TDDREC/v0/calibration.m +targets/PROJECTS/TDDREC/v0/genorthqpskseq.m +targets/PROJECTS/TDDREC/v0/genrandpskseq.m +targets/PROJECTS/TDDREC/v0/initparams.m +targets/PROJECTS/TDDREC/v0/initparams2.m +targets/PROJECTS/TDDREC/v0/ofdm_mod.m +targets/PROJECTS/TDDREC/v0/readme.txt +targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m +targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m +targets/PROJECTS/TDDREC/v0/runmeas_mimo.m +targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m +targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m +targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m +targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m +targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m +targets/PROJECTS/TDDREC/f_ch_est.m +targets/PROJECTS/TDDREC/f_ofdm_mod.m +targets/PROJECTS/TDDREC/f_ofdm_rx.m +targets/PROJECTS/TDDREC/f_ofdm_tx.m +targets/PROJECTS/TDDREC/f_tls_ap.m +targets/PROJECTS/TDDREC/f_tls_diag.m +targets/PROJECTS/TDDREC/f_tls_svd.m +targets/PROJECTS/TDDREC/s_beamforming.m +targets/PROJECTS/TDDREC/s_calib.m +targets/PROJECTS/TDDREC/s_draw_F.m +targets/PROJECTS/TDDREC/s_init_params.m +targets/PROJECTS/TDDREC/s_run_meas.m +targets/RT/LAUNCH_SCRIPTS/load_module.sh +targets/RT/LAUNCH_SCRIPTS/nas_enb.sh +targets/RT/LAUNCH_SCRIPTS/nas_ue.sh +targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh +targets/RT/LAUNCH_SCRIPTS/start_emos.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh +targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh +targets/RT/LAUNCH_SCRIPTS/start_rf.sh +targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh +targets/RT/LAUNCH_SCRIPTS/start_ue.sh +targets/RT/LAUNCH_SCRIPTS/start_ue2.sh +targets/RT/LAUNCH_SCRIPTS/stop_rf.sh +targets/RT/USER/TOOLS/thread_ipc.c +targets/RT/USER/TOOLS/thread_ipc.h +targets/RT/USER/condtest.c +targets/RT/USER/emos-raw.c +targets/RT/USER/eNB_exmimo2.gtkw +targets/RT/USER/eNB_transport_IQ.c +targets/RT/USER/eNB_usrp.gtkw +targets/RT/USER/exmimo2_2arxg.lime +targets/RT/USER/exmimo2_2brxg.lime +targets/RT/USER/init_b200.sh +targets/RT/USER/init_exmimo.sh +targets/RT/USER/init_exmimo2.sh +targets/RT/USER/init_rtai.sh +targets/RT/USER/lte-enb.c +targets/RT/USER/lte-ran.c +targets/RT/USER/lte-ru.c +targets/RT/USER/lte-softmodem.c +targets/RT/USER/lte-softmodem.h +targets/RT/USER/lte-ue.c +targets/RT/USER/make_for_usrp.sh +targets/RT/USER/msg_helper.c +targets/RT/USER/msg_many.c +targets/RT/USER/msg_many.h +targets/RT/USER/rau_if4_single_thread.gtkw +targets/RT/USER/rcc_if4.gtkw +targets/RT/USER/rcc_if5.gtkw +targets/RT/USER/rrh.c +targets/RT/USER/rrh.gtkw +targets/RT/USER/rrh_gw.c +targets/RT/USER/rrh_gw.h +targets/RT/USER/rrh_gw_externs.h +targets/RT/USER/rru_if4p5_single_thread.gtkw +targets/RT/USER/rru_if4p5_usrp.gtkw +targets/RT/USER/rru_if5_usrp.gtkw +targets/RT/USER/rt_wrapper.c +targets/RT/USER/rt_wrapper.h +targets/RT/USER/sleeptest.c +targets/RT/USER/stats.c +targets/RT/USER/stats.fd +targets/RT/USER/stats.h +targets/RT/USER/synctest.c +targets/RT/USER/ue_exmimo2.gtkw +targets/RT/USER/UE_transport_IQ.c +targets/RT/USER/ue_usrp.gtkw +targets/SCRIPTS/asn1_generate_rrc_messaging_c_code.bash +targets/SCRIPTS/install_asn1.sh +targets/SCRIPTS/install_asn1c_0.9.24.modified.bash +targets/SCRIPTS/msc_gen.py +targets/SCRIPTS/svn-merge-meld.py +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 +targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 +targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml +targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml +targets/SIMU/EXAMPLES/OSD/README.txt +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas +targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas +targets/SIMU/PROC/SCRIPT/Run.py +targets/SIMU/PROC/channel_sim_proc.c +targets/SIMU/PROC/channel_sim_proc.h +targets/SIMU/PROC/interface.h +targets/SIMU/PROC/Process.c +targets/SIMU/PROC/Process.h +targets/SIMU/PROC/Tsync.h +targets/SIMU/USER/files/MI_16qam.csv +targets/SIMU/USER/files/MI_16qam.txt +targets/SIMU/USER/files/MI_4qam.csv +targets/SIMU/USER/files/MI_4qam.txt +targets/SIMU/USER/files/MI_64qam.csv +targets/SIMU/USER/files/MI_64qam.txt +targets/SIMU/USER/channel_sim.c +targets/SIMU/USER/cor_SF_sim.c +targets/SIMU/USER/cor_SF_sim.h +targets/SIMU/USER/event_handler.c +targets/SIMU/USER/event_handler.h +targets/SIMU/USER/init_lte.c +targets/SIMU/USER/init_lte.h +targets/SIMU/USER/oaisim.c +targets/SIMU/USER/oaisim.h +targets/SIMU/USER/oaisim_config.c +targets/SIMU/USER/oaisim_config.h +targets/SIMU/USER/oaisim_functions.c +targets/SIMU/USER/oaisim_functions.h +targets/SIMU/USER/oaisim_pad.c +targets/SIMU/USER/phy_procedures_sim_form.c +targets/SIMU/USER/phy_procedures_sim_form.fd +targets/SIMU/USER/phy_procedures_sim_form.h +targets/SIMU/USER/plot_results.m +targets/SIMU/USER/sinr_sim.c +targets/SIMU/USER/threadpool.c +targets/SIMU/USER/threadpool.h +targets/SIMU/USER/valgrind.sh +targets/TEST/AT_COMMANDS/oaisim.c +targets/TEST/OAI/case01.py +targets/TEST/OAI/case02.py +targets/TEST/OAI/case03.py +targets/TEST/OAI/case04.py +targets/TEST/OAI/case05.py +targets/TEST/OAI/case11.py +targets/TEST/OAI/case12.py +targets/TEST/OAI/case13.py +targets/TEST/OAI/core.py +targets/TEST/OAI/log.py +targets/TEST/OAI/openair.py +targets/TEST/OAI/README +targets/TEST/OAI/test01.py +targets/TEST/OAI/test02.py +targets/TEST/PACKET_TRACER/messages/Msg4.txt +targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt +targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt +targets/TEST/PACKET_TRACER/messages/sib1.txt +targets/TEST/PACKET_TRACER/messages/sib2.txt +targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt +targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt +targets/TEST/PACKET_TRACER/messages/sib3.txt +targets/TEST/PACKET_TRACER/pt.c +targets/TEST/PACKET_TRACER/README.txt +targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt +targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c +targets/TEST/PDCP/readme.txt +targets/TEST/PDCP/test_pdcp.c +targets/TEST/PDCP/test_pdcp.h +targets/TEST/PDCP/test_util.h +targets/TEST/PDCP/todo.txt +targets/TEST/RLC_AM_V9.3.0/oaisim.c +targets/TEST/RLC_UM_V9.3.0/oaisim.c +targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp +targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp +targets/TEST/ROHDE_SCHWARZ/TcpClient.h +targets/build_helper.bash +targets/build_oai.bash +targets/itti_vcd_tasks.sav +targets/Makerules +targets/perf_oai.bash +targets/README.txt +LICENSE +maketags +NOTICE.txt +oaienv +pre-commit +README.txt \ No newline at end of file diff --git a/enb_dev.includes b/enb_dev.includes new file mode 100755 index 0000000000..a4921c1d5b --- /dev/null +++ b/enb_dev.includes @@ -0,0 +1,143 @@ +cmake_targets/lte_build_oai/build/CMakeFiles/R10.5 +cmake_targets/lte_build_oai/build/CMakeFiles/R11.2 +cmake_targets/lte_build_oai/build/CMakeFiles/Rel14 +common +common/utils +common/utils/collection +common/utils/hashtable +common/utils/itti +common/utils/itti_analyzer/common +common/utils/itti_analyzer/libbuffers +common/utils/itti_analyzer/libparser +common/utils/itti_analyzer/libresolver +common/utils/itti_analyzer/libui +common/utils/msc +common/utils/T +common/utils/T/tracer +common/utils/T/tracer/filter +common/utils/T/tracer/gui +common/utils/T/tracer/logger +common/utils/T/tracer/view +openair1/PHY +openair1/PHY/CODING +openair1/PHY/INIT +openair1/PHY/LTE_ESTIMATION +openair1/PHY/LTE_REFSIG +openair1/PHY/LTE_TRANSPORT +openair1/PHY/MODULATION +openair1/PHY/TOOLS +openair1/SCHED +openair1/SIMULATION/ETH_TRANSPORT +openair1/SIMULATION/LTE_PHY +openair1/SIMULATION/RF +openair1/SIMULATION/TOOLS +openair2/COMMON +openair2/DOCS/TEMPLATES/CODE +openair2/ENB_APP +openair2/ENB_APP/CONTROL_MODULES/MAC +openair2/LAYER2 +openair2/LAYER2/MAC +openair2/LAYER2/PDCP_v10.1.0 +openair2/LAYER2/RLC +openair2/LAYER2/RLC/AM_v9.3.0 +openair2/LAYER2/RLC/TM_v9.3.0 +openair2/LAYER2/RLC/UM_v9.3.0 +openair2/NAS/DRIVER/CELLULAR/CTL_TOOL +openair2/NAS/DRIVER/CELLULAR/NASMT +openair2/NAS/DRIVER/CELLULAR/NASRG +openair2/NAS/SIMU_CELLULAR +openair2/NETWORK_DRIVER/LITE +openair2/NETWORK_DRIVER/MESH +openair2/NETWORK_DRIVER/UE_IP +openair2/PHY_INTERFACE +openair2/RRC/L2_INTERFACE +openair2/RRC/LITE +openair2/RRC/LITE/MESSAGES +openair2/RRC/NAS +openair2/UTIL/ASYNC_IF +openair2/UTIL/BIGPHYS +openair2/UTIL/CLI +openair2/UTIL/FIFO +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist +openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack +openair2/UTIL/LFDS/liblfds6.1.1/test/src +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700 +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer +openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack +openair2/UTIL/LFDS/liblfds7.0.0/test/src +openair2/UTIL/LISTS +openair2/UTIL/LOG +openair2/UTIL/MATH +openair2/UTIL/MEM +openair2/UTIL/OCG +openair2/UTIL/OMG +openair2/UTIL/OMV +openair2/UTIL/OPT +openair2/UTIL/OSA +openair2/UTIL/OTG +openair2/UTIL/TIMER +openair2/UTIL/TRACE +openair2/X2AP +openair3/COMMON +openair3/GTPV1-U +openair3/GTPV1-U/nw-gtpv1u/include +openair3/GTPV1-U/nw-gtpv1u/shared +openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld +openair3/NAS/COMMON +openair3/NAS/COMMON/API/NETWORK +openair3/NAS/COMMON/EMM/MSG +openair3/NAS/COMMON/ESM/MSG +openair3/NAS/COMMON/IES +openair3/NAS/COMMON/UTIL +openair3/NAS/TEST/AS_SIMULATOR +openair3/NAS/TEST/NETWORK +openair3/NAS/TEST/USER +openair3/NAS/TOOLS +openair3/NAS/UE +openair3/NAS/UE/API/USER +openair3/NAS/UE/API/USIM +openair3/NAS/UE/EMM +openair3/NAS/UE/EMM/SAP +openair3/NAS/UE/ESM +openair3/NAS/UE/ESM/SAP +openair3/S1AP +openair3/SCTP +openair3/SECU +openair3/TEST +openair3/TEST/EPC_TEST +openair3/UDP +openair3/UTILS +targets/ARCH/BLADERF/USERSPACE/LIB +targets/ARCH/COMMON +targets/ARCH/ETHERNET/USERSPACE/LIB +targets/ARCH/EXMIMO/DEFS +targets/ARCH/EXMIMO/DRIVER/eurecom +targets/ARCH/EXMIMO/DRIVER/exmimo3 +targets/ARCH/EXMIMO/DRIVER/telecomparistech +targets/ARCH/EXMIMO/USERSPACE/LIB +targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT +targets/ARCH/EXMIMO/USERSPACE/OCTAVE +targets/COMMON +targets/RT/USER +targets/RT/USER/TOOLS +targets/SIMU/PROC +targets/SIMU/USER +targets/TEST/PDCP +targets/TEST/ROHDE_SCHWARZ \ No newline at end of file diff --git a/oai5g_development.config b/oai5g_development.config old mode 100644 new mode 100755 diff --git a/oai5g_development.creator b/oai5g_development.creator old mode 100644 new mode 100755 diff --git a/oai5g_development.files b/oai5g_development.files old mode 100644 new mode 100755 diff --git a/oai5g_development.includes b/oai5g_development.includes old mode 100644 new mode 100755 diff --git a/oaienv b/oaienv old mode 100644 new mode 100755 diff --git a/openair1/Makefile b/openair1/Makefile old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte.c b/openair1/PHY/CODING/3gpplte.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte_sse.c b/openair1/PHY/CODING/3gpplte_sse.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder.c b/openair1/PHY/CODING/3gpplte_turbo_decoder.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/Makefile b/openair1/PHY/CODING/Makefile old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/Makefile.arm b/openair1/PHY/CODING/Makefile.arm old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/README.txt b/openair1/PHY/CODING/README.txt old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/TESTBENCH/Makefile b/openair1/PHY/CODING/TESTBENCH/Makefile old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/TESTBENCH/README.txt b/openair1/PHY/CODING/TESTBENCH/README.txt old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/TESTBENCH/ltetest.c b/openair1/PHY/CODING/TESTBENCH/ltetest.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/TESTBENCH/pdcch_test.c b/openair1/PHY/CODING/TESTBENCH/pdcch_test.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/TESTBENCH/viterbi_test.c b/openair1/PHY/CODING/TESTBENCH/viterbi_test.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/ccoding_byte.c b/openair1/PHY/CODING/ccoding_byte.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/ccoding_byte_lte.c b/openair1/PHY/CODING/ccoding_byte_lte.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/crc_byte.c b/openair1/PHY/CODING/crc_byte.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/defs.h b/openair1/PHY/CODING/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/extern.h b/openair1/PHY/CODING/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/extern_3GPPinterleaver.h b/openair1/PHY/CODING/extern_3GPPinterleaver.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/lte_interleaver.h b/openair1/PHY/CODING/lte_interleaver.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/lte_interleaver2.h b/openair1/PHY/CODING/lte_interleaver2.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/lte_interleaver_inline.h b/openair1/PHY/CODING/lte_interleaver_inline.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/lte_rate_matching.c b/openair1/PHY/CODING/lte_rate_matching.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/lte_segmentation.c b/openair1/PHY/CODING/lte_segmentation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/lte_tf.m b/openair1/PHY/CODING/lte_tf.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/scrambler.h b/openair1/PHY/CODING/scrambler.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/vars.h b/openair1/PHY/CODING/vars.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/viterbi.c b/openair1/PHY/CODING/viterbi.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/CODING/viterbi_lte.c b/openair1/PHY/CODING/viterbi_lte.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/README.txt b/openair1/PHY/INIT/README.txt old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/defs.h b/openair1/PHY/INIT/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/extern.h b/openair1/PHY/INIT/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/lte_param_init.c b/openair1/PHY/INIT/lte_param_init.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/lte_parms.c b/openair1/PHY/INIT/lte_parms.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/INIT/vars.h b/openair1/PHY/INIT/vars.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/README.txt b/openair1/PHY/LTE_ESTIMATION/README.txt old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/adjust_gain.c b/openair1/PHY/LTE_ESTIMATION/adjust_gain.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m b/openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/defs.h b/openair1/PHY/LTE_ESTIMATION/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/extern.h b/openair1/PHY/LTE_ESTIMATION/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/filt16_32.h b/openair1/PHY/LTE_ESTIMATION/filt16_32.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/filt96_32.h b/openair1/PHY/LTE_ESTIMATION/filt96_32.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m b/openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/freq_equalization.c b/openair1/PHY/LTE_ESTIMATION/freq_equalization.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c b/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/pss6144.h b/openair1/PHY/LTE_ESTIMATION/pss6144.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_ESTIMATION/vars.h b/openair1/PHY/LTE_ESTIMATION/vars.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/README.txt b/openair1/PHY/LTE_REFSIG/README.txt old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/defs.h b/openair1/PHY/LTE_REFSIG/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/gen_mod_table.m b/openair1/PHY/LTE_REFSIG/gen_mod_table.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c b/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c b/openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c b/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_gold.c b/openair1/PHY/LTE_REFSIG/lte_gold.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c b/openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_ul.m b/openair1/PHY/LTE_REFSIG/lte_ul.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/lte_ul_ref.c b/openair1/PHY/LTE_REFSIG/lte_ul_ref.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/mod_table.h b/openair1/PHY/LTE_REFSIG/mod_table.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/primary_synch.h b/openair1/PHY/LTE_REFSIG/primary_synch.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_REFSIG/primary_synch.m b/openair1/PHY/LTE_REFSIG/primary_synch.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/README.txt b/openair1/PHY/LTE_TRANSPORT/README.txt old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dci.h b/openair1/PHY/LTE_TRANSPORT/dci.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/defs.h b/openair1/PHY/LTE_TRANSPORT/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c b/openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h b/openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h b/openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/drs_modulation.c b/openair1/PHY/LTE_TRANSPORT/drs_modulation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/extern.h b/openair1/PHY/LTE_TRANSPORT/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/group_hopping.c b/openair1/PHY/LTE_TRANSPORT/group_hopping.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.h b/openair1/PHY/LTE_TRANSPORT/if4_tools.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.c b/openair1/PHY/LTE_TRANSPORT/if5_tools.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.h b/openair1/PHY/LTE_TRANSPORT/if5_tools.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/initial_sync.c b/openair1/PHY/LTE_TRANSPORT/initial_sync.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/lte_mcs.c b/openair1/PHY/LTE_TRANSPORT/lte_mcs.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h b/openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/mdci.h b/openair1/PHY/LTE_TRANSPORT/mdci.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pbch.c b/openair1/PHY/LTE_TRANSPORT/pbch.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pcfich.c b/openair1/PHY/LTE_TRANSPORT/pcfich.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pch.c b/openair1/PHY/LTE_TRANSPORT/pch.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pilots.c b/openair1/PHY/LTE_TRANSPORT/pilots.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c b/openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c b/openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pmch.c b/openair1/PHY/LTE_TRANSPORT/pmch.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/power_control.c b/openair1/PHY/LTE_TRANSPORT/power_control.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/prach.h b/openair1/PHY/LTE_TRANSPORT/prach.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/print_stats.c b/openair1/PHY/LTE_TRANSPORT/print_stats.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pss.c b/openair1/PHY/LTE_TRANSPORT/pss.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/rar_tools.c b/openair1/PHY/LTE_TRANSPORT/rar_tools.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/srs_modulation.c b/openair1/PHY/LTE_TRANSPORT/srs_modulation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/sss.c b/openair1/PHY/LTE_TRANSPORT/sss.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/sss.h b/openair1/PHY/LTE_TRANSPORT/sss.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/sss_gen.m b/openair1/PHY/LTE_TRANSPORT/sss_gen.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/uci.h b/openair1/PHY/LTE_TRANSPORT/uci.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/uci_tools.c b/openair1/PHY/LTE_TRANSPORT/uci_tools.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_coding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_coding.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/vars.h b/openair1/PHY/LTE_TRANSPORT/vars.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/LTE_TRANSPORT/vrb_maps.m b/openair1/PHY/LTE_TRANSPORT/vrb_maps.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/beamforming.c b/openair1/PHY/MODULATION/beamforming.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/compute_bf_weights.c b/openair1/PHY/MODULATION/compute_bf_weights.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/defs.h b/openair1/PHY/MODULATION/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/extern.h b/openair1/PHY/MODULATION/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/gen_7_5_kHz.m b/openair1/PHY/MODULATION/gen_7_5_kHz.m old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/kHz_7_5.h b/openair1/PHY/MODULATION/kHz_7_5.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/prach625Hz.h b/openair1/PHY/MODULATION/prach625Hz.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/slot_fep.c b/openair1/PHY/MODULATION/slot_fep.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/slot_fep_mbsfn.c b/openair1/PHY/MODULATION/slot_fep_mbsfn.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/slot_fep_ul.c b/openair1/PHY/MODULATION/slot_fep_ul.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/ul_7_5_kHz.c b/openair1/PHY/MODULATION/ul_7_5_kHz.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/MODULATION/vars.h b/openair1/PHY/MODULATION/vars.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/Makefile.inc b/openair1/PHY/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/8bit_rxdemux.c b/openair1/PHY/TOOLS/8bit_rxdemux.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/8bit_txmux.c b/openair1/PHY/TOOLS/8bit_txmux.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/Makefile b/openair1/PHY/TOOLS/Makefile old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/alaw_lut.h b/openair1/PHY/TOOLS/alaw_lut.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/angle.c b/openair1/PHY/TOOLS/angle.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/cadd_sv.c b/openair1/PHY/TOOLS/cadd_sv.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/cadd_vv.c b/openair1/PHY/TOOLS/cadd_vv.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/cdot_prod.c b/openair1/PHY/TOOLS/cdot_prod.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/cmult_sv.c b/openair1/PHY/TOOLS/cmult_sv.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/cmult_vv.c b/openair1/PHY/TOOLS/cmult_vv.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/costable.h b/openair1/PHY/TOOLS/costable.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/dB_routines.c b/openair1/PHY/TOOLS/dB_routines.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/dB_routines.h b/openair1/PHY/TOOLS/dB_routines.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/defs.h b/openair1/PHY/TOOLS/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/extern.h b/openair1/PHY/TOOLS/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/file_output.c b/openair1/PHY/TOOLS/file_output.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/invSqrt.c b/openair1/PHY/TOOLS/invSqrt.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/log2_approx.c b/openair1/PHY/TOOLS/log2_approx.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/lte_phy_scope.c b/openair1/PHY/TOOLS/lte_phy_scope.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/lte_phy_scope.h b/openair1/PHY/TOOLS/lte_phy_scope.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/lte_phy_scope_tm4.c b/openair1/PHY/TOOLS/lte_phy_scope_tm4.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/lut.c b/openair1/PHY/TOOLS/lut.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/memory_routines.c b/openair1/PHY/TOOLS/memory_routines.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/read_F.c b/openair1/PHY/TOOLS/read_F.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/signal_energy.c b/openair1/PHY/TOOLS/signal_energy.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/smbv.c b/openair1/PHY/TOOLS/smbv.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/smbv.h b/openair1/PHY/TOOLS/smbv.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/sqrt.c b/openair1/PHY/TOOLS/sqrt.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/time_meas.c b/openair1/PHY/TOOLS/time_meas.c old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/time_meas.h b/openair1/PHY/TOOLS/time_meas.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddle12288.h b/openair1/PHY/TOOLS/twiddle12288.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddle1536.h b/openair1/PHY/TOOLS/twiddle1536.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddle18432.h b/openair1/PHY/TOOLS/twiddle18432.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddle24576.h b/openair1/PHY/TOOLS/twiddle24576.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddle6144.h b/openair1/PHY/TOOLS/twiddle6144.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddles4096.h b/openair1/PHY/TOOLS/twiddles4096.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/twiddles8192.h b/openair1/PHY/TOOLS/twiddles8192.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/TOOLS/vars.h b/openair1/PHY/TOOLS/vars.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/defs.h b/openair1/PHY/defs.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/extern.h b/openair1/PHY/extern.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/impl_defs_lte.h b/openair1/PHY/impl_defs_lte.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/impl_defs_top.h b/openair1/PHY/impl_defs_top.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/sse_intrin.h b/openair1/PHY/sse_intrin.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/types.h b/openair1/PHY/types.h old mode 100644 new mode 100755 diff --git a/openair1/PHY/vars.h b/openair1/PHY/vars.h old mode 100644 new mode 100755 diff --git a/openair1/README.TXT b/openair1/README.TXT old mode 100644 new mode 100755 diff --git a/openair1/SCHED/Makefile.inc b/openair1/SCHED/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair1/SCHED/defs.h b/openair1/SCHED/defs.h old mode 100644 new mode 100755 diff --git a/openair1/SCHED/extern.h b/openair1/SCHED/extern.h old mode 100644 new mode 100755 diff --git a/openair1/SCHED/phy_mac_stub.c b/openair1/SCHED/phy_mac_stub.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/phy_procedures_emos.h b/openair1/SCHED/phy_procedures_emos.h old mode 100644 new mode 100755 diff --git a/openair1/SCHED/phy_procedures_lte_common.c b/openair1/SCHED/phy_procedures_lte_common.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/phy_procedures_lte_ue.c b/openair1/SCHED/phy_procedures_lte_ue.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/pucch_pc.c b/openair1/SCHED/pucch_pc.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/pusch_pc.c b/openair1/SCHED/pusch_pc.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/rt_compat.h b/openair1/SCHED/rt_compat.h old mode 100644 new mode 100755 diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/srs_pc.c b/openair1/SCHED/srs_pc.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/vars.h b/openair1/SCHED/vars.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc b/openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/README.txt b/openair1/SIMULATION/ETH_TRANSPORT/README.txt old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c b/openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/defs.h b/openair1/SIMULATION/ETH_TRANSPORT/defs.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c b/openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/extern.h b/openair1/SIMULATION/ETH_TRANSPORT/extern.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c b/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c b/openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h b/openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/proto.h b/openair1/SIMULATION/ETH_TRANSPORT/proto.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/socket.c b/openair1/SIMULATION/ETH_TRANSPORT/socket.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/socket.h b/openair1/SIMULATION/ETH_TRANSPORT/socket.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/vars.h b/openair1/SIMULATION/ETH_TRANSPORT/vars.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m b/openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m b/openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m b/openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m b/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m b/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m b/openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m b/openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/LTE_Configuration.c b/openair1/SIMULATION/LTE_PHY/LTE_Configuration.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/LTE_Configuration.h b/openair1/SIMULATION/LTE_PHY/LTE_Configuration.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/Makefile b/openair1/SIMULATION/LTE_PHY/Makefile old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/README.txt b/openair1/SIMULATION/LTE_PHY/README.txt old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex b/openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/blerSimus.zip b/openair1/SIMULATION/LTE_PHY/blerSimus.zip old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/fancyheadings.sty b/openair1/SIMULATION/LTE_PHY/fancyheadings.sty old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/framegen.c b/openair1/SIMULATION/LTE_PHY/framegen.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/gpib_send.c b/openair1/SIMULATION/LTE_PHY/gpib_send.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/gpib_send.h b/openair1/SIMULATION/LTE_PHY/gpib_send.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/launch_sim.sh b/openair1/SIMULATION/LTE_PHY/launch_sim.sh old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pbch_awgn.txt b/openair1/SIMULATION/LTE_PHY/pbch_awgn.txt old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt b/openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pbchsim.c b/openair1/SIMULATION/LTE_PHY/pbchsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh b/openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m b/openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pdcchsim.c b/openair1/SIMULATION/LTE_PHY/pdcchsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/p b/openair1/SIMULATION/LTE_PHY/plotTools/p old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m b/openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/prachsim.c b/openair1/SIMULATION/LTE_PHY/prachsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h b/openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c b/openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/pucchsim.c b/openair1/SIMULATION/LTE_PHY/pucchsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/scansim.c b/openair1/SIMULATION/LTE_PHY/scansim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/signalanalyzer.c b/openair1/SIMULATION/LTE_PHY/signalanalyzer.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/signalanalyzer.h b/openair1/SIMULATION/LTE_PHY/signalanalyzer.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/syncsim.c b/openair1/SIMULATION/LTE_PHY/syncsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/test.c b/openair1/SIMULATION/LTE_PHY/test.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c b/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h b/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/ulsim2.c b/openair1/SIMULATION/LTE_PHY/ulsim2.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/LTE_PHY/unitary_defs.h b/openair1/SIMULATION/LTE_PHY/unitary_defs.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/Makefile.inc b/openair1/SIMULATION/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/RF/Makefile b/openair1/SIMULATION/RF/Makefile old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/RF/README.txt b/openair1/SIMULATION/RF/README.txt old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/RF/adc.c b/openair1/SIMULATION/RF/adc.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/RF/dac.c b/openair1/SIMULATION/RF/dac.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/RF/defs.h b/openair1/SIMULATION/RF/defs.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/RF/rf.c b/openair1/SIMULATION/RF/rf.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/abstraction.c b/openair1/SIMULATION/TOOLS/abstraction.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/ch_desc_proto.c b/openair1/SIMULATION/TOOLS/ch_desc_proto.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/corr_mat.m b/openair1/SIMULATION/TOOLS/corr_mat.m old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/defs.h b/openair1/SIMULATION/TOOLS/defs.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/gauss.c b/openair1/SIMULATION/TOOLS/gauss.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/llr_quantization.c b/openair1/SIMULATION/TOOLS/llr_quantization.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/multipath_channel.c b/openair1/SIMULATION/TOOLS/multipath_channel.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/multipath_tv_channel.c b/openair1/SIMULATION/TOOLS/multipath_tv_channel.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/random_channel.c b/openair1/SIMULATION/TOOLS/random_channel.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/rangen_double.c b/openair1/SIMULATION/TOOLS/rangen_double.c old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/scm_corrmat.h b/openair1/SIMULATION/TOOLS/scm_corrmat.h old mode 100644 new mode 100755 diff --git a/openair1/SIMULATION/TOOLS/taus.c b/openair1/SIMULATION/TOOLS/taus.c old mode 100644 new mode 100755 diff --git a/openair2/COMMON/as_message.h b/openair2/COMMON/as_message.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/commonDef.h b/openair2/COMMON/commonDef.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/gtpv1_u_messages_def.h b/openair2/COMMON/gtpv1_u_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/gtpv1_u_messages_types.h b/openair2/COMMON/gtpv1_u_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/intertask_interface_conf.h b/openair2/COMMON/intertask_interface_conf.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/mac_messages_def.h b/openair2/COMMON/mac_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/mac_messages_types.h b/openair2/COMMON/mac_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/mac_primitives.h b/openair2/COMMON/mac_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/mac_rlc_primitives.h b/openair2/COMMON/mac_rlc_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/mac_rrc_primitives.h b/openair2/COMMON/mac_rrc_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/messages_def.h b/openair2/COMMON/messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/messages_types.h b/openair2/COMMON/messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/nas_messages_def.h b/openair2/COMMON/nas_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/nas_messages_types.h b/openair2/COMMON/nas_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/networkDef.h b/openair2/COMMON/networkDef.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/openair_defs.h b/openair2/COMMON/openair_defs.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/openair_types.h b/openair2/COMMON/openair_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/pdcp_messages_def.h b/openair2/COMMON/pdcp_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/pdcp_messages_types.h b/openair2/COMMON/pdcp_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/phy_messages_def.h b/openair2/COMMON/phy_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/phy_messages_types.h b/openair2/COMMON/phy_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/platform_constants.h b/openair2/COMMON/platform_constants.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/ral_messages_def.h b/openair2/COMMON/ral_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/ral_messages_types.h b/openair2/COMMON/ral_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rlc_messages_def.h b/openair2/COMMON/rlc_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rlc_messages_types.h b/openair2/COMMON/rlc_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rrc_messages_def.h b/openair2/COMMON/rrc_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rrm_config_structs.h b/openair2/COMMON/rrm_config_structs.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rrm_constants.h b/openair2/COMMON/rrm_constants.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rtos_header.h b/openair2/COMMON/rtos_header.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/s1ap_messages_def.h b/openair2/COMMON/s1ap_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/s1ap_messages_types.h b/openair2/COMMON/s1ap_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/sctp_messages_def.h b/openair2/COMMON/sctp_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/sctp_messages_types.h b/openair2/COMMON/sctp_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/tasks_def.h b/openair2/COMMON/tasks_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/udp_messages_def.h b/openair2/COMMON/udp_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/udp_messages_types.h b/openair2/COMMON/udp_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/x2ap_messages_def.h b/openair2/COMMON/x2ap_messages_def.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/x2ap_messages_types.h b/openair2/COMMON/x2ap_messages_types.h old mode 100644 new mode 100755 diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.png b/openair2/DOCS/DOXYGEN/images/Transmission.png old mode 100644 new mode 100755 diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.ps b/openair2/DOCS/DOXYGEN/images/Transmission.ps old mode 100644 new mode 100755 diff --git a/openair2/DOCS/Documentation/flow.txt b/openair2/DOCS/Documentation/flow.txt old mode 100644 new mode 100755 diff --git a/openair2/DOCS/TEMPLATES/CODE/Doxyfile b/openair2/DOCS/TEMPLATES/CODE/Doxyfile old mode 100644 new mode 100755 diff --git a/openair2/DOCS/TEMPLATES/CODE/example_doxy.h b/openair2/DOCS/TEMPLATES/CODE/example_doxy.h old mode 100644 new mode 100755 diff --git a/openair2/DOCS/TEMPLATES/CODE/images/arch.eps b/openair2/DOCS/TEMPLATES/CODE/images/arch.eps old mode 100644 new mode 100755 diff --git a/openair2/DOCS/TEMPLATES/CODE/images/arch.png b/openair2/DOCS/TEMPLATES/CODE/images/arch.png old mode 100644 new mode 100755 diff --git a/openair2/DOCS/TEMPLATES/README/Readme.doxy b/openair2/DOCS/TEMPLATES/README/Readme.doxy old mode 100644 new mode 100755 diff --git a/openair2/DOCS/TEMPLATES/README/readme.txt b/openair2/DOCS/TEMPLATES/README/readme.txt old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/config_common.proto b/openair2/ENB_APP/MESSAGES/V2/config_common.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/config_messages.proto b/openair2/ENB_APP/MESSAGES/V2/config_messages.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/control_delegation.proto b/openair2/ENB_APP/MESSAGES/V2/control_delegation.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/controller_commands.proto b/openair2/ENB_APP/MESSAGES/V2/controller_commands.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/flexran.proto b/openair2/ENB_APP/MESSAGES/V2/flexran.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/header.proto b/openair2/ENB_APP/MESSAGES/V2/header.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto b/openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/stats_common.proto b/openair2/ENB_APP/MESSAGES/V2/stats_common.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto b/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/MESSAGES/V2/time_common.proto b/openair2/ENB_APP/MESSAGES/V2/time_common.proto old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/Makefile.inc b/openair2/ENB_APP/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/enb_app.h b/openair2/ENB_APP/enb_app.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent.c b/openair2/ENB_APP/flexran_agent.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent.h b/openair2/ENB_APP/flexran_agent.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_async.c b/openair2/ENB_APP/flexran_agent_async.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_async.h b/openair2/ENB_APP/flexran_agent_async.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_common.c b/openair2/ENB_APP/flexran_agent_common.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_common.h b/openair2/ENB_APP/flexran_agent_common.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_common_internal.c b/openair2/ENB_APP/flexran_agent_common_internal.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_common_internal.h b/openair2/ENB_APP/flexran_agent_common_internal.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_defs.h b/openair2/ENB_APP/flexran_agent_defs.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_extern.h b/openair2/ENB_APP/flexran_agent_extern.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_handler.c b/openair2/ENB_APP/flexran_agent_handler.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_net_comm.c b/openair2/ENB_APP/flexran_agent_net_comm.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_net_comm.h b/openair2/ENB_APP/flexran_agent_net_comm.h old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_task_manager.c b/openair2/ENB_APP/flexran_agent_task_manager.c old mode 100644 new mode 100755 diff --git a/openair2/ENB_APP/flexran_agent_task_manager.h b/openair2/ENB_APP/flexran_agent_task_manager.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c old mode 100644 new mode 100755 index 42c1efe12f..30346b70de --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -419,8 +419,8 @@ void config_dedicated(int Mod_idP, uint16_t rnti, struct PhysicalConfigDedicated *physicalConfigDedicated) { - int UE_id = find_UE_id(Mod_idP, rnti); - eNB->UE_list.UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; + //int UE_id = find_UE_id(Mod_idP, rnti); + //eNB->UE_list.UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; } diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 3fd9857568..995f03483e 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -412,954 +412,6 @@ set_ul_DAI( // changes to pre-processor for eMTC //------------------------------------------------------------------------------ -void -schedule_ue_spec_br( - module_id_t module_idP, - frame_t frameP, - sub_frame_t subframeP, - int* mbsfn_flag -) -//------------------------------------------------------------------------------ -{ - - uint8_t CC_id; - int UE_id; - unsigned char aggregation; - mac_rlc_status_resp_t rlc_status; - unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0; - unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0; - unsigned char ta_len = 0; - unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0; - uint16_t nb_rb, nb_rb_temp, nb_available_rb; - uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0; - unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; - unsigned char round = 0; - unsigned char harq_pid = 0; - eNB_UE_STATS *eNB_UE_stats = NULL; - uint16_t sdu_length_total = 0; - - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - UE_list_t *UE_list = &eNB->UE_list; - int continue_flag = 0; - int32_t normalized_rx_power, target_rx_power; - int32_t tpc = 1; - static int32_t tpc_accumulated = 0; - UE_sched_ctrl *ue_sched_ctl; - int mcs; - int i; - int min_rb_unit[MAX_NUM_CCs]; - int N_RB_DL[MAX_NUM_CCs]; - int total_nb_available_rb[MAX_NUM_CCs]; - int N_RBG[MAX_NUM_CCs]; - nfapi_dl_config_request_body_t *dl_req; - nfapi_dl_config_request_pdu_t *dl_config_pdu; - nfapi_tx_request_pdu_t *TX_req; - int tdd_sfa; - -#if 0 - if (UE_list->head == -1) { - return; - } -#endif - - uint8_t *vrb_map; - int first_rb; - start_meas(&eNB->schedule_dlsch); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); - - - // for TDD: check that we have to act here, otherwise return - //if (cc[0].tdd_Config) { - // tdd_sfa = cc[0].tdd_Config->subframeAssignment; - // switch (subframeP) { - // case 0: - // // always continue - // break; - // case 1: - // return; - // break; - // case 2: - // return; - // break; - // case 3: - // if ((tdd_sfa != 2) && (tdd_sfa != 5)) return; - // break; - // case 4: - // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 5: - // break; - // case 6: - // case 7: - // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 8: - // if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 9: - // if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 6)) return; - // break; - - // } - //} - //weight = get_ue_weight(module_idP,UE_id); - aggregation = 2; - for (CC_id = 0; CC_idmessage.dl_Bandwidth); - min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id); - // get number of PRBs less those used by common channels - total_nb_available_rb[CC_id] = N_RB_DL[CC_id]; - for (i = 0; imessage.dl_Bandwidth); - - // store the global enb stats: - eNB->eNB_stats[CC_id].num_dlactive_UEs = UE_list->num_UEs; - eNB->eNB_stats[CC_id].available_prbs = total_nb_available_rb[CC_id]; - eNB->eNB_stats[CC_id].total_available_prbs += total_nb_available_rb[CC_id]; - eNB->eNB_stats[CC_id].dlsch_bytes_tx = 0; - eNB->eNB_stats[CC_id].dlsch_pdus_tx = 0; - } - - /// CALLING Pre_Processor for downlink scheduling (Returns estimation of RBs required by each UE and the allocation on sub-band) - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_IN); - /*start_meas(&eNB->schedule_dlsch_preprocessor); - dlsch_scheduler_pre_processor(module_idP, - frameP, - subframeP, - N_RBG, - mbsfn_flag); - stop_meas(&eNB->schedule_dlsch_preprocessor);*/ - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_OUT); - - - for (CC_id = 0; CC_idDL_req[CC_id].dl_config_request_body; - - if (mbsfn_flag[CC_id]>0) - continue; - - for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) - { - first_rb = 0; - vrb_map[first_rb] = 1; - vrb_map[first_rb + 1] = 1; - vrb_map[first_rb + 2] = 1; - vrb_map[first_rb + 3] = 1; - vrb_map[first_rb + 4] = 1; - vrb_map[first_rb + 5] = 1; - - continue_flag = 0; // reset the flag to allow allocation for the remaining UEs - rnti = UE_RNTI(module_idP, UE_id); - eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; - ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; - - - if (rnti == NOT_A_RNTI) { - LOG_D(MAC, "Cannot find rnti for UE_id %d (num_UEs %d)\n", UE_id, UE_list->num_UEs); - continue_flag = 1; - } - - if (eNB_UE_stats == NULL) { - LOG_D(MAC, "[eNB] Cannot find eNB_UE_stats\n"); - continue_flag = 1; - } - - //if (continue_flag != 1) { - // switch (get_tmode(module_idP, CC_id, UE_id)) { - // case 1: - // case 2: - // case 7: - // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), - // eNB_UE_stats->dl_cqi, - // format1); - // break; - // case 3: - // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), - // eNB_UE_stats->dl_cqi, - // format2A); - // break; - // default: - // LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); - // aggregation = 2; - // } - //} /* if (continue_flag != 1 */ - - if ((ue_sched_ctl->pre_nb_available_rbs[CC_id] == 0) || // no RBs allocated - CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, aggregation, rnti) - ) { - LOG_D(MAC, "[eNB %d] Frame %d : no RB allocated for UE %d on CC_id %d: continue \n", - module_idP, frameP, UE_id, CC_id); - continue_flag = 1; //to next user (there might be rbs availiable for other UEs in TM5 - } - - //if (cc[CC_id].tdd_Config != NULL) { //TDD - // set_ue_dai(subframeP, - // UE_id, - // CC_id, - // cc[CC_id].tdd_Config->subframeAssignment, - // UE_list); - // // update UL DAI after DLSCH scheduling - // set_ul_DAI(module_idP, UE_id, CC_id, frameP, subframeP); - //} - - /*if (continue_flag == 1) { - add_ue_dlsch_info(module_idP, - CC_id, - UE_id, - subframeP, - S_DL_NONE); - continue; - }*/ - - nb_available_rb = 6; // to be checked - harq_pid = ue_sched_ctl->harq_pid[CC_id]; - round = ue_sched_ctl->round[CC_id]; - UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; - UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); - UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; - UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; - - sdu_length_total = 0; - num_sdus = 0; - - /* - DevCheck(((eNB_UE_stats->dl_cqi < MIN_CQI_VALUE) || (eNB_UE_stats->dl_cqi > MAX_CQI_VALUE)), - eNB_UE_stats->dl_cqi, MIN_CQI_VALUE, MAX_CQI_VALUE); - */ - eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->dl_cqi]; //to be checked - eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, 15); - - - // store stats - UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi = eNB_UE_stats->dl_cqi; - - // initializing the rb allocation indicator for each UE - //to be checked - for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = 0; - } - - LOG_D(MAC, "[eNB %d] Frame %d: Scheduling UE %d on CC_id %d (rnti %x, harq_pid %d, round %d, rb %d, cqi %d, mcs %d, rrc %d)\n", - module_idP, frameP, UE_id, CC_id, rnti, harq_pid, round, nb_available_rb, - eNB_UE_stats->dl_cqi, eNB_UE_stats->dlsch_mcs1, - UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status); - - - - /* process retransmission */ - - if (round > 0) { - // get freq_allocation - nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; - - if (nb_rb <= nb_available_rb) { - if (cc[CC_id].tdd_Config != NULL) { - UE_list->UE_template[CC_id][UE_id].DAI++; - update_ul_dci(module_idP, CC_id, rnti, UE_list->UE_template[CC_id][UE_id].DAI); - LOG_D(MAC, "DAI update: CC_id %d subframeP %d: UE %d, DAI %d\n", CC_id, subframeP, UE_id, UE_list->UE_template[CC_id][UE_id].DAI); - } - - if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { - for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - } - } - else { - nb_rb_temp = nb_rb; - j = 0; - - while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { - UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - - if ((j == N_RBG[CC_id] - 1) && - ((N_RB_DL[CC_id] == 25) || - (N_RB_DL[CC_id] == 50))) { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; - } - else { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; - } - } - - j = j + 1; - } - } - - nb_available_rb -= nb_rb; - /* - eNB->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; - eNB->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; - - for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; - } - */ - - switch (get_tmode(module_idP, CC_id, UE_id)) { - case 1: - case 2: - case 7: - default: - { - - // rmax from SIB2 information - rmax = UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->mpdcch_NumRepetition_RA_r13; - // choose r3 by default for RAR (Table 9.1.5-5) - rep = 2; - // get actual repetition count from Table 9.1.5-3 - reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); - // get narrowband according to higher-layer config - num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; - RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; - first_rb = RA_template->msg2_narrowband * 6; - - if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPE2)>0)) { - // MPDCCH configuration for RAR - - - - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, - "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; - RA_template->msg2_mpdcch_repetition_cnt++; - dl_req->number_pdu++; - - } //repetition_count==0 && SF condition met - else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - RA_template->msg2_mpdcch_repetition_cnt++; - if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case - // wait 2 subframes for PDSCH transmission - if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; - else RA_template->Msg2_frame = frameP; - RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 - } - else { - AssertFatal(1 == 0, "TDD case not done yet\n"); - } - } // mpdcch_repetition_count == reps - if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - // Program PDSCH - RA_template->generate_rar = 0; - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - // Program UL processing for Msg3, same as regular LTE - get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); - - - fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = 7; - TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; - } - } - - } - - /*dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3;*/ - - - if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, - rnti)) { - dl_req->number_dci++; - dl_req->number_pdu++; - - } - else { - // No TX request for retransmission (check if null request for FAPI) - } - } - - add_ue_dlsch_info(module_idP, - CC_id, - UE_id, - subframeP, - S_DL_SCHEDULED); - - //eNB_UE_stats->dlsch_trials[round]++; - UE_list->eNB_UE_stats[CC_id][UE_id].num_retransmission += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_retx += nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = eNB_UE_stats->dlsch_mcs1; - } - else { - LOG_D(MAC, "[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have\n", - module_idP, frameP, CC_id, UE_id); - } - } - else { /* This is a potentially new SDU opportunity */ - - rlc_status.bytes_in_buffer = 0; - // Now check RLC information to compute number of required RBs - // get maximum TBS size for RLC request - //to be checked - TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); - // check first for RLC data on DCCH - // add the length for all the control elements (timing adv, drx, etc) : header + payload - - ta_len = (ue_sched_ctl->ta_update != 0) ? 2 : 0; - - header_len_dcch = 2; // 2 bytes DCCH SDU subheader - - 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)); // transport block set size - - sdu_lengths[0] = 0; - - if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit - LOG_D(MAC, "[eNB %d] Frame %d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", - module_idP, frameP, CC_id, TBS - header_len_dcch); - sdu_lengths[0] = mac_rlc_data_req( - module_idP, - rnti, - module_idP, - frameP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - DCCH, - TBS, //not used - (char *)&dlsch_buffer[0]); - - T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); - - LOG_D(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes from RLC\n", module_idP, CC_id, sdu_lengths[0]); - sdu_length_total = sdu_lengths[0]; - sdu_lcids[0] = DCCH; - UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH] += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH] += sdu_lengths[0]; - num_sdus = 1; -#ifdef DEBUG_eNB_SCHEDULER - LOG_T(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[0]); - - for (j = 0; j 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)); // transport block set size less allocations for timing advance and - // DCCH SDU - sdu_lengths[num_sdus] = 0; - - if (rlc_status.bytes_in_buffer > 0) { - LOG_I(MAC, "[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", - module_idP, frameP, CC_id, TBS - header_len_dcch - sdu_length_total); - sdu_lengths[num_sdus] += mac_rlc_data_req( - module_idP, - rnti, - module_idP, - frameP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - DCCH + 1, - TBS, //not used - (char *)&dlsch_buffer[sdu_length_total]); - - T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_INT(DCCH + 1), T_INT(sdu_lengths[num_sdus])); - - sdu_lcids[num_sdus] = DCCH1; - sdu_length_total += sdu_lengths[num_sdus]; - header_len_dcch += 2; - UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1] += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1] += sdu_lengths[num_sdus]; - num_sdus++; -#ifdef DEBUG_eNB_SCHEDULER - LOG_T(MAC, "[eNB %d][DCCH1] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[num_sdus]); - - for (j = 0; j= DTCH; lcid--) { - // TBD: check if the lcid is active - - header_len_dtch += 3; - header_len_dtch_last = 3; - LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", - module_idP, frameP, lcid, TBS, - TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); - - if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) { // NN: > 2 ? - rlc_status = mac_rlc_status_ind(module_idP, - rnti, - module_idP, - frameP, - subframeP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - lcid, - TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); - - - if (rlc_status.bytes_in_buffer > 0) { - - LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", - module_idP, frameP, TBS - header_len_dcch - sdu_length_total - header_len_dtch, lcid, header_len_dtch); - sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, - rnti, - module_idP, - frameP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - lcid, - TBS, //not used - (char*)&dlsch_buffer[sdu_length_total]); - T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); - - LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n", module_idP, sdu_lengths[num_sdus], lcid); - sdu_lcids[num_sdus] = lcid; - sdu_length_total += sdu_lengths[num_sdus]; - UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus]; - if (sdu_lengths[num_sdus] < 128) { - header_len_dtch--; - header_len_dtch_last--; - } - num_sdus++; - } // no data for this LCID - else { - header_len_dtch -= 3; - } - } // no TBS left - else { - header_len_dtch -= 3; - break; - } - } - if (header_len_dtch == 0) - header_len_dtch_last = 0; - // there is at least one SDU - // if (num_sdus > 0 ){ - if ((sdu_length_total + header_len_dcch + header_len_dtch)> 0) { - - // Now compute number of required RBs for total sdu length - // Assume RAH format 2 - // adjust header lengths - header_len_dcch_tmp = header_len_dcch; - header_len_dtch_tmp = header_len_dtch; - if (header_len_dtch == 0) { - header_len_dcch = (header_len_dcch >0) ? 1 : 0;//header_len_dcch; // remove length field - } - else { - header_len_dtch_last -= 1; // now use it to find how many bytes has to be removed for the last MAC SDU - header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last : header_len_dtch; // remove length field for the last SDU - } - - mcs = eNB_UE_stats->dlsch_mcs1; - - if (mcs == 0) { - nb_rb = 4; // don't let the TBS get too small - } - else { - nb_rb = min_rb_unit[CC_id]; - } - - TBS = get_TBS_DL(mcs, nb_rb); - - while (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) { - nb_rb += min_rb_unit[CC_id]; // - - if (nb_rb>nb_available_rb) { // if we've gone beyond the maximum number of RBs - // (can happen if N_RB_DL is odd) - TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); - nb_rb = nb_available_rb; - break; - } - - TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_rb); - } - ///////////////////////////////////////////////////////////// - // alter the allocation of the emtc UE here - ////////////////////////////////////////////////////////////// - if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { - for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - } - } - else { - nb_rb_temp = nb_rb; - j = 0; - - while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { - UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - - if ((j == N_RBG[CC_id] - 1) && - ((N_RB_DL[CC_id] == 25) || - (N_RB_DL[CC_id] == 50))) { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; - } - else { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; - } - } - - j = j + 1; - } - } - /////////////////////////////////// - - - // decrease mcs until TBS falls below required length - while ((TBS > (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (mcs>0)) { - mcs--; - TBS = get_TBS_DL(mcs, nb_rb); - } - - // if we have decreased too much or we don't have enough RBs, increase MCS - while ((TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (((ue_sched_ctl->dl_pow_off[CC_id]>0) && (mcs<28)) - || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { - mcs++; - TBS = get_TBS_DL(mcs, nb_rb); - } - - LOG_D(MAC, "dlsch_mcs before and after the rate matching = (%d, %d)\n", eNB_UE_stats->dlsch_mcs1, mcs); - -#ifdef DEBUG_eNB_SCHEDULER - LOG_D(MAC, "[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", - module_idP, CC_id, mcs, TBS, nb_rb); - // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", - // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); -#endif - - if ((TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len) <= 2) { - padding = (TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len); - post_padding = 0; - } - else { - padding = 0; - - // adjust the header len - if (header_len_dtch == 0) { - header_len_dcch = header_len_dcch_tmp; - } - else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) - header_len_dtch = header_len_dtch_tmp; - } - - post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len; // 1 is for the postpadding header - } - - - offset = generate_dlsch_header((unsigned char*)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], - num_sdus, //num_sdus - sdu_lengths, // - sdu_lcids, - 255, // no drx - ue_sched_ctl->ta_update, // timing advance - NULL, // contention res id - padding, - post_padding); - - //#ifdef DEBUG_eNB_SCHEDULER - if (ue_sched_ctl->ta_update) { - LOG_I(MAC, - "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", - module_idP, frameP, UE_id, CC_id, sdu_length_total, num_sdus, sdu_lengths[0], sdu_lcids[0], offset, - ue_sched_ctl->ta_update, padding, post_padding, mcs, TBS, nb_rb, header_len_dcch, header_len_dtch); - } - //#endif -#ifdef DEBUG_eNB_SCHEDULER - LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n"); - - for (i = 0; i<16; i++) { - LOG_T(MAC, "%x.", dlsch_buffer[i]); - } - - LOG_T(MAC, "\n"); -#endif - // cycle through SDUs and place in dlsch_buffer - memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset], dlsch_buffer, sdu_length_total); - // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); - - // fill remainder of DLSCH with random data - for (j = 0; j<(TBS - sdu_length_total - offset); j++) { - UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = (char)(taus() & 0xff); - } - - - if (opt_enabled == 1) { - trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], - TBS, module_idP, 3, UE_RNTI(module_idP, UE_id), - eNB->frame, eNB->subframe, 0, 0); - LOG_D(OPT, "[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", - module_idP, CC_id, frameP, UE_RNTI(module_idP, UE_id), TBS); - } - - T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); - - UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] = nb_rb; - - add_ue_dlsch_info(module_idP, - CC_id, - UE_id, - subframeP, - S_DL_SCHEDULED); - // store stats - eNB->eNB_stats[CC_id].dlsch_bytes_tx += sdu_length_total; - eNB->eNB_stats[CC_id].dlsch_pdus_tx += 1; - - UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = mcs; - UE_list->eNB_UE_stats[CC_id][UE_id].TBS = TBS; - - UE_list->eNB_UE_stats[CC_id][UE_id].overhead_bytes = TBS - sdu_length_total; - UE_list->eNB_UE_stats[CC_id][UE_id].total_sdu_bytes += sdu_length_total; - UE_list->eNB_UE_stats[CC_id][UE_id].total_pdu_bytes += TBS; - UE_list->eNB_UE_stats[CC_id][UE_id].total_num_pdus += 1; - - - - // do PUCCH power control - // this is the normalized RX power - eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; - normalized_rx_power = eNB_UE_stats->Po_PUCCH_dBm; - target_rx_power = get_target_pucch_rx_power(module_idP, CC_id) + 20; - - // this assumes accumulated tpc - // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out - int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame * 10 + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; - if (((framex10psubframe + 10) <= (frameP * 10 + subframeP)) || //normal case - ((framex10psubframe>(frameP * 10 + subframeP)) && (((10240 - framex10psubframe + frameP * 10 + subframeP) >= 10)))) //frame wrap-around - if (eNB_UE_stats->Po_PUCCH_update == 1) { - eNB_UE_stats->Po_PUCCH_update = 0; - - UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; - UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; - - if (normalized_rx_power>(target_rx_power + 1)) { - tpc = 0; //-1 - tpc_accumulated--; - } - else if (normalized_rx_power<(target_rx_power - 1)) { - tpc = 2; //+1 - tpc_accumulated++; - } - else { - tpc = 1; //0 - } - /* - LOG_I(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", - module_idP,frameP, subframeP,harq_pid,tpc, - tpc_accumulated,normalized_rx_power,target_rx_power);*/ - - } // Po_PUCCH has been updated - else { - tpc = 1; //0 - } // time to do TPC update - else { - tpc = 1; //0 - } - - //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = tpc; // dont adjust power when retransmitting - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; - ////deactivate second codeword - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_2 = 0; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_2 = 1; - // - dl_req->number_dci++; - dl_req->number_pdu++; - - // Toggle NDI for next time - LOG_D(MAC, "CC_id %d Frame %d, subframeP %d: Toggling Format1 NDI for UE %d (rnti %x/%d) oldNDI %d\n", - CC_id, frameP, subframeP, UE_id, - UE_list->UE_template[CC_id][UE_id].rnti, harq_pid, UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]); - - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid] = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid] = mcs; - UE_list->UE_template[CC_id][UE_id].oldmcs2[harq_pid] = 0; - - eNB->TX_req[CC_id].sfn_sf = (frameP << 3) + subframeP; - TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; - TX_req->pdu_length = TBS; - TX_req->pdu_index = eNB->pdu_index[CC_id]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = TBS; - TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char)UE_id].payload[harq_pid]; - eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; - - } - else { // There is no data from RLC or MAC header, so don't schedule - - } - } - - - } // UE_id loop - } // CC_id loop - - - fill_DLSCH_dci(module_idP, frameP, subframeP, mbsfn_flag); - - stop_meas(&eNB->schedule_dlsch); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); - -} //------------------------------------------------------------------------------ void diff --git a/openair2/LAYER2/MAC/eNB_scheduler_mch.c b/openair2/LAYER2/MAC/eNB_scheduler_mch.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c old mode 100644 new mode 100755 index 2c83802677..1aadc0b1bf --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -396,7 +396,11 @@ void rx_sdu(const module_id_t enb_mod_idP, rx_lengths[i], ENB_FLAG_YES, enb_mod_idP, - 0); + 0 + #ifdef Rel14 + ,(eNB->common_channels[CC_idP].RA_template[ii].rach_resource_type>0) + #endif + ); if (num_ce >0) { // handle msg3 which is not RRCConnectionRequest diff --git a/openair2/LAYER2/MAC/extern.h b/openair2/LAYER2/MAC/extern.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/flexran_agent_mac_proto.h b/openair2/LAYER2/MAC/flexran_agent_mac_proto.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c b/openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c b/openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c b/openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h b/openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/flexran_dci_conversions.h b/openair2/LAYER2/MAC/flexran_dci_conversions.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/l1_helpers.c b/openair2/LAYER2/MAC/l1_helpers.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/lte_transport_init.c b/openair2/LAYER2/MAC/lte_transport_init.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/main.c b/openair2/LAYER2/MAC/main.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/openair2_proc.c b/openair2/LAYER2/MAC/openair2_proc.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/proto.h b/openair2/LAYER2/MAC/proto.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/ra_procedures.c b/openair2/LAYER2/MAC/ra_procedures.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/MAC/vars.h b/openair2/LAYER2/MAC/vars.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/Makefile.inc b/openair2/LAYER2/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/Makefile b/openair2/LAYER2/RLC/UM_v9.3.0/Makefile old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/README b/openair2/LAYER2/RLC/UM_v9.3.0/README old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/mac_primitives.h b/openair2/LAYER2/RLC/mac_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc_def.h b/openair2/LAYER2/RLC/rlc_def.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc_def_lte.h b/openair2/LAYER2/RLC/rlc_def_lte.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc_mac.c b/openair2/LAYER2/RLC/rlc_mac.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc_mpls.c b/openair2/LAYER2/RLC/rlc_mpls.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc_primitives.h b/openair2/LAYER2/RLC/rlc_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/RLC/rlc_rrc.c b/openair2/LAYER2/RLC/rlc_rrc.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/openair2_proc.c b/openair2/LAYER2/openair2_proc.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/register.c b/openair2/LAYER2/register.c old mode 100644 new mode 100755 diff --git a/openair2/LAYER2/register.h b/openair2/LAYER2/register.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c b/openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h b/openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h b/openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h b/openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c b/openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c b/openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/Makefile.inc b/openair2/NAS/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h b/openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h old mode 100644 new mode 100755 diff --git a/openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c b/openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c old mode 100644 new mode 100755 diff --git a/openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c b/openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c b/openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/classifier.c b/openair2/NETWORK_DRIVER/LITE/classifier.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/common.c b/openair2/NETWORK_DRIVER/LITE/common.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/constant.h b/openair2/NETWORK_DRIVER/LITE/constant.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/device.c b/openair2/NETWORK_DRIVER/LITE/device.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/ioctl.c b/openair2/NETWORK_DRIVER/LITE/ioctl.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/ioctl.h b/openair2/NETWORK_DRIVER/LITE/ioctl.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/local.h b/openair2/NETWORK_DRIVER/LITE/local.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/netlink.c b/openair2/NETWORK_DRIVER/LITE/netlink.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/proto_extern.h b/openair2/NETWORK_DRIVER/LITE/proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/sap.h b/openair2/NETWORK_DRIVER/LITE/sap.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/LITE/tool.c b/openair2/NETWORK_DRIVER/LITE/tool.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile b/openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c b/openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c b/openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/classifier.c b/openair2/NETWORK_DRIVER/MESH/classifier.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/common.c b/openair2/NETWORK_DRIVER/MESH/common.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/constant.h b/openair2/NETWORK_DRIVER/MESH/constant.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/device.c b/openair2/NETWORK_DRIVER/MESH/device.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/ioctl.c b/openair2/NETWORK_DRIVER/MESH/ioctl.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/ioctl.h b/openair2/NETWORK_DRIVER/MESH/ioctl.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/local.h b/openair2/NETWORK_DRIVER/MESH/local.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/mesh.c b/openair2/NETWORK_DRIVER/MESH/mesh.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/netlink.c b/openair2/NETWORK_DRIVER/MESH/netlink.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/proto_extern.h b/openair2/NETWORK_DRIVER/MESH/proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h b/openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/sap.h b/openair2/NETWORK_DRIVER/MESH/sap.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/MESH/tool.c b/openair2/NETWORK_DRIVER/MESH/tool.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/common.c b/openair2/NETWORK_DRIVER/UE_IP/common.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/constant.h b/openair2/NETWORK_DRIVER/UE_IP/constant.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/device.c b/openair2/NETWORK_DRIVER/UE_IP/device.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/local.h b/openair2/NETWORK_DRIVER/UE_IP/local.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/netlink.c b/openair2/NETWORK_DRIVER/UE_IP/netlink.c old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/proto_extern.h b/openair2/NETWORK_DRIVER/UE_IP/proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/NETWORK_DRIVER/UE_IP/sap.h b/openair2/NETWORK_DRIVER/UE_IP/sap.h old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/IF_Module.h b/openair2/PHY_INTERFACE/IF_Module.h old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/defs.h b/openair2/PHY_INTERFACE/defs.h old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/extern.h b/openair2/PHY_INTERFACE/extern.h old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/mac_phy_primitives.c b/openair2/PHY_INTERFACE/mac_phy_primitives.c old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/mac_phy_primitives.h b/openair2/PHY_INTERFACE/mac_phy_primitives.h old mode 100644 new mode 100755 diff --git a/openair2/PHY_INTERFACE/vars.h b/openair2/PHY_INTERFACE/vars.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/L2_interface.c b/openair2/RRC/LITE/L2_interface.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/Makefile b/openair2/RRC/LITE/MESSAGES/Makefile old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/Makefile.inc b/openair2/RRC/LITE/MESSAGES/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/README.txt b/openair2/RRC/LITE/MESSAGES/README.txt old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c old mode 100644 new mode 100755 index 9f70de708e..126526deed --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2260,9 +2260,9 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; - epdcch_setconfig_r11->ext2 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11_ext2)); + epdcch_setconfig_r11->ext2 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2)); epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; - epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11_ext2_mpdcch_config_r13)); + epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13)); epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1_patch b/openair2/RRC/LITE/MESSAGES/asn1_patch old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl b/openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/rtai_mem.c b/openair2/RRC/LITE/MESSAGES/rtai_mem.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/rtai_mem.h b/openair2/RRC/LITE/MESSAGES/rtai_mem.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/defs.h b/openair2/RRC/LITE/defs.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/extern.h b/openair2/RRC/LITE/extern.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/mesh_top.c b/openair2/RRC/LITE/mesh_top.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/plmn_data.h b/openair2/RRC/LITE/plmn_data.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/proto.h b/openair2/RRC/LITE/proto.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_2_rrm_msg.c b/openair2/RRC/LITE/rrc_2_rrm_msg.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_UE.c b/openair2/RRC/LITE/rrc_UE.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_UE_ral.c b/openair2/RRC/LITE/rrc_UE_ral.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_UE_ral.h b/openair2/RRC/LITE/rrc_UE_ral.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_common.c b/openair2/RRC/LITE/rrc_common.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_GTPV1U.c b/openair2/RRC/LITE/rrc_eNB_GTPV1U.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_GTPV1U.h b/openair2/RRC/LITE/rrc_eNB_GTPV1U.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_S1AP.c b/openair2/RRC/LITE/rrc_eNB_S1AP.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_S1AP.h b/openair2/RRC/LITE/rrc_eNB_S1AP.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_UE_context.c b/openair2/RRC/LITE/rrc_eNB_UE_context.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_UE_context.h b/openair2/RRC/LITE/rrc_eNB_UE_context.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_ral.c b/openair2/RRC/LITE/rrc_eNB_ral.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_eNB_ral.h b/openair2/RRC/LITE/rrc_eNB_ral.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_rrm_interface.c b/openair2/RRC/LITE/rrc_rrm_interface.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_rrm_interface.h b/openair2/RRC/LITE/rrc_rrm_interface.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrc_types.h b/openair2/RRC/LITE/rrc_types.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/rrm_2_rrc_msg.c b/openair2/RRC/LITE/rrm_2_rrc_msg.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/utils.c b/openair2/RRC/LITE/utils.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/vars.h b/openair2/RRC/LITE/vars.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/NAS/Makefile.inc b/openair2/RRC/NAS/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/RRC/NAS/nas_config.c b/openair2/RRC/NAS/nas_config.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/NAS/nas_config.h b/openair2/RRC/NAS/nas_config.h old mode 100644 new mode 100755 diff --git a/openair2/RRC/NAS/rb_config.c b/openair2/RRC/NAS/rb_config.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/NAS/rb_config.h b/openair2/RRC/NAS/rb_config.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/link_manager.c b/openair2/UTIL/ASYNC_IF/link_manager.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/link_manager.h b/openair2/UTIL/ASYNC_IF/link_manager.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/message_queue.c b/openair2/UTIL/ASYNC_IF/message_queue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/message_queue.h b/openair2/UTIL/ASYNC_IF/message_queue.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.h b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/socket_link.c b/openair2/UTIL/ASYNC_IF/socket_link.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/ASYNC_IF/socket_link.h b/openair2/UTIL/ASYNC_IF/socket_link.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/BIGPHYS/bigphys.c b/openair2/UTIL/BIGPHYS/bigphys.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/BIGPHYS/defs.h b/openair2/UTIL/BIGPHYS/defs.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/CLI/cli.c b/openair2/UTIL/CLI/cli.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/CLI/cli.h b/openair2/UTIL/CLI/cli.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/CLI/cli_cmd.c b/openair2/UTIL/CLI/cli_cmd.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/CLI/cli_if.h b/openair2/UTIL/CLI/cli_if.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/CLI/cli_server.c b/openair2/UTIL/CLI/cli_server.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/FIFO/pad_list.c b/openair2/UTIL/FIFO/pad_list.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/FIFO/pad_list.h b/openair2/UTIL/FIFO/pad_list.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/FIFO/types.h b/openair2/UTIL/FIFO/types.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.linux b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.linux old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.windows b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.windows old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt b/openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux b/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.windows b/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.windows old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln b/openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj b/openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_and_gnumake/Makefile b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_and_gnumake/Makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Makefile b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.user old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.user old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.user old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/gcc_and_gnumake/Makefile b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/gcc_and_gnumake/Makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/sdk_for_windows_7_and_gnumake/makefile b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/sdk_for_windows_7_and_gnumake/makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.user old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LISTS/list.c b/openair2/UTIL/LISTS/list.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LISTS/list.h b/openair2/UTIL/LISTS/list.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LISTS/list2.c b/openair2/UTIL/LISTS/list2.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/README.txt b/openair2/UTIL/LOG/README.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/log.c b/openair2/UTIL/LOG/log.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/log.h b/openair2/UTIL/LOG/log.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/log_extern.h b/openair2/UTIL/LOG/log_extern.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/log_if.h b/openair2/UTIL/LOG/log_if.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.c b/openair2/UTIL/LOG/vcd_signal_dumper.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/openair2/UTIL/LOG/vcd_signal_dumper.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MATH/crc_byte.c b/openair2/UTIL/MATH/crc_byte.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MATH/oml.c b/openair2/UTIL/MATH/oml.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MATH/oml.h b/openair2/UTIL/MATH/oml.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MATH/random.c b/openair2/UTIL/MATH/random.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MATH/random_proto_extern.h b/openair2/UTIL/MATH/random_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MATH/taus.c b/openair2/UTIL/MATH/taus.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MEM/mem_block.c b/openair2/UTIL/MEM/mem_block.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MEM/mem_block.h b/openair2/UTIL/MEM/mem_block.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MEM/mem_mngt.c b/openair2/UTIL/MEM/mem_mngt.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MEM/mem_mngt_proto_extern.h b/openair2/UTIL/MEM/mem_mngt_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/MEM/mem_pool.h b/openair2/UTIL/MEM/mem_pool.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/Makefile.inc b/openair2/UTIL/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/.directory b/openair2/UTIL/OCG/.directory old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/Doxyfile b/openair2/UTIL/OCG/Doxyfile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG.c b/openair2/UTIL/OCG/OCG.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG.h b/openair2/UTIL/OCG/OCG.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_call_emu.c b/openair2/UTIL/OCG/OCG_call_emu.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_call_emu.h b/openair2/UTIL/OCG/OCG_call_emu.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_config_mobi.c b/openair2/UTIL/OCG/OCG_config_mobi.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_config_mobi.h b/openair2/UTIL/OCG/OCG_config_mobi.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_create_dir.c b/openair2/UTIL/OCG/OCG_create_dir.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_create_dir.h b/openair2/UTIL/OCG/OCG_create_dir.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_detect_file.c b/openair2/UTIL/OCG/OCG_detect_file.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_detect_file.h b/openair2/UTIL/OCG/OCG_detect_file.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_extern.h b/openair2/UTIL/OCG/OCG_extern.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_generate_report.c b/openair2/UTIL/OCG/OCG_generate_report.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_generate_report.h b/openair2/UTIL/OCG/OCG_generate_report.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_get_opt.c b/openair2/UTIL/OCG/OCG_get_opt.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_get_opt.h b/openair2/UTIL/OCG/OCG_get_opt.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_if.h b/openair2/UTIL/OCG/OCG_if.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_parse_XML.c b/openair2/UTIL/OCG/OCG_parse_XML.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_parse_XML.h b/openair2/UTIL/OCG/OCG_parse_XML.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_parse_filename.c b/openair2/UTIL/OCG/OCG_parse_filename.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_parse_filename.h b/openair2/UTIL/OCG/OCG_parse_filename.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_save_XML.c b/openair2/UTIL/OCG/OCG_save_XML.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_save_XML.h b/openair2/UTIL/OCG/OCG_save_XML.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/OCG_vars.h b/openair2/UTIL/OCG/OCG_vars.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml b/openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/eurecom_20110208110244.xml b/openair2/UTIL/OCG/eurecom_20110208110244.xml old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml b/openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/makefile b/openair2/UTIL/OCG/makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/readme.txt b/openair2/UTIL/OCG/readme.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OCG/temp_output/OCG_report.xml b/openair2/UTIL/OCG/temp_output/OCG_report.xml old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf b/openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf b/openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/README.TXT b/openair2/UTIL/OMG/TRACE/README.TXT old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/example_trace.tr b/openair2/UTIL/OMG/TRACE/example_trace.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/handover.tr b/openair2/UTIL/OMG/TRACE/handover.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/handover_1ue.tr b/openair2/UTIL/OMG/TRACE/handover_1ue.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr b/openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/mobility_2ues.tr b/openair2/UTIL/OMG/TRACE/mobility_2ues.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/mobility_3ues.tr b/openair2/UTIL/OMG/TRACE/mobility_3ues.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/regular.tr b/openair2/UTIL/OMG/TRACE/regular.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/static_1enb.tr b/openair2/UTIL/OMG/TRACE/static_1enb.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/static_2ues.tr b/openair2/UTIL/OMG/TRACE/static_2ues.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/TRACE/zero_speed.tr b/openair2/UTIL/OMG/TRACE/zero_speed.tr old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/common.c b/openair2/UTIL/OMG/common.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/defs.h b/openair2/UTIL/OMG/defs.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/grid.c b/openair2/UTIL/OMG/grid.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/grid.h b/openair2/UTIL/OMG/grid.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/job.c b/openair2/UTIL/OMG/job.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/makefile b/openair2/UTIL/OMG/makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/makefile_old b/openair2/UTIL/OMG/makefile_old old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/makefile_standalone b/openair2/UTIL/OMG/makefile_standalone old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/mobility.txt b/openair2/UTIL/OMG/mobility.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/mobility_parser.c b/openair2/UTIL/OMG/mobility_parser.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/mobility_parser.h b/openair2/UTIL/OMG/mobility_parser.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/omg.c b/openair2/UTIL/OMG/omg.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/omg.h b/openair2/UTIL/OMG/omg.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/omg_constants.h b/openair2/UTIL/OMG/omg_constants.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/omg_hashtable.c b/openair2/UTIL/OMG/omg_hashtable.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/omg_hashtable.h b/openair2/UTIL/OMG/omg_hashtable.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/omg_vars.h b/openair2/UTIL/OMG/omg_vars.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/rwalk.c b/openair2/UTIL/OMG/rwalk.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/rwalk.h b/openair2/UTIL/OMG/rwalk.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/rwp.c b/openair2/UTIL/OMG/rwp.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/rwp.h b/openair2/UTIL/OMG/rwp.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/static.c b/openair2/UTIL/OMG/static.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/static.h b/openair2/UTIL/OMG/static.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/steadystaterwp.c b/openair2/UTIL/OMG/steadystaterwp.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/steadystaterwp.h b/openair2/UTIL/OMG/steadystaterwp.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/trace.c b/openair2/UTIL/OMG/trace.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/trace.h b/openair2/UTIL/OMG/trace.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/trace_hashtable.c b/openair2/UTIL/OMG/trace_hashtable.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMG/trace_hashtable.h b/openair2/UTIL/OMG/trace_hashtable.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/README.txt b/openair2/UTIL/OMV/README.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/blue.png b/openair2/UTIL/OMV/blue.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/communicationthread.cpp b/openair2/UTIL/OMV/communicationthread.cpp old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/communicationthread.h b/openair2/UTIL/OMV/communicationthread.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/green.png b/openair2/UTIL/OMV/green.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/jpg.jpeg b/openair2/UTIL/OMV/jpg.jpeg old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/mus.png b/openair2/UTIL/OMV/mus.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/mywindow.cpp b/openair2/UTIL/OMV/mywindow.cpp old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/mywindow.h b/openair2/UTIL/OMV/mywindow.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/new.jpg b/openair2/UTIL/OMV/new.jpg old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/new2.jpg b/openair2/UTIL/OMV/new2.jpg old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/omv.cpp b/openair2/UTIL/OMV/omv.cpp old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/openglwidget.cpp b/openair2/UTIL/OMV/openglwidget.cpp old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/openglwidget.h b/openair2/UTIL/OMV/openglwidget.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/red.png b/openair2/UTIL/OMV/red.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/structures.h b/openair2/UTIL/OMV/structures.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/white.png b/openair2/UTIL/OMV/white.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OMV/wow.png b/openair2/UTIL/OMV/wow.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OPT/README.txt b/openair2/UTIL/OPT/README.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OPT/mac_pcap.h b/openair2/UTIL/OPT/mac_pcap.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OPT/packet-mac-lte.h b/openair2/UTIL/OPT/packet-mac-lte.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OPT/vars.h b/openair2/UTIL/OPT/vars.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/README b/openair2/UTIL/OSA/README old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_defs.h b/openair2/UTIL/OSA/osa_defs.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_internal.h b/openair2/UTIL/OSA/osa_internal.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_key_deriver.c b/openair2/UTIL/OSA/osa_key_deriver.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_rijndael.c b/openair2/UTIL/OSA/osa_rijndael.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_rijndael.h b/openair2/UTIL/OSA/osa_rijndael.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_snow3g.c b/openair2/UTIL/OSA/osa_snow3g.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_snow3g.h b/openair2/UTIL/OSA/osa_snow3g.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_stream_eea.c b/openair2/UTIL/OSA/osa_stream_eea.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSA/osa_stream_eia.c b/openair2/UTIL/OSA/osa_stream_eia.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/OCG.pid b/openair2/UTIL/OSD/OCG.pid old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/OpenAirEmu.conf b/openair2/UTIL/OSD/OpenAirEmu.conf old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/Platform_is_running.php b/openair2/UTIL/OSD/Platform_is_running.php old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/README.txt b/openair2/UTIL/OSD/README.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/blueprint.css b/openair2/UTIL/OSD/css/blueprint.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/fix-ie-rtl.css b/openair2/UTIL/OSD/css/fix-ie-rtl.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/fix-ie.css b/openair2/UTIL/OSD/css/fix-ie.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/ie.css b/openair2/UTIL/OSD/css/ie.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/ie6.css b/openair2/UTIL/OSD/css/ie6.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/images/false.png b/openair2/UTIL/OSD/css/images/false.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/images/false2.png b/openair2/UTIL/OSD/css/images/false2.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/images/lquote.png b/openair2/UTIL/OSD/css/images/lquote.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/images/true.png b/openair2/UTIL/OSD/css/images/true.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/images/warning.png b/openair2/UTIL/OSD/css/images/warning.png old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/print.css b/openair2/UTIL/OSD/css/print.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/screen.css b/openair2/UTIL/OSD/css/screen.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/css/style.css b/openair2/UTIL/OSD/css/style.css old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/form.php b/openair2/UTIL/OSD/form.php old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/header.php b/openair2/UTIL/OSD/header.php old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/httpd-result.conf b/openair2/UTIL/OSD/httpd-result.conf old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/index.php b/openair2/UTIL/OSD/index.php old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/jquery/jquery.js b/openair2/UTIL/OSD/jquery/jquery.js old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/recep.php b/openair2/UTIL/OSD/recep.php old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OSD/toto.php b/openair2/UTIL/OSD/toto.php old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/Doxyfile b/openair2/UTIL/OTG/Doxyfile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/help_OTGplot.txt b/openair2/UTIL/OTG/help_OTGplot.txt old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/main.c b/openair2/UTIL/OTG/main.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/makefile b/openair2/UTIL/OTG/makefile old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg.c b/openair2/UTIL/OTG/otg.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg.h b/openair2/UTIL/OTG/otg.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_config.h b/openair2/UTIL/OTG/otg_config.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_defs.h b/openair2/UTIL/OTG/otg_defs.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_externs.h b/openair2/UTIL/OTG/otg_externs.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_form.c b/openair2/UTIL/OTG/otg_form.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_form.h b/openair2/UTIL/OTG/otg_form.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_kpi.c b/openair2/UTIL/OTG/otg_kpi.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_kpi.h b/openair2/UTIL/OTG/otg_kpi.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_models.c b/openair2/UTIL/OTG/otg_models.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_models.h b/openair2/UTIL/OTG/otg_models.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_rx.c b/openair2/UTIL/OTG/otg_rx.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_rx.h b/openair2/UTIL/OTG/otg_rx.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_rx_socket.c b/openair2/UTIL/OTG/otg_rx_socket.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_rx_socket.h b/openair2/UTIL/OTG/otg_rx_socket.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_tx.c b/openair2/UTIL/OTG/otg_tx.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_tx.h b/openair2/UTIL/OTG/otg_tx.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_tx_socket.c b/openair2/UTIL/OTG/otg_tx_socket.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_tx_socket.h b/openair2/UTIL/OTG/otg_tx_socket.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/otg_vars.h b/openair2/UTIL/OTG/otg_vars.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/OTG/traffic_config.h b/openair2/UTIL/OTG/traffic_config.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TIMER/umts_timer.c b/openair2/UTIL/TIMER/umts_timer.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TIMER/umts_timer.h b/openair2/UTIL/TIMER/umts_timer.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TIMER/umts_timer_proto_extern.h b/openair2/UTIL/TIMER/umts_timer_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TIMER/umts_timer_struct.h b/openair2/UTIL/TIMER/umts_timer_struct.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TRACE/fifo_printf.c b/openair2/UTIL/TRACE/fifo_printf.c old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TRACE/fifo_printf.h b/openair2/UTIL/TRACE/fifo_printf.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TRACE/fifo_printf_proto_extern.h b/openair2/UTIL/TRACE/fifo_printf_proto_extern.h old mode 100644 new mode 100755 diff --git a/openair2/UTIL/TRACE/print.h b/openair2/UTIL/TRACE/print.h old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/Makefile.inc old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn b/openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn old mode 100644 new mode 100755 diff --git a/openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py b/openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py old mode 100644 new mode 100755 diff --git a/openair2/X2AP/x2ap.c b/openair2/X2AP/x2ap.c old mode 100644 new mode 100755 diff --git a/openair2/X2AP/x2ap.h b/openair2/X2AP/x2ap.h old mode 100644 new mode 100755 diff --git a/openair2/X2AP/x2ap_common.c b/openair2/X2AP/x2ap_common.c old mode 100644 new mode 100755 diff --git a/openair2/X2AP/x2ap_common.h b/openair2/X2AP/x2ap_common.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/as_message.h b/openair3/COMMON/as_message.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/common_types.h b/openair3/COMMON/common_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/gtpv1_u_messages_def.h b/openair3/COMMON/gtpv1_u_messages_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/gtpv1_u_messages_types.h b/openair3/COMMON/gtpv1_u_messages_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/intertask_interface_conf.h b/openair3/COMMON/intertask_interface_conf.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/messages_def.h b/openair3/COMMON/messages_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/messages_types.h b/openair3/COMMON/messages_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/nas_messages_def.h b/openair3/COMMON/nas_messages_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/nas_messages_types.h b/openair3/COMMON/nas_messages_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/s1ap_messages_def.h b/openair3/COMMON/s1ap_messages_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/s1ap_messages_types.h b/openair3/COMMON/s1ap_messages_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/sctp_messages_def.h b/openair3/COMMON/sctp_messages_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/sctp_messages_types.h b/openair3/COMMON/sctp_messages_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/security_types.h b/openair3/COMMON/security_types.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/tasks_def.h b/openair3/COMMON/tasks_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/udp_messages_def.h b/openair3/COMMON/udp_messages_def.h old mode 100644 new mode 100755 diff --git a/openair3/COMMON/udp_messages_types.h b/openair3/COMMON/udp_messages_types.h old mode 100644 new mode 100755 diff --git a/openair3/DOCS/DOXYGEN/Doxyfile.in b/openair3/DOCS/DOXYGEN/Doxyfile.in old mode 100644 new mode 100755 diff --git a/openair3/DOCS/DOXYGEN/Makefile.am b/openair3/DOCS/DOXYGEN/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf b/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf old mode 100644 new mode 100755 diff --git a/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex b/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex old mode 100644 new mode 100755 diff --git a/openair3/DOCS/Latex/EPC/EPC.pdf b/openair3/DOCS/Latex/EPC/EPC.pdf old mode 100644 new mode 100755 diff --git a/openair3/DOCS/Latex/EPC/EPC.tex b/openair3/DOCS/Latex/EPC/EPC.tex old mode 100644 new mode 100755 diff --git a/openair3/DOCS/Latex/EPC/Makefile b/openair3/DOCS/Latex/EPC/Makefile old mode 100644 new mode 100755 diff --git a/openair3/DOCS/Makefile.am b/openair3/DOCS/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/Makefile.am b/openair3/GTPV1-U/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/Makefile.eNB b/openair3/GTPV1-U/Makefile.eNB old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u.h b/openair3/GTPV1-U/gtpv1u.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u_eNB.c b/openair3/GTPV1-U/gtpv1u_eNB.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u_eNB_defs.h b/openair3/GTPV1-U/gtpv1u_eNB_defs.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u_eNB_task.h b/openair3/GTPV1-U/gtpv1u_eNB_task.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u_sgw_defs.h b/openair3/GTPV1-U/gtpv1u_sgw_defs.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u_task.c b/openair3/GTPV1-U/gtpv1u_task.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/gtpv1u_teid_pool.c b/openair3/GTPV1-U/gtpv1u_teid_pool.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/AUTHORS b/openair3/GTPV1-U/nw-gtpv1u/AUTHORS old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/COPYING b/openair3/GTPV1-U/nw-gtpv1u/COPYING old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/ChangeLog b/openair3/GTPV1-U/nw-gtpv1u/ChangeLog old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/NEWS b/openair3/GTPV1-U/nw-gtpv1u/NEWS old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/README b/openair3/GTPV1-U/nw-gtpv1u/README old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am b/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in b/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.am b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.in b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.in old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h old mode 100644 new mode 100755 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/Makefile b/openair3/NAS/COMMON/API/NETWORK/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/as_message.c b/openair3/NAS/COMMON/API/NETWORK/as_message.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/as_message.h b/openair3/NAS/COMMON/API/NETWORK/as_message.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/l2_message.h b/openair3/NAS/COMMON/API/NETWORK/l2_message.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/nas_message.c b/openair3/NAS/COMMON/API/NETWORK/nas_message.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/nas_message.h b/openair3/NAS/COMMON/API/NETWORK/nas_message.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/network_api.c b/openair3/NAS/COMMON/API/NETWORK/network_api.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/API/NETWORK/network_api.h b/openair3/NAS/COMMON/API/NETWORK/network_api.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachAccept.c b/openair3/NAS/COMMON/EMM/MSG/AttachAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachAccept.h b/openair3/NAS/COMMON/EMM/MSG/AttachAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachComplete.c b/openair3/NAS/COMMON/EMM/MSG/AttachComplete.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachComplete.h b/openair3/NAS/COMMON/EMM/MSG/AttachComplete.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachReject.c b/openair3/NAS/COMMON/EMM/MSG/AttachReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachReject.h b/openair3/NAS/COMMON/EMM/MSG/AttachReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachRequest.c b/openair3/NAS/COMMON/EMM/MSG/AttachRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachRequest.h b/openair3/NAS/COMMON/EMM/MSG/AttachRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c b/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h b/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachAccept.c b/openair3/NAS/COMMON/EMM/MSG/DetachAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachAccept.h b/openair3/NAS/COMMON/EMM/MSG/DetachAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachRequest.c b/openair3/NAS/COMMON/EMM/MSG/DetachRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachRequest.h b/openair3/NAS/COMMON/EMM/MSG/DetachRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c b/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h b/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmInformation.c b/openair3/NAS/COMMON/EMM/MSG/EmmInformation.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmInformation.h b/openair3/NAS/COMMON/EMM/MSG/EmmInformation.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmStatus.c b/openair3/NAS/COMMON/EMM/MSG/EmmStatus.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmStatus.h b/openair3/NAS/COMMON/EMM/MSG/EmmStatus.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c b/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h b/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c b/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h b/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c b/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h b/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/Makefile b/openair3/NAS/COMMON/EMM/MSG/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h b/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h b/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c b/openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c b/openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c b/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h b/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceReject.c b/openair3/NAS/COMMON/EMM/MSG/ServiceReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceReject.h b/openair3/NAS/COMMON/EMM/MSG/ServiceReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c b/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h b/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c b/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h b/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_cause.h b/openair3/NAS/COMMON/EMM/MSG/emm_cause.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_msg.c b/openair3/NAS/COMMON/EMM/MSG/emm_msg.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_msg.h b/openair3/NAS/COMMON/EMM/MSG/emm_msg.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h b/openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c b/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h b/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c b/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h b/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmStatus.c b/openair3/NAS/COMMON/ESM/MSG/EsmStatus.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmStatus.h b/openair3/NAS/COMMON/ESM/MSG/EsmStatus.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/Makefile b/openair3/NAS/COMMON/ESM/MSG/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_cause.h b/openair3/NAS/COMMON/ESM/MSG/esm_cause.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_msg.c b/openair3/NAS/COMMON/ESM/MSG/esm_msg.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_msg.h b/openair3/NAS/COMMON/ESM/MSG/esm_msg.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h b/openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AccessPointName.c b/openair3/NAS/COMMON/IES/AccessPointName.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AccessPointName.h b/openair3/NAS/COMMON/IES/AccessPointName.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateResult.c b/openair3/NAS/COMMON/IES/AdditionalUpdateResult.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateResult.h b/openair3/NAS/COMMON/IES/AdditionalUpdateResult.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateType.c b/openair3/NAS/COMMON/IES/AdditionalUpdateType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateType.h b/openair3/NAS/COMMON/IES/AdditionalUpdateType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c b/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h b/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c b/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h b/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c b/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h b/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterRand.c b/openair3/NAS/COMMON/IES/AuthenticationParameterRand.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterRand.h b/openair3/NAS/COMMON/IES/AuthenticationParameterRand.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c b/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h b/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c b/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h b/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/Cli.c b/openair3/NAS/COMMON/IES/Cli.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/Cli.h b/openair3/NAS/COMMON/IES/Cli.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/CsfbResponse.c b/openair3/NAS/COMMON/IES/CsfbResponse.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/CsfbResponse.h b/openair3/NAS/COMMON/IES/CsfbResponse.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/DaylightSavingTime.c b/openair3/NAS/COMMON/IES/DaylightSavingTime.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/DaylightSavingTime.h b/openair3/NAS/COMMON/IES/DaylightSavingTime.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/DetachType.c b/openair3/NAS/COMMON/IES/DetachType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/DetachType.h b/openair3/NAS/COMMON/IES/DetachType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/DrxParameter.c b/openair3/NAS/COMMON/IES/DrxParameter.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/DrxParameter.h b/openair3/NAS/COMMON/IES/DrxParameter.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EmergencyNumberList.c b/openair3/NAS/COMMON/IES/EmergencyNumberList.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EmergencyNumberList.h b/openair3/NAS/COMMON/IES/EmergencyNumberList.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EmmCause.c b/openair3/NAS/COMMON/IES/EmmCause.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EmmCause.h b/openair3/NAS/COMMON/IES/EmmCause.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsAttachResult.c b/openair3/NAS/COMMON/IES/EpsAttachResult.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsAttachResult.h b/openair3/NAS/COMMON/IES/EpsAttachResult.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsAttachType.c b/openair3/NAS/COMMON/IES/EpsAttachType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsAttachType.h b/openair3/NAS/COMMON/IES/EpsAttachType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsBearerContextStatus.c b/openair3/NAS/COMMON/IES/EpsBearerContextStatus.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsBearerContextStatus.h b/openair3/NAS/COMMON/IES/EpsBearerContextStatus.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsBearerIdentity.c b/openair3/NAS/COMMON/IES/EpsBearerIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsBearerIdentity.h b/openair3/NAS/COMMON/IES/EpsBearerIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsMobileIdentity.c b/openair3/NAS/COMMON/IES/EpsMobileIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsMobileIdentity.h b/openair3/NAS/COMMON/IES/EpsMobileIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c b/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h b/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsQualityOfService.c b/openair3/NAS/COMMON/IES/EpsQualityOfService.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsQualityOfService.h b/openair3/NAS/COMMON/IES/EpsQualityOfService.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateResult.c b/openair3/NAS/COMMON/IES/EpsUpdateResult.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateResult.h b/openair3/NAS/COMMON/IES/EpsUpdateResult.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateType.c b/openair3/NAS/COMMON/IES/EpsUpdateType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateType.h b/openair3/NAS/COMMON/IES/EpsUpdateType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EsmCause.c b/openair3/NAS/COMMON/IES/EsmCause.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EsmCause.h b/openair3/NAS/COMMON/IES/EsmCause.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c b/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h b/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EsmMessageContainer.c b/openair3/NAS/COMMON/IES/EsmMessageContainer.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/EsmMessageContainer.h b/openair3/NAS/COMMON/IES/EsmMessageContainer.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/GprsTimer.c b/openair3/NAS/COMMON/IES/GprsTimer.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/GprsTimer.h b/openair3/NAS/COMMON/IES/GprsTimer.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/GutiType.c b/openair3/NAS/COMMON/IES/GutiType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/GutiType.h b/openair3/NAS/COMMON/IES/GutiType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/IdentityType2.c b/openair3/NAS/COMMON/IES/IdentityType2.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/IdentityType2.h b/openair3/NAS/COMMON/IES/IdentityType2.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ImeisvRequest.c b/openair3/NAS/COMMON/IES/ImeisvRequest.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ImeisvRequest.h b/openair3/NAS/COMMON/IES/ImeisvRequest.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c b/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h b/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LcsClientIdentity.c b/openair3/NAS/COMMON/IES/LcsClientIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LcsClientIdentity.h b/openair3/NAS/COMMON/IES/LcsClientIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LcsIndicator.c b/openair3/NAS/COMMON/IES/LcsIndicator.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LcsIndicator.h b/openair3/NAS/COMMON/IES/LcsIndicator.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c b/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h b/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c b/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h b/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LocationAreaIdentification.c b/openair3/NAS/COMMON/IES/LocationAreaIdentification.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/LocationAreaIdentification.h b/openair3/NAS/COMMON/IES/LocationAreaIdentification.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/Makefile b/openair3/NAS/COMMON/IES/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MessageType.c b/openair3/NAS/COMMON/IES/MessageType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MessageType.h b/openair3/NAS/COMMON/IES/MessageType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MobileIdentity.c b/openair3/NAS/COMMON/IES/MobileIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MobileIdentity.h b/openair3/NAS/COMMON/IES/MobileIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark2.c b/openair3/NAS/COMMON/IES/MobileStationClassmark2.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark2.h b/openair3/NAS/COMMON/IES/MobileStationClassmark2.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark3.c b/openair3/NAS/COMMON/IES/MobileStationClassmark3.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark3.h b/openair3/NAS/COMMON/IES/MobileStationClassmark3.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MsNetworkCapability.c b/openair3/NAS/COMMON/IES/MsNetworkCapability.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MsNetworkCapability.h b/openair3/NAS/COMMON/IES/MsNetworkCapability.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c b/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h b/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasKeySetIdentifier.c b/openair3/NAS/COMMON/IES/NasKeySetIdentifier.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasKeySetIdentifier.h b/openair3/NAS/COMMON/IES/NasKeySetIdentifier.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasMessageContainer.c b/openair3/NAS/COMMON/IES/NasMessageContainer.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasMessageContainer.h b/openair3/NAS/COMMON/IES/NasMessageContainer.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasRequestType.c b/openair3/NAS/COMMON/IES/NasRequestType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasRequestType.h b/openair3/NAS/COMMON/IES/NasRequestType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c b/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h b/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NetworkName.c b/openair3/NAS/COMMON/IES/NetworkName.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/NetworkName.h b/openair3/NAS/COMMON/IES/NetworkName.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/Nonce.c b/openair3/NAS/COMMON/IES/Nonce.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/Nonce.h b/openair3/NAS/COMMON/IES/Nonce.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PTmsiSignature.c b/openair3/NAS/COMMON/IES/PTmsiSignature.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PTmsiSignature.h b/openair3/NAS/COMMON/IES/PTmsiSignature.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PacketFlowIdentifier.c b/openair3/NAS/COMMON/IES/PacketFlowIdentifier.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PacketFlowIdentifier.h b/openair3/NAS/COMMON/IES/PacketFlowIdentifier.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PagingIdentity.c b/openair3/NAS/COMMON/IES/PagingIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PagingIdentity.h b/openair3/NAS/COMMON/IES/PagingIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PdnAddress.c b/openair3/NAS/COMMON/IES/PdnAddress.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PdnAddress.h b/openair3/NAS/COMMON/IES/PdnAddress.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PdnType.c b/openair3/NAS/COMMON/IES/PdnType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PdnType.h b/openair3/NAS/COMMON/IES/PdnType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PlmnList.c b/openair3/NAS/COMMON/IES/PlmnList.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/PlmnList.h b/openair3/NAS/COMMON/IES/PlmnList.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c b/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h b/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c b/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h b/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ProtocolDiscriminator.c b/openair3/NAS/COMMON/IES/ProtocolDiscriminator.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ProtocolDiscriminator.h b/openair3/NAS/COMMON/IES/ProtocolDiscriminator.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/QualityOfService.c b/openair3/NAS/COMMON/IES/QualityOfService.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/QualityOfService.h b/openair3/NAS/COMMON/IES/QualityOfService.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/RadioPriority.c b/openair3/NAS/COMMON/IES/RadioPriority.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/RadioPriority.h b/openair3/NAS/COMMON/IES/RadioPriority.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/SecurityHeaderType.c b/openair3/NAS/COMMON/IES/SecurityHeaderType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/SecurityHeaderType.h b/openair3/NAS/COMMON/IES/SecurityHeaderType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ServiceType.c b/openair3/NAS/COMMON/IES/ServiceType.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ServiceType.h b/openair3/NAS/COMMON/IES/ServiceType.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ShortMac.c b/openair3/NAS/COMMON/IES/ShortMac.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/ShortMac.h b/openair3/NAS/COMMON/IES/ShortMac.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/SsCode.c b/openair3/NAS/COMMON/IES/SsCode.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/SsCode.h b/openair3/NAS/COMMON/IES/SsCode.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/SupportedCodecList.c b/openair3/NAS/COMMON/IES/SupportedCodecList.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/SupportedCodecList.h b/openair3/NAS/COMMON/IES/SupportedCodecList.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TimeZone.c b/openair3/NAS/COMMON/IES/TimeZone.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TimeZone.h b/openair3/NAS/COMMON/IES/TimeZone.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TimeZoneAndTime.c b/openair3/NAS/COMMON/IES/TimeZoneAndTime.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TimeZoneAndTime.h b/openair3/NAS/COMMON/IES/TimeZoneAndTime.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TmsiStatus.c b/openair3/NAS/COMMON/IES/TmsiStatus.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TmsiStatus.h b/openair3/NAS/COMMON/IES/TmsiStatus.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentity.c b/openair3/NAS/COMMON/IES/TrackingAreaIdentity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentity.h b/openair3/NAS/COMMON/IES/TrackingAreaIdentity.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c b/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h b/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c b/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h b/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowTemplate.c b/openair3/NAS/COMMON/IES/TrafficFlowTemplate.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowTemplate.h b/openair3/NAS/COMMON/IES/TrafficFlowTemplate.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TransactionIdentifier.c b/openair3/NAS/COMMON/IES/TransactionIdentifier.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/TransactionIdentifier.h b/openair3/NAS/COMMON/IES/TransactionIdentifier.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/UeNetworkCapability.c b/openair3/NAS/COMMON/IES/UeNetworkCapability.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/UeNetworkCapability.h b/openair3/NAS/COMMON/IES/UeNetworkCapability.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c b/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h b/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/UeSecurityCapability.c b/openair3/NAS/COMMON/IES/UeSecurityCapability.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/UeSecurityCapability.h b/openair3/NAS/COMMON/IES/UeSecurityCapability.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c b/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h b/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/Makefile b/openair3/NAS/COMMON/UTIL/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/OctetString.c b/openair3/NAS/COMMON/UTIL/OctetString.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/OctetString.h b/openair3/NAS/COMMON/UTIL/OctetString.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/TLVDecoder.c b/openair3/NAS/COMMON/UTIL/TLVDecoder.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/TLVDecoder.h b/openair3/NAS/COMMON/UTIL/TLVDecoder.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/TLVEncoder.c b/openair3/NAS/COMMON/UTIL/TLVEncoder.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/TLVEncoder.h b/openair3/NAS/COMMON/UTIL/TLVEncoder.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/device.c b/openair3/NAS/COMMON/UTIL/device.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/device.h b/openair3/NAS/COMMON/UTIL/device.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/memory.c b/openair3/NAS/COMMON/UTIL/memory.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/memory.h b/openair3/NAS/COMMON/UTIL/memory.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/nas_log.c b/openair3/NAS/COMMON/UTIL/nas_log.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/nas_log.h b/openair3/NAS/COMMON/UTIL/nas_log.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/nas_timer.c b/openair3/NAS/COMMON/UTIL/nas_timer.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/nas_timer.h b/openair3/NAS/COMMON/UTIL/nas_timer.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/parser.c b/openair3/NAS/COMMON/UTIL/parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/parser.h b/openair3/NAS/COMMON/UTIL/parser.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/socket.c b/openair3/NAS/COMMON/UTIL/socket.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/socket.h b/openair3/NAS/COMMON/UTIL/socket.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/stty.c b/openair3/NAS/COMMON/UTIL/stty.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/tst/Makefile b/openair3/NAS/COMMON/UTIL/tst/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/tst/timer.c b/openair3/NAS/COMMON/UTIL/tst/timer.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/UTIL/tst/timer_debug.txt b/openair3/NAS/COMMON/UTIL/tst/timer_debug.txt old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/commonDef.h b/openair3/NAS/COMMON/commonDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/networkDef.h b/openair3/NAS/COMMON/networkDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/securityDef.h b/openair3/NAS/COMMON/securityDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/COMMON/userDef.h b/openair3/NAS/COMMON/userDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/Makefile b/openair3/NAS/TEST/AS_SIMULATOR/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_data.c b/openair3/NAS/TEST/AS_SIMULATOR/as_data.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_data.h b/openair3/NAS/TEST/AS_SIMULATOR/as_data.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_process.c b/openair3/NAS/TEST/AS_SIMULATOR/as_process.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_process.h b/openair3/NAS/TEST/AS_SIMULATOR/as_process.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_data.c b/openair3/NAS/TEST/AS_SIMULATOR/nas_data.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_data.h b/openair3/NAS/TEST/AS_SIMULATOR/nas_data.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c b/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_process.h b/openair3/NAS/TEST/AS_SIMULATOR/nas_process.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/ActivatePDN.png b/openair3/NAS/TEST/MSC/ActivatePDN.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/AuthenticationReject.png b/openair3/NAS/TEST/MSC/AuthenticationReject.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/DeactivatePDN.png b/openair3/NAS/TEST/MSC/DeactivatePDN.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/InitialAttach.png b/openair3/NAS/TEST/MSC/InitialAttach.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/InitialAttachReject.png b/openair3/NAS/TEST/MSC/InitialAttachReject.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/NomalDetach.png b/openair3/NAS/TEST/MSC/NomalDetach.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/README b/openair3/NAS/TEST/MSC/README old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/MSC/SwitchOffDetach.png b/openair3/NAS/TEST/MSC/SwitchOffDetach.png old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/NETWORK/Makefile b/openair3/NAS/TEST/NETWORK/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/NETWORK/README b/openair3/NAS/TEST/NETWORK/README old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/NETWORK/network_parser.c b/openair3/NAS/TEST/NETWORK/network_parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/NETWORK/network_parser.h b/openair3/NAS/TEST/NETWORK/network_parser.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/NETWORK/network_simulator.c b/openair3/NAS/TEST/NETWORK/network_simulator.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/USER/Makefile b/openair3/NAS/TEST/USER/Makefile old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/USER/user_parser.c b/openair3/NAS/TEST/USER/user_parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/USER/user_parser.h b/openair3/NAS/TEST/USER/user_parser.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TEST/USER/user_simulator.c b/openair3/NAS/TEST/USER/user_simulator.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf2uedata.c b/openair3/NAS/TOOLS/conf2uedata.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf2uedata.h b/openair3/NAS/TOOLS/conf2uedata.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_emm.c b/openair3/NAS/TOOLS/conf_emm.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_emm.h b/openair3/NAS/TOOLS/conf_emm.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_network.c b/openair3/NAS/TOOLS/conf_network.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_network.h b/openair3/NAS/TOOLS/conf_network.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_parser.c b/openair3/NAS/TOOLS/conf_parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_parser.h b/openair3/NAS/TOOLS/conf_parser.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_user_data.c b/openair3/NAS/TOOLS/conf_user_data.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_user_data.h b/openair3/NAS/TOOLS/conf_user_data.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_user_plmn.c b/openair3/NAS/TOOLS/conf_user_plmn.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_user_plmn.h b/openair3/NAS/TOOLS/conf_user_plmn.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_usim.c b/openair3/NAS/TOOLS/conf_usim.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/conf_usim.h b/openair3/NAS/TOOLS/conf_usim.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/display.c b/openair3/NAS/TOOLS/display.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/display.h b/openair3/NAS/TOOLS/display.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/fs.c b/openair3/NAS/TOOLS/fs.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/fs.h b/openair3/NAS/TOOLS/fs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/network.h b/openair3/NAS/TOOLS/network.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/nvram.c b/openair3/NAS/TOOLS/nvram.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/ue_bcom_test.conf b/openair3/NAS/TOOLS/ue_bcom_test.conf old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf b/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/ue_tcl_test.conf b/openair3/NAS/TOOLS/ue_tcl_test.conf old mode 100644 new mode 100755 diff --git a/openair3/NAS/TOOLS/usim.c b/openair3/NAS/TOOLS/usim.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/at_command.c b/openair3/NAS/UE/API/USER/at_command.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/at_command.h b/openair3/NAS/UE/API/USER/at_command.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/at_error.c b/openair3/NAS/UE/API/USER/at_error.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/at_error.h b/openair3/NAS/UE/API/USER/at_error.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/at_response.c b/openair3/NAS/UE/API/USER/at_response.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/at_response.h b/openair3/NAS/UE/API/USER/at_response.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.c b/openair3/NAS/UE/API/USER/tst/at_parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.in b/openair3/NAS/UE/API/USER/tst/at_parser.in old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.in.bis b/openair3/NAS/UE/API/USER/tst/at_parser.in.bis old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.out b/openair3/NAS/UE/API/USER/tst/at_parser.out old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.out.bis b/openair3/NAS/UE/API/USER/tst/at_parser.out.bis old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/tst/smartcom.txt b/openair3/NAS/UE/API/USER/tst/smartcom.txt old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/user_api.c b/openair3/NAS/UE/API/USER/user_api.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/user_api.h b/openair3/NAS/UE/API/USER/user_api.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/user_api_defs.h b/openair3/NAS/UE/API/USER/user_api_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/user_indication.c b/openair3/NAS/UE/API/USER/user_indication.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USER/user_indication.h b/openair3/NAS/UE/API/USER/user_indication.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USIM/aka_functions.c b/openair3/NAS/UE/API/USIM/aka_functions.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USIM/aka_functions.h b/openair3/NAS/UE/API/USIM/aka_functions.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USIM/usim_api.c b/openair3/NAS/UE/API/USIM/usim_api.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/API/USIM/usim_api.h b/openair3/NAS/UE/API/USIM/usim_api.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/Attach.c b/openair3/NAS/UE/EMM/Attach.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/Authentication.c b/openair3/NAS/UE/EMM/Authentication.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/Authentication.h b/openair3/NAS/UE/EMM/Authentication.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/Detach.c b/openair3/NAS/UE/EMM/Detach.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/EmmStatusHdl.c b/openair3/NAS/UE/EMM/EmmStatusHdl.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/Identification.c b/openair3/NAS/UE/EMM/Identification.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/IdleMode.c b/openair3/NAS/UE/EMM/IdleMode.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/IdleMode.h b/openair3/NAS/UE/EMM/IdleMode.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/IdleMode_defs.h b/openair3/NAS/UE/EMM/IdleMode_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/LowerLayer.c b/openair3/NAS/UE/EMM/LowerLayer.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/LowerLayer.h b/openair3/NAS/UE/EMM/LowerLayer.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/LowerLayer_defs.h b/openair3/NAS/UE/EMM/LowerLayer_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregistered.c b/openair3/NAS/UE/EMM/SAP/EmmDeregistered.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmNull.c b/openair3/NAS/UE/EMM/SAP/EmmNull.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegistered.c b/openair3/NAS/UE/EMM/SAP/EmmRegistered.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.h b/openair3/NAS/UE/EMM/SAP/emm_as.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_asDef.h b/openair3/NAS/UE/EMM/SAP/emm_asDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.c b/openair3/NAS/UE/EMM/SAP/emm_esm.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.h b/openair3/NAS/UE/EMM/SAP/emm_esm.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_esmDef.h b/openair3/NAS/UE/EMM/SAP/emm_esmDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_fsm.c b/openair3/NAS/UE/EMM/SAP/emm_fsm.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_fsm.h b/openair3/NAS/UE/EMM/SAP/emm_fsm.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_recv.c b/openair3/NAS/UE/EMM/SAP/emm_recv.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_recv.h b/openair3/NAS/UE/EMM/SAP/emm_recv.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_reg.c b/openair3/NAS/UE/EMM/SAP/emm_reg.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_reg.h b/openair3/NAS/UE/EMM/SAP/emm_reg.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_regDef.h b/openair3/NAS/UE/EMM/SAP/emm_regDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_sap.c b/openair3/NAS/UE/EMM/SAP/emm_sap.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_sap.h b/openair3/NAS/UE/EMM/SAP/emm_sap.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_send.c b/openair3/NAS/UE/EMM/SAP/emm_send.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SAP/emm_send.h b/openair3/NAS/UE/EMM/SAP/emm_send.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SecurityModeControl.c b/openair3/NAS/UE/EMM/SecurityModeControl.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/SecurityModeControl.h b/openair3/NAS/UE/EMM/SecurityModeControl.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/ServiceRequestHdl.c b/openair3/NAS/UE/EMM/ServiceRequestHdl.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/TrackingAreaUpdate.c b/openair3/NAS/UE/EMM/TrackingAreaUpdate.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emmData.h b/openair3/NAS/UE/EMM/emmData.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emm_fsm_defs.h b/openair3/NAS/UE/EMM/emm_fsm_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emm_main.c b/openair3/NAS/UE/EMM/emm_main.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emm_main.h b/openair3/NAS/UE/EMM/emm_main.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emm_proc.h b/openair3/NAS/UE/EMM/emm_proc.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emm_proc_defs.h b/openair3/NAS/UE/EMM/emm_proc_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/EMM/emm_timers.h b/openair3/NAS/UE/EMM/emm_timers.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c b/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/EsmStatusHdl.c b/openair3/NAS/UE/ESM/EsmStatusHdl.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/PdnDisconnect.c b/openair3/NAS/UE/ESM/PdnDisconnect.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_recv.c b/openair3/NAS/UE/ESM/SAP/esm_recv.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_recv.h b/openair3/NAS/UE/ESM/SAP/esm_recv.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.c b/openair3/NAS/UE/ESM/SAP/esm_sap.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.h b/openair3/NAS/UE/ESM/SAP/esm_sap.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_sapDef.h b/openair3/NAS/UE/ESM/SAP/esm_sapDef.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.c b/openair3/NAS/UE/ESM/SAP/esm_send.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.h b/openair3/NAS/UE/ESM/SAP/esm_send.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esmData.h b/openair3/NAS/UE/ESM/esmData.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_ebr.c b/openair3/NAS/UE/ESM/esm_ebr.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_ebr.h b/openair3/NAS/UE/ESM/esm_ebr.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.c b/openair3/NAS/UE/ESM/esm_ebr_context.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.h b/openair3/NAS/UE/ESM/esm_ebr_context.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_ip.c b/openair3/NAS/UE/ESM/esm_ip.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_main.c b/openair3/NAS/UE/ESM/esm_main.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_main.h b/openair3/NAS/UE/ESM/esm_main.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_proc.h b/openair3/NAS/UE/ESM/esm_proc.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_pt.h b/openair3/NAS/UE/ESM/esm_pt.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/ESM/esm_pt_defs.h b/openair3/NAS/UE/ESM/esm_pt_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/UEprocess.c b/openair3/NAS/UE/UEprocess.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_itti_messaging.c b/openair3/NAS/UE/nas_itti_messaging.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_itti_messaging.h b/openair3/NAS/UE/nas_itti_messaging.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_network.c b/openair3/NAS/UE/nas_network.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_network.h b/openair3/NAS/UE/nas_network.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_parser.c b/openair3/NAS/UE/nas_parser.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_parser.h b/openair3/NAS/UE/nas_parser.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_proc.c b/openair3/NAS/UE/nas_proc.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_proc.h b/openair3/NAS/UE/nas_proc.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_proc_defs.h b/openair3/NAS/UE/nas_proc_defs.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_ue_task.h b/openair3/NAS/UE/nas_ue_task.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_user.c b/openair3/NAS/UE/nas_user.c old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/nas_user.h b/openair3/NAS/UE/nas_user.h old mode 100644 new mode 100755 diff --git a/openair3/NAS/UE/user_defs.h b/openair3/NAS/UE/user_defs.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn b/openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn b/openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn b/openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/README b/openair3/S1AP/MESSAGES/ASN1/README old mode 100644 new mode 100755 diff --git a/openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py b/openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_common.c b/openair3/S1AP/s1ap_common.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_common.h b/openair3/S1AP/s1ap_common.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB.c b/openair3/S1AP/s1ap_eNB.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB.h b/openair3/S1AP/s1ap_eNB.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.c b/openair3/S1AP/s1ap_eNB_context_management_procedures.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.h b/openair3/S1AP/s1ap_eNB_context_management_procedures.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_decoder.c b/openair3/S1AP/s1ap_eNB_decoder.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_decoder.h b/openair3/S1AP/s1ap_eNB_decoder.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_default_values.h b/openair3/S1AP/s1ap_eNB_default_values.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_defs.h b/openair3/S1AP/s1ap_eNB_defs.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_encoder.c b/openair3/S1AP/s1ap_eNB_encoder.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_encoder.h b/openair3/S1AP/s1ap_eNB_encoder.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_handlers.h b/openair3/S1AP/s1ap_eNB_handlers.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_itti_messaging.c b/openair3/S1AP/s1ap_eNB_itti_messaging.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_itti_messaging.h b/openair3/S1AP/s1ap_eNB_itti_messaging.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_management_procedures.c b/openair3/S1AP/s1ap_eNB_management_procedures.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_management_procedures.h b/openair3/S1AP/s1ap_eNB_management_procedures.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.c b/openair3/S1AP/s1ap_eNB_nas_procedures.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.h b/openair3/S1AP/s1ap_eNB_nas_procedures.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_nnsf.c b/openair3/S1AP/s1ap_eNB_nnsf.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_nnsf.h b/openair3/S1AP/s1ap_eNB_nnsf.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_overload.c b/openair3/S1AP/s1ap_eNB_overload.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_overload.h b/openair3/S1AP/s1ap_eNB_overload.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_trace.h b/openair3/S1AP/s1ap_eNB_trace.h old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_ue_context.c b/openair3/S1AP/s1ap_eNB_ue_context.c old mode 100644 new mode 100755 diff --git a/openair3/S1AP/s1ap_eNB_ue_context.h b/openair3/S1AP/s1ap_eNB_ue_context.h old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_common.c b/openair3/SCTP/sctp_common.c old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_common.h b/openair3/SCTP/sctp_common.h old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_default_values.h b/openair3/SCTP/sctp_default_values.h old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_eNB_defs.h b/openair3/SCTP/sctp_eNB_defs.h old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.c b/openair3/SCTP/sctp_eNB_itti_messaging.c old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.h b/openair3/SCTP/sctp_eNB_itti_messaging.h old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_eNB_task.h b/openair3/SCTP/sctp_eNB_task.h old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_primitives_client.c b/openair3/SCTP/sctp_primitives_client.c old mode 100644 new mode 100755 diff --git a/openair3/SCTP/sctp_primitives_client.h b/openair3/SCTP/sctp_primitives_client.h old mode 100644 new mode 100755 diff --git a/openair3/SECU/kdf.c b/openair3/SECU/kdf.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/key_nas_deriver.c b/openair3/SECU/key_nas_deriver.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/key_nas_encryption.c b/openair3/SECU/key_nas_encryption.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/nas_stream_eea1.c b/openair3/SECU/nas_stream_eea1.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/nas_stream_eea2.c b/openair3/SECU/nas_stream_eea2.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/nas_stream_eia1.c b/openair3/SECU/nas_stream_eia1.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/nas_stream_eia2.c b/openair3/SECU/nas_stream_eia2.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/rijndael.c b/openair3/SECU/rijndael.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/rijndael.h b/openair3/SECU/rijndael.h old mode 100644 new mode 100755 diff --git a/openair3/SECU/secu_defs.h b/openair3/SECU/secu_defs.h old mode 100644 new mode 100755 diff --git a/openair3/SECU/snow3g.c b/openair3/SECU/snow3g.c old mode 100644 new mode 100755 diff --git a/openair3/SECU/snow3g.h b/openair3/SECU/snow3g.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/generate_scenario.c b/openair3/TEST/EPC_TEST/generate_scenario.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/generate_scenario.h b/openair3/TEST/EPC_TEST/generate_scenario.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario.c b/openair3/TEST/EPC_TEST/play_scenario.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario.h b/openair3/TEST/EPC_TEST/play_scenario.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_decode.c b/openair3/TEST/EPC_TEST/play_scenario_decode.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_display.c b/openair3/TEST/EPC_TEST/play_scenario_display.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_fsm.c b/openair3/TEST/EPC_TEST/play_scenario_fsm.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_parse.c b/openair3/TEST/EPC_TEST/play_scenario_parse.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h b/openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/EPC_TEST/play_scenario_sctp.c b/openair3/TEST/EPC_TEST/play_scenario_sctp.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/Makefile.am b/openair3/TEST/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_client_test.c b/openair3/TEST/oaisim_mme_client_test.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_itti_test.c b/openair3/TEST/oaisim_mme_itti_test.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_list_benchmark.c b/openair3/TEST/oaisim_mme_list_benchmark.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_s1ap_test.c b/openair3/TEST/oaisim_mme_s1ap_test.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_sctp_test.c b/openair3/TEST/oaisim_mme_sctp_test.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c.c b/openair3/TEST/oaisim_mme_test_s1c.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c.h b/openair3/TEST/oaisim_mme_test_s1c.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c_s1ap.c b/openair3/TEST/oaisim_mme_test_s1c_s1ap.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c_s1ap.h b/openair3/TEST/oaisim_mme_test_s1c_s1ap.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c_scenario.c b/openair3/TEST/oaisim_mme_test_s1c_scenario.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c_scenario.h b/openair3/TEST/oaisim_mme_test_s1c_scenario.h old mode 100644 new mode 100755 diff --git a/openair3/TEST/oaisim_mme_test_s1c_scenario1.c b/openair3/TEST/oaisim_mme_test_s1c_scenario1.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_aes128_cmac_encrypt.c b/openair3/TEST/test_aes128_cmac_encrypt.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_aes128_ctr_decrypt.c b/openair3/TEST/test_aes128_ctr_decrypt.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_aes128_ctr_encrypt.c b/openair3/TEST/test_aes128_ctr_encrypt.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_kdf.c b/openair3/TEST/test_kdf.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_s1ap.c b/openair3/TEST/test_s1ap.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu.c b/openair3/TEST/test_secu.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_kenb.c b/openair3/TEST/test_secu_kenb.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_knas.c b/openair3/TEST/test_secu_knas.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_knas_encrypt_eea1.c b/openair3/TEST/test_secu_knas_encrypt_eea1.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_knas_encrypt_eea2.c b/openair3/TEST/test_secu_knas_encrypt_eea2.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_knas_encrypt_eia1.c b/openair3/TEST/test_secu_knas_encrypt_eia1.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_knas_encrypt_eia2.c b/openair3/TEST/test_secu_knas_encrypt_eia2.c old mode 100644 new mode 100755 diff --git a/openair3/TEST/test_secu_knas_stream_int.c b/openair3/TEST/test_secu_knas_stream_int.c old mode 100644 new mode 100755 diff --git a/openair3/UDP/udp_eNB_task.c b/openair3/UDP/udp_eNB_task.c old mode 100644 new mode 100755 diff --git a/openair3/UDP/udp_eNB_task.h b/openair3/UDP/udp_eNB_task.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/CONF/COPYING b/openair3/UTILS/CONF/COPYING old mode 100644 new mode 100755 diff --git a/openair3/UTILS/Makefile.am b/openair3/UTILS/Makefile.am old mode 100644 new mode 100755 diff --git a/openair3/UTILS/conversions.c b/openair3/UTILS/conversions.c old mode 100644 new mode 100755 diff --git a/openair3/UTILS/conversions.h b/openair3/UTILS/conversions.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/enum_string.c b/openair3/UTILS/enum_string.c old mode 100644 new mode 100755 diff --git a/openair3/UTILS/enum_string.h b/openair3/UTILS/enum_string.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/log.c b/openair3/UTILS/log.c old mode 100644 new mode 100755 diff --git a/openair3/UTILS/log.h b/openair3/UTILS/log.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mcc_mnc_itu.c b/openair3/UTILS/mcc_mnc_itu.c old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mcc_mnc_itu.h b/openair3/UTILS/mcc_mnc_itu.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mme_config.c b/openair3/UTILS/mme_config.c old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mme_config.h b/openair3/UTILS/mme_config.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mme_default_values.h b/openair3/UTILS/mme_default_values.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mme_parser.y b/openair3/UTILS/mme_parser.y old mode 100644 new mode 100755 diff --git a/openair3/UTILS/mme_scanner.l b/openair3/UTILS/mme_scanner.l old mode 100644 new mode 100755 diff --git a/openair3/UTILS/queue.h b/openair3/UTILS/queue.h old mode 100644 new mode 100755 diff --git a/openair3/UTILS/tree.h b/openair3/UTILS/tree.h old mode 100644 new mode 100755 diff --git a/openair3/valgrind.sh b/openair3/valgrind.sh old mode 100644 new mode 100755 diff --git a/pre-commit b/pre-commit old mode 100644 new mode 100755 diff --git a/svn2git/README.txt b/svn2git/README.txt old mode 100644 new mode 100755 diff --git a/svn2git/authors.txt b/svn2git/authors.txt old mode 100644 new mode 100755 diff --git a/svn2git/authors_original.txt b/svn2git/authors_original.txt old mode 100644 new mode 100755 diff --git a/svn2git/authors_original_java_output.txt b/svn2git/authors_original_java_output.txt old mode 100644 new mode 100755 diff --git a/svn2git/git-author-rewrite.sh b/svn2git/git-author-rewrite.sh old mode 100644 new mode 100755 diff --git a/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c b/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h b/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/COMMON/common_lib.c b/targets/ARCH/COMMON/common_lib.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc b/targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc old mode 100644 new mode 100755 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h b/targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi b/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs b/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm b/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit b/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf b/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk b/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd b/targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd b/targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd b/targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DEFS/openair_device.h b/targets/ARCH/EXMIMO/DEFS/openair_device.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DEFS/pcie_interface.h b/targets/ARCH/EXMIMO/DEFS/pcie_interface.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh b/targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h b/targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h b/targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h b/targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh b/targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h b/targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h b/targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h b/targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/readme.txt b/targets/ARCH/EXMIMO/DRIVER/readme.txt old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/Makefile b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/Makefile old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile b/targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/example.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/example.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h b/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h b/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m old mode 100644 new mode 100755 diff --git a/targets/ARCH/LMSSDR/LimeSDR.ini b/targets/ARCH/LMSSDR/LimeSDR.ini old mode 100644 new mode 100755 diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp old mode 100644 new mode 100755 diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp old mode 100644 new mode 100755 diff --git a/targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc b/targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc old mode 100644 new mode 100755 diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp old mode 100644 new mode 100755 diff --git a/targets/COMMON/Makefile.inc b/targets/COMMON/Makefile.inc old mode 100644 new mode 100755 diff --git a/targets/COMMON/create_tasks.c b/targets/COMMON/create_tasks.c old mode 100644 new mode 100755 diff --git a/targets/COMMON/create_tasks.h b/targets/COMMON/create_tasks.h old mode 100644 new mode 100755 diff --git a/targets/COMMON/openairinterface5g_limits.h b/targets/COMMON/openairinterface5g_limits.h old mode 100644 new mode 100755 diff --git a/targets/COMMON/threads_t.h b/targets/COMMON/threads_t.h old mode 100644 new mode 100755 diff --git a/targets/DOCS/Doxyfile b/targets/DOCS/Doxyfile old mode 100644 new mode 100755 diff --git a/targets/DOCS/api_icic.xml b/targets/DOCS/api_icic.xml old mode 100644 new mode 100755 diff --git a/targets/DOCS/images/oai_logo.png b/targets/DOCS/images/oai_logo.png old mode 100644 new mode 100755 diff --git a/targets/DOCS/oaiemu.doc b/targets/DOCS/oaiemu.doc old mode 100644 new mode 100755 diff --git a/targets/DOCS/oaisim_walkthrough.pdf b/targets/DOCS/oaisim_walkthrough.pdf old mode 100644 new mode 100755 diff --git a/targets/DOCS/path_loss_oaisim.xlsx b/targets/DOCS/path_loss_oaisim.xlsx old mode 100644 new mode 100755 diff --git a/targets/Makefile b/targets/Makefile old mode 100644 new mode 100755 diff --git a/targets/Makefile.common b/targets/Makefile.common old mode 100644 new mode 100755 diff --git a/targets/Makerules b/targets/Makerules old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/filesave0811.mat b/targets/PROJECTS/LOCALIZATION/filesave0811.mat old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/generation.m b/targets/PROJECTS/LOCALIZATION/generation.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/initial_sync.m b/targets/PROJECTS/LOCALIZATION/initial_sync.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/initparams.m b/targets/PROJECTS/LOCALIZATION/initparams.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/plots.m b/targets/PROJECTS/LOCALIZATION/plots.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/recup.m b/targets/PROJECTS/LOCALIZATION/recup.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/where2.m b/targets/PROJECTS/LOCALIZATION/where2.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/where2_v1_final.mat b/targets/PROJECTS/LOCALIZATION/where2_v1_final.mat old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/LOCALIZATION/where2_vf.m b/targets/PROJECTS/LOCALIZATION/where2_vf.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_ch_est.m b/targets/PROJECTS/TDDREC/f_ch_est.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_ofdm_mod.m b/targets/PROJECTS/TDDREC/f_ofdm_mod.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_ofdm_rx.m b/targets/PROJECTS/TDDREC/f_ofdm_rx.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_ofdm_tx.m b/targets/PROJECTS/TDDREC/f_ofdm_tx.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_tls_ap.m b/targets/PROJECTS/TDDREC/f_tls_ap.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_tls_diag.m b/targets/PROJECTS/TDDREC/f_tls_diag.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/f_tls_svd.m b/targets/PROJECTS/TDDREC/f_tls_svd.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/s_beamforming.m b/targets/PROJECTS/TDDREC/s_beamforming.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/s_calib.m b/targets/PROJECTS/TDDREC/s_calib.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/s_draw_F.m b/targets/PROJECTS/TDDREC/s_draw_F.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/s_init_params.m b/targets/PROJECTS/TDDREC/s_init_params.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/s_run_meas.m b/targets/PROJECTS/TDDREC/s_run_meas.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/alterproj.m b/targets/PROJECTS/TDDREC/v0/alterproj.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/beamforming.m b/targets/PROJECTS/TDDREC/v0/beamforming.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/calibration.m b/targets/PROJECTS/TDDREC/v0/calibration.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/genorthqpskseq.m b/targets/PROJECTS/TDDREC/v0/genorthqpskseq.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/genrandpskseq.m b/targets/PROJECTS/TDDREC/v0/genrandpskseq.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/initparams.m b/targets/PROJECTS/TDDREC/v0/initparams.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/initparams2.m b/targets/PROJECTS/TDDREC/v0/initparams2.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/ofdm_mod.m b/targets/PROJECTS/TDDREC/v0/ofdm_mod.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/readme.txt b/targets/PROJECTS/TDDREC/v0/readme.txt old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m b/targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m b/targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_mimo.m b/targets/PROJECTS/TDDREC/v0/runmeas_mimo.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m b/targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m b/targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m b/targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m b/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m b/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m b/targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m b/targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m old mode 100644 new mode 100755 diff --git a/targets/README.txt b/targets/README.txt old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/load_module.sh b/targets/RT/LAUNCH_SCRIPTS/load_module.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/nas_enb.sh b/targets/RT/LAUNCH_SCRIPTS/nas_enb.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/nas_ue.sh b/targets/RT/LAUNCH_SCRIPTS/nas_ue.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh b/targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh b/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh b/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh b/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_emos.sh b/targets/RT/LAUNCH_SCRIPTS/start_emos.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_rf.sh b/targets/RT/LAUNCH_SCRIPTS/start_rf.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh b/targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_ue.sh b/targets/RT/LAUNCH_SCRIPTS/start_ue.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_ue2.sh b/targets/RT/LAUNCH_SCRIPTS/start_ue2.sh old mode 100644 new mode 100755 diff --git a/targets/RT/LAUNCH_SCRIPTS/stop_rf.sh b/targets/RT/LAUNCH_SCRIPTS/stop_rf.sh old mode 100644 new mode 100755 diff --git a/targets/RT/Makefile b/targets/RT/Makefile old mode 100644 new mode 100755 diff --git a/targets/RT/USER/.runinfo b/targets/RT/USER/.runinfo old mode 100644 new mode 100755 diff --git a/targets/RT/USER/.ue.nvram b/targets/RT/USER/.ue.nvram old mode 100644 new mode 100755 diff --git a/targets/RT/USER/.ue_emm.nvram b/targets/RT/USER/.ue_emm.nvram old mode 100644 new mode 100755 diff --git a/targets/RT/USER/.usim.nvram b/targets/RT/USER/.usim.nvram old mode 100644 new mode 100755 diff --git a/targets/RT/USER/Makefile b/targets/RT/USER/Makefile old mode 100644 new mode 100755 diff --git a/targets/RT/USER/Makefile.agilent b/targets/RT/USER/Makefile.agilent old mode 100644 new mode 100755 diff --git a/targets/RT/USER/Makefile.msg_many b/targets/RT/USER/Makefile.msg_many old mode 100644 new mode 100755 diff --git a/targets/RT/USER/TOOLS/thread_ipc.c b/targets/RT/USER/TOOLS/thread_ipc.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/TOOLS/thread_ipc.h b/targets/RT/USER/TOOLS/thread_ipc.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/UE_transport_IQ.c b/targets/RT/USER/UE_transport_IQ.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/condtest.c b/targets/RT/USER/condtest.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/eNB_exmimo2.gtkw b/targets/RT/USER/eNB_exmimo2.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/eNB_transport_IQ.c b/targets/RT/USER/eNB_transport_IQ.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/eNB_usrp.gtkw b/targets/RT/USER/eNB_usrp.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/emos-raw.c b/targets/RT/USER/emos-raw.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/exmimo2_2arxg.lime b/targets/RT/USER/exmimo2_2arxg.lime old mode 100644 new mode 100755 diff --git a/targets/RT/USER/exmimo2_2brxg.lime b/targets/RT/USER/exmimo2_2brxg.lime old mode 100644 new mode 100755 diff --git a/targets/RT/USER/init_b200.sh b/targets/RT/USER/init_b200.sh old mode 100644 new mode 100755 diff --git a/targets/RT/USER/init_exmimo.sh b/targets/RT/USER/init_exmimo.sh old mode 100644 new mode 100755 diff --git a/targets/RT/USER/init_exmimo2.sh b/targets/RT/USER/init_exmimo2.sh old mode 100644 new mode 100755 diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/lte-ran.c b/targets/RT/USER/lte-ran.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/msg_helper.c b/targets/RT/USER/msg_helper.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/msg_many.c b/targets/RT/USER/msg_many.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/msg_many.h b/targets/RT/USER/msg_many.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rau_if4_single_thread.gtkw b/targets/RT/USER/rau_if4_single_thread.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rcc_if4.gtkw b/targets/RT/USER/rcc_if4.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rcc_if5.gtkw b/targets/RT/USER/rcc_if5.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rrh.c b/targets/RT/USER/rrh.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rrh.gtkw b/targets/RT/USER/rrh.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rrh_gw.c b/targets/RT/USER/rrh_gw.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rrh_gw.h b/targets/RT/USER/rrh_gw.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rrh_gw_externs.h b/targets/RT/USER/rrh_gw_externs.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rru_if4p5_single_thread.gtkw b/targets/RT/USER/rru_if4p5_single_thread.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rru_if4p5_usrp.gtkw b/targets/RT/USER/rru_if4p5_usrp.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rru_if5_usrp.gtkw b/targets/RT/USER/rru_if5_usrp.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rt_wrapper.c b/targets/RT/USER/rt_wrapper.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/rt_wrapper.h b/targets/RT/USER/rt_wrapper.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/sleeptest.c b/targets/RT/USER/sleeptest.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/stats.c b/targets/RT/USER/stats.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/stats.fd b/targets/RT/USER/stats.fd old mode 100644 new mode 100755 diff --git a/targets/RT/USER/stats.h b/targets/RT/USER/stats.h old mode 100644 new mode 100755 diff --git a/targets/RT/USER/synctest.c b/targets/RT/USER/synctest.c old mode 100644 new mode 100755 diff --git a/targets/RT/USER/ue_exmimo2.gtkw b/targets/RT/USER/ue_exmimo2.gtkw old mode 100644 new mode 100755 diff --git a/targets/RT/USER/ue_usrp.gtkw b/targets/RT/USER/ue_usrp.gtkw old mode 100644 new mode 100755 diff --git a/targets/SCRIPTS/install_asn1.sh b/targets/SCRIPTS/install_asn1.sh old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/Makefile old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile b/targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/Makefile old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/README.txt b/targets/SIMU/EXAMPLES/OSD/README.txt old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml b/targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml old mode 100644 new mode 100755 diff --git a/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile b/targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/Makefile old mode 100644 new mode 100755 diff --git a/targets/SIMU/PROC/Process.c b/targets/SIMU/PROC/Process.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/PROC/Process.h b/targets/SIMU/PROC/Process.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/PROC/Tsync.h b/targets/SIMU/PROC/Tsync.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/PROC/channel_sim_proc.c b/targets/SIMU/PROC/channel_sim_proc.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/PROC/channel_sim_proc.h b/targets/SIMU/PROC/channel_sim_proc.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/PROC/interface.h b/targets/SIMU/PROC/interface.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/.ue.nvram b/targets/SIMU/USER/.ue.nvram old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/.ue_emm.nvram b/targets/SIMU/USER/.ue_emm.nvram old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/.usim.nvram b/targets/SIMU/USER/.usim.nvram old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/Makefile b/targets/SIMU/USER/Makefile old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/channel_sim.c b/targets/SIMU/USER/channel_sim.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/cor_SF_sim.c b/targets/SIMU/USER/cor_SF_sim.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/cor_SF_sim.h b/targets/SIMU/USER/cor_SF_sim.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/event_handler.c b/targets/SIMU/USER/event_handler.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/event_handler.h b/targets/SIMU/USER/event_handler.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/files/MI_16qam.csv b/targets/SIMU/USER/files/MI_16qam.csv old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/files/MI_16qam.txt b/targets/SIMU/USER/files/MI_16qam.txt old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/files/MI_4qam.csv b/targets/SIMU/USER/files/MI_4qam.csv old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/files/MI_4qam.txt b/targets/SIMU/USER/files/MI_4qam.txt old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/files/MI_64qam.csv b/targets/SIMU/USER/files/MI_64qam.csv old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/files/MI_64qam.txt b/targets/SIMU/USER/files/MI_64qam.txt old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/init_lte.c b/targets/SIMU/USER/init_lte.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/init_lte.h b/targets/SIMU/USER/init_lte.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim.c b/targets/SIMU/USER/oaisim.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim.h b/targets/SIMU/USER/oaisim.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim_config.c b/targets/SIMU/USER/oaisim_config.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim_config.h b/targets/SIMU/USER/oaisim_config.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim_functions.c b/targets/SIMU/USER/oaisim_functions.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim_functions.h b/targets/SIMU/USER/oaisim_functions.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/oaisim_pad.c b/targets/SIMU/USER/oaisim_pad.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/phy_procedures_sim_form.c b/targets/SIMU/USER/phy_procedures_sim_form.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/phy_procedures_sim_form.fd b/targets/SIMU/USER/phy_procedures_sim_form.fd old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/phy_procedures_sim_form.h b/targets/SIMU/USER/phy_procedures_sim_form.h old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/plot_results.m b/targets/SIMU/USER/plot_results.m old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/sinr_sim.c b/targets/SIMU/USER/sinr_sim.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/threadpool.c b/targets/SIMU/USER/threadpool.c old mode 100644 new mode 100755 diff --git a/targets/SIMU/USER/threadpool.h b/targets/SIMU/USER/threadpool.h old mode 100644 new mode 100755 diff --git a/targets/TEST/AT_COMMANDS/oaisim.c b/targets/TEST/AT_COMMANDS/oaisim.c old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/README b/targets/TEST/OAI/README old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case01.py b/targets/TEST/OAI/case01.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case02.py b/targets/TEST/OAI/case02.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case03.py b/targets/TEST/OAI/case03.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case04.py b/targets/TEST/OAI/case04.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case05.py b/targets/TEST/OAI/case05.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case11.py b/targets/TEST/OAI/case11.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case12.py b/targets/TEST/OAI/case12.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/case13.py b/targets/TEST/OAI/case13.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/core.py b/targets/TEST/OAI/core.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/log.py b/targets/TEST/OAI/log.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/openair.py b/targets/TEST/OAI/openair.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/test01.py b/targets/TEST/OAI/test01.py old mode 100644 new mode 100755 diff --git a/targets/TEST/OAI/test02.py b/targets/TEST/OAI/test02.py old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/README.txt b/targets/TEST/PACKET_TRACER/README.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/Msg4.txt b/targets/TEST/PACKET_TRACER/messages/Msg4.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt b/targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt b/targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/sib1.txt b/targets/TEST/PACKET_TRACER/messages/sib1.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/sib2.txt b/targets/TEST/PACKET_TRACER/messages/sib2.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt b/targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt b/targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/messages/sib3.txt b/targets/TEST/PACKET_TRACER/messages/sib3.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PACKET_TRACER/pt.c b/targets/TEST/PACKET_TRACER/pt.c old mode 100644 new mode 100755 diff --git a/targets/TEST/PDCP/readme.txt b/targets/TEST/PDCP/readme.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PDCP/test_pdcp.c b/targets/TEST/PDCP/test_pdcp.c old mode 100644 new mode 100755 diff --git a/targets/TEST/PDCP/test_pdcp.h b/targets/TEST/PDCP/test_pdcp.h old mode 100644 new mode 100755 diff --git a/targets/TEST/PDCP/test_util.h b/targets/TEST/PDCP/test_util.h old mode 100644 new mode 100755 diff --git a/targets/TEST/PDCP/todo.txt b/targets/TEST/PDCP/todo.txt old mode 100644 new mode 100755 diff --git a/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c b/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c old mode 100644 new mode 100755 diff --git a/targets/TEST/RLC_AM_V9.3.0/oaisim.c b/targets/TEST/RLC_AM_V9.3.0/oaisim.c old mode 100644 new mode 100755 diff --git a/targets/TEST/RLC_UM_V9.3.0/oaisim.c b/targets/TEST/RLC_UM_V9.3.0/oaisim.c old mode 100644 new mode 100755 diff --git a/targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp b/targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp old mode 100644 new mode 100755 diff --git a/targets/TEST/ROHDE_SCHWARZ/Makefile b/targets/TEST/ROHDE_SCHWARZ/Makefile old mode 100644 new mode 100755 diff --git a/targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp b/targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp old mode 100644 new mode 100755 diff --git a/targets/TEST/ROHDE_SCHWARZ/TcpClient.h b/targets/TEST/ROHDE_SCHWARZ/TcpClient.h old mode 100644 new mode 100755 diff --git a/targets/itti_vcd_tasks.sav b/targets/itti_vcd_tasks.sav old mode 100644 new mode 100755 From 85ef6b894d472acb212608af7b6969415fbbafb6 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Mon, 14 Aug 2017 11:40:56 +0200 Subject: [PATCH 021/125] solving minor issues --- openair2/LAYER2/MAC/config.c | 6 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 985 ++++++++++++++++++++++ openair2/RRC/LITE/MESSAGES/asn1_msg.c | 2 + 3 files changed, 991 insertions(+), 2 deletions(-) diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 30346b70de..4646c12580 100755 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -419,8 +419,10 @@ void config_dedicated(int Mod_idP, uint16_t rnti, struct PhysicalConfigDedicated *physicalConfigDedicated) { - //int UE_id = find_UE_id(Mod_idP, rnti); - //eNB->UE_list.UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; + eNB_MAC_INST *eNB = RC.mac[Mod_idP]; + + int UE_id = find_UE_id(Mod_idP, rnti); + eNB->UE_list.UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 995f03483e..38924ace91 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -413,6 +413,991 @@ set_ul_DAI( // changes to pre-processor for eMTC //------------------------------------------------------------------------------ +/*unsigned int getRepetition(UE_TEMPLATE * pue_template){ + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11; + + AssertFatal(pue_template->physicalConfigDedicated, "no RRC physical configuration for this UE ") ; + AssertFatal(pue_template->physicalConfigDedicated->ext4, "no RRC physical configuration for this UE ") ; + + + epdcch_setconfig_r11->setConfigId_r11 = 0; + epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; + epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; + //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; + + epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; + epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; + epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; + + epdcch_setconfig_r11->ext2 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2)); + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; + epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13)); + epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; + ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); + +}*/ + +/* +void +schedule_ue_spec_br( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int* mbsfn_flag +) +//------------------------------------------------------------------------------ +{ + + uint8_t CC_id; + int UE_id; + unsigned char aggregation; + mac_rlc_status_resp_t rlc_status; + unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0; + unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0; + unsigned char ta_len = 0; + unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0; + uint16_t nb_rb, nb_rb_temp, nb_available_rb; + uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0; + unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; + unsigned char round = 0; + unsigned char harq_pid = 0; + eNB_UE_STATS *eNB_UE_stats = NULL; + uint16_t sdu_length_total = 0; + + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + UE_list_t *UE_list = &eNB->UE_list; + int continue_flag = 0; + int32_t normalized_rx_power, target_rx_power; + int32_t tpc = 1; + static int32_t tpc_accumulated = 0; + UE_sched_ctrl *ue_sched_ctl; + int mcs; + int i; + int min_rb_unit[MAX_NUM_CCs]; + int N_RB_DL[MAX_NUM_CCs]; + int total_nb_available_rb[MAX_NUM_CCs]; + int N_RBG[MAX_NUM_CCs]; + nfapi_dl_config_request_body_t *dl_req; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + int tdd_sfa; + +#if 0 + if (UE_list->head == -1) { + return; + } +#endif + + uint8_t *vrb_map; + int first_rb; + start_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); + + + // for TDD: check that we have to act here, otherwise return + //if (cc[0].tdd_Config) { + // tdd_sfa = cc[0].tdd_Config->subframeAssignment; + // switch (subframeP) { + // case 0: + // // always continue + // break; + // case 1: + // return; + // break; + // case 2: + // return; + // break; + // case 3: + // if ((tdd_sfa != 2) && (tdd_sfa != 5)) return; + // break; + // case 4: + // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 5: + // break; + // case 6: + // case 7: + // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 8: + // if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 9: + // if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 6)) return; + // break; + + // } + //} + //weight = get_ue_weight(module_idP,UE_id); + aggregation = 2; + for (CC_id = 0; CC_idmessage.dl_Bandwidth); + min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id); + // get number of PRBs less those used by common channels + total_nb_available_rb[CC_id] = N_RB_DL[CC_id]; + for (i = 0; imessage.dl_Bandwidth); + + // store the global enb stats: + eNB->eNB_stats[CC_id].num_dlactive_UEs = UE_list->num_UEs; + eNB->eNB_stats[CC_id].available_prbs = total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].total_available_prbs += total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].dlsch_bytes_tx = 0; + eNB->eNB_stats[CC_id].dlsch_pdus_tx = 0; + } + + /// CALLING Pre_Processor for downlink scheduling (Returns estimation of RBs required by each UE and the allocation on sub-band) + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_IN); + //start_meas(&eNB->schedule_dlsch_preprocessor); + //dlsch_scheduler_pre_processor(module_idP, + // frameP, + // subframeP, + // N_RBG, + // mbsfn_flag); + //stop_meas(&eNB->schedule_dlsch_preprocessor); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_OUT); + + + for (CC_id = 0; CC_idDL_req[CC_id].dl_config_request_body; + + if (mbsfn_flag[CC_id]>0) + continue; + + for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) + { + first_rb = 0; + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + continue_flag = 0; // reset the flag to allow allocation for the remaining UEs + rnti = UE_RNTI(module_idP, UE_id); + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + + + if (rnti == NOT_A_RNTI) { + LOG_D(MAC, "Cannot find rnti for UE_id %d (num_UEs %d)\n", UE_id, UE_list->num_UEs); + continue_flag = 1; + } + + if (eNB_UE_stats == NULL) { + LOG_D(MAC, "[eNB] Cannot find eNB_UE_stats\n"); + continue_flag = 1; + } + + //if (continue_flag != 1) { + // switch (get_tmode(module_idP, CC_id, UE_id)) { + // case 1: + // case 2: + // case 7: + // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + // eNB_UE_stats->dl_cqi, + // format1); + // break; + // case 3: + // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + // eNB_UE_stats->dl_cqi, + // format2A); + // break; + // default: + // LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); + // aggregation = 2; + // } + //} + + if ((ue_sched_ctl->pre_nb_available_rbs[CC_id] == 0) || // no RBs allocated + CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, aggregation, rnti) + ) { + LOG_D(MAC, "[eNB %d] Frame %d : no RB allocated for UE %d on CC_id %d: continue \n", + module_idP, frameP, UE_id, CC_id); + continue_flag = 1; //to next user (there might be rbs availiable for other UEs in TM5 + } + + //if (cc[CC_id].tdd_Config != NULL) { //TDD + // set_ue_dai(subframeP, + // UE_id, + // CC_id, + // cc[CC_id].tdd_Config->subframeAssignment, + // UE_list); + // // update UL DAI after DLSCH scheduling + // set_ul_DAI(module_idP, UE_id, CC_id, frameP, subframeP); + //} + + //if (continue_flag == 1) { + // add_ue_dlsch_info(module_idP, + // CC_id, + // UE_id, + // subframeP, + // S_DL_NONE); + // continue; + // } + + nb_available_rb = 6; // to be checked + harq_pid = ue_sched_ctl->harq_pid[CC_id]; + round = ue_sched_ctl->round[CC_id]; + UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); + UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; + UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; + + sdu_length_total = 0; + num_sdus = 0; + + + //DevCheck(((eNB_UE_stats->dl_cqi < MIN_CQI_VALUE) || (eNB_UE_stats->dl_cqi > MAX_CQI_VALUE)), + //eNB_UE_stats->dl_cqi, MIN_CQI_VALUE, MAX_CQI_VALUE); + + eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->dl_cqi]; //to be checked + eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, 15); + + + // store stats + UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi = eNB_UE_stats->dl_cqi; + + // initializing the rb allocation indicator for each UE + //to be checked + for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = 0; + } + + LOG_D(MAC, "[eNB %d] Frame %d: Scheduling UE %d on CC_id %d (rnti %x, harq_pid %d, round %d, rb %d, cqi %d, mcs %d, rrc %d)\n", + module_idP, frameP, UE_id, CC_id, rnti, harq_pid, round, nb_available_rb, + eNB_UE_stats->dl_cqi, eNB_UE_stats->dlsch_mcs1, + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status); + + + + // process retransmission + + if (round > 0) { + // get freq_allocation + nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; + + if (nb_rb <= nb_available_rb) { + if (cc[CC_id].tdd_Config != NULL) { + UE_list->UE_template[CC_id][UE_id].DAI++; + update_ul_dci(module_idP, CC_id, rnti, UE_list->UE_template[CC_id][UE_id].DAI); + LOG_D(MAC, "DAI update: CC_id %d subframeP %d: UE %d, DAI %d\n", CC_id, subframeP, UE_id, UE_list->UE_template[CC_id][UE_id].DAI); + } + + if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + } + else { + nb_rb_temp = nb_rb; + j = 0; + + while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + if ((j == N_RBG[CC_id] - 1) && + ((N_RB_DL[CC_id] == 25) || + (N_RB_DL[CC_id] == 50))) { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; + } + else { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; + } + } + + j = j + 1; + } + } + + nb_available_rb -= nb_rb; + + //eNB->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; + //eNB->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; + + //for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; + //} + + + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + default: + { + + // rmax from SIB2 information + rmax = UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->mpdcch_NumRepetition_RA_r13; + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + // get narrowband according to higher-layer config + num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; + RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; + first_rb = RA_template->msg2_narrowband * 6; + + if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPE2)>0)) { + // MPDCCH configuration for RAR + + + + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + RA_template->msg2_mpdcch_repetition_cnt++; + dl_req->number_pdu++; + + } //repetition_count==0 && SF condition met + else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions + RA_template->msg2_mpdcch_repetition_cnt++; + if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; + else RA_template->Msg2_frame = frameP; + RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + } + else { + AssertFatal(1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { + // Program PDSCH + RA_template->generate_rar = 0; + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // Program UL processing for Msg3, same as regular LTE + get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + + + fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 7; + TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + } + } + + } + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3; + + + if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, + rnti)) { + dl_req->number_dci++; + dl_req->number_pdu++; + + } + else { + // No TX request for retransmission (check if null request for FAPI) + } + } + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + + //eNB_UE_stats->dlsch_trials[round]++; + UE_list->eNB_UE_stats[CC_id][UE_id].num_retransmission += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_retx += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = eNB_UE_stats->dlsch_mcs1; + } + else { + LOG_D(MAC, "[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have\n", + module_idP, frameP, CC_id, UE_id); + } + } + else { +// This is a potentially new SDU opportunity + + rlc_status.bytes_in_buffer = 0; + // Now check RLC information to compute number of required RBs + // get maximum TBS size for RLC request + //to be checked + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); + // check first for RLC data on DCCH + // add the length for all the control elements (timing adv, drx, etc) : header + payload + + ta_len = (ue_sched_ctl->ta_update != 0) ? 2 : 0; + + header_len_dcch = 2; // 2 bytes DCCH SDU subheader + + 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)); // transport block set size + + sdu_lengths[0] = 0; + + if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit + LOG_D(MAC, "[eNB %d] Frame %d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, TBS - header_len_dcch); + sdu_lengths[0] = mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH, + TBS, //not used + (char *)&dlsch_buffer[0]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); + + LOG_D(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes from RLC\n", module_idP, CC_id, sdu_lengths[0]); + sdu_length_total = sdu_lengths[0]; + sdu_lcids[0] = DCCH; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH] += sdu_lengths[0]; + num_sdus = 1; +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[0]); + + for (j = 0; j 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)); // transport block set size less allocations for timing advance and + // DCCH SDU + sdu_lengths[num_sdus] = 0; + + if (rlc_status.bytes_in_buffer > 0) { + LOG_I(MAC, "[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, TBS - header_len_dcch - sdu_length_total); + sdu_lengths[num_sdus] += mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH + 1, + TBS, //not used + (char *)&dlsch_buffer[sdu_length_total]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH + 1), T_INT(sdu_lengths[num_sdus])); + + sdu_lcids[num_sdus] = DCCH1; + sdu_length_total += sdu_lengths[num_sdus]; + header_len_dcch += 2; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1] += sdu_lengths[num_sdus]; + num_sdus++; +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d][DCCH1] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[num_sdus]); + + for (j = 0; j= DTCH; lcid--) { + // TBD: check if the lcid is active + + header_len_dtch += 3; + header_len_dtch_last = 3; + LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", + module_idP, frameP, lcid, TBS, + TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); + + if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) { // NN: > 2 ? + rlc_status = mac_rlc_status_ind(module_idP, + rnti, + module_idP, + frameP, + subframeP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); + + + if (rlc_status.bytes_in_buffer > 0) { + + LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", + module_idP, frameP, TBS - header_len_dcch - sdu_length_total - header_len_dtch, lcid, header_len_dtch); + sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS, //not used + (char*)&dlsch_buffer[sdu_length_total]); + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); + + LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n", module_idP, sdu_lengths[num_sdus], lcid); + sdu_lcids[num_sdus] = lcid; + sdu_length_total += sdu_lengths[num_sdus]; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus]; + if (sdu_lengths[num_sdus] < 128) { + header_len_dtch--; + header_len_dtch_last--; + } + num_sdus++; + } // no data for this LCID + else { + header_len_dtch -= 3; + } + } // no TBS left + else { + header_len_dtch -= 3; + break; + } + } + if (header_len_dtch == 0) + header_len_dtch_last = 0; + // there is at least one SDU + // if (num_sdus > 0 ){ + if ((sdu_length_total + header_len_dcch + header_len_dtch)> 0) { + + // Now compute number of required RBs for total sdu length + // Assume RAH format 2 + // adjust header lengths + header_len_dcch_tmp = header_len_dcch; + header_len_dtch_tmp = header_len_dtch; + if (header_len_dtch == 0) { + header_len_dcch = (header_len_dcch >0) ? 1 : 0;//header_len_dcch; // remove length field + } + else { + header_len_dtch_last -= 1; // now use it to find how many bytes has to be removed for the last MAC SDU + header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last : header_len_dtch; // remove length field for the last SDU + } + + mcs = eNB_UE_stats->dlsch_mcs1; + + if (mcs == 0) { + nb_rb = 4; // don't let the TBS get too small + } + else { + nb_rb = min_rb_unit[CC_id]; + } + + TBS = get_TBS_DL(mcs, nb_rb); + + while (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) { + nb_rb += min_rb_unit[CC_id]; // + + if (nb_rb>nb_available_rb) { // if we've gone beyond the maximum number of RBs + // (can happen if N_RB_DL is odd) + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); + nb_rb = nb_available_rb; + break; + } + + TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_rb); + } + ///////////////////////////////////////////////////////////// + // alter the allocation of the emtc UE here + ////////////////////////////////////////////////////////////// + if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + } + else { + nb_rb_temp = nb_rb; + j = 0; + + while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + if ((j == N_RBG[CC_id] - 1) && + ((N_RB_DL[CC_id] == 25) || + (N_RB_DL[CC_id] == 50))) { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; + } + else { + nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; + } + } + + j = j + 1; + } + } + /////////////////////////////////// + + + // decrease mcs until TBS falls below required length + while ((TBS > (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (mcs>0)) { + mcs--; + TBS = get_TBS_DL(mcs, nb_rb); + } + + // if we have decreased too much or we don't have enough RBs, increase MCS + while ((TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (((ue_sched_ctl->dl_pow_off[CC_id]>0) && (mcs<28)) + || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { + mcs++; + TBS = get_TBS_DL(mcs, nb_rb); + } + + LOG_D(MAC, "dlsch_mcs before and after the rate matching = (%d, %d)\n", eNB_UE_stats->dlsch_mcs1, mcs); + +#ifdef DEBUG_eNB_SCHEDULER + LOG_D(MAC, "[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", + module_idP, CC_id, mcs, TBS, nb_rb); + // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", + // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); +#endif + + if ((TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len) <= 2) { + padding = (TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len); + post_padding = 0; + } + else { + padding = 0; + + // adjust the header len + if (header_len_dtch == 0) { + header_len_dcch = header_len_dcch_tmp; + } + else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) + header_len_dtch = header_len_dtch_tmp; + } + + post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len; // 1 is for the postpadding header + } + + + offset = generate_dlsch_header((unsigned char*)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + num_sdus, //num_sdus + sdu_lengths, // + sdu_lcids, + 255, // no drx + ue_sched_ctl->ta_update, // timing advance + NULL, // contention res id + padding, + post_padding); + + //#ifdef DEBUG_eNB_SCHEDULER + if (ue_sched_ctl->ta_update) { + LOG_I(MAC, + "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", + module_idP, frameP, UE_id, CC_id, sdu_length_total, num_sdus, sdu_lengths[0], sdu_lcids[0], offset, + ue_sched_ctl->ta_update, padding, post_padding, mcs, TBS, nb_rb, header_len_dcch, header_len_dtch); + } + //#endif +#ifdef DEBUG_eNB_SCHEDULER + LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n"); + + for (i = 0; i<16; i++) { + LOG_T(MAC, "%x.", dlsch_buffer[i]); + } + + LOG_T(MAC, "\n"); +#endif + // cycle through SDUs and place in dlsch_buffer + memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset], dlsch_buffer, sdu_length_total); + // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); + + // fill remainder of DLSCH with random data + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; + for (j = 0; j<(TBS - sdu_length_total - offset); j++) { + UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = (char)(taus() & 0xff); + } + + + if (opt_enabled == 1) { + trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + TBS, module_idP, 3, UE_RNTI(module_idP, UE_id), + eNB->frame, eNB->subframe, 0, 0); + LOG_D(OPT, "[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", + module_idP, CC_id, frameP, UE_RNTI(module_idP, UE_id), TBS); + } + + T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); + + UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] = nb_rb; + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + // store stats + eNB->eNB_stats[CC_id].dlsch_bytes_tx += sdu_length_total; + eNB->eNB_stats[CC_id].dlsch_pdus_tx += 1; + + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = mcs; + UE_list->eNB_UE_stats[CC_id][UE_id].TBS = TBS; + + UE_list->eNB_UE_stats[CC_id][UE_id].overhead_bytes = TBS - sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_sdu_bytes += sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_pdu_bytes += TBS; + UE_list->eNB_UE_stats[CC_id][UE_id].total_num_pdus += 1; + + + + // do PUCCH power control + // this is the normalized RX power + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + normalized_rx_power = eNB_UE_stats->Po_PUCCH_dBm; + target_rx_power = get_target_pucch_rx_power(module_idP, CC_id) + 20; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame * 10 + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; + if (((framex10psubframe + 10) <= (frameP * 10 + subframeP)) || //normal case + ((framex10psubframe>(frameP * 10 + subframeP)) && (((10240 - framex10psubframe + frameP * 10 + subframeP) >= 10)))) //frame wrap-around + if (eNB_UE_stats->Po_PUCCH_update == 1) { + eNB_UE_stats->Po_PUCCH_update = 0; + + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; + + if (normalized_rx_power>(target_rx_power + 1)) { + tpc = 0; //-1 + tpc_accumulated--; + } + else if (normalized_rx_power<(target_rx_power - 1)) { + tpc = 2; //+1 + tpc_accumulated++; + } + else { + tpc = 1; //0 + } + + + } // Po_PUCCH has been updated + else { + tpc = 1; //0 + } // time to do TPC update + else { + tpc = 1; //0 + } + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = tpc; // dont adjust power when retransmitting + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; + ////deactivate second codeword + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_2 = 0; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_2 = 1; + // + dl_req->number_dci++; + dl_req->number_pdu++; + + // Toggle NDI for next time + LOG_D(MAC, "CC_id %d Frame %d, subframeP %d: Toggling Format1 NDI for UE %d (rnti %x/%d) oldNDI %d\n", + CC_id, frameP, subframeP, UE_id, + UE_list->UE_template[CC_id][UE_id].rnti, harq_pid, UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]); + + UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid] = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid] = mcs; + UE_list->UE_template[CC_id][UE_id].oldmcs2[harq_pid] = 0; + + eNB->TX_req[CC_id].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = TBS; + TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = TBS; + TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char)UE_id].payload[harq_pid]; + eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + + } + else { // There is no data from RLC or MAC header, so don't schedule + + } + } + + + } // UE_id loop + } // CC_id loop + + + fill_DLSCH_dci(module_idP, frameP, subframeP, mbsfn_flag); + + stop_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); + +}*/ + + + //------------------------------------------------------------------------------ void schedule_ue_spec( diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 126526deed..cccb0ed56a 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2233,11 +2233,13 @@ do_RRCConnectionSetup_BR( // assign_enum(&physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; + physicalConfigDedicated2->ext4 = calloc(1, sizeof(struct PhysicalConfigDedicated__ext4) ); physicalConfigDedicated2->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; physicalConfigDedicated2->ext4->csi_RS_ConfigNZPToAddModList_r11 = NULL; physicalConfigDedicated2->ext4->csi_RS_ConfigZPToAddModList_r11 = NULL; physicalConfigDedicated2->ext4->csi_RS_ConfigZPToReleaseList_r11 = NULL; + physicalConfigDedicated2->ext4->epdcch_Config_r11 = calloc(1, sizeof(struct EPDCCH_Config_r11 )); physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; From ae598b948882a00d33ff33d55a2a945d3a3cd93e Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Mon, 14 Aug 2017 13:13:45 +0200 Subject: [PATCH 022/125] fix some errors --- openair2/LAYER2/MAC/defs.h | 2 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 501 ++++++++++++++++------ 2 files changed, 366 insertions(+), 137 deletions(-) diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 4fd8b61d2a..f4faf21389 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -755,7 +755,7 @@ typedef struct { #ifdef Rel14 uint8_t rach_resource_type; - + uint16_t mpdcch_repetition_cnt; struct PhysicalConfigDedicated *physicalConfigDedicated; #endif diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 38924ace91..53150ff3d6 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -413,13 +413,25 @@ set_ul_DAI( // changes to pre-processor for eMTC //------------------------------------------------------------------------------ -/*unsigned int getRepetition(UE_TEMPLATE * pue_template){ +void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned int *narrowBandindex, unsigned int *first_rb){ EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11; AssertFatal(pue_template->physicalConfigDedicated, "no RRC physical configuration for this UE ") ; AssertFatal(pue_template->physicalConfigDedicated->ext4, "no RRC physical configuration for this UE ") ; + AssertFatal(pue_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.count > 0 ,"epdcch config list is empty") ; + epdcch_setconfig_r11 = pue_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; + + AssertFatal(epdcch_setconfig_r11->ext2 && epdcch_setconfig_r11->ext2->mpdcch_config_r13 ," mpdcch config not found") ; + +*maxRep = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 ; + + * narrowBandindex = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 ; + + + +/* epdcch_setconfig_r11->setConfigId_r11 = 0; epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; @@ -445,10 +457,13 @@ set_ul_DAI( epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); -}*/ + */ -/* -void +} + + + +/*void schedule_ue_spec_br( module_id_t module_idP, frame_t frameP, @@ -586,13 +601,7 @@ schedule_ue_spec_br( for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) { - first_rb = 0; - vrb_map[first_rb] = 1; - vrb_map[first_rb + 1] = 1; - vrb_map[first_rb + 2] = 1; - vrb_map[first_rb + 3] = 1; - vrb_map[first_rb + 4] = 1; - vrb_map[first_rb + 5] = 1; + continue_flag = 0; // reset the flag to allow allocation for the remaining UEs rnti = UE_RNTI(module_idP, UE_id); @@ -749,142 +758,160 @@ schedule_ue_spec_br( default: { - // rmax from SIB2 information - rmax = UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->mpdcch_NumRepetition_RA_r13; - // choose r3 by default for RAR (Table 9.1.5-5) - rep = 2; - // get actual repetition count from Table 9.1.5-3 - reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); - // get narrowband according to higher-layer config - num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; - RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; - first_rb = RA_template->msg2_narrowband * 6; - - if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPE2)>0)) { - // MPDCCH configuration for RAR + unsigned int rmax ; + unsigned int narrowBandindex_index ; + unsigned int first_rb, rep, reps; + + // rmax from RRC connection setup + getRepetition(&UE_template[CC_id][UE_id],&rmax, &narrowBandindex_index, &first_rb) ; + + + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + // get narrowband according to higher-layer config + num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; + + RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; + first_rb = narrowBandindex_index * 6; + + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + if ((RA_template->mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC)>0)) + { + // MPDCCH configuration for RAR + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid];; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + RA_template->msg2_mpdcch_repetition_cnt++; + dl_req->number_pdu++; + + } //repetition_count==0 && SF condition met + else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions + RA_template->msg2_mpdcch_repetition_cnt++; + if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; + else RA_template->Msg2_frame = frameP; + RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + } + else { + AssertFatal(1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { + // Program PDSCH + RA_template->generate_rar = 0; + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, - "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; - RA_template->msg2_mpdcch_repetition_cnt++; + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; dl_req->number_pdu++; - } //repetition_count==0 && SF condition met - else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - RA_template->msg2_mpdcch_repetition_cnt++; - if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case - // wait 2 subframes for PDSCH transmission - if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; - else RA_template->Msg2_frame = frameP; - RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 - } - else { - AssertFatal(1 == 0, "TDD case not done yet\n"); - } - } // mpdcch_repetition_count == reps - if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - // Program PDSCH - RA_template->generate_rar = 0; - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - // Program UL processing for Msg3, same as regular LTE - get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + // Program UL processing for Msg3, same as regular LTE + get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); - fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = 7; - TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; - } + fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 7; + TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; } - } + } + + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; @@ -1338,6 +1365,208 @@ schedule_ue_spec_br( tpc = 1; //0 } + + + + + { + + + + + unsigned int rmax ; + unsigned int narrowBandindex_index ; + unsigned int first_rb, rep, reps; + + // rmax from RRC connection setup + getRepetition(&UE_template[CC_id][UE_id],&rmax, &narrowBandindex_index, &first_rb) ; + + + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + // get narrowband according to higher-layer config + num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; + + RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; + first_rb = narrowBandindex_index * 6; + + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + if ((RA_template->mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC)>0)) + { + // MPDCCH configuration for RAR + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid];; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + RA_template->msg2_mpdcch_repetition_cnt++; + dl_req->number_pdu++; + + } //repetition_count==0 && SF condition met + else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions + RA_template->msg2_mpdcch_repetition_cnt++; + if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; + else RA_template->Msg2_frame = frameP; + RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + } + else { + AssertFatal(1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { + // Program PDSCH + RA_template->generate_rar = 0; + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // Program UL processing for Msg3, same as regular LTE + get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + + + fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 7; + TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + } + } + + } + + + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3; + + + if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, + rnti)) { + dl_req->number_dci++; + dl_req->number_pdu++; + + } + else { + // No TX request for retransmission (check if null request for FAPI) + } + } + + + + + + + + + + + + + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; From 3e77b141eb680a186e890e8fdb7b5899e4592b1f Mon Sep 17 00:00:00 2001 From: "Ahmed.Elias" Date: Mon, 14 Aug 2017 15:15:15 +0200 Subject: [PATCH 023/125] adding br parameters --- openair2/LAYER2/MAC/defs.h | 2 + openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 2149 ++++++++++----------- 2 files changed, 1050 insertions(+), 1101 deletions(-) diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index f4faf21389..0723324038 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -757,6 +757,8 @@ typedef struct { uint8_t rach_resource_type; uint16_t mpdcch_repetition_cnt; struct PhysicalConfigDedicated *physicalConfigDedicated; + frame_t Msg2_frame; + subframe_t Msg2_subframe; #endif } UE_TEMPLATE; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 53150ff3d6..aacb5e2697 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -472,1161 +472,1108 @@ schedule_ue_spec_br( ) //------------------------------------------------------------------------------ { + uint8_t CC_id; + int UE_id; + unsigned char aggregation; + mac_rlc_status_resp_t rlc_status; + unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0; + unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0; + unsigned char ta_len = 0; + unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0; + uint16_t nb_rb, nb_rb_temp, nb_available_rb; + uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0; + unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; + unsigned char round = 0; + unsigned char harq_pid = 0; + eNB_UE_STATS *eNB_UE_stats = NULL; + uint16_t sdu_length_total = 0; - uint8_t CC_id; - int UE_id; - unsigned char aggregation; - mac_rlc_status_resp_t rlc_status; - unsigned char header_len_dcch = 0, header_len_dcch_tmp = 0; - unsigned char header_len_dtch = 0, header_len_dtch_tmp = 0, header_len_dtch_last = 0; - unsigned char ta_len = 0; - unsigned char sdu_lcids[NB_RB_MAX], lcid, offset, num_sdus = 0; - uint16_t nb_rb, nb_rb_temp, nb_available_rb; - uint16_t TBS, j, sdu_lengths[NB_RB_MAX], rnti, padding = 0, post_padding = 0; - unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; - unsigned char round = 0; - unsigned char harq_pid = 0; - eNB_UE_STATS *eNB_UE_stats = NULL; - uint16_t sdu_length_total = 0; - - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - UE_list_t *UE_list = &eNB->UE_list; - int continue_flag = 0; - int32_t normalized_rx_power, target_rx_power; - int32_t tpc = 1; - static int32_t tpc_accumulated = 0; - UE_sched_ctrl *ue_sched_ctl; - int mcs; - int i; - int min_rb_unit[MAX_NUM_CCs]; - int N_RB_DL[MAX_NUM_CCs]; - int total_nb_available_rb[MAX_NUM_CCs]; - int N_RBG[MAX_NUM_CCs]; - nfapi_dl_config_request_body_t *dl_req; - nfapi_dl_config_request_pdu_t *dl_config_pdu; - nfapi_tx_request_pdu_t *TX_req; - int tdd_sfa; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + UE_list_t *UE_list = &eNB->UE_list; + int continue_flag = 0; + int32_t normalized_rx_power, target_rx_power; + int32_t tpc = 1; + static int32_t tpc_accumulated = 0; + UE_sched_ctrl *ue_sched_ctl; + int mcs; + int i; + int min_rb_unit[MAX_NUM_CCs]; + int N_RB_DL[MAX_NUM_CCs]; + int total_nb_available_rb[MAX_NUM_CCs]; + int N_RBG[MAX_NUM_CCs]; + nfapi_dl_config_request_body_t *dl_req; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + int tdd_sfa; #if 0 - if (UE_list->head == -1) { - return; - } + if (UE_list->head == -1) { + return; + } #endif - uint8_t *vrb_map; - int first_rb; - start_meas(&eNB->schedule_dlsch); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); - - - // for TDD: check that we have to act here, otherwise return - //if (cc[0].tdd_Config) { - // tdd_sfa = cc[0].tdd_Config->subframeAssignment; - // switch (subframeP) { - // case 0: - // // always continue - // break; - // case 1: - // return; - // break; - // case 2: - // return; - // break; - // case 3: - // if ((tdd_sfa != 2) && (tdd_sfa != 5)) return; - // break; - // case 4: - // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 5: - // break; - // case 6: - // case 7: - // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 8: - // if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 9: - // if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 6)) return; - // break; - - // } - //} - //weight = get_ue_weight(module_idP,UE_id); - aggregation = 2; - for (CC_id = 0; CC_idmessage.dl_Bandwidth); - min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id); - // get number of PRBs less those used by common channels - total_nb_available_rb[CC_id] = N_RB_DL[CC_id]; - for (i = 0; imessage.dl_Bandwidth); - - // store the global enb stats: - eNB->eNB_stats[CC_id].num_dlactive_UEs = UE_list->num_UEs; - eNB->eNB_stats[CC_id].available_prbs = total_nb_available_rb[CC_id]; - eNB->eNB_stats[CC_id].total_available_prbs += total_nb_available_rb[CC_id]; - eNB->eNB_stats[CC_id].dlsch_bytes_tx = 0; - eNB->eNB_stats[CC_id].dlsch_pdus_tx = 0; - } - - /// CALLING Pre_Processor for downlink scheduling (Returns estimation of RBs required by each UE and the allocation on sub-band) - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_IN); - //start_meas(&eNB->schedule_dlsch_preprocessor); - //dlsch_scheduler_pre_processor(module_idP, - // frameP, - // subframeP, - // N_RBG, - // mbsfn_flag); - //stop_meas(&eNB->schedule_dlsch_preprocessor); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_OUT); - - - for (CC_id = 0; CC_idDL_req[CC_id].dl_config_request_body; - - if (mbsfn_flag[CC_id]>0) - continue; - - for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) - { - - - continue_flag = 0; // reset the flag to allow allocation for the remaining UEs - rnti = UE_RNTI(module_idP, UE_id); - eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; - ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; - - - if (rnti == NOT_A_RNTI) { - LOG_D(MAC, "Cannot find rnti for UE_id %d (num_UEs %d)\n", UE_id, UE_list->num_UEs); - continue_flag = 1; - } - - if (eNB_UE_stats == NULL) { - LOG_D(MAC, "[eNB] Cannot find eNB_UE_stats\n"); - continue_flag = 1; - } - - //if (continue_flag != 1) { - // switch (get_tmode(module_idP, CC_id, UE_id)) { - // case 1: - // case 2: - // case 7: - // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), - // eNB_UE_stats->dl_cqi, - // format1); - // break; - // case 3: - // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), - // eNB_UE_stats->dl_cqi, - // format2A); - // break; - // default: - // LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); - // aggregation = 2; - // } - //} - - if ((ue_sched_ctl->pre_nb_available_rbs[CC_id] == 0) || // no RBs allocated - CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, aggregation, rnti) - ) { - LOG_D(MAC, "[eNB %d] Frame %d : no RB allocated for UE %d on CC_id %d: continue \n", - module_idP, frameP, UE_id, CC_id); - continue_flag = 1; //to next user (there might be rbs availiable for other UEs in TM5 - } - - //if (cc[CC_id].tdd_Config != NULL) { //TDD - // set_ue_dai(subframeP, - // UE_id, - // CC_id, - // cc[CC_id].tdd_Config->subframeAssignment, - // UE_list); - // // update UL DAI after DLSCH scheduling - // set_ul_DAI(module_idP, UE_id, CC_id, frameP, subframeP); - //} - - //if (continue_flag == 1) { - // add_ue_dlsch_info(module_idP, - // CC_id, - // UE_id, - // subframeP, - // S_DL_NONE); - // continue; - // } - - nb_available_rb = 6; // to be checked - harq_pid = ue_sched_ctl->harq_pid[CC_id]; - round = ue_sched_ctl->round[CC_id]; - UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; - UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); - UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; - UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; - - sdu_length_total = 0; - num_sdus = 0; - - - //DevCheck(((eNB_UE_stats->dl_cqi < MIN_CQI_VALUE) || (eNB_UE_stats->dl_cqi > MAX_CQI_VALUE)), - //eNB_UE_stats->dl_cqi, MIN_CQI_VALUE, MAX_CQI_VALUE); - - eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->dl_cqi]; //to be checked - eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, 15); - - - // store stats - UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi = eNB_UE_stats->dl_cqi; - - // initializing the rb allocation indicator for each UE - //to be checked - for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = 0; - } - - LOG_D(MAC, "[eNB %d] Frame %d: Scheduling UE %d on CC_id %d (rnti %x, harq_pid %d, round %d, rb %d, cqi %d, mcs %d, rrc %d)\n", - module_idP, frameP, UE_id, CC_id, rnti, harq_pid, round, nb_available_rb, - eNB_UE_stats->dl_cqi, eNB_UE_stats->dlsch_mcs1, - UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status); - - - - // process retransmission - - if (round > 0) { - // get freq_allocation - nb_rb = UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; - - if (nb_rb <= nb_available_rb) { - if (cc[CC_id].tdd_Config != NULL) { - UE_list->UE_template[CC_id][UE_id].DAI++; - update_ul_dci(module_idP, CC_id, rnti, UE_list->UE_template[CC_id][UE_id].DAI); - LOG_D(MAC, "DAI update: CC_id %d subframeP %d: UE %d, DAI %d\n", CC_id, subframeP, UE_id, UE_list->UE_template[CC_id][UE_id].DAI); - } - - if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { - for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - } - } - else { - nb_rb_temp = nb_rb; - j = 0; - - while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { - UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - - if ((j == N_RBG[CC_id] - 1) && - ((N_RB_DL[CC_id] == 25) || - (N_RB_DL[CC_id] == 50))) { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; - } - else { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; - } - } - - j = j + 1; - } - } - - nb_available_rb -= nb_rb; - - //eNB->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; - //eNB->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; - - //for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; - //} - - - switch (get_tmode(module_idP, CC_id, UE_id)) { - case 1: - case 2: - case 7: - default: - { - - - - - unsigned int rmax ; - unsigned int narrowBandindex_index ; - unsigned int first_rb, rep, reps; - - // rmax from RRC connection setup - getRepetition(&UE_template[CC_id][UE_id],&rmax, &narrowBandindex_index, &first_rb) ; - - - // choose r3 by default for RAR (Table 9.1.5-5) - rep = 2; - // get actual repetition count from Table 9.1.5-3 - reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); - // get narrowband according to higher-layer config - num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; - - RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; - first_rb = narrowBandindex_index * 6; - - vrb_map[first_rb] = 1; - vrb_map[first_rb + 1] = 1; - vrb_map[first_rb + 2] = 1; - vrb_map[first_rb + 3] = 1; - vrb_map[first_rb + 4] = 1; - vrb_map[first_rb + 5] = 1; - - if ((RA_template->mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC)>0)) - { - // MPDCCH configuration for RAR - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, - "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid];; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; - RA_template->msg2_mpdcch_repetition_cnt++; - dl_req->number_pdu++; - - } //repetition_count==0 && SF condition met - else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - RA_template->msg2_mpdcch_repetition_cnt++; - if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case - // wait 2 subframes for PDSCH transmission - if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; - else RA_template->Msg2_frame = frameP; - RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 - } - else { - AssertFatal(1 == 0, "TDD case not done yet\n"); - } - } // mpdcch_repetition_count == reps - if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - // Program PDSCH - RA_template->generate_rar = 0; - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - // Program UL processing for Msg3, same as regular LTE - get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); - - - fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = 7; - TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; - } - } - - } - - - - //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3; - - - if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, - rnti)) { - dl_req->number_dci++; - dl_req->number_pdu++; - - } - else { - // No TX request for retransmission (check if null request for FAPI) - } - } - - add_ue_dlsch_info(module_idP, - CC_id, - UE_id, - subframeP, - S_DL_SCHEDULED); - - //eNB_UE_stats->dlsch_trials[round]++; - UE_list->eNB_UE_stats[CC_id][UE_id].num_retransmission += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_retx += nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = eNB_UE_stats->dlsch_mcs1; - } - else { - LOG_D(MAC, "[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have\n", - module_idP, frameP, CC_id, UE_id); - } - } - else { -// This is a potentially new SDU opportunity - - rlc_status.bytes_in_buffer = 0; - // Now check RLC information to compute number of required RBs - // get maximum TBS size for RLC request - //to be checked - TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); - // check first for RLC data on DCCH - // add the length for all the control elements (timing adv, drx, etc) : header + payload - - ta_len = (ue_sched_ctl->ta_update != 0) ? 2 : 0; - - header_len_dcch = 2; // 2 bytes DCCH SDU subheader - - 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)); // transport block set size - - sdu_lengths[0] = 0; - - if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit - LOG_D(MAC, "[eNB %d] Frame %d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", - module_idP, frameP, CC_id, TBS - header_len_dcch); - sdu_lengths[0] = mac_rlc_data_req( - module_idP, - rnti, - module_idP, - frameP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - DCCH, - TBS, //not used - (char *)&dlsch_buffer[0]); - - T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); - - LOG_D(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes from RLC\n", module_idP, CC_id, sdu_lengths[0]); - sdu_length_total = sdu_lengths[0]; - sdu_lcids[0] = DCCH; - UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH] += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH] += sdu_lengths[0]; - num_sdus = 1; + uint8_t *vrb_map; + int first_rb; + start_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); + + + // for TDD: check that we have to act here, otherwise return + //if (cc[0].tdd_Config) { + // tdd_sfa = cc[0].tdd_Config->subframeAssignment; + // switch (subframeP) { + // case 0: + // // always continue + // break; + // case 1: + // return; + // break; + // case 2: + // return; + // break; + // case 3: + // if ((tdd_sfa != 2) && (tdd_sfa != 5)) return; + // break; + // case 4: + // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 5: + // break; + // case 6: + // case 7: + // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 8: + // if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; + // break; + // case 9: + // if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 6)) return; + // break; + + // } + //} + //weight = get_ue_weight(module_idP,UE_id); + aggregation = 2; + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { + N_RB_DL[CC_id] = to_prb(cc[CC_id].mib->message.dl_Bandwidth); + min_rb_unit[CC_id] = get_min_rb_unit(module_idP, CC_id); + // get number of PRBs less those used by common channels + total_nb_available_rb[CC_id] = N_RB_DL[CC_id]; + for (i = 0; i < N_RB_DL[CC_id]; i++) + if (cc[CC_id].vrb_map[i] != 0) + total_nb_available_rb[CC_id]--; + + N_RBG[CC_id] = to_rbg(cc[CC_id].mib->message.dl_Bandwidth); + + // store the global enb stats: + eNB->eNB_stats[CC_id].num_dlactive_UEs = UE_list->num_UEs; + eNB->eNB_stats[CC_id].available_prbs = total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].total_available_prbs += total_nb_available_rb[CC_id]; + eNB->eNB_stats[CC_id].dlsch_bytes_tx = 0; + eNB->eNB_stats[CC_id].dlsch_pdus_tx = 0; + } + + /// CALLING Pre_Processor for downlink scheduling (Returns estimation of RBs required by each UE and the allocation on sub-band) + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_IN); + //start_meas(&eNB->schedule_dlsch_preprocessor); + //dlsch_scheduler_pre_processor(module_idP, + // frameP, + // subframeP, + // N_RBG, + // mbsfn_flag); + //stop_meas(&eNB->schedule_dlsch_preprocessor); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_DLSCH_PREPROCESSOR, VCD_FUNCTION_OUT); + + + for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) + { + vrb_map = cc[CC_id].vrb_map; + + LOG_D(MAC, "doing schedule_ue_spec for CC_id %d\n", CC_id); + + dl_req = &eNB->DL_req[CC_id].dl_config_request_body; + + if (mbsfn_flag[CC_id] > 0) + continue; + + for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) + { + + + continue_flag = 0; // reset the flag to allow allocation for the remaining UEs + rnti = UE_RNTI(module_idP, UE_id); + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + + + if (rnti == NOT_A_RNTI) { + LOG_D(MAC, "Cannot find rnti for UE_id %d (num_UEs %d)\n", UE_id, UE_list->num_UEs); + continue_flag = 1; + } + + if (eNB_UE_stats == NULL) { + LOG_D(MAC, "[eNB] Cannot find eNB_UE_stats\n"); + continue_flag = 1; + } + + //if (continue_flag != 1) { + // switch (get_tmode(module_idP, CC_id, UE_id)) { + // case 1: + // case 2: + // case 7: + // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + // eNB_UE_stats->dl_cqi, + // format1); + // break; + // case 3: + // aggregation = get_aggregation(get_bw_index(module_idP, CC_id), + // eNB_UE_stats->dl_cqi, + // format2A); + // break; + // default: + // LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); + // aggregation = 2; + // } + //} + + if ((ue_sched_ctl->pre_nb_available_rbs[CC_id] == 0) || // no RBs allocated + CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, aggregation, rnti) + ) { + LOG_D(MAC, "[eNB %d] Frame %d : no RB allocated for UE %d on CC_id %d: continue \n", + module_idP, frameP, UE_id, CC_id); + continue_flag = 1; //to next user (there might be rbs availiable for other UEs in TM5 + } + + //if (cc[CC_id].tdd_Config != NULL) { //TDD + // set_ue_dai(subframeP, + // UE_id, + // CC_id, + // cc[CC_id].tdd_Config->subframeAssignment, + // UE_list); + // // update UL DAI after DLSCH scheduling + // set_ul_DAI(module_idP, UE_id, CC_id, frameP, subframeP); + //} + + //if (continue_flag == 1) { + // add_ue_dlsch_info(module_idP, + // CC_id, + // UE_id, + // subframeP, + // S_DL_NONE); + // continue; + // } + + nb_available_rb = 6; // to be checked + harq_pid = ue_sched_ctl->harq_pid[CC_id]; + round = ue_sched_ctl->round[CC_id]; + UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); + UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; + UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; + + sdu_length_total = 0; + num_sdus = 0; + + + //DevCheck(((eNB_UE_stats->dl_cqi < MIN_CQI_VALUE) || (eNB_UE_stats->dl_cqi > MAX_CQI_VALUE)), + //eNB_UE_stats->dl_cqi, MIN_CQI_VALUE, MAX_CQI_VALUE); + + eNB_UE_stats->dlsch_mcs1 = cqi_to_mcs[eNB_UE_stats->dl_cqi]; //to be checked + eNB_UE_stats->dlsch_mcs1 = cmin(eNB_UE_stats->dlsch_mcs1, 15); + + + // store stats + UE_list->eNB_UE_stats[CC_id][UE_id].dl_cqi = eNB_UE_stats->dl_cqi; + + // initializing the rb allocation indicator for each UE + //to be checked + for (j = 0; j < N_RBG[CC_id]; j++) { + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = 0; + } + + LOG_D(MAC, "[eNB %d] Frame %d: Scheduling UE %d on CC_id %d (rnti %x, harq_pid %d, round %d, rb %d, cqi %d, mcs %d, rrc %d)\n", + module_idP, frameP, UE_id, CC_id, rnti, harq_pid, round, nb_available_rb, + eNB_UE_stats->dl_cqi, eNB_UE_stats->dlsch_mcs1, + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status); + + + + // process retransmission + + if (round > 0) + { + // get freq_allocation + nb_rb = 6;//UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; + + if (nb_rb <= nb_available_rb) + { + + + //if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; j < N_RBG[CC_id]; j++) { // for indicating the rballoc for each sub-band + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + //} + //else { + // nb_rb_temp = nb_rb; + // j = 0; + + // while ((nb_rb_temp > 0) && (j < N_RBG[CC_id])) { + // if (ue_sched_ctl->rballoc_sub_UE[CC_id][j] == 1) { + // UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + + // if ((j == N_RBG[CC_id] - 1) && + // ((N_RB_DL[CC_id] == 25) || + // (N_RB_DL[CC_id] == 50))) { + // nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; + // } + // else { + // nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; + // } + // } + + // j = j + 1; + // } + //} + + nb_available_rb -= nb_rb; + + //eNB->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; + //eNB->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; + + //for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; + //} + + + switch (get_tmode(module_idP, CC_id, UE_id)) { + case 1: + case 2: + case 7: + default: + { + unsigned int rmax; + unsigned int narrowBandindex_index; + unsigned int first_rb, rep, reps; + + // rmax from RRC connection setup + getRepetition(&UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); + + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + + first_rb = narrowBandindex_index * 6; + + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + if ((UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC) > 0)) + { + // MPDCCH configuration for RAR + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = (round & 3); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = harq_pid; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + dl_req->number_pdu++; + + + + + //eNB_UE_stats->dlsch_trials[round]++; + UE_list->eNB_UE_stats[CC_id][UE_id].num_retransmission += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used_retx = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_retx += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = eNB_UE_stats->dlsch_mcs1; + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + + } //repetition_count==0 && SF condition met + else if (UE_template[CC_id][UE_id].msg2_mpdcch_repetition_cnt > 0) + { + // we're in a stream of repetitions + UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + if (UE_template[CC_id][UE_id].mpdcch_repetition_cnt == reps) + { + // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP > 7) UE_template[CC_id][UE_id].Msg2_frame = (frameP + 1) & 1023; + else UE_template[CC_id][UE_id].Msg2_frame = frameP; + UE_template[CC_id][UE_id].Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + } + else { + AssertFatal(1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps + if ((UE_template[CC_id][UE_id].Msg2_frame == frameP) && (UE_template[CC_id][UE_id].Msg2_subframe == subframeP)) { + // Program PDSCH + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 4; // format 6-1A + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = (round & 3); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // Program UL processing for Msg3, same as regular LTE + //get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + + + //fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + //// DL request + //eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; + //TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + //TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + //TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + //TX_req->num_segments = 1; + //TX_req->segments[0].segment_length = 7; + //TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + //eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + } + } + + } + + + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; + // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3; + + + + } + + + + + } + else { + LOG_D(MAC, "[eNB %d] Frame %d CC_id %d : don't schedule UE %d, its retransmission takes more resources than we have\n", + module_idP, frameP, CC_id, UE_id); + } + } + else + { + // This is a potentially new SDU opportunity // + + rlc_status.bytes_in_buffer = 0; + // Now check RLC information to compute number of required RBs + // get maximum TBS size for RLC request + TBS = 408; + // check first for RLC data on DCCH + // add the length for all the control elements (timing adv, drx, etc) : header + payload + + ta_len = (ue_sched_ctl->ta_update != 0) ? 2 : 0; + + header_len_dcch = 2; // 2 bytes DCCH SDU subheader + + 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)); // transport block set size + + sdu_lengths[0] = 0; + + if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit + LOG_D(MAC, "[eNB %d] Frame %d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, TBS - header_len_dcch); + sdu_lengths[0] = mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH, + TBS, //not used + (char *)&dlsch_buffer[0]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); + + LOG_D(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes from RLC\n", module_idP, CC_id, sdu_lengths[0]); + sdu_length_total = sdu_lengths[0]; + sdu_lcids[0] = DCCH; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH] += sdu_lengths[0]; + num_sdus = 1; #ifdef DEBUG_eNB_SCHEDULER - LOG_T(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[0]); + LOG_T(MAC, "[eNB %d][DCCH] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[0]); - for (j = 0; j 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)); // transport block set size less allocations for timing advance and - // DCCH SDU - sdu_lengths[num_sdus] = 0; + // check for DCCH1 and update header information (assume 2 byte sub-header) + 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)); // transport block set size less allocations for timing advance and + // DCCH SDU + sdu_lengths[num_sdus] = 0; - if (rlc_status.bytes_in_buffer > 0) { - LOG_I(MAC, "[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", - module_idP, frameP, CC_id, TBS - header_len_dcch - sdu_length_total); - sdu_lengths[num_sdus] += mac_rlc_data_req( - module_idP, - rnti, - module_idP, - frameP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - DCCH + 1, - TBS, //not used - (char *)&dlsch_buffer[sdu_length_total]); + if (rlc_status.bytes_in_buffer > 0) { + LOG_I(MAC, "[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP, frameP, CC_id, TBS - header_len_dcch - sdu_length_total); + sdu_lengths[num_sdus] += mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH + 1, + TBS, //not used + (char *)&dlsch_buffer[sdu_length_total]); - T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_INT(DCCH + 1), T_INT(sdu_lengths[num_sdus])); + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH + 1), T_INT(sdu_lengths[num_sdus])); - sdu_lcids[num_sdus] = DCCH1; - sdu_length_total += sdu_lengths[num_sdus]; - header_len_dcch += 2; - UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1] += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1] += sdu_lengths[num_sdus]; - num_sdus++; + sdu_lcids[num_sdus] = DCCH1; + sdu_length_total += sdu_lengths[num_sdus]; + header_len_dcch += 2; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1] += sdu_lengths[num_sdus]; + num_sdus++; #ifdef DEBUG_eNB_SCHEDULER - LOG_T(MAC, "[eNB %d][DCCH1] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[num_sdus]); + LOG_T(MAC, "[eNB %d][DCCH1] CC_id %d Got %d bytes :", module_idP, CC_id, sdu_lengths[num_sdus]); - for (j = 0; j= DTCH; lcid--) { - // TBD: check if the lcid is active + // assume the max dtch header size, and adjust it later + header_len_dtch = 0; + header_len_dtch_last = 0; // the header length of the last mac sdu + // lcid has to be sorted before the actual allocation (similar struct as ue_list). + for (lcid = NB_RB_MAX - 1; lcid >= DTCH; lcid--) { + // TBD: check if the lcid is active - header_len_dtch += 3; - header_len_dtch_last = 3; - LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", - module_idP, frameP, lcid, TBS, - TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); + header_len_dtch += 3; + header_len_dtch_last = 3; + LOG_D(MAC, "[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", + module_idP, frameP, lcid, TBS, + TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); - if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) { // NN: > 2 ? - rlc_status = mac_rlc_status_ind(module_idP, - rnti, - module_idP, - frameP, - subframeP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - lcid, - TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); + if (TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch > 0) { // NN: > 2 ? + rlc_status = mac_rlc_status_ind(module_idP, + rnti, + module_idP, + frameP, + subframeP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS - ta_len - header_len_dcch - sdu_length_total - header_len_dtch); - if (rlc_status.bytes_in_buffer > 0) { + if (rlc_status.bytes_in_buffer > 0) { - LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", - module_idP, frameP, TBS - header_len_dcch - sdu_length_total - header_len_dtch, lcid, header_len_dtch); - sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, - rnti, - module_idP, - frameP, - ENB_FLAG_YES, - MBMS_FLAG_NO, - lcid, - TBS, //not used - (char*)&dlsch_buffer[sdu_length_total]); - T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); + LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", + module_idP, frameP, TBS - header_len_dcch - sdu_length_total - header_len_dtch, lcid, header_len_dtch); + sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS, //not used + (char*)&dlsch_buffer[sdu_length_total]); + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); - LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n", module_idP, sdu_lengths[num_sdus], lcid); - sdu_lcids[num_sdus] = lcid; - sdu_length_total += sdu_lengths[num_sdus]; - UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] += 1; - UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus]; - if (sdu_lengths[num_sdus] < 128) { - header_len_dtch--; - header_len_dtch_last--; - } - num_sdus++; - } // no data for this LCID - else { - header_len_dtch -= 3; - } - } // no TBS left - else { - header_len_dtch -= 3; - break; - } - } - if (header_len_dtch == 0) - header_len_dtch_last = 0; - // there is at least one SDU - // if (num_sdus > 0 ){ - if ((sdu_length_total + header_len_dcch + header_len_dtch)> 0) { + LOG_D(MAC, "[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n", module_idP, sdu_lengths[num_sdus], lcid); + sdu_lcids[num_sdus] = lcid; + sdu_length_total += sdu_lengths[num_sdus]; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[lcid] += 1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[lcid] += sdu_lengths[num_sdus]; + if (sdu_lengths[num_sdus] < 128) { + header_len_dtch--; + header_len_dtch_last--; + } + num_sdus++; + } // no data for this LCID + else { + header_len_dtch -= 3; + } + } // no TBS left + else { + header_len_dtch -= 3; + break; + } + } + if (header_len_dtch == 0) + header_len_dtch_last = 0; + // there is at least one SDU + // if (num_sdus > 0 ){ + if ((sdu_length_total + header_len_dcch + header_len_dtch) > 0) { - // Now compute number of required RBs for total sdu length - // Assume RAH format 2 - // adjust header lengths - header_len_dcch_tmp = header_len_dcch; - header_len_dtch_tmp = header_len_dtch; - if (header_len_dtch == 0) { - header_len_dcch = (header_len_dcch >0) ? 1 : 0;//header_len_dcch; // remove length field - } - else { - header_len_dtch_last -= 1; // now use it to find how many bytes has to be removed for the last MAC SDU - header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last : header_len_dtch; // remove length field for the last SDU - } + // Now compute number of required RBs for total sdu length + // Assume RAH format 2 + // adjust header lengths + header_len_dcch_tmp = header_len_dcch; + header_len_dtch_tmp = header_len_dtch; + if (header_len_dtch == 0) { + header_len_dcch = (header_len_dcch > 0) ? 1 : 0;//header_len_dcch; // remove length field + } + else { + header_len_dtch_last -= 1; // now use it to find how many bytes has to be removed for the last MAC SDU + header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last : header_len_dtch; // remove length field for the last SDU + } - mcs = eNB_UE_stats->dlsch_mcs1; + //mcs = eNB_UE_stats->dlsch_mcs1; + //if (mcs == 0) { + // nb_rb = 4; // don't let the TBS get too small + //} + //else { + // nb_rb = min_rb_unit[CC_id]; + //} + mcs = 4; + nb_rb = 6; + - if (mcs == 0) { - nb_rb = 4; // don't let the TBS get too small - } - else { - nb_rb = min_rb_unit[CC_id]; - } + TBS = 408;//get_TBS_DL(mcs, nb_rb); - TBS = get_TBS_DL(mcs, nb_rb); + //while (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) { + // nb_rb += min_rb_unit[CC_id]; // - while (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) { - nb_rb += min_rb_unit[CC_id]; // + // if (nb_rb > nb_available_rb) { // if we've gone beyond the maximum number of RBs + // // (can happen if N_RB_DL is odd) + // TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); + // nb_rb = nb_available_rb; + // break; + // } - if (nb_rb>nb_available_rb) { // if we've gone beyond the maximum number of RBs - // (can happen if N_RB_DL is odd) - TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_available_rb); - nb_rb = nb_available_rb; - break; - } + // TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_rb); + //} - TBS = get_TBS_DL(eNB_UE_stats->dlsch_mcs1, nb_rb); - } - ///////////////////////////////////////////////////////////// - // alter the allocation of the emtc UE here - ////////////////////////////////////////////////////////////// - if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { - for (j = 0; jUE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - } - } - else { - nb_rb_temp = nb_rb; - j = 0; + //if (nb_rb == ue_sched_ctl->pre_nb_available_rbs[CC_id]) { + for (j = 0; j < N_RBG[CC_id]; j++) { // for indicating the rballoc for each sub-band + UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + } + //} + //else + //{ + // nb_rb_temp = nb_rb; + // j = 0; - while ((nb_rb_temp > 0) && (jrballoc_sub_UE[CC_id][j] == 1) { - UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; + // while ((nb_rb_temp > 0) && (j < N_RBG[CC_id])) { + // if (ue_sched_ctl->rballoc_sub_UE[CC_id][j] == 1) { + // UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j] = ue_sched_ctl->rballoc_sub_UE[CC_id][j]; - if ((j == N_RBG[CC_id] - 1) && - ((N_RB_DL[CC_id] == 25) || - (N_RB_DL[CC_id] == 50))) { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; - } - else { - nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; - } - } + // if ((j == N_RBG[CC_id] - 1) && + // ((N_RB_DL[CC_id] == 25) || + // (N_RB_DL[CC_id] == 50))) { + // nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id] + 1; + // } + // else { + // nb_rb_temp = nb_rb_temp - min_rb_unit[CC_id]; + // } + // } - j = j + 1; - } - } - /////////////////////////////////// + // j = j + 1; + // } + //} + + //RC.eNB[module_idP][CC_id]->mu_mimo_mode[UE_id].pre_nb_available_rbs = nb_rb; + //RC.eNB[module_idP][CC_id]->mu_mimo_mode[UE_id].dl_pow_off = ue_sched_ctl->dl_pow_off[CC_id]; + //for(j=0; jmu_mimo_mode[UE_id].rballoc_sub[j] = UE_list->UE_template[CC_id][UE_id].rballoc_subband[harq_pid][j]; - // decrease mcs until TBS falls below required length - while ((TBS > (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (mcs>0)) { - mcs--; - TBS = get_TBS_DL(mcs, nb_rb); - } + //} + // + // decrease mcs until TBS falls below required length + //while ((TBS > (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (mcs > 0)) { + // mcs--; + // TBS = get_TBS_DL(mcs, nb_rb); + //} - // if we have decreased too much or we don't have enough RBs, increase MCS - while ((TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (((ue_sched_ctl->dl_pow_off[CC_id]>0) && (mcs<28)) - || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { - mcs++; - TBS = get_TBS_DL(mcs, nb_rb); - } + //// if we have decreased too much or we don't have enough RBs, increase MCS + //while ((TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (mcs < 28)) + // || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { + // mcs++; + // TBS = get_TBS_DL(mcs, nb_rb); + //} - LOG_D(MAC, "dlsch_mcs before and after the rate matching = (%d, %d)\n", eNB_UE_stats->dlsch_mcs1, mcs); + LOG_D(MAC, "dlsch_mcs before and after the rate matching = (%d, %d)\n", eNB_UE_stats->dlsch_mcs1, mcs); #ifdef DEBUG_eNB_SCHEDULER - LOG_D(MAC, "[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", - module_idP, CC_id, mcs, TBS, nb_rb); - // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", - // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); + LOG_D(MAC, "[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", + module_idP, CC_id, mcs, TBS, nb_rb); + // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", + // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); #endif - if ((TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len) <= 2) { - padding = (TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len); - post_padding = 0; - } - else { - padding = 0; + if ((TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len) <= 2) { + padding = (TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len); + post_padding = 0; + } + else { + padding = 0; - // adjust the header len - if (header_len_dtch == 0) { - header_len_dcch = header_len_dcch_tmp; - } - else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) - header_len_dtch = header_len_dtch_tmp; - } + // adjust the header len + if (header_len_dtch == 0) { + header_len_dcch = header_len_dcch_tmp; + } + else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) + header_len_dtch = header_len_dtch_tmp; + } - post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len; // 1 is for the postpadding header - } + post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len; // 1 is for the postpadding header + } - offset = generate_dlsch_header((unsigned char*)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], - num_sdus, //num_sdus - sdu_lengths, // - sdu_lcids, - 255, // no drx - ue_sched_ctl->ta_update, // timing advance - NULL, // contention res id - padding, - post_padding); + offset = generate_dlsch_header((unsigned char*)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + num_sdus, //num_sdus + sdu_lengths, // + sdu_lcids, + 255, // no drx + ue_sched_ctl->ta_update, // timing advance + NULL, // contention res id + padding, + post_padding); - //#ifdef DEBUG_eNB_SCHEDULER - if (ue_sched_ctl->ta_update) { - LOG_I(MAC, - "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", - module_idP, frameP, UE_id, CC_id, sdu_length_total, num_sdus, sdu_lengths[0], sdu_lcids[0], offset, - ue_sched_ctl->ta_update, padding, post_padding, mcs, TBS, nb_rb, header_len_dcch, header_len_dtch); - } - //#endif + //#ifdef DEBUG_eNB_SCHEDULER + if (ue_sched_ctl->ta_update) { + LOG_I(MAC, + "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", + module_idP, frameP, UE_id, CC_id, sdu_length_total, num_sdus, sdu_lengths[0], sdu_lcids[0], offset, + ue_sched_ctl->ta_update, padding, post_padding, mcs, TBS, nb_rb, header_len_dcch, header_len_dtch); + } + //#endif #ifdef DEBUG_eNB_SCHEDULER - LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n"); + LOG_T(MAC, "[eNB %d] First 16 bytes of DLSCH : \n"); - for (i = 0; i<16; i++) { - LOG_T(MAC, "%x.", dlsch_buffer[i]); - } + for (i = 0; i < 16; i++) { + LOG_T(MAC, "%x.", dlsch_buffer[i]); + } - LOG_T(MAC, "\n"); + LOG_T(MAC, "\n"); #endif - // cycle through SDUs and place in dlsch_buffer - memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset], dlsch_buffer, sdu_length_total); - // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); - - // fill remainder of DLSCH with random data - UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; - for (j = 0; j<(TBS - sdu_length_total - offset); j++) { - UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = (char)(taus() & 0xff); - } - - - if (opt_enabled == 1) { - trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], - TBS, module_idP, 3, UE_RNTI(module_idP, UE_id), - eNB->frame, eNB->subframe, 0, 0); - LOG_D(OPT, "[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", - module_idP, CC_id, frameP, UE_RNTI(module_idP, UE_id), TBS); - } - - T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), - T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); - - UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] = nb_rb; - - add_ue_dlsch_info(module_idP, - CC_id, - UE_id, - subframeP, - S_DL_SCHEDULED); - // store stats - eNB->eNB_stats[CC_id].dlsch_bytes_tx += sdu_length_total; - eNB->eNB_stats[CC_id].dlsch_pdus_tx += 1; - - UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = eNB_UE_stats->dlsch_mcs1; - UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = mcs; - UE_list->eNB_UE_stats[CC_id][UE_id].TBS = TBS; - - UE_list->eNB_UE_stats[CC_id][UE_id].overhead_bytes = TBS - sdu_length_total; - UE_list->eNB_UE_stats[CC_id][UE_id].total_sdu_bytes += sdu_length_total; - UE_list->eNB_UE_stats[CC_id][UE_id].total_pdu_bytes += TBS; - UE_list->eNB_UE_stats[CC_id][UE_id].total_num_pdus += 1; - - - - // do PUCCH power control - // this is the normalized RX power - eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; - normalized_rx_power = eNB_UE_stats->Po_PUCCH_dBm; - target_rx_power = get_target_pucch_rx_power(module_idP, CC_id) + 20; - - // this assumes accumulated tpc - // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out - int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame * 10 + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; - if (((framex10psubframe + 10) <= (frameP * 10 + subframeP)) || //normal case - ((framex10psubframe>(frameP * 10 + subframeP)) && (((10240 - framex10psubframe + frameP * 10 + subframeP) >= 10)))) //frame wrap-around - if (eNB_UE_stats->Po_PUCCH_update == 1) { - eNB_UE_stats->Po_PUCCH_update = 0; - - UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; - UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; - - if (normalized_rx_power>(target_rx_power + 1)) { - tpc = 0; //-1 - tpc_accumulated--; - } - else if (normalized_rx_power<(target_rx_power - 1)) { - tpc = 2; //+1 - tpc_accumulated++; - } - else { - tpc = 1; //0 - } - - - } // Po_PUCCH has been updated - else { - tpc = 1; //0 - } // time to do TPC update - else { - tpc = 1; //0 - } - - - - - - { - - - - - unsigned int rmax ; - unsigned int narrowBandindex_index ; - unsigned int first_rb, rep, reps; - - // rmax from RRC connection setup - getRepetition(&UE_template[CC_id][UE_id],&rmax, &narrowBandindex_index, &first_rb) ; - - - // choose r3 by default for RAR (Table 9.1.5-5) - rep = 2; - // get actual repetition count from Table 9.1.5-3 - reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); - // get narrowband according to higher-layer config - num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; - - RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; - first_rb = narrowBandindex_index * 6; - - vrb_map[first_rb] = 1; - vrb_map[first_rb + 1] = 1; - vrb_map[first_rb + 2] = 1; - vrb_map[first_rb + 3] = 1; - vrb_map[first_rb + 4] = 1; - vrb_map[first_rb + 5] = 1; - - if ((RA_template->mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC)>0)) - { - // MPDCCH configuration for RAR - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, - "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid];; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; - RA_template->msg2_mpdcch_repetition_cnt++; - dl_req->number_pdu++; - - } //repetition_count==0 && SF condition met - else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - RA_template->msg2_mpdcch_repetition_cnt++; - if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case - // wait 2 subframes for PDSCH transmission - if (subframeP>7) RA_template->Msg2_frame = (frameP + 1) & 1023; - else RA_template->Msg2_frame = frameP; - RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 - } - else { - AssertFatal(1 == 0, "TDD case not done yet\n"); - } - } // mpdcch_repetition_count == reps - if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - // Program PDSCH - RA_template->generate_rar = 0; - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - // Program UL processing for Msg3, same as regular LTE - get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); - - - fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = 7; - TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; - } - } - - } - - - - //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3; - - - if (!CCE_allocation_infeasible(module_idP, CC_id, 0, subframeP, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, - rnti)) { - dl_req->number_dci++; - dl_req->number_pdu++; - - } - else { - // No TX request for retransmission (check if null request for FAPI) - } - } - - - - - - - - - - - - - - - //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = tpc; // dont adjust power when retransmitting - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; - ////deactivate second codeword - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_2 = 0; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_2 = 1; - // - dl_req->number_dci++; - dl_req->number_pdu++; - - // Toggle NDI for next time - LOG_D(MAC, "CC_id %d Frame %d, subframeP %d: Toggling Format1 NDI for UE %d (rnti %x/%d) oldNDI %d\n", - CC_id, frameP, subframeP, UE_id, - UE_list->UE_template[CC_id][UE_id].rnti, harq_pid, UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]); - - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid] = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid] = mcs; - UE_list->UE_template[CC_id][UE_id].oldmcs2[harq_pid] = 0; - - eNB->TX_req[CC_id].sfn_sf = (frameP << 3) + subframeP; - TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; - TX_req->pdu_length = TBS; - TX_req->pdu_index = eNB->pdu_index[CC_id]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = TBS; - TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char)UE_id].payload[harq_pid]; - eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; - - } - else { // There is no data from RLC or MAC header, so don't schedule - - } - } - - - } // UE_id loop - } // CC_id loop - - - fill_DLSCH_dci(module_idP, frameP, subframeP, mbsfn_flag); - - stop_meas(&eNB->schedule_dlsch); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); + // cycle through SDUs and place in dlsch_buffer + memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset], dlsch_buffer, sdu_length_total); + // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); + + // fill remainder of DLSCH with random data + for (j = 0; j < (TBS - sdu_length_total - offset); j++) { + UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset + sdu_length_total + j] = (char)(taus() & 0xff); + } + + + if (opt_enabled == 1) { + trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + TBS, module_idP, 3, UE_RNTI(module_idP, UE_id), + eNB->frame, eNB->subframe, 0, 0); + LOG_D(OPT, "[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", + module_idP, CC_id, frameP, UE_RNTI(module_idP, UE_id), TBS); + } + + T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); + + UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid] = nb_rb; + + add_ue_dlsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_DL_SCHEDULED); + // store stats + eNB->eNB_stats[CC_id].dlsch_bytes_tx += sdu_length_total; + eNB->eNB_stats[CC_id].dlsch_pdus_tx += 1; + + UE_list->eNB_UE_stats[CC_id][UE_id].rbs_used = nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used += nb_rb; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs1 = 4;//eNB_UE_stats->dlsch_mcs1; + UE_list->eNB_UE_stats[CC_id][UE_id].dlsch_mcs2 = mcs; + UE_list->eNB_UE_stats[CC_id][UE_id].TBS = TBS; + + UE_list->eNB_UE_stats[CC_id][UE_id].overhead_bytes = TBS - sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_sdu_bytes += sdu_length_total; + UE_list->eNB_UE_stats[CC_id][UE_id].total_pdu_bytes += TBS; + UE_list->eNB_UE_stats[CC_id][UE_id].total_num_pdus += 1; + + + + // do PUCCH power control + // this is the normalized RX power + eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; + normalized_rx_power = eNB_UE_stats->Po_PUCCH_dBm; + target_rx_power = get_target_pucch_rx_power(module_idP, CC_id) + 20; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + //int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame * 10 + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; + //if (((framex10psubframe + 10) <= (frameP * 10 + subframeP)) || //normal case + // ((framex10psubframe > (frameP * 10 + subframeP)) && (((10240 - framex10psubframe + frameP * 10 + subframeP) >= 10)))) //frame wrap-around + // if (eNB_UE_stats->Po_PUCCH_update == 1) { + // eNB_UE_stats->Po_PUCCH_update = 0; + + // UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; + // UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; + + // if (normalized_rx_power > (target_rx_power + 1)) { + // tpc = 0; //-1 + // tpc_accumulated--; + // } + // else if (normalized_rx_power < (target_rx_power - 1)) { + // tpc = 2; //+1 + // tpc_accumulated++; + // } + // else { + // tpc = 1; //0 + // } + // + // + + // } // Po_PUCCH has been updated + // else { + // tpc = 1; //0 + // } // time to do TPC update + //else { + // tpc = 1; //0 + //} + + { + unsigned int rmax; + unsigned int narrowBandindex_index; + unsigned int first_rb, rep, reps; + + // rmax from RRC connection setup + getRepetition(&UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); + + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + + first_rb = narrowBandindex_index * 6; + + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + if ((UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC) > 0)) + { + // MPDCCH configuration for RAR + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = harq_pid; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + dl_req->number_pdu++; + + + // Toggle NDI for next time + LOG_D(MAC, "CC_id %d Frame %d, subframeP %d: Toggling Format1 NDI for UE %d (rnti %x/%d) oldNDI %d\n", + CC_id, frameP, subframeP, UE_id, + UE_list->UE_template[CC_id][UE_id].rnti, harq_pid, UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]); + + UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid] = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid] = mcs; + UE_list->UE_template[CC_id][UE_id].oldmcs2[harq_pid] = 0; + + eNB->TX_req[CC_id].sfn_sf = (frameP << 3) + subframeP; + TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = TBS; + TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = TBS; + TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char)UE_id].payload[harq_pid]; + eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + + } //repetition_count==0 && SF condition met + else if (UE_template[CC_id][UE_id].msg2_mpdcch_repetition_cnt > 0) + { + // we're in a stream of repetitions + UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + if (UE_template[CC_id][UE_id].mpdcch_repetition_cnt == reps) + { + // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP > 7) UE_template[CC_id][UE_id].Msg2_frame = (frameP + 1) & 1023; + else UE_template[CC_id][UE_id].Msg2_frame = frameP; + UE_template[CC_id][UE_id].Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + } + else { + AssertFatal(1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps + if ((UE_template[CC_id][UE_id].Msg2_frame == frameP) && (UE_template[CC_id][UE_id].Msg2_subframe == subframeP)) { + // Program PDSCH + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 4; // format 6-1A + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // Program UL processing for Msg3, same as regular LTE + //get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + + + //fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + //// DL request + //eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; + //TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + //TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + //TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + //TX_req->num_segments = 1; + //TX_req->segments[0].segment_length = 7; + //TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + //eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + } + } + + } + + //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); + //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power + + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = tpc; // dont adjust power when retransmitting + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1 - UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = mcs; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; + ////deactivate second codeword + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_2 = 0; + //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_2 = 1; + + //dl_req->number_dci++; + //dl_req->number_pdu++; + + + } + else { // There is no data from RLC or MAC header, so don't schedule + + } + } + + if (cc[CC_id].tdd_Config != NULL) { // TDD + set_ul_DAI(module_idP, UE_id, CC_id, frameP, subframeP); + } + + } // UE_id loop + } // CC_id loop + + + fill_DLSCH_dci(module_idP, frameP, subframeP, mbsfn_flag); + + stop_meas(&eNB->schedule_dlsch); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); }*/ - - - + //------------------------------------------------------------------------------ void schedule_ue_spec( From 8e73bca80f84360e3502356be3e4e2503029ea34 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Mon, 14 Aug 2017 15:39:51 +0200 Subject: [PATCH 024/125] fix some errors while merging BR edit --- openair2/LAYER2/MAC/defs.h | 2 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 0723324038..ba1ead0b02 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -758,7 +758,7 @@ typedef struct { uint16_t mpdcch_repetition_cnt; struct PhysicalConfigDedicated *physicalConfigDedicated; frame_t Msg2_frame; - subframe_t Msg2_subframe; + sub_frame_t Msg2_subframe; #endif } UE_TEMPLATE; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index aacb5e2697..121270c99b 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -461,9 +461,9 @@ void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned i } +/* - -/*void +void schedule_ue_spec_br( module_id_t module_idP, frame_t frameP, @@ -759,7 +759,7 @@ schedule_ue_spec_br( unsigned int first_rb, rep, reps; // rmax from RRC connection setup - getRepetition(&UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); + getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); // choose r3 by default for RAR (Table 9.1.5-5) rep = 2; @@ -775,7 +775,7 @@ schedule_ue_spec_br( vrb_map[first_rb + 4] = 1; vrb_map[first_rb + 5] = 1; - if ((UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && + if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC) > 0)) { // MPDCCH configuration for RAR @@ -796,7 +796,7 @@ schedule_ue_spec_br( dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_id].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter @@ -1572,7 +1572,9 @@ schedule_ue_spec_br( stop_meas(&eNB->schedule_dlsch); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); -}*/ +} + +*/ //------------------------------------------------------------------------------ void From 79d77a4af8b5ed572b3664c3f741555cf3568068 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Mon, 14 Aug 2017 18:43:49 +0200 Subject: [PATCH 025/125] debugging for SIB1-BR --- openair1/PHY/CODING/lte_rate_matching.c | 2 +- openair1/PHY/LTE_TRANSPORT/defs.h | 4 +- openair1/PHY/LTE_TRANSPORT/dlsch_coding.c | 20 ++--- openair1/SCHED/phy_procedures_lte_eNb.c | 96 ++++++++++++++--------- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 52 ++++++------ openair2/RRC/LITE/MESSAGES/asn1_msg.c | 3 +- targets/RT/USER/lte-ru.c | 7 +- 7 files changed, 109 insertions(+), 75 deletions(-) diff --git a/openair1/PHY/CODING/lte_rate_matching.c b/openair1/PHY/CODING/lte_rate_matching.c index a25dbe8b79..7d48021721 100644 --- a/openair1/PHY/CODING/lte_rate_matching.c +++ b/openair1/PHY/CODING/lte_rate_matching.c @@ -520,7 +520,7 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC, GpmodC = Gp%C; #ifdef RM_DEBUG - printf("lte_rate_matching_turbo: Ncb %d, Kw %d, Nir/C %d, rvidx %d, G %d, Qm %d, Nl%d, r %d\n",Ncb,3*(RTC<<5),Nir/C,rvidx, G, Qm,Nl,r); + LOG_D(PHY,"lte_rate_matching_turbo: Ncb %d, Kw %d, Nir/C %d, rvidx %d, G %d, Qm %d, Nl%d, r %d\n",Ncb,3*(RTC<<5),Nir/C,rvidx, G, Qm,Nl,r); #endif if (r < (C-(GpmodC))) diff --git a/openair1/PHY/LTE_TRANSPORT/defs.h b/openair1/PHY/LTE_TRANSPORT/defs.h index 9d3d9c2b40..e2be6810b2 100644 --- a/openair1/PHY/LTE_TRANSPORT/defs.h +++ b/openair1/PHY/LTE_TRANSPORT/defs.h @@ -291,7 +291,9 @@ typedef struct { int16_t sqrt_rho_a; /// amplitude of PDSCH (compared to RS) in symbols containing pilots int16_t sqrt_rho_b; - +#ifdef Rel14 + uint8_t sib1_br_flag; +#endif } LTE_eNB_DLSCH_t; #define PUSCH_x 2 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c index 18df5c3b44..68f38398c7 100644 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c @@ -145,7 +145,7 @@ LTE_eNB_DLSCH_t *new_eNB_dlsch(unsigned char Kmimo,unsigned char Mdlharq,uint32_ bzero(dlsch,sizeof(LTE_eNB_DLSCH_t)); dlsch->Kmimo = Kmimo; dlsch->Mdlharq = Mdlharq; - dlsch->Mlimit = 4; + dlsch->Mlimit = 8; dlsch->Nsoft = Nsoft; for (layer=0; layer<4; layer++) { @@ -597,19 +597,19 @@ int dlsch_encoding(PHY_VARS_eNB *eNB, beamforming_mode = 8; else if(dlsch->harq_processes[harq_pid]->mimo_mode == TM9_10) beamforming_mode = 9; - G = get_G(frame_parms,nb_rb,dlsch->harq_processes[harq_pid]->rb_alloc,mod_order,dlsch->harq_processes[harq_pid]->Nl,num_pdcch_symbols,frame,subframe,beamforming_mode); + G = get_G(frame_parms, + nb_rb, + dlsch->harq_processes[harq_pid]->rb_alloc, + mod_order, + dlsch->harq_processes[harq_pid]->Nl, + num_pdcch_symbols, + frame, + subframe, + beamforming_mode); - // if (dlsch->harq_processes[harq_pid]->Ndi == 1) { // this is a new packet if (dlsch->harq_processes[harq_pid]->round == 0) { // this is a new packet - /* - int i; - printf("dlsch (tx): \n"); - for (i=0;i<(A>>3);i++) - printf("%02x.",a[i]); - printf("\n"); - */ // Add 24-bit crc (polynomial A) to payload crc = crc24a(a, A)>>8; diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 514e7894cc..80789c2e8d 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -715,43 +715,48 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; int i; - LOG_D(PHY, - "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", G %d, nb_rb %"PRIu16", mcs %"PRIu8", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", - eNB->Mod_id, dlsch->rnti,harq_pid, - frame, subframe, input_buffer_length, - get_G(fp, - dlsch_harq->nb_rb, - dlsch_harq->rb_alloc, - get_Qm(dlsch_harq->mcs), - dlsch_harq->Nl, - num_pdcch_symbols, - frame, - subframe, - dlsch_harq->mimo_mode==TM7?7:0), - dlsch_harq->nb_rb, - dlsch_harq->mcs, - pmi2hex_2Ar1(dlsch_harq->pmi_alloc), - dlsch_harq->rvidx, + if (frame < 20) { + LOG_I(PHY, + "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", num_pdcch_symbols %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", + eNB->Mod_id, dlsch->rnti,harq_pid, + frame, subframe, input_buffer_length, num_pdcch_symbols, + get_G(fp, + dlsch_harq->nb_rb, + dlsch_harq->rb_alloc, + dlsch_harq->Qm, + dlsch_harq->Nl, + num_pdcch_symbols, + frame, + subframe, + dlsch_harq->mimo_mode==TM7?7:0), + dlsch_harq->nb_rb, + dlsch_harq->rb_alloc[0], + dlsch_harq->rb_alloc[1], + dlsch_harq->TBS, + pmi2hex_2Ar1(dlsch_harq->pmi_alloc), + dlsch_harq->rvidx, dlsch_harq->round); - + for (i=0;iTBS>>3;i++) printf("%x.",dlsch_harq->pdu[i]); + printf("\n"); + } #if defined(MESSAGE_CHART_GENERATOR_PHY) MSC_LOG_TX_MESSAGE( MSC_PHY_ENB,MSC_PHY_UE, NULL,0, - "%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", mcs %"PRIu8", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")", + "%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", TBS %"PRIu16", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")", frame, subframe, input_buffer_length, get_G(fp, dlsch_harq->nb_rb, dlsch_harq->rb_alloc, - get_Qm(dlsch_harq->mcs), + dlsch_harq->Qm, dlsch_harq->Nl, num_pdcch_symbols, frame, subframe, dlsch_harq->mimo_mode==TM7?7:0), dlsch_harq->nb_rb, - dlsch_harq->mcs, + dlsch_harq->TBS, pmi2hex_2Ar1(dlsch_harq->pmi_alloc), dlsch_harq->rvidx, dlsch_harq->round); @@ -868,7 +873,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, get_G(fp, dlsch_harq->nb_rb, dlsch_harq->rb_alloc, - get_Qm(dlsch_harq->mcs), + dlsch_harq->Qm, dlsch_harq->Nl, num_pdcch_symbols, frame,subframe, @@ -1003,7 +1008,7 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch1 = eNB->dlsch[UE_id][1]; #ifdef Rel14 - if ((rel13->pdsch_payload_type == 0) && (rel13->ue_type>0)) dlsch0->harq_ids[proc->subframe_tx] = 0; + if ((rel13->pdsch_payload_type < 2) && (rel13->ue_type>0)) dlsch0->harq_ids[proc->subframe_tx] = 0; #endif harq_pid = dlsch0->harq_ids[proc->subframe_tx]; @@ -1018,7 +1023,15 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, else dlsch1_harq->pdu = sdu; #ifdef Rel14 + dlsch0->sib1_br_flag=0; if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR + dlsch0->rnti = 0xFFFF; + dlsch0->Kmimo = 1; + dlsch0->Mdlharq = 4; + dlsch0->Nsoft = 25344; + + if (rel13->pdsch_payload_type == 0) dlsch0->sib1_br_flag=1; + // configure PDSCH switch (eNB->frame_parms.N_RB_DL) { case 6: @@ -1055,7 +1068,8 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0_harq->round = 0; dlsch0_harq->status = ACTIVE; dlsch0_harq->TBS = rel8->length<<3; - + dlsch0_harq->Qm = rel8->modulation; + dlsch0_harq->codeword = 0; } @@ -1437,34 +1451,42 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,0); // Now scan UE specific DLSCH + LTE_eNB_DLSCH_t *dlsch0,*dlsch1; for (UE_id=0; UE_iddlsch[(uint8_t)UE_id][0])&& - (eNB->dlsch[(uint8_t)UE_id][0]->rnti>0)&& - (eNB->dlsch[(uint8_t)UE_id][0]->active == 1)) { + dlsch0 = eNB->dlsch[(uint8_t)UE_id][0]; + dlsch1 = eNB->dlsch[(uint8_t)UE_id][1]; + if ((dlsch0)&& + (dlsch0->rnti>0)&& + (dlsch0->active == 1)) { // get harq_pid - harq_pid = eNB->dlsch[(uint8_t)UE_id][0]->harq_ids[subframe]; + harq_pid = dlsch0->harq_ids[subframe]; AssertFatal(harq_pid>=0,"harq_pid is negative\n"); // generate pdsch pdsch_procedures(eNB, proc, harq_pid, - eNB->dlsch[(uint8_t)UE_id][0], - eNB->dlsch[(uint8_t)UE_id][1], + dlsch0, + dlsch1, &eNB->UE_stats[(uint32_t)UE_id], 0, - num_pdcch_symbols); +#ifdef Rel14 + dlsch0->sib1_br_flag==0 ? num_pdcch_symbols : 3 +#else + num_pdcch_symbols +#endif +); } - else if ((eNB->dlsch[(uint8_t)UE_id][0])&& - (eNB->dlsch[(uint8_t)UE_id][0]->rnti>0)&& - (eNB->dlsch[(uint8_t)UE_id][0]->active == 0)) { + else if ((dlsch0)&& + (dlsch0->rnti>0)&& + (dlsch0->active == 0)) { // clear subframe TX flag since UE is not scheduled for PDSCH in this subframe (so that we don't look for PUCCH later) - eNB->dlsch[(uint8_t)UE_id][0]->subframe_tx[subframe]=0; + dlsch0->subframe_tx[subframe]=0; } } @@ -1676,7 +1698,6 @@ void process_HARQ_feedback(uint8_t UE_id, dl_subframe = ul_ACK_subframe2_dl_subframe(fp, subframe, m); - if (dlsch->subframe_tx[dl_subframe]==1) { if (pusch_flag == 1) mp++; @@ -1696,10 +1717,9 @@ void process_HARQ_feedback(uint8_t UE_id, if (dl_harq_pid[m]Mdlharq) { dlsch_harq_proc = dlsch->harq_processes[dl_harq_pid[m]]; #ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[eNB %d][PDSCH %x/%d] subframe %d, status %d, round %d (mcs %d, rv %d, TBS %d)\n",eNB->Mod_id, + LOG_D(PHY,"[eNB %d][PDSCH %x/%d] subframe %d, status %d, round %d (rv %d, TBS %d)\n",eNB->Mod_id, dlsch->rnti,dl_harq_pid[m],dl_subframe, dlsch_harq_proc->status,dlsch_harq_proc->round, - dlsch->harq_processes[dl_harq_pid[m]]->mcs, dlsch->harq_processes[dl_harq_pid[m]]->rvidx, dlsch->harq_processes[dl_harq_pid[m]]->TBS); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 2a7023e3ab..1cace89799 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -121,16 +121,16 @@ schedule_SIB1_BR( break; case 1: // repetition 8 k = frameP&3; - AssertFatal(N_RB_DL<=15,"SIB1-BR repetition 8 not allowed for N_RB_DL= %d\n",N_RB_DL); + AssertFatal(N_RB_DL>15,"SIB1-BR repetition 8 not allowed for N_RB_DL= %d\n",N_RB_DL); if ((foffset==0) && (subframeP!=(4+sfoffset))) continue; else if ((foffset==1) && (subframeP!=((9+sfoffset)%10))) continue; break; case 2: // repetition 16 k = ((10*frameP) + subframeP)&3; - AssertFatal(N_RB_DL<=15,"SIB1-BR repetition 16 not allowed for N_RB_DL= %d\n",N_RB_DL); + AssertFatal(N_RB_DL>15,"SIB1-BR repetition 16 not allowed for N_RB_DL= %d\n",N_RB_DL); if ((sfoffset == 1) && ((subframeP!=0)||(subframeP!=5))) continue; - else if ((sfoffset == 0) && (foffset==0) && ((subframeP!=4) || (subframeP!=9))) continue; - else if ((sfoffset == 0) && (foffset==1) && ((subframeP!=0) || (subframeP!=9))) continue; + else if ((sfoffset == 0) && (foffset==0) && (subframeP!=4) && (subframeP!=9)) continue; + else if ((sfoffset == 0) && (foffset==1) && (subframeP!=0) && (subframeP!=9)) continue; break; } // if we get here we have to schedule SIB1_BR in this frame/subframe @@ -170,14 +170,13 @@ schedule_SIB1_BR( Sj = Sj100; break; } - + // Note: definition of k above and rvidx from 36.321 section 5.3.1 rvidx = (((3*k)>>1) + (k&1))&3; i = cc->SIB1_BR_cnt & (m-1); n_NB = Sj[((cc->physCellId % N_S_NB) + (i*N_S_NB/m))%N_S_NB]; - if ((frameP%1000) < 40) LOG_D(MAC,"[eNB %d] Frame %d, subframe %d : BCCH_BR->DLSCH (SIB1) CC_id %d\n",module_idP,frameP,subframeP,CC_id); bcch_sdu_length = mac_rrc_data_req(module_idP, CC_id, @@ -197,11 +196,11 @@ schedule_SIB1_BR( AssertFatal(bcch_sdu_length <= TBS, "length returned by RRC %d is not compatible with the TBS %d from MIB\n",bcch_sdu_length,TBS); - LOG_D(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,CC_id,bcch_sdu_length); + if ((frameP&1023) < 200) LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx); // allocate all 6 PRBs in narrowband for SIB1_BR first_rb = n_NB*6; - vrb_map[first_rb] = 1; + vrb_map[first_rb] = 1; vrb_map[first_rb+1] = 1; vrb_map[first_rb+2] = 1; vrb_map[first_rb+3] = 1; @@ -341,7 +340,10 @@ schedule_SI_BR( "si_WindowLength_BR_r13 %d > %d\n", (int)cc->sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13, SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_WindowLength_BR_r13_ms200); - + + // check that SI frequency-hopping is disabled + AssertFatal(cc->sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->si_HoppingConfigCommon_r13==SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__si_HoppingConfigCommon_r13_off, + "Deactivate SI_HoppingConfigCommon_r13 in configuration file, not supported for now\n"); long si_WindowLength_BR_r13 = si_WindowLength_BR_r13tab[cc->sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13]; long si_RepetitionPattern_r13 = cc->sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13; @@ -359,14 +361,10 @@ schedule_SI_BR( // check if the SI is to be scheduled now int period_in_sf = 80<>1) + (k&1))&3; - rvidx = (((3*sf_mod_period)>>1) + (sf_mod_period&1))&3; - - if ((frameP%1000) < 200) LOG_I(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH (SI) CC_id %d, rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d\n", - module_idP,frameP,CC_id,si_Narrowband_r13,rvidx, - sf_mod_period,si_WindowLength_BR_r13,si_RepetitionPattern_r13); - if ((sf_mod_period < si_WindowLength_BR_r13) && ((frameP&(((1<>3), "RRC provided bcch with length %d > %d (si_TBS_r13 %d)\n", bcch_sdu_length,(int)(si_TBS_r13>>3),(int)schedulingInfoList_BR_r13->list.array[i]->si_TBS_r13); - LOG_D(MAC,"[eNB %d] Frame %d : BCCH_BR %d->DLSCH CC_id %d, Received %d bytes \n",module_idP,frameP,i,CC_id,bcch_sdu_length); - - if ((frameP%1000) < 200) LOG_I(MAC,"[eNB %d] Frame %d : BCCH_BR->DLSCH (SI) CC_id %d, Received %d bytes for NB %d/rvidx %d\n",module_idP,frameP,CC_id,bcch_sdu_length,si_Narrowband_r13,rvidx); // allocate all 6 PRBs in narrowband for SIB1_BR - first_rb = si_Narrowband_r13*6; + first_rb = (si_Narrowband_r13-1)*6; + + // check that SIB1 didn't take this narrowband + if (vrb_map[first_rb] > 0) continue; + vrb_map[first_rb] = 1; vrb_map[first_rb+1] = 1; vrb_map[first_rb+2] = 1; - vrb_map[first_rb+3] = 1; vrb_map[first_rb+4] = 1; vrb_map[first_rb+5] = 1; + + if ((frameP%1000) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", + module_idP,frameP,subframeP,CC_id,si_Narrowband_r13-1,rvidx, + sf_mod_period,si_WindowLength_BR_r13,si_RepetitionPattern_r13, + bcch_sdu_length); + + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); @@ -512,7 +518,7 @@ void schedule_mib(module_id_t module_idP, LOG_D(MAC,"Frame %d, subframe %d: Adding BCH PDU in position %d (length %d)\n", frameP,subframeP,dl_req->number_pdu,mib_sdu_length); - if ((frameP&1023) < 40) LOG_I(MAC,"[eNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes (cc->mib->message.schedulingInfoSIB1_BR_r13 %d)\n",module_idP,frameP,CC_id,mib_sdu_length,cc->mib->message.schedulingInfoSIB1_BR_r13); + if ((frameP&1023) < 40) LOG_D(MAC,"[eNB %d] Frame %d : MIB->BCH CC_id %d, Received %d bytes (cc->mib->message.schedulingInfoSIB1_BR_r13 %d)\n",module_idP,frameP,CC_id,mib_sdu_length,cc->mib->message.schedulingInfoSIB1_BR_r13); dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); @@ -749,7 +755,7 @@ schedule_SI( #ifdef Rel14 schedule_SIB1_BR(module_idP,frameP,subframeP); - schedule_SI_BR(module_idP,frameP,subframeP); + // schedule_SI_BR(module_idP,frameP,subframeP); #endif stop_meas(&eNB->schedule_si); diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index f4ed3ca44d..1a2bf04f73 100644 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -511,7 +511,8 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, ////Rel1310 #if defined(ENABLE_ITTI) - if (configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) + if ((configuration->schedulingInfoSIB1_BR_r13[CC_id] != 0) && + (brOption==TRUE)) { sib1_1250->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1310_IEs_t)); memset(sib1_1250->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1310_IEs_t)); diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index ee7d73263a..d449790a56 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -822,7 +822,12 @@ void tx_rf(RU_t *ru) { if (txs != fp->samples_per_tti) { LOG_E(PHY,"TX : Timeout (sent %d/%d)\n",txs, fp->samples_per_tti); exit_fun( "problem transmitting samples" ); - } + } + /* + if ((proc->subframe_tx == 4) && (proc->frame_tx == 10)) { + write_output("ru_tx_sf4.m","txs",(void*)&ru->common.txdata[0][4*fp->samples_per_tti],fp->samples_per_tti,1,1); + exit(-1); + }*/ } } From 81829065648ccbaf54291eb33f624eab6b6c9c51 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Tue, 15 Aug 2017 10:05:54 +0200 Subject: [PATCH 026/125] Adding Schedule UE Spec BR Method --- enb_dev.config | 2 - enb_dev.creator | 1 - enb_dev.files | 7877 --------------------- enb_dev.includes | 143 - oai5g_development.config | 2 - oai5g_development.creator | 1 - oai5g_development.files | 3763 ---------- oai5g_development.includes | 182 - openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 86 +- 9 files changed, 47 insertions(+), 12010 deletions(-) delete mode 100755 enb_dev.config delete mode 100755 enb_dev.creator delete mode 100755 enb_dev.files delete mode 100755 enb_dev.includes delete mode 100755 oai5g_development.config delete mode 100755 oai5g_development.creator delete mode 100755 oai5g_development.files delete mode 100755 oai5g_development.includes diff --git a/enb_dev.config b/enb_dev.config deleted file mode 100755 index e0284f4257..0000000000 --- a/enb_dev.config +++ /dev/null @@ -1,2 +0,0 @@ -// Add predefined macros for your project here. For example: -// #define THE_ANSWER 42 diff --git a/enb_dev.creator b/enb_dev.creator deleted file mode 100755 index e94cbbd302..0000000000 --- a/enb_dev.creator +++ /dev/null @@ -1 +0,0 @@ -[General] diff --git a/enb_dev.files b/enb_dev.files deleted file mode 100755 index b176552d68..0000000000 --- a/enb_dev.files +++ /dev/null @@ -1,7877 +0,0 @@ -cmake_targets/at_commands/CMakeLists.txt -cmake_targets/autotests/templates/index.html -cmake_targets/autotests/templates/testcase_report.html -cmake_targets/autotests/tools/autotest_analyser.py -cmake_targets/autotests/tools/configure_cots_bandrich_ue.py -cmake_targets/autotests/tools/configure_cots_huaweiE398_ue.py -cmake_targets/autotests/tools/configure_cots_sony_experia_m4_ue.py -cmake_targets/autotests/tools/configure_usrpb210.py -cmake_targets/autotests/tools/find_usb_path.bash -cmake_targets/autotests/tools/free_mem.bash -cmake_targets/autotests/tools/git-retry.sh -cmake_targets/autotests/tools/iperf3_script -cmake_targets/autotests/tools/iperf3_script_phone -cmake_targets/autotests/tools/iperf_script -cmake_targets/autotests/tools/iperf_script_phone -cmake_targets/autotests/tools/lib_autotest.py -cmake_targets/autotests/tools/lib_autotest_analyser.py -cmake_targets/autotests/tools/remove_old_programs.bash -cmake_targets/autotests/tools/run_gdb -cmake_targets/autotests/tools/search_repl.py -cmake_targets/autotests/tools/wdial.bandrich.conf -cmake_targets/autotests/v2/actions/alu_epc.bash -cmake_targets/autotests/v2/actions/alu_epc_stop.bash -cmake_targets/autotests/v2/actions/alu_hss.bash -cmake_targets/autotests/v2/actions/bandrich.txt -cmake_targets/autotests/v2/actions/client_tcp.bash -cmake_targets/autotests/v2/actions/client_udp.bash -cmake_targets/autotests/v2/actions/clone_repository.bash -cmake_targets/autotests/v2/actions/compilation.bash -cmake_targets/autotests/v2/actions/execution.bash -cmake_targets/autotests/v2/actions/execution_compile.bash -cmake_targets/autotests/v2/actions/modem.py -cmake_targets/autotests/v2/actions/run_enb.bash -cmake_targets/autotests/v2/actions/server_tcp.bash -cmake_targets/autotests/v2/actions/server_udp.bash -cmake_targets/autotests/v2/actions/start_3276.bash -cmake_targets/autotests/v2/actions/start_3276.py -cmake_targets/autotests/v2/actions/start_bandrich.bash -cmake_targets/autotests/v2/actions/start_bandrich.py -cmake_targets/autotests/v2/actions/stop_3276.py -cmake_targets/autotests/v2/actions/stop_bandrich.py -cmake_targets/autotests/v2/actions/wvdial.3276.conf -cmake_targets/autotests/v2/actions/wvdial.bandrich.conf -cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf -cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf -cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf -cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf -cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf -cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf -cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf -cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf -cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf -cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf -cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf -cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf -cmake_targets/autotests/v2/alu_test.py -cmake_targets/autotests/v2/connection.py -cmake_targets/autotests/v2/machine_list.py -cmake_targets/autotests/v2/main.py -cmake_targets/autotests/v2/task.py -cmake_targets/autotests/v2/utils.py -cmake_targets/autotests/core.py -cmake_targets/autotests/log.py -cmake_targets/autotests/openair.py -cmake_targets/autotests/README.txt -cmake_targets/autotests/run_compilation_autotests.bash -cmake_targets/autotests/run_exec_autotests.bash -cmake_targets/autotests/run_exec_lte-softmodem_tests.py -cmake_targets/autotests/test_case_list.xml -cmake_targets/autotests/testsuite_ue_noS1.xml -cmake_targets/autotests/testsuite_ue_noS1_TCL.xml -cmake_targets/doxygen/CMakeLists.txt -cmake_targets/epc_test/CMakeLists.template -cmake_targets/log/lte-softmodem.Rel14.txt -cmake_targets/lte-simulators/CMakeLists.txt -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/a.out -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdC/CMakeCCompilerId.c -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/a.out -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CompilerIdCXX/CMakeCXXCompilerId.cpp -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCCompiler.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_C.bin -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeDetermineCompilerABI_CXX.bin -cmake_targets/lte_build_oai/build/CMakeFiles/2.8.12.2/CMakeSystem.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/CN_UTILS.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm4.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/dlsim_tm7.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/generate_T.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/GTPV1U.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/HASHTABLE.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/ITTI.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/L2.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/LFDS7.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/LIB_NAS_UE.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem-nos1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/lte-softmodem.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/mbmssim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/nasmesh.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_bladerfdevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_eth_transpro.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_exmimodevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_lmssdrdevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_nw_drv.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oai_usrpdevif.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/oaisim_nos1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/oarf.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/OPENAIR0_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/openair_rf.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pbchsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pdcchsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/PHY.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/prachsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/1 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/10 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/11 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/15 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/16 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/17 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/18 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/19 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/2 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/20 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/21 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/22 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/23 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/24 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/25 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/26 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/27 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/28 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/29 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/3 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/30 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/31 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/32 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/33 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/34 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/35 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/36 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/37 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/38 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/39 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/4 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/40 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/41 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/42 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/43 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/44 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/45 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/46 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/47 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/48 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/49 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/5 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/50 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/51 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/52 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/53 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/54 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/55 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/56 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/57 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/58 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/59 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/6 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/60 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/61 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/62 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/63 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/64 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/65 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/66 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/67 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/68 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/69 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/7 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/70 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/71 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/72 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/73 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/74 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/75 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/76 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/77 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/78 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/79 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/8 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/80 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/81 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/82 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/83 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/9 -cmake_targets/lte_build_oai/build/CMakeFiles/Progress/count.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/pucchsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ANY.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn1_constants.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_application.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_codecs_prim.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_internal.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/asn_system.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_length.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/ber_tlv_tag.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BIT_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/BOOLEAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_CHOICE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constr_TYPE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/constraints.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/converter-sample.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/der_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/INTEGER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeEnumerated.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NativeInteger.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/NULL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OBJECT_IDENTIFIER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/OCTET_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_opentype.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/per_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/PrintableString.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AllocationAndRetentionPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-AreaScopeOfMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Bearers-SubjectToStatusTransfer-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BitRate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCancelledAreaList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-BroadcastCompletedAreaList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinEAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CancelledCellinTAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cause.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseMisc.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseNas.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseProtocol.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseRadioNetwork.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CauseTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HORequiredIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000HOStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMEID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXPilot.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXRAND.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000OneXSRVCCInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000RATType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cdma2000SectorID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Cell-Size.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellAccessMode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellBasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Broadcast.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellID-Cancelled.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdentity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellIdListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellTrafficTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CellType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CGI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CNDomain.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinEAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CompletedCellinTAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ConcurrentWarningMessageIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Correlation-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-COUNTvalue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Criticality.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics-IE-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CriticalityDiagnostics.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSFallbackIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-Id.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSG-IdList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-CSGMembershipStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Data-Forwarding-Not-Possible.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DataCodingScheme.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DeactivateTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Direct-Forwarding-Path-Availability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DL-Forwarding.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNASTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkNonUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkS1cdma2000tunneling.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-DownlinkUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RAB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABAdmittedList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABDataForwardingList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupItemHOReqAck.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABFailedToSetupListHOReqAck.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABInformationListItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABLevelQoSParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyItemBearerModRes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyListBearerModRes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABModifyResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseItemBearerRelComp.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseListBearerRelComp.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABReleaseResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemBearerSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupItemCtxtSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListBearerSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupListCtxtSURes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABSetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedItemBearerModReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeModifiedListBearerModReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemBearerSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemCtxtSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupItemHOReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListBearerSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListCtxtSUReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSetupListHOReq.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedDLList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-RABToBeSwitchedULList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-E-UTRAN-Trace-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ECGIList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Broadcast.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID-Cancelled.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EmergencyAreaIDList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-StatusTransfer-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENB-UE-S1AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBConfigurationUpdateFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBDirectInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBname.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBStatusTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLA.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2ExtTLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2GTPTLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ENBX2TLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EncryptionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ErrorIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRAN-CGI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EUTRANRoundTripDelayEstimationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-EventType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRepetitionPeriod.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ExtendedRNC-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenInterRATs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ForbiddenTAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GBR-QosInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GERAN-Cell-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Global-ENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GTP-TEID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GUMMEIList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-GWContextReleaseIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCancelAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverNotify.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverPreparationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequestAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRequired.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverRestrictionList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HandoverType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-HFN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE-Extensions.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ImmediateMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialContextSetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitialUEMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InitiatingMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-IntegrityProtectionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Inter-SystemInformationTransferType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-InterfacesToTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-KillResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-L3-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedCell-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedEUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedGERANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LastVisitedUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingControl.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LocationReportingFailureIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingDuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LoggingInterval.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-LPPa-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-M-TMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ManagementBasedMDTAllowed.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Activation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDT-Configuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MDTMode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementsToActivate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MeasurementThresholdA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MessageIdentifier.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Code.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-Group-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MME-UE-S1AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEConfigurationUpdateFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEDirectInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEname.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMERelaySupportIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MMEStatusTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-MSClassmark3.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NAS-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASNonDeliveryIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParametersfromE-UTRAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NASSecurityParameterstoE-UTRAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberofBroadcastRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-NumberOfBroadcasts.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OldBSS-ToNewBSS-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadAction.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStart.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-OverloadStop.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Paging.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingDRX.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PagingPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PathSwitchRequestFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PDCP-SN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1AP-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PeriodicReportingMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PLMNidentity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionCapability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Pre-emptionVulnerability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Presence.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PriorityLevel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivacyIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PrivateMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProcedureCode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolExtensionID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ProtocolIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-PS-ServiceNotAvailable.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-QCI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReceiveStatusofULPDCPSDUs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelativeMMECapacity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RelayNode-Indicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RepetitionPeriod.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportAmountMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportArea.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportingTriggerMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ReportIntervalMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RequestType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Reset.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetAll.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ResetType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMRoutingAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RIMTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RNC-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Routing-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-RRC-Establishment-Cause.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S-TMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-S1SetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityContext.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SecurityKey.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SerialNumber.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGroupIDs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedGUMMEIsItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedMMECs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ServedPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONConfigurationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationReply.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SONInformationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Source-ToTarget-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCHOIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SRVCCOperationPossible.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-StratumLevel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SubscriberProfileIDforRFP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SupportedTAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-SynchronizationStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TABasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Broadcast.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI-Cancelled.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAIListforWarning.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TAListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Target-ToSource-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TBCD-STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Threshold-RSRQ.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-ThresholdEventA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-Time-UE-StayedInCell.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeSynchronizationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TimeToWait.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceActivation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceDepth.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceFailureIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TraceStart.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TrafficLoadReductionIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TransportLayerAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TriggeringMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-TypeOfError.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListRes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-associatedLogicalS1-ConnectionListResAck.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-HistoryInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-ID-pair.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UE-S1AP-IDs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEAggregateMaximumBitrate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UECapabilityInfoIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextModificationResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEContextReleaseRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEIdentityIndexValue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UEPagingID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UERadioCapability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UESecurityCapabilities.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UnsuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNASTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkNonUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkS1cdma2000tunneling.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-UplinkUEAssociatedLPPaTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningAreaList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningMessageContents.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningSecurityInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WarningType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-WriteReplaceWarningResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/S1ap-X2TNLConfigurationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_compare.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_ies_defs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/s1ap_xer_print.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5/xer_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ANY.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn1_constants.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_application.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_codecs_prim.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_internal.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/asn_system.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_length.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ber_tlv_tag.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BIT_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/BOOLEAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_CHOICE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constr_TYPE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/constraints.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/converter-sample.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/der_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/INTEGER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeEnumerated.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NativeInteger.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/NULL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OBJECT_IDENTIFIER.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/OCTET_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_opentype.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/per_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/PrivateIE-Field.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolExtensionField.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPair.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-ContainerPairList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Field.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-FieldPair.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/ProtocolIE-Single-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABS-Status.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationFDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ABSInformationTDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ActivatedCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AllocationAndRetentionPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AreaScopeOfMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-AS-SecurityInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BandInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BitRate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-BroadcastPLMNs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CapacityValue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cause.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseMisc.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseProtocol.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseRadioNetwork.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CauseTransport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Cell-Size.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellActivationResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellBasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellCapacityClassValue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellIdListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellInformation-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellMeasurementResult-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellToReport-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CellType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompleteFailureCauseInformation-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CompositeAvailableCapacityGroup.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-COUNTvalue.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Criticality.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics-IE-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CriticalityDiagnostics.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CRNTI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSG-Id.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CSGMembershipStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixDL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-CyclicPrefixUL.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DeactivationIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-ABS-status.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Forwarding.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-non-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-DL-Total-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-Level-QoS-Parameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RAB-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-Admitted-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-SubjectToStatusTransfer-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-E-RABs-ToBeSetup-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EARFCN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ECGI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ENBConfigurationUpdateFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EncryptionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EPLMNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ErrorIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRA-Mode-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANCellIdentifier.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EUTRANTraceID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-EventType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FDD-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenInterRATs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenLAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTACs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ForbiddenTAs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Fourframes.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-FreqBandIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GBR-QosInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GlobalENB-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTP-TEI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GTPtunnelEndpoint.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GU-Group-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUGroupIDList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-GUMMEI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverCancel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverPreparationFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverReportType.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRequestAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HandoverRestrictionList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HFN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-HWLoadIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE-Extensions.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IE.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InitiatingMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-IntegrityProtectionAlgorithms.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InterfacesToTrace.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-InvokeIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Key-eNodeB-Star.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedCell-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedEUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedGERANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LastVisitedUTRANCellInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LoadInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-LocationReportingInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ManagementBasedMDTallowed.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBMS-Service-Area-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MBSFN-Subframe-Infolist.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Activation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MDT-Configuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Measurement-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementFailureCause-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementInitiationResult-List.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementsToActivate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MeasurementThresholdA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Code.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MME-Group-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeAcknowledge.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityChangeRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MobilityParametersModificationRange.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-MultibandInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information-Elm.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Neighbour-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-NextHopChainingCount.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Number-of-Antennaports.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Old-ECGIs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Oneframe.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PartialSuccessIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PCI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PDCP-SN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2AP-PDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PeriodicReportingMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PLMN-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PRACH-Configuration.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionCapability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Pre-emptionVulnerability.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Presence.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PriorityLevel.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-PrivateMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProcedureCode.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ProtocolIE-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-QCI.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationOffset.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioframeAllocationPeriod.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RadioResourceStatus.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReceiveStatusofULPDCPSDUs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Registration-Request.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RelativeNarrowbandTxPower.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportAmountMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportArea.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportCharacteristics.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingPeriodicity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportingTriggerMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ReportIntervalMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResetResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ResourceStatusUpdate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RLFIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RNTP-Threshold.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRC-Context.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnReestabIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-RRCConnSetupIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-S1TNLLoadIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCell-Information.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellItem.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCells.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToActivate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ServedCellsToModify.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ShortMAC-I.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SNStatusTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframe-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SpecialSubframePatterns.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SRVCCOperationPossible.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAllocation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubframeAssignment.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SubscriberProfileIDforRFP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-SuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TABasedMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAC.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TAListforMDT.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargetCellInUTRAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TargeteNBtoSource-eNBTransparentContainer.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TDD-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRP.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Threshold-RSRQ.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-ThresholdEventA2.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell-EnhancedGranularity.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Time-UE-StayedInCell.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TimeToWait.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceActivation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceCollectionEntityIPAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TraceDepth.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-Transmission-Bandwidth.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TransportLayerAddress.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TriggeringMessage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-TypeOfError.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-ContextInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-HistoryInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-RLF-Report-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-S1AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UE-X2AP-ID.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEAggregateMaximumBitRate.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UEContextRelease.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UESecurityCapabilities.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-HighInterferenceIndicationInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication-Item.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-InterferenceOverloadIndication.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-non-GBR-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UL-Total-PRB-usage.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UnsuccessfulOutcome.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationFDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2ap-UsableABSInformationTDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_ies_defs.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/x2ap_xer_print.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/X2SetupResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2/xer_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/rb_tool.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AB-ConfigPLMN-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AbsoluteTimeInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringConfig1XRTT-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AC-BarringPerPLMN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AccessStratumRelease.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringForCommon-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-List-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACDC-BarringPerPLMN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ACK-NACK-NumRepetitions-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalReestabInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSI-Info-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AdditionalSpectrumEmission.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreq-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqComb-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqCombList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AffectedCarrierFreqList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AllowedMeasBandwidth.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Alpha-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AltTTT-CellsToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AntennaInfoUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AreaConfiguration-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ARFCN-ValueUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v14x0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/AS-Context.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn1_constants.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_application.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_codecs_prim.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_internal.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/asn_system.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandclassCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassInfoCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriority1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityList1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandClassPriorityListHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationListEUTRA-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandCombinationParametersExt-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandIndicatorGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandInfoEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersDL-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BandParametersUL-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-Category-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BarringPerACDC-CategoryList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-BCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-BR.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BCCH-DL-SCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_length.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ber_tlv_tag.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BIT_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BlackCellsToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Range-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BLER-Result-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/BOOLEAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/C-RNTI.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-BandwidthClass-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersDL-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CA-MIMO-ParametersUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CandidateCellInfoList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierBandwidthEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreq-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-FDD-v8h0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqInfoUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListMBMS-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD-Ext-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-Ext-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqListUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqsInfoListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD-Ext-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CarrierFreqUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CDMA2000-Type.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CE-Parameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Cell-ToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellChangeOrder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellGlobalIdUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIdentity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndex.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellIndexList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoGERAN-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListGERAN-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-FDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoListUTRA-TDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-FDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellInfoUTRA-TDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionParametersCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionPriority.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionServingFreqInfo-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellReselectionSubPriority-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfo-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoCE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellSelectionInfoNFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModListUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsToAddModUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CellsTriggeredList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ChannelRasterOffset-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-EPS-OptimisationInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CIOT-OptimisationPLMN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CipheringAlgorithm-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CommonSF-AllocPatternList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/compare.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ConnEstFailReport-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_CHOICE.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SEQUENCE_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_SET_OF.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constr_TYPE.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/constraints.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/converter-sample.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheck.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CounterCheckResponse.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingRequestList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CountingResponseList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodic-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportAperiodicProc-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBoth-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportBothProc-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportConfigSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportModeAperiodic.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodic.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExt-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CQI-ReportPeriodicProcExtToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ConfigIndex-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRI-ReportConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CrossCarrierSchedulingConfigLAA-UL-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CRS-AssistanceInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFB-RegistrationParam1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersRequestCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSFBParametersResponseCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-AllowedReportingCells-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSG-ProximityIndicationParameters-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigId-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-IM-ConfigToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-Process-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-ProcessToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigBeamformed-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigEMIMO-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNonPrecoded-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-EMIMO-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZP-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPId-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigNZPToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZP-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-ConfigZPToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RS-TriggeredList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/CSI-RSRP-Range-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-Result-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DataBLER-MCH-ResultList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DC-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DedicatedInfoNAS.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaFList-PUCCH.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DeltaTxD-OffsetListPUCCH-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/der_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-AM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-Bitmap-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CarrierConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-CCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-DCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-GapConfig-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DL-UM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DLInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DMRS-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-Info.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-CountMSB-InfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-InfoSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToAddModSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRB-ToReleaseList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/DRX-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/E-CSFB-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EAB-ConfigPLMN-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EIMTA-MainConfigServCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EPDCCH-SetConfigToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/EstablishmentCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ExplicitListOfARFCNs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FailureReportSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FilterCoefficient.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format4-resource-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Format5-resource-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-UTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicator.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqBandIndicatorListEUTRA-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqHoppingParameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListExtEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityListUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqPriorityUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/FreqsPriorityListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Guardband-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Handover.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverFromEUTRAPreparationRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v14x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation-v9j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HandoverPreparationInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/HighSpeedConfigSCell-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Hysteresis.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePattern-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IDC-SubframePatternList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IdleModeMobilityControlInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IKE-Identity-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI-Digit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-DifferentPCI-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Inband-SamePCI-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v11d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InDeviceCoexIndication-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InitialUE-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/INTEGER.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBandList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqBlackCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v8h0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1280.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqCarrierFreqListExt-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqNeighCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterFreqRSTDMeasurementIndication-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/InterRAT-BandList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraBandContiguousCC-Info-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqBlackCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IntraFreqNeighCellList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IP-Address-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-HRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersCDMA2000-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD128.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD384.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-TDD768.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9c0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersUTRA-v9h0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/IRAT-ParametersWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Key-eNodeB-Star.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LAA-SCellConfiguration-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LBT-Config-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LocationInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1080-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggedMeasurementConfiguration-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingDuration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LoggingInterval-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChannelConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogicalChGroupInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasInfoList2-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LogMeasReport-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Configuration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWA-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Configuration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/LWIP-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSCell-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-MainConfigSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MAC-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock-SL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MasterInformationBlock.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-NotificationConfig-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-Parameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreq-v1140.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-InterFreqList-v1140.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-List-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SAI-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-ServiceList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfo-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMS-SessionInfoList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingRequest-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSCountingResponse-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSInterestIndication-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBMSSessionInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaId-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfo-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-AreaInfoList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-RSRQ-Range-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFN-SubframeConfigList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MBSFNAreaConfiguration-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC-MNC-Digit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-Id-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCSI-RS-ToRemoveList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasCycleSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasDS-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasGapConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToAddModListExt-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasIdToRemoveListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectToRemoveListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasObjectWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v11a0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2CDMA2000-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2EUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResult2UTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultCSI-RS-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForECID-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultForRSSI-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2CDMA2000-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2EUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2GERAN-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultList2UTRA-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListMBSFN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListRSSI-SCG-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultListWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultMBSFN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultRSSI-SCG-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResults.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultsCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-Ext-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServCellSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultServFreqListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultSSTD-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasResultWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasRSSI-ReportConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasScaleFactor-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframeCellList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePattern-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternConfigNeigh-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasSubframePatternPCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MeasurementReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilities-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-BeamformedCapabilityList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBC-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CA-ParametersPerBoBCPerTM-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityDL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-CapabilityUL-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-NonPrecodedCapabilities-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-BeamformedCapabilities-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MIMO-UE-ParametersPerTM-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MMEC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MNC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityControlInfoV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v8d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand-v960-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityFromEUTRACommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityHistoryReport-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityParametersCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MobilityStateParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/MultiBandInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-CS-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-InfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/N1PUCCH-AN-PersistentList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-AssistanceInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-Entry-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NAICS-Capability-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeEnumerated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NativeInteger.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsCRS-Info-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellSI-AcquisitionParameters-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsPerBandclassListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NeighCellsToReleaseList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NextHopChainingCount.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-List-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NonContiguousUL-RA-WithinCC-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDCCH-ConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPDSCH-ConfigCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ConfigSIB-NB-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-Parameters-NB-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPRACH-ParametersList-NB-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NPUSCH-ConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NS-PmaxValue-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NULL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NumberOfPreamblesSent-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/NZP-ResourceConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ObtainLocationConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OCTET_STRING.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OTDOA-PositioningCapabilities-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Other-Parameters-v11d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/OtherConfig-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-a.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-Pair-r13a.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-C-AndCBSR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P-Max.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/P0-SL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Paging.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecord.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingRecordList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PagingUE-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ParametersCDMA2000-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PCI-ARFCN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductions-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionsLAA-UL-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-CandidateReductionValue-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigLAA-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCCH-ConfigSCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDCP-Parameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1280.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-Config-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PDSCH-RE-MappingQCL-ConfigId-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_opentype.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/per_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PeriodicBSR-Timer-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PHICH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1170.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1280.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v1330.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters-v9d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhyLayerParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000-v920.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdListCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRange.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDD-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdRangeUTRA-FDDList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysCellIdUTRA-TDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PhysicalConfigDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityInfo2-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList2.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList3-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PLMN-IdentityList4-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Config-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-Info-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoList-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PMCH-InfoListExt-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollByte.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PollPDU.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerCoordinationInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerPrefIndicationConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PowerRampingParameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ConfigSIB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersCE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PRACH-ParametersListCE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreambleTransMax.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationInfoHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PreRegistrationZoneIdHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PresenceAntennaPort1.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ProximityIndication-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PSCellToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUCCH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/PUSCH-ConfigDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRange.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-OffsetRangeInterRAT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-QualMin-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Q-RxLevMin.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/QuantityConfigWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-CE-LevelInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigCommonSCell-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-Info-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RACH-InfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonPSCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigCommonSIB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedPSCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RadioResourceConfigDedicatedSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAND-CDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RAT-Type.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RCLWI-Configuration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RE-MappingQCLConfigToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedirectedCarrierInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionFactor-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionInterFreqInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionNeighCellList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RedistributionServingInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestablishmentInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReestabUE-Identity.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RegisteredMME.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReleaseCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigId.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigInterRAT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportConfigToRemoveList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportInterval.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportProximityConfig-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReportQuantityWLAN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionInfoRelay-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThreshold.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ReselectionThresholdQ-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResourceConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeCause.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ResumeIdentity-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RetxBSR-Timer-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1060.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10f0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v10j0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1180.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v11d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v12b0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RF-Parameters.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLC-Parameters-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-Report-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstants-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RLF-TimersAndConstantsSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RMTC-Config-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SubframeConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RN-SystemInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfiguration-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RNReconfigurationComplete-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRC-TransactionIdentifier.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v10i0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v14x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v8m0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfiguration.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReconfigurationComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishment.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentReject.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReestablishmentRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionReject.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRelease.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResume-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeComplete-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionResumeRequest-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetup.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v1330-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRCConnectionSetupComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RRM-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RS-SINR-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-Range.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL2-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL3-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-RangeSL4-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsNPRACH-InfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRP-ThresholdsPrachInfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Range.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-RangeConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSRQ-Type-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSSI-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfo-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/RSTD-InterFreqInfoList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/S-TMSI.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SBCCH-SL-BCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-Message-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MCCH-MessageType-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-Info-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-InfoList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SC-MTCH-SchedulingInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellIndex-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddMod-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModExt-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListExt-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-Ext-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToAddModListSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCellToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Config-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigInfo-v1330-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigPartSCG-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-ConfigRestrictInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCG-Configuration-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCGFailureInformation-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingInfoList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SchedulingRequestConfigSCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-NeighbourCellList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTM-Parameters-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SCPTMConfiguration-v1340.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecondaryPreRegistrationZoneIdListHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityAlgorithmConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigHO.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityConfigSMC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeCommand.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeComplete.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SecurityModeFailure.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ServCellIndex-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ShortMAC-I.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SI-OrPSI-GERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-MappingInfo.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB-Type.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-List-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SIB8-PerPLMN-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SidelinkUEInformation-v14x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfo-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CarrierFreqInfoList-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePool-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommResourcePoolV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommRxPoolListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolSensingConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxPoolToAddModListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CommTxResourceReq-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-CP-Len-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationIdentity-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DestinationInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigOtherInterFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRelayUE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscConfigRemoteUE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscResourcePool-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscRxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReport-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoReportFreqList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscSysInfoToReportFreqList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxConfigScheduled-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxInfoInterFreqListAdd-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddMod-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPoolToAddModList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxPowerInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxRefCarrierDedicated-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResource-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceInfoPerFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourceReqPerFreqList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-DiscTxResourcesInterFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapFreqInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPattern-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapPatternList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-GapRequest-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigComm-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-HoppingConfigDisc-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-InterFreqInfoV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicator-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-OffsetIndicatorSync-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PeriodComm-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PoolSelectionConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPool-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommPoolList4-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommRxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigCommTxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscPool-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscRxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigDiscTxPoolList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigGeneral-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigRelay-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigSync-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Preconfiguration-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-RxPoolList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PreconfigV2X-TxPoolList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-Priority-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PriorityList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxConfigList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-PSSCH-TxParameters-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ResourcesInterFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriod-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-RestrictResourceReservationPeriodList-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListNFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncConfigNFreq-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-SyncTxControl-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPair-r12b.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-IndexPairList-r12b.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TF-ResourceConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-List-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ThresPSSCH-RSRP-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TRPT-Subset-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxParameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolIdentity-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToAddModListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-TxPoolToReleaseListV2X-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigCommon-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-ConfigDedicated-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigCommPool-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-PreconfigFreqInfo-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-Preconfiguration-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-V2X-TxPoolIdentity-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SL-ZoneConfig-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SLSSID-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SN-FieldLength.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SON-Parameters-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodic-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedAperiodicUpPTsExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRS-UL-ConfigDedicatedUpPTsExt-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroup-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SoundingRSAperiodicGroupUpPTsExt-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SpeedStateScaleFactors.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigDL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SPS-ConfigUL.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddMod.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRB-ToAddModList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-AntennaPort.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-ConfigAp-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SRS-TPC-PDCCH-Config-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SrsCcGroupIndex.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-Id-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddMod-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToAddModList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/STAG-ToReleaseList-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/Standalone-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SubframeBitmapSL-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBand-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1090.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v10i0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombination-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v11d0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1270.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationAdd-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationExt-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandCombinationReduced-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandList1XRTT.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA-v9e0.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListHRPD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD128.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD384.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandListUTRA-TDD768.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-FDD.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD128.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD384.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandUTRA-TDD768.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SupportedBandwidthCombinationSet-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoListGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-BR-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v14xy-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v890-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType1.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType12-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType13-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType14-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType15-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType16-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType17-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType18-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType19-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType2.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType20-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType21-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType3.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType4.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType5.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6-v8h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType6.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType7.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType8.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInformationBlockType9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemInfoValueTagSI-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/SystemTimeInfoCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-PollRetransmit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reordering.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-Reselection.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-ReselectionEUTRA-CE-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/T-StatusProhibit.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-Area-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TargetMBSFN-AreaList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDD-ConfigSL-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TDM-AssistanceInfo-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdCDMA2000.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdEUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdGERAN.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ThresholdUTRA.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeAlignmentTimer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeSinceFailure-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TimeToTrigger.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TMGI-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-Index.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-Config.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TPC-PDCCH-ConfigSCell-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TraceReference-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCode.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TrackingAreaCodeList-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/TunnelConfigLWIP-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-Restricting-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-List-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UDT-RestrictingPerPLMN-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-BasedNetwPerfMeasParameters-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-Capability-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-Container.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRAT-ContainerList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-CapabilityRequest.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1060-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1090-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10c0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10f0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10i0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v10j0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1170-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1180-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v11x0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1260-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1270-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1280-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v12b0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1320-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1330-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v1340-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v14xy-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v920-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v940-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9c0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9d0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability-v9h0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-Capability.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1060.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1180.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-EUTRA-CapabilityAddXDD-Mode-v1320.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-RadioPagingInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UE-TimersAndConstants.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEAssistanceInformation-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1180-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityEnquiry.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UECapabilityInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationRequest-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-r9.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1020-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1130-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v1250-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v930-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEInformationResponse-v9e0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UEPagingCoverageInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioAccessCapabilityInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-r12-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation-v1310-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UERadioPagingInformation.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-AM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CarrierConfigDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-CyclicPrefixLength.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-Message.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DCCH-MessageType.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-DelayConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResult-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-PDCP-DelayResultList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsNPUSCH-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-ReferenceSignalsPUSCH.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UL-UM-RLC.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULHandoverPreparationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-NB.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-r8-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer-v8a0-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ULInformationTransfer.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommon.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPSCell-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonPUSCH-LessCell-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlCommonSCell-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1020.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1130.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated-v1250.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicated.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPowerControlDedicatedSCell-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/UplinkPUSCH-LessPowerControlDedicated-v14xy.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/V2X-CommTxResourceReq-r14.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarConnEstFailReport-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarLogMeasReport-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReport.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMeasReportList.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarMobilityHistoryReport-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r10.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarRLF-Report-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortMAC-Input.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-NB-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarShortResumeMAC-Input-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-MobilityConfig.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VarWLAN-Status-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VictimSystemType-r11.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfo-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/VisitedCellInfoList-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddMod-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WhiteCellsToAddModList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-backhaulRate-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-BandIndicator-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-CarrierInfo-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Channel-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-ChannelList-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Id-List-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Identifiers-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-IW-Parameters-v1310.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-MobilityConfig-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadConfig-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-OffloadInfoPerPLMN-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-RSSI-Range-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLAN-Status-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13-IEs.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/WLANConnectionStatusReport-r13.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_decoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_encoder.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/xer_support.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-Conf-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.c -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14/ZeroTxPowerCSI-RS-r12.h -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/RRC_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/rrh_gw.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_ENB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/S1AP_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/scansim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SCHED_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SCTP_CLIENT.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_CN.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SECU_OSA.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/SIMU_ETH.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/syncsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_cmac_encrypt.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_decrypt.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_aes128_ctr_encrypt.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_generate_scenario.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_epc_play_scenario.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_kdf.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_s1ap.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_kenb.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eea2.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia1.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/test_secu_knas_encrypt_eia2.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/UDP.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip/Kbuild -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ue_ip.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/ulsim.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/updatefw.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/C.includecache -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.internal -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/UTIL.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/build.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/cmake_clean_target.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/depend.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/DependInfo.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/flags.make -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/link.txt -cmake_targets/lte_build_oai/build/CMakeFiles/X2AP_LIB.dir/progress.make -cmake_targets/lte_build_oai/build/CMakeFiles/cmake.check_cache -cmake_targets/lte_build_oai/build/CMakeFiles/CMakeDirectoryInformation.cmake -cmake_targets/lte_build_oai/build/CMakeFiles/CMakeOutput.log -cmake_targets/lte_build_oai/build/CMakeFiles/CMakeRuleHashes.txt -cmake_targets/lte_build_oai/build/CMakeFiles/progress.marks -cmake_targets/lte_build_oai/build/CMakeFiles/TargetDirectories.txt -cmake_targets/lte_build_oai/build/cmake_install.cmake -cmake_targets/lte_build_oai/build/CMakeCache.txt -cmake_targets/lte_build_oai/build/libGTPV1U.a -cmake_targets/lte_build_oai/build/libHASHTABLE.a -cmake_targets/lte_build_oai/build/libITTI.a -cmake_targets/lte_build_oai/build/libLFDS.a -cmake_targets/lte_build_oai/build/libLFDS7.a -cmake_targets/lte_build_oai/build/libPHY.a -cmake_targets/lte_build_oai/build/libRRC_LIB.a -cmake_targets/lte_build_oai/build/libS1AP_ENB.a -cmake_targets/lte_build_oai/build/libS1AP_LIB.a -cmake_targets/lte_build_oai/build/libSCHED_LIB.a -cmake_targets/lte_build_oai/build/libSCTP_CLIENT.a -cmake_targets/lte_build_oai/build/libSECU_CN.a -cmake_targets/lte_build_oai/build/libSECU_OSA.a -cmake_targets/lte_build_oai/build/libUDP.a -cmake_targets/lte_build_oai/build/libUTIL.a -cmake_targets/lte_build_oai/CMakeLists.txt -cmake_targets/lte_noS1_build_oai/CMakeLists.template -cmake_targets/nas_sim_tools/CMakeLists.txt -cmake_targets/oaisim_build_oai/CMakeLists.template -cmake_targets/oaisim_mme_build_oai/CMakeLists.template -cmake_targets/oaisim_noS1_build_oai/CMakeLists.template -cmake_targets/s1c_mme_test/CMakeLists.template -cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff -cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff -cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff -cmake_targets/tools/MODULES/cmake_useful.cmake -cmake_targets/tools/MODULES/CMakeParseArguments.cmake -cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake -cmake_targets/tools/MODULES/CMakeUserUseBison.cmake -cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake -cmake_targets/tools/MODULES/FindFreeDiameter.cmake -cmake_targets/tools/MODULES/FindGCCXML.cmake -cmake_targets/tools/MODULES/FindGcrypt.cmake -cmake_targets/tools/MODULES/FindGnuTLS.cmake -cmake_targets/tools/MODULES/FindKbuild.cmake -cmake_targets/tools/MODULES/FindLibXml2.cmake -cmake_targets/tools/MODULES/FindMySQL.cmake -cmake_targets/tools/MODULES/FindNettle.cmake -cmake_targets/tools/MODULES/FindPostgreSQL.cmake -cmake_targets/tools/MODULES/FindSCTP.cmake -cmake_targets/tools/MODULES/Kbuild.cmake -cmake_targets/tools/MODULES/kbuild_system.cmake -cmake_targets/tools/MODULES/kmodule.cmake -cmake_targets/tools/MODULES/path_prefixes.cmake -cmake_targets/tools/asn1tostruct.py -cmake_targets/tools/build_helper -cmake_targets/tools/build_test_epc_tools -cmake_targets/tools/example_enb_exmimo_mme_hss.txt -cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt -cmake_targets/tools/exmimo2_2arxg.lime -cmake_targets/tools/exmimo2_2brxg.lime -cmake_targets/tools/exmimo_stop_octave.m -cmake_targets/tools/fix_asn1 -cmake_targets/tools/generate_asn1 -cmake_targets/tools/generate_protobuf -cmake_targets/tools/indent_source_code -cmake_targets/tools/init_exmimo2 -cmake_targets/tools/init_nas_nos1 -cmake_targets/tools/init_nas_s1 -cmake_targets/tools/Kbuild.cmake -cmake_targets/tools/make_agent_cache -cmake_targets/tools/mem_usage -cmake_targets/tools/perf_oai.bash -cmake_targets/tools/run_enb_s1_exmimo -cmake_targets/tools/run_enb_s1_usrp -cmake_targets/tools/run_enb_ue_virt_noS1 -cmake_targets/tools/run_enb_ue_virt_s1 -cmake_targets/tools/run_ue_s1 -cmake_targets/tools/start_bladerf.py -cmake_targets/tools/stop_exmimo2 -cmake_targets/tools/test_helper -cmake_targets/build_oai -cmake_targets/build_ue -cmake_targets/CMakeLists.txt -cmake_targets/snap_environment.sh -common/utils/collection/queue.h -common/utils/collection/tree.h -common/utils/hashtable/hashtable.c -common/utils/hashtable/hashtable.h -common/utils/hashtable/obj_hashtable.c -common/utils/hashtable/obj_hashtable.h -common/utils/itti/assertions.h -common/utils/itti/backtrace.c -common/utils/itti/backtrace.h -common/utils/itti/intertask_interface.c -common/utils/itti/intertask_interface.h -common/utils/itti/intertask_interface_dump.c -common/utils/itti/intertask_interface_dump.h -common/utils/itti/intertask_interface_init.h -common/utils/itti/intertask_interface_types.h -common/utils/itti/intertask_messages_def.h -common/utils/itti/intertask_messages_types.h -common/utils/itti/itti_types.h -common/utils/itti/memory_pools.c -common/utils/itti/memory_pools.h -common/utils/itti/messages_def.h -common/utils/itti/messages_types.h -common/utils/itti/signals.c -common/utils/itti/signals.h -common/utils/itti/tasks_def.h -common/utils/itti/timer.c -common/utils/itti/timer.h -common/utils/itti/timer_messages_def.h -common/utils/itti/timer_messages_types.h -common/utils/itti_analyzer/common/itti_types.h -common/utils/itti_analyzer/common/logs.h -common/utils/itti_analyzer/common/queue.h -common/utils/itti_analyzer/common/rc.h -common/utils/itti_analyzer/libbuffers/buffers.c -common/utils/itti_analyzer/libbuffers/buffers.h -common/utils/itti_analyzer/libbuffers/file.c -common/utils/itti_analyzer/libbuffers/file.h -common/utils/itti_analyzer/libbuffers/socket.c -common/utils/itti_analyzer/libbuffers/socket.h -common/utils/itti_analyzer/libparser/array_type.c -common/utils/itti_analyzer/libparser/array_type.h -common/utils/itti_analyzer/libparser/enum_type.c -common/utils/itti_analyzer/libparser/enum_type.h -common/utils/itti_analyzer/libparser/enum_value_type.c -common/utils/itti_analyzer/libparser/enum_value_type.h -common/utils/itti_analyzer/libparser/field_type.c -common/utils/itti_analyzer/libparser/field_type.h -common/utils/itti_analyzer/libparser/file_type.c -common/utils/itti_analyzer/libparser/file_type.h -common/utils/itti_analyzer/libparser/fundamental_type.c -common/utils/itti_analyzer/libparser/fundamental_type.h -common/utils/itti_analyzer/libparser/intertask_contexts.h -common/utils/itti_analyzer/libparser/pointer_type.c -common/utils/itti_analyzer/libparser/pointer_type.h -common/utils/itti_analyzer/libparser/reference_type.c -common/utils/itti_analyzer/libparser/reference_type.h -common/utils/itti_analyzer/libparser/struct_type.c -common/utils/itti_analyzer/libparser/struct_type.h -common/utils/itti_analyzer/libparser/typedef_type.c -common/utils/itti_analyzer/libparser/typedef_type.h -common/utils/itti_analyzer/libparser/types.c -common/utils/itti_analyzer/libparser/types.h -common/utils/itti_analyzer/libparser/union_type.c -common/utils/itti_analyzer/libparser/union_type.h -common/utils/itti_analyzer/libparser/xml_parse.c -common/utils/itti_analyzer/libparser/xml_parse.h -common/utils/itti_analyzer/libresolver/locate_root.c -common/utils/itti_analyzer/libresolver/locate_root.h -common/utils/itti_analyzer/libresolver/resolvers.c -common/utils/itti_analyzer/libresolver/resolvers.h -common/utils/itti_analyzer/libui/ui_callbacks.c -common/utils/itti_analyzer/libui/ui_callbacks.h -common/utils/itti_analyzer/libui/ui_filters.c -common/utils/itti_analyzer/libui/ui_filters.h -common/utils/itti_analyzer/libui/ui_interface.c -common/utils/itti_analyzer/libui/ui_interface.h -common/utils/itti_analyzer/libui/ui_main_screen.c -common/utils/itti_analyzer/libui/ui_main_screen.h -common/utils/itti_analyzer/libui/ui_menu_bar.c -common/utils/itti_analyzer/libui/ui_menu_bar.h -common/utils/itti_analyzer/libui/ui_notebook.c -common/utils/itti_analyzer/libui/ui_notebook.h -common/utils/itti_analyzer/libui/ui_notif_dlg.c -common/utils/itti_analyzer/libui/ui_notif_dlg.h -common/utils/itti_analyzer/libui/ui_notifications.c -common/utils/itti_analyzer/libui/ui_notifications.h -common/utils/itti_analyzer/libui/ui_signal_dissect_view.c -common/utils/itti_analyzer/libui/ui_signal_dissect_view.h -common/utils/itti_analyzer/libui/ui_tree_view.c -common/utils/itti_analyzer/libui/ui_tree_view.h -common/utils/itti_analyzer/AUTHORS -common/utils/itti_analyzer/autogen.sh -common/utils/itti_analyzer/ChangeLog -common/utils/itti_analyzer/configure.ac -common/utils/itti_analyzer/filters.xml -common/utils/itti_analyzer/filters_mme.xml -common/utils/itti_analyzer/filters_ue_enb.xml -common/utils/itti_analyzer/INSTALL -common/utils/itti_analyzer/itti_analyzer.c -common/utils/itti_analyzer/NEWS -common/utils/itti_analyzer/README -common/utils/msc/msc.c -common/utils/msc/msc.h -common/utils/T/tracee/README -common/utils/T/tracee/tracee.c -common/utils/T/tracer/filter/filter.c -common/utils/T/tracer/filter/filter.h -common/utils/T/tracer/gui/container.c -common/utils/T/tracer/gui/event.c -common/utils/T/tracer/gui/gui.c -common/utils/T/tracer/gui/gui.h -common/utils/T/tracer/gui/gui_defs.h -common/utils/T/tracer/gui/image.c -common/utils/T/tracer/gui/init.c -common/utils/T/tracer/gui/label.c -common/utils/T/tracer/gui/loop.c -common/utils/T/tracer/gui/notify.c -common/utils/T/tracer/gui/positioner.c -common/utils/T/tracer/gui/space.c -common/utils/T/tracer/gui/test.c -common/utils/T/tracer/gui/textarea.c -common/utils/T/tracer/gui/textlist.c -common/utils/T/tracer/gui/timeline.c -common/utils/T/tracer/gui/toplevel_window.c -common/utils/T/tracer/gui/widget.c -common/utils/T/tracer/gui/x.c -common/utils/T/tracer/gui/x.h -common/utils/T/tracer/gui/x_defs.h -common/utils/T/tracer/gui/xy_plot.c -common/utils/T/tracer/hacks/dump_nack_signal.c -common/utils/T/tracer/hacks/time_meas.c -common/utils/T/tracer/hacks/timeplot.c -common/utils/T/tracer/logger/framelog.c -common/utils/T/tracer/logger/iqdotlog.c -common/utils/T/tracer/logger/iqlog.c -common/utils/T/tracer/logger/logger.c -common/utils/T/tracer/logger/logger.h -common/utils/T/tracer/logger/logger_defs.h -common/utils/T/tracer/logger/textlog.c -common/utils/T/tracer/logger/throughputlog.c -common/utils/T/tracer/logger/ticked_ttilog.c -common/utils/T/tracer/logger/ticklog.c -common/utils/T/tracer/logger/timelog.c -common/utils/T/tracer/logger/ttilog.c -common/utils/T/tracer/view/scrolltti.c -common/utils/T/tracer/view/stdout.c -common/utils/T/tracer/view/textlist.c -common/utils/T/tracer/view/ticktime.c -common/utils/T/tracer/view/time.c -common/utils/T/tracer/view/tti.c -common/utils/T/tracer/view/view.h -common/utils/T/tracer/view/xy.c -common/utils/T/tracer/config.c -common/utils/T/tracer/config.h -common/utils/T/tracer/database.c -common/utils/T/tracer/database.h -common/utils/T/tracer/defs.h -common/utils/T/tracer/enb.c -common/utils/T/tracer/event.c -common/utils/T/tracer/event.h -common/utils/T/tracer/event_selector.c -common/utils/T/tracer/event_selector.h -common/utils/T/tracer/extract_config.c -common/utils/T/tracer/gui.c -common/utils/T/tracer/handler.c -common/utils/T/tracer/handler.h -common/utils/T/tracer/macpdu2wireshark.c -common/utils/T/tracer/openair_logo.h -common/utils/T/tracer/openair_logo.png -common/utils/T/tracer/packet-mac-lte.h -common/utils/T/tracer/plot.c -common/utils/T/tracer/record.c -common/utils/T/tracer/replay.c -common/utils/T/tracer/textlog.c -common/utils/T/tracer/ue.c -common/utils/T/tracer/utils.c -common/utils/T/tracer/utils.h -common/utils/T/tracer/vcd.c -common/utils/T/defs.h -common/utils/T/generate_Txx.c -common/utils/T/genids.c -common/utils/T/local_tracer.c -common/utils/T/plot.c -common/utils/T/README -common/utils/T/T.c -common/utils/T/T.h -common/utils/T/T_defs.h -common/utils/T/T_messages.txt -common/utils/asn1_conversions.h -common/utils/assertions.h -common/utils/system.c -common/utils/system.h -common/utils/time_utils.h -common/utils/utils.c -common/utils/utils.h -common/ran_context.h -openair1/PHY/CODING/TESTBENCH/ltetest.c -openair1/PHY/CODING/TESTBENCH/pdcch_test.c -openair1/PHY/CODING/TESTBENCH/README.txt -openair1/PHY/CODING/TESTBENCH/viterbi_test.c -openair1/PHY/CODING/3gpplte.c -openair1/PHY/CODING/3gpplte_sse.c -openair1/PHY/CODING/3gpplte_turbo_decoder.c -openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c -openair1/PHY/CODING/ccoding_byte.c -openair1/PHY/CODING/ccoding_byte_lte.c -openair1/PHY/CODING/crc_byte.c -openair1/PHY/CODING/defs.h -openair1/PHY/CODING/extern.h -openair1/PHY/CODING/extern_3GPPinterleaver.h -openair1/PHY/CODING/lte_interleaver.h -openair1/PHY/CODING/lte_interleaver2.h -openair1/PHY/CODING/lte_interleaver_inline.h -openair1/PHY/CODING/lte_rate_matching.c -openair1/PHY/CODING/lte_segmentation.c -openair1/PHY/CODING/lte_tf.m -openair1/PHY/CODING/README.txt -openair1/PHY/CODING/scrambler.h -openair1/PHY/CODING/vars.h -openair1/PHY/CODING/viterbi.c -openair1/PHY/CODING/viterbi_lte.c -openair1/PHY/INIT/defs.h -openair1/PHY/INIT/extern.h -openair1/PHY/INIT/init_top.c -openair1/PHY/INIT/lte_init.c -openair1/PHY/INIT/lte_param_init.c -openair1/PHY/INIT/lte_parms.c -openair1/PHY/INIT/README.txt -openair1/PHY/INIT/vars.h -openair1/PHY/LTE_ESTIMATION/adjust_gain.c -openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m -openair1/PHY/LTE_ESTIMATION/defs.h -openair1/PHY/LTE_ESTIMATION/extern.h -openair1/PHY/LTE_ESTIMATION/filt16_32.h -openair1/PHY/LTE_ESTIMATION/filt96_32.h -openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m -openair1/PHY/LTE_ESTIMATION/freq_equalization.c -openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c -openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c -openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c -openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c -openair1/PHY/LTE_ESTIMATION/lte_sync_time.c -openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c -openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m -openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c -openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/pss6144.h -openair1/PHY/LTE_ESTIMATION/README.txt -openair1/PHY/LTE_ESTIMATION/vars.h -openair1/PHY/LTE_REFSIG/defs.h -openair1/PHY/LTE_REFSIG/gen_mod_table.m -openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c -openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c -openair1/PHY/LTE_REFSIG/lte_dl_uespec.c -openair1/PHY/LTE_REFSIG/lte_gold.c -openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c -openair1/PHY/LTE_REFSIG/lte_ul.m -openair1/PHY/LTE_REFSIG/lte_ul_ref.c -openair1/PHY/LTE_REFSIG/mod_table.h -openair1/PHY/LTE_REFSIG/primary_synch.h -openair1/PHY/LTE_REFSIG/primary_synch.m -openair1/PHY/LTE_REFSIG/README.txt -openair1/PHY/LTE_TRANSPORT/dci.c -openair1/PHY/LTE_TRANSPORT/dci.h -openair1/PHY/LTE_TRANSPORT/dci_tools.c -openair1/PHY/LTE_TRANSPORT/defs.h -openair1/PHY/LTE_TRANSPORT/dlsch_coding.c -openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c -openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c -openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c -openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation_avx2.c -openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c -openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c -openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h -openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h -openair1/PHY/LTE_TRANSPORT/drs_modulation.c -openair1/PHY/LTE_TRANSPORT/extern.h -openair1/PHY/LTE_TRANSPORT/group_hopping.c -openair1/PHY/LTE_TRANSPORT/if4_tools.c -openair1/PHY/LTE_TRANSPORT/if4_tools.h -openair1/PHY/LTE_TRANSPORT/if5_tools.c -openair1/PHY/LTE_TRANSPORT/if5_tools.h -openair1/PHY/LTE_TRANSPORT/initial_sync.c -openair1/PHY/LTE_TRANSPORT/lte_mcs.c -openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h -openair1/PHY/LTE_TRANSPORT/mdci.h -openair1/PHY/LTE_TRANSPORT/pbch.c -openair1/PHY/LTE_TRANSPORT/pcfich.c -openair1/PHY/LTE_TRANSPORT/pch.c -openair1/PHY/LTE_TRANSPORT/phich.c -openair1/PHY/LTE_TRANSPORT/pilots.c -openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c -openair1/PHY/LTE_TRANSPORT/pilots_ue_spec.c -openair1/PHY/LTE_TRANSPORT/pmch.c -openair1/PHY/LTE_TRANSPORT/power_control.c -openair1/PHY/LTE_TRANSPORT/prach.c -openair1/PHY/LTE_TRANSPORT/prach.h -openair1/PHY/LTE_TRANSPORT/print_stats.c -openair1/PHY/LTE_TRANSPORT/proto.h -openair1/PHY/LTE_TRANSPORT/pss.c -openair1/PHY/LTE_TRANSPORT/pucch.c -openair1/PHY/LTE_TRANSPORT/rar_tools.c -openair1/PHY/LTE_TRANSPORT/README.txt -openair1/PHY/LTE_TRANSPORT/srs_modulation.c -openair1/PHY/LTE_TRANSPORT/sss.c -openair1/PHY/LTE_TRANSPORT/sss.h -openair1/PHY/LTE_TRANSPORT/sss_gen.m -openair1/PHY/LTE_TRANSPORT/uci.h -openair1/PHY/LTE_TRANSPORT/uci_tools.c -openair1/PHY/LTE_TRANSPORT/ulsch_coding.c -openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c -openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c -openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c -openair1/PHY/LTE_TRANSPORT/vars.h -openair1/PHY/LTE_TRANSPORT/vrb_maps.m -openair1/PHY/MODULATION/beamforming.c -openair1/PHY/MODULATION/compute_bf_weights.c -openair1/PHY/MODULATION/defs.h -openair1/PHY/MODULATION/extern.h -openair1/PHY/MODULATION/gen_7_5_kHz.m -openair1/PHY/MODULATION/kHz_7_5.h -openair1/PHY/MODULATION/ofdm_mod.c -openair1/PHY/MODULATION/prach625Hz.h -openair1/PHY/MODULATION/slot_fep.c -openair1/PHY/MODULATION/slot_fep_mbsfn.c -openair1/PHY/MODULATION/slot_fep_ul.c -openair1/PHY/MODULATION/ul_7_5_kHz.c -openair1/PHY/MODULATION/vars.h -openair1/PHY/TOOLS/8bit_rxdemux.c -openair1/PHY/TOOLS/8bit_txmux.c -openair1/PHY/TOOLS/alaw_lut.h -openair1/PHY/TOOLS/angle.c -openair1/PHY/TOOLS/cadd_sv.c -openair1/PHY/TOOLS/cadd_vv.c -openair1/PHY/TOOLS/cdot_prod.c -openair1/PHY/TOOLS/cmult_sv.c -openair1/PHY/TOOLS/cmult_vv.c -openair1/PHY/TOOLS/costable.h -openair1/PHY/TOOLS/dB_routines.c -openair1/PHY/TOOLS/dB_routines.h -openair1/PHY/TOOLS/defs.h -openair1/PHY/TOOLS/extern.h -openair1/PHY/TOOLS/file_output.c -openair1/PHY/TOOLS/invSqrt.c -openair1/PHY/TOOLS/log2_approx.c -openair1/PHY/TOOLS/lte_dfts.c -openair1/PHY/TOOLS/lte_phy_scope.c -openair1/PHY/TOOLS/lte_phy_scope.h -openair1/PHY/TOOLS/lte_phy_scope_tm4.c -openair1/PHY/TOOLS/lut.c -openair1/PHY/TOOLS/memory_routines.c -openair1/PHY/TOOLS/read_F.c -openair1/PHY/TOOLS/signal_energy.c -openair1/PHY/TOOLS/smbv.c -openair1/PHY/TOOLS/smbv.h -openair1/PHY/TOOLS/sqrt.c -openair1/PHY/TOOLS/time_meas.c -openair1/PHY/TOOLS/time_meas.h -openair1/PHY/TOOLS/twiddle12288.h -openair1/PHY/TOOLS/twiddle1536.h -openair1/PHY/TOOLS/twiddle18432.h -openair1/PHY/TOOLS/twiddle24576.h -openair1/PHY/TOOLS/twiddle6144.h -openair1/PHY/TOOLS/twiddles4096.h -openair1/PHY/TOOLS/twiddles8192.h -openair1/PHY/TOOLS/vars.h -openair1/PHY/defs.h -openair1/PHY/extern.h -openair1/PHY/impl_defs_lte.h -openair1/PHY/impl_defs_top.h -openair1/PHY/sse_intrin.h -openair1/PHY/types.h -openair1/PHY/vars.h -openair1/SCHED/defs.h -openair1/SCHED/extern.h -openair1/SCHED/phy_mac_stub.c -openair1/SCHED/phy_procedures_emos.h -openair1/SCHED/phy_procedures_lte_common.c -openair1/SCHED/phy_procedures_lte_eNb.c -openair1/SCHED/phy_procedures_lte_ue.c -openair1/SCHED/pucch_pc.c -openair1/SCHED/pusch_pc.c -openair1/SCHED/rt_compat.h -openair1/SCHED/ru_procedures.c -openair1/SCHED/srs_pc.c -openair1/SCHED/vars.h -openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c -openair1/SIMULATION/ETH_TRANSPORT/defs.h -openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c -openair1/SIMULATION/ETH_TRANSPORT/extern.h -openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c -openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h -openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c -openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c -openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h -openair1/SIMULATION/ETH_TRANSPORT/proto.h -openair1/SIMULATION/ETH_TRANSPORT/README.txt -openair1/SIMULATION/ETH_TRANSPORT/socket.c -openair1/SIMULATION/ETH_TRANSPORT/socket.h -openair1/SIMULATION/ETH_TRANSPORT/vars.h -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls -openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m -openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m -openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m -openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m -openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m -openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m -openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m -openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m -openair1/SIMULATION/LTE_PHY/plotTools/p -openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m -openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt -openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex -openair1/SIMULATION/LTE_PHY/blerSimus.zip -openair1/SIMULATION/LTE_PHY/dlsim.c -openair1/SIMULATION/LTE_PHY/dlsim_tm4.c -openair1/SIMULATION/LTE_PHY/dlsim_tm7.c -openair1/SIMULATION/LTE_PHY/fancyheadings.sty -openair1/SIMULATION/LTE_PHY/framegen.c -openair1/SIMULATION/LTE_PHY/gpib_send.c -openair1/SIMULATION/LTE_PHY/gpib_send.h -openair1/SIMULATION/LTE_PHY/launch_sim.sh -openair1/SIMULATION/LTE_PHY/LTE_Configuration.c -openair1/SIMULATION/LTE_PHY/LTE_Configuration.h -openair1/SIMULATION/LTE_PHY/mat2wv.m -openair1/SIMULATION/LTE_PHY/mbmssim.c -openair1/SIMULATION/LTE_PHY/pbch_awgn.txt -openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt -openair1/SIMULATION/LTE_PHY/pbchsim.c -openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh -openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m -openair1/SIMULATION/LTE_PHY/pdcchsim.c -openair1/SIMULATION/LTE_PHY/prachsim.c -openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h -openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c -openair1/SIMULATION/LTE_PHY/pucchsim.c -openair1/SIMULATION/LTE_PHY/README.txt -openair1/SIMULATION/LTE_PHY/scansim.c -openair1/SIMULATION/LTE_PHY/signalanalyzer.c -openair1/SIMULATION/LTE_PHY/signalanalyzer.h -openair1/SIMULATION/LTE_PHY/syncsim.c -openair1/SIMULATION/LTE_PHY/test.c -openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c -openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h -openair1/SIMULATION/LTE_PHY/ulsim.c -openair1/SIMULATION/LTE_PHY/ulsim2.c -openair1/SIMULATION/LTE_PHY/unitary_defs.h -openair1/SIMULATION/RF/adc.c -openair1/SIMULATION/RF/dac.c -openair1/SIMULATION/RF/defs.h -openair1/SIMULATION/RF/README.txt -openair1/SIMULATION/RF/rf.c -openair1/SIMULATION/TOOLS/abstraction.c -openair1/SIMULATION/TOOLS/ch_desc_proto.c -openair1/SIMULATION/TOOLS/corr_mat.m -openair1/SIMULATION/TOOLS/defs.h -openair1/SIMULATION/TOOLS/gauss.c -openair1/SIMULATION/TOOLS/llr_quantization.c -openair1/SIMULATION/TOOLS/multipath_channel.c -openair1/SIMULATION/TOOLS/multipath_tv_channel.c -openair1/SIMULATION/TOOLS/random_channel.c -openair1/SIMULATION/TOOLS/rangen_double.c -openair1/SIMULATION/TOOLS/scm.m -openair1/SIMULATION/TOOLS/scm_corrmat.h -openair1/SIMULATION/TOOLS/taus.c -openair1/README.TXT -openair2/COMMON/as_message.h -openair2/COMMON/commonDef.h -openair2/COMMON/gtpv1_u_messages_def.h -openair2/COMMON/gtpv1_u_messages_types.h -openair2/COMMON/intertask_interface_conf.h -openair2/COMMON/mac_messages_def.h -openair2/COMMON/mac_messages_types.h -openair2/COMMON/mac_primitives.h -openair2/COMMON/mac_rlc_primitives.h -openair2/COMMON/mac_rrc_primitives.h -openair2/COMMON/messages_def.h -openair2/COMMON/messages_types.h -openair2/COMMON/nas_messages_def.h -openair2/COMMON/nas_messages_types.h -openair2/COMMON/networkDef.h -openair2/COMMON/openair_defs.h -openair2/COMMON/openair_types.h -openair2/COMMON/pdcp_messages_def.h -openair2/COMMON/pdcp_messages_types.h -openair2/COMMON/phy_messages_def.h -openair2/COMMON/phy_messages_types.h -openair2/COMMON/platform_constants.h -openair2/COMMON/platform_types.h -openair2/COMMON/ral_messages_def.h -openair2/COMMON/ral_messages_types.h -openair2/COMMON/rlc_messages_def.h -openair2/COMMON/rlc_messages_types.h -openair2/COMMON/rrc_messages_def.h -openair2/COMMON/rrc_messages_types.h -openair2/COMMON/rrm_config_structs.h -openair2/COMMON/rrm_constants.h -openair2/COMMON/rtos_header.h -openair2/COMMON/s1ap_messages_def.h -openair2/COMMON/s1ap_messages_types.h -openair2/COMMON/sctp_messages_def.h -openair2/COMMON/sctp_messages_types.h -openair2/COMMON/tasks_def.h -openair2/COMMON/udp_messages_def.h -openair2/COMMON/udp_messages_types.h -openair2/COMMON/x2ap_messages_def.h -openair2/COMMON/x2ap_messages_types.h -openair2/DOCS/Documentation/flow.txt -openair2/DOCS/DOXYGEN/images/cellular_topology.doc -openair2/DOCS/DOXYGEN/images/cellular_topology.pdf -openair2/DOCS/DOXYGEN/images/cellular_topology_small.png -openair2/DOCS/DOXYGEN/images/channel server.png -openair2/DOCS/DOXYGEN/images/channel server.vsd -openair2/DOCS/DOXYGEN/images/convolutional.png -openair2/DOCS/DOXYGEN/images/convolutional.vsd -openair2/DOCS/DOXYGEN/images/Diapositive6.JPG -openair2/DOCS/DOXYGEN/images/DLC_arch.png -openair2/DOCS/DOXYGEN/images/Framing.png -openair2/DOCS/DOXYGEN/images/Framing.vsd -openair2/DOCS/DOXYGEN/images/irs_dcf.jpg -openair2/DOCS/DOXYGEN/images/irs_pcf.jpg -openair2/DOCS/DOXYGEN/images/layer2_stack.jpg -openair2/DOCS/DOXYGEN/images/layer2_stack.pdf -openair2/DOCS/DOXYGEN/images/layer2_stack.png -openair2/DOCS/DOXYGEN/images/MAC Services.vsd -openair2/DOCS/DOXYGEN/images/MAC_arch.eps -openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG -openair2/DOCS/DOXYGEN/images/mac_channels.png -openair2/DOCS/DOXYGEN/images/MAC_Measurements.png -openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd -openair2/DOCS/DOXYGEN/images/MAC_Services.eps -openair2/DOCS/DOXYGEN/images/MAC_Services.vsd -openair2/DOCS/DOXYGEN/images/MAC_Services2.eps -openair2/DOCS/DOXYGEN/images/MAC_Services2.png -openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd -openair2/DOCS/DOXYGEN/images/mac_wbs.jpg -openair2/DOCS/DOXYGEN/images/macphynet.eps -openair2/DOCS/DOXYGEN/images/macphynet.png -openair2/DOCS/DOXYGEN/images/mesh_frame.pdf -openair2/DOCS/DOXYGEN/images/mesh_topology.pdf -openair2/DOCS/DOXYGEN/images/mesh_topology_small.png -openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png -openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd -openair2/DOCS/DOXYGEN/images/PHY_arch.eps -openair2/DOCS/DOXYGEN/images/PHY_arch.png -openair2/DOCS/DOXYGEN/images/PHY_arch.vsd -openair2/DOCS/DOXYGEN/images/QAM modulation.png -openair2/DOCS/DOXYGEN/images/QAM modulation.vsd -openair2/DOCS/DOXYGEN/images/QAMmodulation.png -openair2/DOCS/DOXYGEN/images/scrambler.png -openair2/DOCS/DOXYGEN/images/scrambler.vsd -openair2/DOCS/DOXYGEN/images/Transmission.pdf -openair2/DOCS/DOXYGEN/images/Transmission.png -openair2/DOCS/DOXYGEN/images/Transmission.ps -openair2/DOCS/DOXYGEN/images/w3g4f_framing.png -openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd -openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd -openair2/DOCS/DOXYGEN/Doxyfile -openair2/DOCS/TEMPLATES/CODE/images/arch.eps -openair2/DOCS/TEMPLATES/CODE/images/arch.png -openair2/DOCS/TEMPLATES/CODE/Doxyfile -openair2/DOCS/TEMPLATES/CODE/example_doxy.h -openair2/DOCS/TEMPLATES/README/Readme.doxy -openair2/DOCS/TEMPLATES/README/readme.txt -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c -openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h -openair2/ENB_APP/MESSAGES/V2/config_common.proto -openair2/ENB_APP/MESSAGES/V2/config_messages.proto -openair2/ENB_APP/MESSAGES/V2/control_delegation.proto -openair2/ENB_APP/MESSAGES/V2/controller_commands.proto -openair2/ENB_APP/MESSAGES/V2/flexran.proto -openair2/ENB_APP/MESSAGES/V2/header.proto -openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto -openair2/ENB_APP/MESSAGES/V2/stats_common.proto -openair2/ENB_APP/MESSAGES/V2/stats_messages.proto -openair2/ENB_APP/MESSAGES/V2/time_common.proto -openair2/ENB_APP/enb_app.c -openair2/ENB_APP/enb_app.h -openair2/ENB_APP/enb_config.c -openair2/ENB_APP/enb_config.h -openair2/ENB_APP/flexran_agent.c -openair2/ENB_APP/flexran_agent.h -openair2/ENB_APP/flexran_agent_async.c -openair2/ENB_APP/flexran_agent_async.h -openair2/ENB_APP/flexran_agent_common.c -openair2/ENB_APP/flexran_agent_common.h -openair2/ENB_APP/flexran_agent_common_internal.c -openair2/ENB_APP/flexran_agent_common_internal.h -openair2/ENB_APP/flexran_agent_defs.h -openair2/ENB_APP/flexran_agent_extern.h -openair2/ENB_APP/flexran_agent_handler.c -openair2/ENB_APP/flexran_agent_net_comm.c -openair2/ENB_APP/flexran_agent_net_comm.h -openair2/ENB_APP/flexran_agent_task_manager.c -openair2/ENB_APP/flexran_agent_task_manager.h -openair2/LAYER2/MAC/config.c -openair2/LAYER2/MAC/defs.h -openair2/LAYER2/MAC/eNB_scheduler.c -openair2/LAYER2/MAC/eNB_scheduler_bch.c -openair2/LAYER2/MAC/eNB_scheduler_dlsch.c -openair2/LAYER2/MAC/eNB_scheduler_mch.c -openair2/LAYER2/MAC/eNB_scheduler_primitives.c -openair2/LAYER2/MAC/eNB_scheduler_RA.c -openair2/LAYER2/MAC/eNB_scheduler_ulsch.c -openair2/LAYER2/MAC/extern.h -openair2/LAYER2/MAC/flexran_agent_mac_proto.h -openair2/LAYER2/MAC/flexran_agent_scheduler_dataplane.c -openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue.c -openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.c -openair2/LAYER2/MAC/flexran_agent_scheduler_dlsch_ue_remote.h -openair2/LAYER2/MAC/flexran_dci_conversions.h -openair2/LAYER2/MAC/l1_helpers.c -openair2/LAYER2/MAC/lte_transport_init.c -openair2/LAYER2/MAC/main.c -openair2/LAYER2/MAC/openair2_proc.c -openair2/LAYER2/MAC/pre_processor.c -openair2/LAYER2/MAC/proto.h -openair2/LAYER2/MAC/ra_procedures.c -openair2/LAYER2/MAC/rar_tools.c -openair2/LAYER2/MAC/ue_procedures.c -openair2/LAYER2/MAC/vars.h -openair2/LAYER2/PDCP_v10.1.0/pdcp.c -openair2/LAYER2/PDCP_v10.1.0/pdcp.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h -openair2/LAYER2/RLC/UM_v9.3.0/README -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h -openair2/LAYER2/RLC/mac_primitives.h -openair2/LAYER2/RLC/rlc.c -openair2/LAYER2/RLC/rlc.h -openair2/LAYER2/RLC/rlc_def.h -openair2/LAYER2/RLC/rlc_def_lte.h -openair2/LAYER2/RLC/rlc_mac.c -openair2/LAYER2/RLC/rlc_mpls.c -openair2/LAYER2/RLC/rlc_primitives.h -openair2/LAYER2/RLC/rlc_rrc.c -openair2/LAYER2/openair2_proc.c -openair2/LAYER2/register.c -openair2/LAYER2/register.h -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h -openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest -openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c -openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c -openair2/NAS/DRIVER/CELLULAR/readme.txt -openair2/NAS/DRIVER/CELLULAR/start_mt_cellular -openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_noradvd -openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_radvd -openair2/NAS/DRIVER/CELLULAR/stop_mt_cellular -openair2/NAS/DRIVER/CELLULAR/stop_rg_cellular -openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h -openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c -openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c -openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c -openair2/NETWORK_DRIVER/LITE/classifier.c -openair2/NETWORK_DRIVER/LITE/common.c -openair2/NETWORK_DRIVER/LITE/constant.h -openair2/NETWORK_DRIVER/LITE/device.c -openair2/NETWORK_DRIVER/LITE/ioctl.c -openair2/NETWORK_DRIVER/LITE/ioctl.h -openair2/NETWORK_DRIVER/LITE/local.h -openair2/NETWORK_DRIVER/LITE/netlink.c -openair2/NETWORK_DRIVER/LITE/proto_extern.h -openair2/NETWORK_DRIVER/LITE/sap.h -openair2/NETWORK_DRIVER/LITE/tool.c -openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c -openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c -openair2/NETWORK_DRIVER/MESH/classifier.c -openair2/NETWORK_DRIVER/MESH/common.c -openair2/NETWORK_DRIVER/MESH/constant.h -openair2/NETWORK_DRIVER/MESH/device.c -openair2/NETWORK_DRIVER/MESH/ioctl.c -openair2/NETWORK_DRIVER/MESH/ioctl.h -openair2/NETWORK_DRIVER/MESH/local.h -openair2/NETWORK_DRIVER/MESH/mesh.c -openair2/NETWORK_DRIVER/MESH/netlink.c -openair2/NETWORK_DRIVER/MESH/proto_extern.h -openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h -openair2/NETWORK_DRIVER/MESH/sap.h -openair2/NETWORK_DRIVER/MESH/tool.c -openair2/NETWORK_DRIVER/UE_IP/common.c -openair2/NETWORK_DRIVER/UE_IP/constant.h -openair2/NETWORK_DRIVER/UE_IP/device.c -openair2/NETWORK_DRIVER/UE_IP/local.h -openair2/NETWORK_DRIVER/UE_IP/netlink.c -openair2/NETWORK_DRIVER/UE_IP/proto_extern.h -openair2/NETWORK_DRIVER/UE_IP/README -openair2/NETWORK_DRIVER/UE_IP/sap.h -openair2/PHY_INTERFACE/defs.h -openair2/PHY_INTERFACE/extern.h -openair2/PHY_INTERFACE/IF_Module.c -openair2/PHY_INTERFACE/IF_Module.h -openair2/PHY_INTERFACE/mac_phy_primitives.c -openair2/PHY_INTERFACE/mac_phy_primitives.h -openair2/PHY_INTERFACE/vars.h -openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c -openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-860.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-a20.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-c60.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/RRC-e10.asn -openair2/RRC/LITE/MESSAGES/asn1_msg.c -openair2/RRC/LITE/MESSAGES/asn1_msg.h -openair2/RRC/LITE/MESSAGES/asn1_patch -openair2/RRC/LITE/MESSAGES/README.txt -openair2/RRC/LITE/MESSAGES/rtai_mem.c -openair2/RRC/LITE/MESSAGES/rtai_mem.h -openair2/RRC/LITE/defs.h -openair2/RRC/LITE/extern.h -openair2/RRC/LITE/L2_interface.c -openair2/RRC/LITE/mesh_top.c -openair2/RRC/LITE/plmn_data.h -openair2/RRC/LITE/proto.h -openair2/RRC/LITE/rrc_2_rrm_msg.c -openair2/RRC/LITE/rrc_common.c -openair2/RRC/LITE/rrc_eNB.c -openair2/RRC/LITE/rrc_eNB_GTPV1U.c -openair2/RRC/LITE/rrc_eNB_GTPV1U.h -openair2/RRC/LITE/rrc_eNB_ral.c -openair2/RRC/LITE/rrc_eNB_ral.h -openair2/RRC/LITE/rrc_eNB_S1AP.c -openair2/RRC/LITE/rrc_eNB_S1AP.h -openair2/RRC/LITE/rrc_eNB_UE_context.c -openair2/RRC/LITE/rrc_eNB_UE_context.h -openair2/RRC/LITE/rrc_rrm_interface.c -openair2/RRC/LITE/rrc_rrm_interface.h -openair2/RRC/LITE/rrc_types.h -openair2/RRC/LITE/rrc_UE.c -openair2/RRC/LITE/rrc_UE_ral.c -openair2/RRC/LITE/rrc_UE_ral.h -openair2/RRC/LITE/rrm_2_rrc_msg.c -openair2/RRC/LITE/utils.c -openair2/RRC/LITE/vars.h -openair2/RRC/NAS/nas_config.c -openair2/RRC/NAS/nas_config.h -openair2/RRC/NAS/rb_config.c -openair2/RRC/NAS/rb_config.h -openair2/UTIL/ASYNC_IF/link_manager.c -openair2/UTIL/ASYNC_IF/link_manager.h -openair2/UTIL/ASYNC_IF/message_queue.c -openair2/UTIL/ASYNC_IF/message_queue.h -openair2/UTIL/ASYNC_IF/ringbuffer_queue.c -openair2/UTIL/ASYNC_IF/ringbuffer_queue.h -openair2/UTIL/ASYNC_IF/socket_link.c -openair2/UTIL/ASYNC_IF/socket_link.h -openair2/UTIL/BIGPHYS/bigphys.c -openair2/UTIL/BIGPHYS/defs.h -openair2/UTIL/CLI/cli.c -openair2/UTIL/CLI/cli.h -openair2/UTIL/CLI/cli_cmd.c -openair2/UTIL/CLI/cli_if.h -openair2/UTIL/CLI/cli_server.c -openair2/UTIL/FIFO/pad_list.c -openair2/UTIL/FIFO/pad_list.h -openair2/UTIL/FIFO/types.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c -openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt -openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln -openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h -openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln -openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj -openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters -openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c -openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h -openair2/UTIL/LISTS/list.c -openair2/UTIL/LISTS/list.h -openair2/UTIL/LISTS/list2.c -openair2/UTIL/LOG/log.c -openair2/UTIL/LOG/log.h -openair2/UTIL/LOG/log_extern.h -openair2/UTIL/LOG/log_if.h -openair2/UTIL/LOG/README.txt -openair2/UTIL/LOG/vcd_signal_dumper.c -openair2/UTIL/LOG/vcd_signal_dumper.h -openair2/UTIL/MATH/crc_byte.c -openair2/UTIL/MATH/oml.c -openair2/UTIL/MATH/oml.h -openair2/UTIL/MATH/random.c -openair2/UTIL/MATH/random_proto_extern.h -openair2/UTIL/MATH/taus.c -openair2/UTIL/MEM/mem_block.c -openair2/UTIL/MEM/mem_block.h -openair2/UTIL/MEM/mem_mngt.c -openair2/UTIL/MEM/mem_mngt_proto_extern.h -openair2/UTIL/MEM/mem_pool.h -openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml -openair2/UTIL/OCG/temp_output/OCG_report.xml -openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml -openair2/UTIL/OCG/Doxyfile -openair2/UTIL/OCG/eurecom_20110208110244.xml -openair2/UTIL/OCG/OCG.c -openair2/UTIL/OCG/OCG.h -openair2/UTIL/OCG/OCG_call_emu.c -openair2/UTIL/OCG/OCG_call_emu.h -openair2/UTIL/OCG/OCG_config_mobi.c -openair2/UTIL/OCG/OCG_config_mobi.h -openair2/UTIL/OCG/OCG_create_dir.c -openair2/UTIL/OCG/OCG_create_dir.h -openair2/UTIL/OCG/OCG_detect_file.c -openair2/UTIL/OCG/OCG_detect_file.h -openair2/UTIL/OCG/OCG_extern.h -openair2/UTIL/OCG/OCG_generate_report.c -openair2/UTIL/OCG/OCG_generate_report.h -openair2/UTIL/OCG/OCG_get_opt.c -openair2/UTIL/OCG/OCG_get_opt.h -openair2/UTIL/OCG/OCG_if.h -openair2/UTIL/OCG/OCG_parse_filename.c -openair2/UTIL/OCG/OCG_parse_filename.h -openair2/UTIL/OCG/OCG_parse_XML.c -openair2/UTIL/OCG/OCG_parse_XML.h -openair2/UTIL/OCG/OCG_save_XML.c -openair2/UTIL/OCG/OCG_save_XML.h -openair2/UTIL/OCG/OCG_vars.h -openair2/UTIL/OCG/readme.txt -openair2/UTIL/OMG/TRACE/example_trace.tr -openair2/UTIL/OMG/TRACE/handover.tr -openair2/UTIL/OMG/TRACE/handover_1ue.tr -openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr -openair2/UTIL/OMG/TRACE/mobility_2ues.tr -openair2/UTIL/OMG/TRACE/mobility_3ues.tr -openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf -openair2/UTIL/OMG/TRACE/README.TXT -openair2/UTIL/OMG/TRACE/regular.tr -openair2/UTIL/OMG/TRACE/static_1enb.tr -openair2/UTIL/OMG/TRACE/static_2ues.tr -openair2/UTIL/OMG/TRACE/zero_speed.tr -openair2/UTIL/OMG/common.c -openair2/UTIL/OMG/defs.h -openair2/UTIL/OMG/grid.c -openair2/UTIL/OMG/grid.h -openair2/UTIL/OMG/job.c -openair2/UTIL/OMG/mobility.txt -openair2/UTIL/OMG/mobility_parser.c -openair2/UTIL/OMG/mobility_parser.h -openair2/UTIL/OMG/omg.c -openair2/UTIL/OMG/omg.h -openair2/UTIL/OMG/omg_constants.h -openair2/UTIL/OMG/omg_hashtable.c -openair2/UTIL/OMG/omg_hashtable.h -openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf -openair2/UTIL/OMG/omg_vars.h -openair2/UTIL/OMG/README.TXT -openair2/UTIL/OMG/rwalk.c -openair2/UTIL/OMG/rwalk.h -openair2/UTIL/OMG/rwp.c -openair2/UTIL/OMG/rwp.h -openair2/UTIL/OMG/static.c -openair2/UTIL/OMG/static.h -openair2/UTIL/OMG/steadystaterwp.c -openair2/UTIL/OMG/steadystaterwp.h -openair2/UTIL/OMG/trace.c -openair2/UTIL/OMG/trace.h -openair2/UTIL/OMG/trace_hashtable.c -openair2/UTIL/OMG/trace_hashtable.h -openair2/UTIL/OMV/blue.png -openair2/UTIL/OMV/communicationthread.cpp -openair2/UTIL/OMV/communicationthread.h -openair2/UTIL/OMV/green.png -openair2/UTIL/OMV/jpg.jpeg -openair2/UTIL/OMV/mus.png -openair2/UTIL/OMV/mywindow.cpp -openair2/UTIL/OMV/mywindow.h -openair2/UTIL/OMV/new.jpg -openair2/UTIL/OMV/new2.jpg -openair2/UTIL/OMV/omv.cpp -openair2/UTIL/OMV/openglwidget.cpp -openair2/UTIL/OMV/openglwidget.h -openair2/UTIL/OMV/README.txt -openair2/UTIL/OMV/red.png -openair2/UTIL/OMV/structures.h -openair2/UTIL/OMV/white.png -openair2/UTIL/OMV/wow.png -openair2/UTIL/OPT/mac_pcap.h -openair2/UTIL/OPT/opt.h -openair2/UTIL/OPT/packet-mac-lte.h -openair2/UTIL/OPT/probe.c -openair2/UTIL/OPT/README.txt -openair2/UTIL/OPT/vars.h -openair2/UTIL/OSA/osa_defs.h -openair2/UTIL/OSA/osa_internal.h -openair2/UTIL/OSA/osa_key_deriver.c -openair2/UTIL/OSA/osa_rijndael.c -openair2/UTIL/OSA/osa_rijndael.h -openair2/UTIL/OSA/osa_snow3g.c -openair2/UTIL/OSA/osa_snow3g.h -openair2/UTIL/OSA/osa_stream_eea.c -openair2/UTIL/OSA/osa_stream_eia.c -openair2/UTIL/OSA/README -openair2/UTIL/OSD/css/images/false.png -openair2/UTIL/OSD/css/images/false2.png -openair2/UTIL/OSD/css/images/lquote.png -openair2/UTIL/OSD/css/images/true.png -openair2/UTIL/OSD/css/images/warning.png -openair2/UTIL/OSD/css/blueprint.css -openair2/UTIL/OSD/css/fix-ie-rtl.css -openair2/UTIL/OSD/css/fix-ie.css -openair2/UTIL/OSD/css/ie.css -openair2/UTIL/OSD/css/ie6.css -openair2/UTIL/OSD/css/print.css -openair2/UTIL/OSD/css/screen.css -openair2/UTIL/OSD/css/style.css -openair2/UTIL/OSD/jquery/jquery.js -openair2/UTIL/OSD/fake_oaisim -openair2/UTIL/OSD/form.php -openair2/UTIL/OSD/header.php -openair2/UTIL/OSD/httpd-result.conf -openair2/UTIL/OSD/index.php -openair2/UTIL/OSD/OCG.pid -openair2/UTIL/OSD/OpenAirEmu.conf -openair2/UTIL/OSD/Platform_is_running.php -openair2/UTIL/OSD/README.txt -openair2/UTIL/OSD/recep.php -openair2/UTIL/OSD/toto.php -openair2/UTIL/OTG/Doxyfile -openair2/UTIL/OTG/help_OTGplot.txt -openair2/UTIL/OTG/main.c -openair2/UTIL/OTG/otg.c -openair2/UTIL/OTG/otg.h -openair2/UTIL/OTG/otg_config.h -openair2/UTIL/OTG/otg_defs.h -openair2/UTIL/OTG/otg_externs.h -openair2/UTIL/OTG/otg_form.c -openair2/UTIL/OTG/otg_form.h -openair2/UTIL/OTG/otg_kpi.c -openair2/UTIL/OTG/otg_kpi.h -openair2/UTIL/OTG/otg_models.c -openair2/UTIL/OTG/otg_models.h -openair2/UTIL/OTG/otg_rx.c -openair2/UTIL/OTG/otg_rx.h -openair2/UTIL/OTG/otg_rx_socket.c -openair2/UTIL/OTG/otg_rx_socket.h -openair2/UTIL/OTG/otg_tx.c -openair2/UTIL/OTG/otg_tx.h -openair2/UTIL/OTG/otg_tx_socket.c -openair2/UTIL/OTG/otg_tx_socket.h -openair2/UTIL/OTG/otg_vars.h -openair2/UTIL/OTG/OTGplot -openair2/UTIL/OTG/traffic_config.h -openair2/UTIL/TIMER/umts_timer.c -openair2/UTIL/TIMER/umts_timer.h -openair2/UTIL/TIMER/umts_timer_proto_extern.h -openair2/UTIL/TIMER/umts_timer_struct.h -openair2/UTIL/TRACE/fifo_printf.c -openair2/UTIL/TRACE/fifo_printf.h -openair2/UTIL/TRACE/fifo_printf_proto_extern.h -openair2/UTIL/TRACE/print.h -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn -openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py -openair2/X2AP/x2ap.c -openair2/X2AP/x2ap.h -openair2/X2AP/x2ap_common.c -openair2/X2AP/x2ap_common.h -openair3/COMMON/as_message.h -openair3/COMMON/common_types.h -openair3/COMMON/gtpv1_u_messages_def.h -openair3/COMMON/gtpv1_u_messages_types.h -openair3/COMMON/intertask_interface_conf.h -openair3/COMMON/messages_def.h -openair3/COMMON/messages_types.h -openair3/COMMON/nas_messages_def.h -openair3/COMMON/nas_messages_types.h -openair3/COMMON/s1ap_messages_def.h -openair3/COMMON/s1ap_messages_types.h -openair3/COMMON/sctp_messages_def.h -openair3/COMMON/sctp_messages_types.h -openair3/COMMON/security_types.h -openair3/COMMON/tasks_def.h -openair3/COMMON/udp_messages_def.h -openair3/COMMON/udp_messages_types.h -openair3/DOCS/DOXYGEN/Doxyfile.in -openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf -openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex -openair3/DOCS/Latex/EPC/EPC.pdf -openair3/DOCS/Latex/EPC/EPC.tex -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h -openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h -openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c -openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h -openair3/GTPV1-U/nw-gtpv1u/AUTHORS -openair3/GTPV1-U/nw-gtpv1u/ChangeLog -openair3/GTPV1-U/nw-gtpv1u/COPYING -openair3/GTPV1-U/nw-gtpv1u/NEWS -openair3/GTPV1-U/nw-gtpv1u/README -openair3/GTPV1-U/gtpv1u.h -openair3/GTPV1-U/gtpv1u_eNB.c -openair3/GTPV1-U/gtpv1u_eNB_defs.h -openair3/GTPV1-U/gtpv1u_eNB_task.h -openair3/GTPV1-U/gtpv1u_sgw_defs.h -openair3/GTPV1-U/gtpv1u_task.c -openair3/GTPV1-U/gtpv1u_teid_pool.c -openair3/NAS/COMMON/API/NETWORK/as_message.c -openair3/NAS/COMMON/API/NETWORK/as_message.h -openair3/NAS/COMMON/API/NETWORK/l2_message.h -openair3/NAS/COMMON/API/NETWORK/nas_message.c -openair3/NAS/COMMON/API/NETWORK/nas_message.h -openair3/NAS/COMMON/API/NETWORK/network_api.c -openair3/NAS/COMMON/API/NETWORK/network_api.h -openair3/NAS/COMMON/EMM/MSG/AttachAccept.c -openair3/NAS/COMMON/EMM/MSG/AttachAccept.h -openair3/NAS/COMMON/EMM/MSG/AttachComplete.c -openair3/NAS/COMMON/EMM/MSG/AttachComplete.h -openair3/NAS/COMMON/EMM/MSG/AttachReject.c -openair3/NAS/COMMON/EMM/MSG/AttachReject.h -openair3/NAS/COMMON/EMM/MSG/AttachRequest.c -openair3/NAS/COMMON/EMM/MSG/AttachRequest.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h -openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c -openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h -openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c -openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h -openair3/NAS/COMMON/EMM/MSG/DetachAccept.c -openair3/NAS/COMMON/EMM/MSG/DetachAccept.h -openair3/NAS/COMMON/EMM/MSG/DetachRequest.c -openair3/NAS/COMMON/EMM/MSG/DetachRequest.h -openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c -openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h -openair3/NAS/COMMON/EMM/MSG/emm_cause.h -openair3/NAS/COMMON/EMM/MSG/emm_msg.c -openair3/NAS/COMMON/EMM/MSG/emm_msg.h -openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h -openair3/NAS/COMMON/EMM/MSG/EmmInformation.c -openair3/NAS/COMMON/EMM/MSG/EmmInformation.h -openair3/NAS/COMMON/EMM/MSG/EmmStatus.c -openair3/NAS/COMMON/EMM/MSG/EmmStatus.h -openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c -openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h -openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c -openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h -openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c -openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h -openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c -openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h -openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c -openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h -openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h -openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h -openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c -openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c -openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c -openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h -openair3/NAS/COMMON/EMM/MSG/ServiceReject.c -openair3/NAS/COMMON/EMM/MSG/ServiceReject.h -openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c -openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c -openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h -openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c -openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c -openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/esm_cause.h -openair3/NAS/COMMON/ESM/MSG/esm_msg.c -openair3/NAS/COMMON/ESM/MSG/esm_msg.h -openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h -openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c -openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h -openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c -openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h -openair3/NAS/COMMON/ESM/MSG/EsmStatus.c -openair3/NAS/COMMON/ESM/MSG/EsmStatus.h -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c -openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c -openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c -openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h -openair3/NAS/COMMON/IES/AccessPointName.c -openair3/NAS/COMMON/IES/AccessPointName.h -openair3/NAS/COMMON/IES/AdditionalUpdateResult.c -openair3/NAS/COMMON/IES/AdditionalUpdateResult.h -openair3/NAS/COMMON/IES/AdditionalUpdateType.c -openair3/NAS/COMMON/IES/AdditionalUpdateType.h -openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c -openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h -openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c -openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h -openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c -openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h -openair3/NAS/COMMON/IES/AuthenticationParameterRand.c -openair3/NAS/COMMON/IES/AuthenticationParameterRand.h -openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c -openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h -openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c -openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h -openair3/NAS/COMMON/IES/Cli.c -openair3/NAS/COMMON/IES/Cli.h -openair3/NAS/COMMON/IES/CsfbResponse.c -openair3/NAS/COMMON/IES/CsfbResponse.h -openair3/NAS/COMMON/IES/DaylightSavingTime.c -openair3/NAS/COMMON/IES/DaylightSavingTime.h -openair3/NAS/COMMON/IES/DetachType.c -openair3/NAS/COMMON/IES/DetachType.h -openair3/NAS/COMMON/IES/DrxParameter.c -openair3/NAS/COMMON/IES/DrxParameter.h -openair3/NAS/COMMON/IES/EmergencyNumberList.c -openair3/NAS/COMMON/IES/EmergencyNumberList.h -openair3/NAS/COMMON/IES/EmmCause.c -openair3/NAS/COMMON/IES/EmmCause.h -openair3/NAS/COMMON/IES/EpsAttachResult.c -openair3/NAS/COMMON/IES/EpsAttachResult.h -openair3/NAS/COMMON/IES/EpsAttachType.c -openair3/NAS/COMMON/IES/EpsAttachType.h -openair3/NAS/COMMON/IES/EpsBearerContextStatus.c -openair3/NAS/COMMON/IES/EpsBearerContextStatus.h -openair3/NAS/COMMON/IES/EpsBearerIdentity.c -openair3/NAS/COMMON/IES/EpsBearerIdentity.h -openair3/NAS/COMMON/IES/EpsMobileIdentity.c -openair3/NAS/COMMON/IES/EpsMobileIdentity.h -openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c -openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h -openair3/NAS/COMMON/IES/EpsQualityOfService.c -openair3/NAS/COMMON/IES/EpsQualityOfService.h -openair3/NAS/COMMON/IES/EpsUpdateResult.c -openair3/NAS/COMMON/IES/EpsUpdateResult.h -openair3/NAS/COMMON/IES/EpsUpdateType.c -openair3/NAS/COMMON/IES/EpsUpdateType.h -openair3/NAS/COMMON/IES/EsmCause.c -openair3/NAS/COMMON/IES/EsmCause.h -openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c -openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h -openair3/NAS/COMMON/IES/EsmMessageContainer.c -openair3/NAS/COMMON/IES/EsmMessageContainer.h -openair3/NAS/COMMON/IES/GprsTimer.c -openair3/NAS/COMMON/IES/GprsTimer.h -openair3/NAS/COMMON/IES/GutiType.c -openair3/NAS/COMMON/IES/GutiType.h -openair3/NAS/COMMON/IES/IdentityType2.c -openair3/NAS/COMMON/IES/IdentityType2.h -openair3/NAS/COMMON/IES/ImeisvRequest.c -openair3/NAS/COMMON/IES/ImeisvRequest.h -openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c -openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h -openair3/NAS/COMMON/IES/LcsClientIdentity.c -openair3/NAS/COMMON/IES/LcsClientIdentity.h -openair3/NAS/COMMON/IES/LcsIndicator.c -openair3/NAS/COMMON/IES/LcsIndicator.h -openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c -openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h -openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c -openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h -openair3/NAS/COMMON/IES/LocationAreaIdentification.c -openair3/NAS/COMMON/IES/LocationAreaIdentification.h -openair3/NAS/COMMON/IES/MessageType.c -openair3/NAS/COMMON/IES/MessageType.h -openair3/NAS/COMMON/IES/MobileIdentity.c -openair3/NAS/COMMON/IES/MobileIdentity.h -openair3/NAS/COMMON/IES/MobileStationClassmark2.c -openair3/NAS/COMMON/IES/MobileStationClassmark2.h -openair3/NAS/COMMON/IES/MobileStationClassmark3.c -openair3/NAS/COMMON/IES/MobileStationClassmark3.h -openair3/NAS/COMMON/IES/MsNetworkCapability.c -openair3/NAS/COMMON/IES/MsNetworkCapability.h -openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c -openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h -openair3/NAS/COMMON/IES/NasKeySetIdentifier.c -openair3/NAS/COMMON/IES/NasKeySetIdentifier.h -openair3/NAS/COMMON/IES/NasMessageContainer.c -openair3/NAS/COMMON/IES/NasMessageContainer.h -openair3/NAS/COMMON/IES/NasRequestType.c -openair3/NAS/COMMON/IES/NasRequestType.h -openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c -openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h -openair3/NAS/COMMON/IES/NetworkName.c -openair3/NAS/COMMON/IES/NetworkName.h -openair3/NAS/COMMON/IES/Nonce.c -openair3/NAS/COMMON/IES/Nonce.h -openair3/NAS/COMMON/IES/PacketFlowIdentifier.c -openair3/NAS/COMMON/IES/PacketFlowIdentifier.h -openair3/NAS/COMMON/IES/PagingIdentity.c -openair3/NAS/COMMON/IES/PagingIdentity.h -openair3/NAS/COMMON/IES/PdnAddress.c -openair3/NAS/COMMON/IES/PdnAddress.h -openair3/NAS/COMMON/IES/PdnType.c -openair3/NAS/COMMON/IES/PdnType.h -openair3/NAS/COMMON/IES/PlmnList.c -openair3/NAS/COMMON/IES/PlmnList.h -openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c -openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h -openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c -openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h -openair3/NAS/COMMON/IES/ProtocolDiscriminator.c -openair3/NAS/COMMON/IES/ProtocolDiscriminator.h -openair3/NAS/COMMON/IES/PTmsiSignature.c -openair3/NAS/COMMON/IES/PTmsiSignature.h -openair3/NAS/COMMON/IES/QualityOfService.c -openair3/NAS/COMMON/IES/QualityOfService.h -openair3/NAS/COMMON/IES/RadioPriority.c -openair3/NAS/COMMON/IES/RadioPriority.h -openair3/NAS/COMMON/IES/SecurityHeaderType.c -openair3/NAS/COMMON/IES/SecurityHeaderType.h -openair3/NAS/COMMON/IES/ServiceType.c -openair3/NAS/COMMON/IES/ServiceType.h -openair3/NAS/COMMON/IES/ShortMac.c -openair3/NAS/COMMON/IES/ShortMac.h -openair3/NAS/COMMON/IES/SsCode.c -openair3/NAS/COMMON/IES/SsCode.h -openair3/NAS/COMMON/IES/SupportedCodecList.c -openair3/NAS/COMMON/IES/SupportedCodecList.h -openair3/NAS/COMMON/IES/TimeZone.c -openair3/NAS/COMMON/IES/TimeZone.h -openair3/NAS/COMMON/IES/TimeZoneAndTime.c -openair3/NAS/COMMON/IES/TimeZoneAndTime.h -openair3/NAS/COMMON/IES/TmsiStatus.c -openair3/NAS/COMMON/IES/TmsiStatus.h -openair3/NAS/COMMON/IES/TrackingAreaIdentity.c -openair3/NAS/COMMON/IES/TrackingAreaIdentity.h -openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c -openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h -openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c -openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h -openair3/NAS/COMMON/IES/TrafficFlowTemplate.c -openair3/NAS/COMMON/IES/TrafficFlowTemplate.h -openair3/NAS/COMMON/IES/TransactionIdentifier.c -openair3/NAS/COMMON/IES/TransactionIdentifier.h -openair3/NAS/COMMON/IES/UeNetworkCapability.c -openair3/NAS/COMMON/IES/UeNetworkCapability.h -openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c -openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h -openair3/NAS/COMMON/IES/UeSecurityCapability.c -openair3/NAS/COMMON/IES/UeSecurityCapability.h -openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c -openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h -openair3/NAS/COMMON/UTIL/tst/timer.c -openair3/NAS/COMMON/UTIL/tst/timer_debug.txt -openair3/NAS/COMMON/UTIL/device.c -openair3/NAS/COMMON/UTIL/device.h -openair3/NAS/COMMON/UTIL/memory.c -openair3/NAS/COMMON/UTIL/memory.h -openair3/NAS/COMMON/UTIL/nas_log.c -openair3/NAS/COMMON/UTIL/nas_log.h -openair3/NAS/COMMON/UTIL/nas_timer.c -openair3/NAS/COMMON/UTIL/nas_timer.h -openair3/NAS/COMMON/UTIL/OctetString.c -openair3/NAS/COMMON/UTIL/OctetString.h -openair3/NAS/COMMON/UTIL/parser.c -openair3/NAS/COMMON/UTIL/parser.h -openair3/NAS/COMMON/UTIL/socket.c -openair3/NAS/COMMON/UTIL/socket.h -openair3/NAS/COMMON/UTIL/stty.c -openair3/NAS/COMMON/UTIL/TLVDecoder.c -openair3/NAS/COMMON/UTIL/TLVDecoder.h -openair3/NAS/COMMON/UTIL/TLVEncoder.c -openair3/NAS/COMMON/UTIL/TLVEncoder.h -openair3/NAS/COMMON/commonDef.h -openair3/NAS/COMMON/networkDef.h -openair3/NAS/COMMON/securityDef.h -openair3/NAS/COMMON/userDef.h -openair3/NAS/TEST/AS_SIMULATOR/as_data.c -openair3/NAS/TEST/AS_SIMULATOR/as_data.h -openair3/NAS/TEST/AS_SIMULATOR/as_process.c -openair3/NAS/TEST/AS_SIMULATOR/as_process.h -openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c -openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c -openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h -openair3/NAS/TEST/AS_SIMULATOR/nas_data.c -openair3/NAS/TEST/AS_SIMULATOR/nas_data.h -openair3/NAS/TEST/AS_SIMULATOR/nas_process.c -openair3/NAS/TEST/AS_SIMULATOR/nas_process.h -openair3/NAS/TEST/MSC/ActivatePDN.png -openair3/NAS/TEST/MSC/AuthenticationReject.png -openair3/NAS/TEST/MSC/DeactivatePDN.png -openair3/NAS/TEST/MSC/InitialAttach.png -openair3/NAS/TEST/MSC/InitialAttachReject.png -openair3/NAS/TEST/MSC/msc_gen.py -openair3/NAS/TEST/MSC/NomalDetach.png -openair3/NAS/TEST/MSC/README -openair3/NAS/TEST/MSC/SwitchOffDetach.png -openair3/NAS/TEST/NETWORK/network_parser.c -openair3/NAS/TEST/NETWORK/network_parser.h -openair3/NAS/TEST/NETWORK/network_simulator.c -openair3/NAS/TEST/NETWORK/README -openair3/NAS/TEST/USER/user_parser.c -openair3/NAS/TEST/USER/user_parser.h -openair3/NAS/TEST/USER/user_simulator.c -openair3/NAS/TOOLS/conf2uedata.c -openair3/NAS/TOOLS/conf2uedata.h -openair3/NAS/TOOLS/conf_emm.c -openair3/NAS/TOOLS/conf_emm.h -openair3/NAS/TOOLS/conf_network.c -openair3/NAS/TOOLS/conf_network.h -openair3/NAS/TOOLS/conf_parser.c -openair3/NAS/TOOLS/conf_parser.h -openair3/NAS/TOOLS/conf_user_data.c -openair3/NAS/TOOLS/conf_user_data.h -openair3/NAS/TOOLS/conf_user_plmn.c -openair3/NAS/TOOLS/conf_user_plmn.h -openair3/NAS/TOOLS/conf_usim.c -openair3/NAS/TOOLS/conf_usim.h -openair3/NAS/TOOLS/display.c -openair3/NAS/TOOLS/display.h -openair3/NAS/TOOLS/fs.c -openair3/NAS/TOOLS/fs.h -openair3/NAS/TOOLS/network.h -openair3/NAS/TOOLS/nvram.c -openair3/NAS/TOOLS/ue_bcom_test.conf -openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf -openair3/NAS/TOOLS/ue_tcl_test.conf -openair3/NAS/TOOLS/usim.c -openair3/NAS/UE/API/USER/tst/at_parser.c -openair3/NAS/UE/API/USER/tst/at_parser.in -openair3/NAS/UE/API/USER/tst/at_parser.in.bis -openair3/NAS/UE/API/USER/tst/at_parser.out -openair3/NAS/UE/API/USER/tst/at_parser.out.bis -openair3/NAS/UE/API/USER/tst/smartcom.txt -openair3/NAS/UE/API/USER/at_command.c -openair3/NAS/UE/API/USER/at_command.h -openair3/NAS/UE/API/USER/at_error.c -openair3/NAS/UE/API/USER/at_error.h -openair3/NAS/UE/API/USER/at_response.c -openair3/NAS/UE/API/USER/at_response.h -openair3/NAS/UE/API/USER/user_api.c -openair3/NAS/UE/API/USER/user_api.h -openair3/NAS/UE/API/USER/user_api_defs.h -openair3/NAS/UE/API/USER/user_indication.c -openair3/NAS/UE/API/USER/user_indication.h -openair3/NAS/UE/API/USIM/aka_functions.c -openair3/NAS/UE/API/USIM/aka_functions.h -openair3/NAS/UE/API/USIM/usim_api.c -openair3/NAS/UE/API/USIM/usim_api.h -openair3/NAS/UE/EMM/SAP/emm_as.c -openair3/NAS/UE/EMM/SAP/emm_as.h -openair3/NAS/UE/EMM/SAP/emm_asDef.h -openair3/NAS/UE/EMM/SAP/emm_esm.c -openair3/NAS/UE/EMM/SAP/emm_esm.h -openair3/NAS/UE/EMM/SAP/emm_esmDef.h -openair3/NAS/UE/EMM/SAP/emm_fsm.c -openair3/NAS/UE/EMM/SAP/emm_fsm.h -openair3/NAS/UE/EMM/SAP/emm_recv.c -openair3/NAS/UE/EMM/SAP/emm_recv.h -openair3/NAS/UE/EMM/SAP/emm_reg.c -openair3/NAS/UE/EMM/SAP/emm_reg.h -openair3/NAS/UE/EMM/SAP/emm_regDef.h -openair3/NAS/UE/EMM/SAP/emm_sap.c -openair3/NAS/UE/EMM/SAP/emm_sap.h -openair3/NAS/UE/EMM/SAP/emm_send.c -openair3/NAS/UE/EMM/SAP/emm_send.h -openair3/NAS/UE/EMM/SAP/EmmDeregistered.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c -openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c -openair3/NAS/UE/EMM/SAP/EmmNull.c -openair3/NAS/UE/EMM/SAP/EmmRegistered.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c -openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c -openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c -openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c -openair3/NAS/UE/EMM/Attach.c -openair3/NAS/UE/EMM/Authentication.c -openair3/NAS/UE/EMM/Authentication.h -openair3/NAS/UE/EMM/Detach.c -openair3/NAS/UE/EMM/emm_fsm_defs.h -openair3/NAS/UE/EMM/emm_main.c -openair3/NAS/UE/EMM/emm_main.h -openair3/NAS/UE/EMM/emm_proc.h -openair3/NAS/UE/EMM/emm_proc_defs.h -openair3/NAS/UE/EMM/emm_timers.h -openair3/NAS/UE/EMM/emmData.h -openair3/NAS/UE/EMM/EmmStatusHdl.c -openair3/NAS/UE/EMM/Identification.c -openair3/NAS/UE/EMM/IdleMode.c -openair3/NAS/UE/EMM/IdleMode.h -openair3/NAS/UE/EMM/IdleMode_defs.h -openair3/NAS/UE/EMM/LowerLayer.c -openair3/NAS/UE/EMM/LowerLayer.h -openair3/NAS/UE/EMM/LowerLayer_defs.h -openair3/NAS/UE/EMM/SecurityModeControl.c -openair3/NAS/UE/EMM/SecurityModeControl.h -openair3/NAS/UE/EMM/ServiceRequestHdl.c -openair3/NAS/UE/EMM/TrackingAreaUpdate.c -openair3/NAS/UE/ESM/SAP/esm_recv.c -openair3/NAS/UE/ESM/SAP/esm_recv.h -openair3/NAS/UE/ESM/SAP/esm_sap.c -openair3/NAS/UE/ESM/SAP/esm_sap.h -openair3/NAS/UE/ESM/SAP/esm_sapDef.h -openair3/NAS/UE/ESM/SAP/esm_send.c -openair3/NAS/UE/ESM/SAP/esm_send.h -openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c -openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c -openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c -openair3/NAS/UE/ESM/esm_ebr.c -openair3/NAS/UE/ESM/esm_ebr.h -openair3/NAS/UE/ESM/esm_ebr_context.c -openair3/NAS/UE/ESM/esm_ebr_context.h -openair3/NAS/UE/ESM/esm_ip.c -openair3/NAS/UE/ESM/esm_main.c -openair3/NAS/UE/ESM/esm_main.h -openair3/NAS/UE/ESM/esm_proc.h -openair3/NAS/UE/ESM/esm_pt.c -openair3/NAS/UE/ESM/esm_pt.h -openair3/NAS/UE/ESM/esm_pt_defs.h -openair3/NAS/UE/ESM/esmData.h -openair3/NAS/UE/ESM/EsmStatusHdl.c -openair3/NAS/UE/ESM/PdnConnectivity.c -openair3/NAS/UE/ESM/PdnDisconnect.c -openair3/NAS/UE/nas_itti_messaging.c -openair3/NAS/UE/nas_itti_messaging.h -openair3/NAS/UE/nas_network.c -openair3/NAS/UE/nas_network.h -openair3/NAS/UE/nas_parser.c -openair3/NAS/UE/nas_parser.h -openair3/NAS/UE/nas_proc.c -openair3/NAS/UE/nas_proc.h -openair3/NAS/UE/nas_proc_defs.h -openair3/NAS/UE/nas_ue_task.c -openair3/NAS/UE/nas_ue_task.h -openair3/NAS/UE/nas_user.c -openair3/NAS/UE/nas_user.h -openair3/NAS/UE/UEprocess.c -openair3/NAS/UE/user_defs.h -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn -openair3/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn -openair3/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn -openair3/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn -openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py -openair3/S1AP/MESSAGES/ASN1/README -openair3/S1AP/s1ap_common.c -openair3/S1AP/s1ap_common.h -openair3/S1AP/s1ap_eNB.c -openair3/S1AP/s1ap_eNB.h -openair3/S1AP/s1ap_eNB_context_management_procedures.c -openair3/S1AP/s1ap_eNB_context_management_procedures.h -openair3/S1AP/s1ap_eNB_decoder.c -openair3/S1AP/s1ap_eNB_decoder.h -openair3/S1AP/s1ap_eNB_default_values.h -openair3/S1AP/s1ap_eNB_defs.h -openair3/S1AP/s1ap_eNB_encoder.c -openair3/S1AP/s1ap_eNB_encoder.h -openair3/S1AP/s1ap_eNB_handlers.c -openair3/S1AP/s1ap_eNB_handlers.h -openair3/S1AP/s1ap_eNB_itti_messaging.c -openair3/S1AP/s1ap_eNB_itti_messaging.h -openair3/S1AP/s1ap_eNB_management_procedures.c -openair3/S1AP/s1ap_eNB_management_procedures.h -openair3/S1AP/s1ap_eNB_nas_procedures.c -openair3/S1AP/s1ap_eNB_nas_procedures.h -openair3/S1AP/s1ap_eNB_nnsf.c -openair3/S1AP/s1ap_eNB_nnsf.h -openair3/S1AP/s1ap_eNB_overload.c -openair3/S1AP/s1ap_eNB_overload.h -openair3/S1AP/s1ap_eNB_trace.c -openair3/S1AP/s1ap_eNB_trace.h -openair3/S1AP/s1ap_eNB_ue_context.c -openair3/S1AP/s1ap_eNB_ue_context.h -openair3/SCTP/sctp_common.c -openair3/SCTP/sctp_common.h -openair3/SCTP/sctp_default_values.h -openair3/SCTP/sctp_eNB_defs.h -openair3/SCTP/sctp_eNB_itti_messaging.c -openair3/SCTP/sctp_eNB_itti_messaging.h -openair3/SCTP/sctp_eNB_task.c -openair3/SCTP/sctp_eNB_task.h -openair3/SCTP/sctp_primitives_client.c -openair3/SCTP/sctp_primitives_client.h -openair3/SECU/kdf.c -openair3/SECU/key_nas_deriver.c -openair3/SECU/key_nas_encryption.c -openair3/SECU/nas_stream_eea1.c -openair3/SECU/nas_stream_eea2.c -openair3/SECU/nas_stream_eia1.c -openair3/SECU/nas_stream_eia2.c -openair3/SECU/rijndael.c -openair3/SECU/rijndael.h -openair3/SECU/secu_defs.h -openair3/SECU/snow3g.c -openair3/SECU/snow3g.h -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf -openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml -openair3/TEST/EPC_TEST/generate_scenario.c -openair3/TEST/EPC_TEST/generate_scenario.h -openair3/TEST/EPC_TEST/play_scenario.c -openair3/TEST/EPC_TEST/play_scenario.h -openair3/TEST/EPC_TEST/play_scenario_decode.c -openair3/TEST/EPC_TEST/play_scenario_display.c -openair3/TEST/EPC_TEST/play_scenario_fsm.c -openair3/TEST/EPC_TEST/play_scenario_parse.c -openair3/TEST/EPC_TEST/play_scenario_s1ap.c -openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c -openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h -openair3/TEST/EPC_TEST/play_scenario_sctp.c -openair3/TEST/oaisim_mme_client_test.c -openair3/TEST/oaisim_mme_itti_test.c -openair3/TEST/oaisim_mme_list_benchmark.c -openair3/TEST/oaisim_mme_s1ap_test.c -openair3/TEST/oaisim_mme_sctp_test.c -openair3/TEST/oaisim_mme_test_s1c.c -openair3/TEST/oaisim_mme_test_s1c.h -openair3/TEST/oaisim_mme_test_s1c_s1ap.c -openair3/TEST/oaisim_mme_test_s1c_s1ap.h -openair3/TEST/oaisim_mme_test_s1c_scenario.c -openair3/TEST/oaisim_mme_test_s1c_scenario.h -openair3/TEST/oaisim_mme_test_s1c_scenario1.c -openair3/TEST/test_aes128_cmac_encrypt.c -openair3/TEST/test_aes128_ctr_decrypt.c -openair3/TEST/test_aes128_ctr_encrypt.c -openair3/TEST/test_kdf.c -openair3/TEST/test_s1ap.c -openair3/TEST/test_secu.c -openair3/TEST/test_secu_kenb.c -openair3/TEST/test_secu_knas.c -openair3/TEST/test_secu_knas_encrypt_eea1.c -openair3/TEST/test_secu_knas_encrypt_eea2.c -openair3/TEST/test_secu_knas_encrypt_eia1.c -openair3/TEST/test_secu_knas_encrypt_eia2.c -openair3/TEST/test_secu_knas_stream_int.c -openair3/UDP/udp_eNB_task.c -openair3/UDP/udp_eNB_task.h -openair3/UTILS/CONF/COPYING -openair3/UTILS/conversions.c -openair3/UTILS/conversions.h -openair3/UTILS/enum_string.c -openair3/UTILS/enum_string.h -openair3/UTILS/log.c -openair3/UTILS/log.h -openair3/UTILS/mcc_mnc_itu.c -openair3/UTILS/mcc_mnc_itu.h -openair3/UTILS/mme_config.c -openair3/UTILS/mme_config.h -openair3/UTILS/mme_default_values.h -openair3/UTILS/mme_parser.y -openair3/UTILS/mme_scanner.l -openair3/UTILS/queue.h -openair3/UTILS/tree.h -openair3/valgrind.sh -svn2git/authors.txt -svn2git/authors_original.txt -svn2git/authors_original_java_output.txt -svn2git/check_diff_author.sh -svn2git/git-author-rewrite.sh -svn2git/README.txt -targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c -targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h -targets/ARCH/COMMON/common_lib.c -targets/ARCH/COMMON/common_lib.h -targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c -targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c -targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c -targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h -targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk -targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd -targets/ARCH/EXMIMO/BITSTREAM/program_fpga -targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd -targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd -targets/ARCH/EXMIMO/DEFS/openair_device.h -targets/ARCH/EXMIMO/DEFS/pcie_interface.h -targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h -targets/ARCH/EXMIMO/DRIVER/eurecom/do_reenumerate_expressmimo.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/do_reinsert_driver.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c -targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h -targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c -targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c -targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c -targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reenumerate_expressmimo.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reinsert_driver.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/test_script.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c -targets/ARCH/EXMIMO/DRIVER/readme.txt -targets/ARCH/EXMIMO/USERSPACE/LIB/example.c -targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c -targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h -targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c -targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo1 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v9 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m -targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp -targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp -targets/ARCH/LMSSDR/LimeSDR.ini -targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini -targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini -targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini -targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini -targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp -targets/COMMON/create_tasks.c -targets/COMMON/create_tasks.h -targets/COMMON/openairinterface5g_limits.h -targets/COMMON/threads_t.h -targets/DOCS/images/oai_logo.png -targets/DOCS/api_icic.xml -targets/DOCS/Doxyfile -targets/DOCS/E-UTRAN_User_Guide.docx -targets/DOCS/E-UTRAN_User_Guide.pdf -targets/DOCS/oai_L1_L2_procedures.pdf -targets/DOCS/oaiemu.doc -targets/DOCS/oaisim_walkthrough.pdf -targets/DOCS/openair_header.tex -targets/DOCS/path_loss_oaisim.xlsx -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf -targets/PROJECTS/E-MBMS/build_all.bash -targets/PROJECTS/E-MBMS/enb.conf -targets/PROJECTS/E-MBMS/start_enb.bash -targets/PROJECTS/E-MBMS/start_ue.bash -targets/PROJECTS/E-MBMS/utils.bash -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.25PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.sedora.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.rrh.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.flexran.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.flexran.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.bladerfx40.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.lmssdr.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.rrh.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.bladerfx40.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.rrh.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.100PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.50PRB.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm2.usrpx310.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.centos.nord.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.memphis.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.epc_eur.local.exmimo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5-ercom.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.lo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if5.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.oaisim.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.oaisim.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210-conga.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if4p5.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.25PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.if5.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml -targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash -targets/PROJECTS/GENERIC-LTE-EPC/networks.bash -targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash -targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash -targets/PROJECTS/GENERIC-LTE-EPC/utils.bash -targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash -targets/PROJECTS/LOCALIZATION/filesave0811.mat -targets/PROJECTS/LOCALIZATION/generation.m -targets/PROJECTS/LOCALIZATION/initial_sync.m -targets/PROJECTS/LOCALIZATION/initparams.m -targets/PROJECTS/LOCALIZATION/plots.m -targets/PROJECTS/LOCALIZATION/recup.m -targets/PROJECTS/LOCALIZATION/where2.m -targets/PROJECTS/LOCALIZATION/where2_v1_final.mat -targets/PROJECTS/LOCALIZATION/where2_vf.m -targets/PROJECTS/TDDREC/v0/alterproj.m -targets/PROJECTS/TDDREC/v0/beamforming.m -targets/PROJECTS/TDDREC/v0/calibration.m -targets/PROJECTS/TDDREC/v0/genorthqpskseq.m -targets/PROJECTS/TDDREC/v0/genrandpskseq.m -targets/PROJECTS/TDDREC/v0/initparams.m -targets/PROJECTS/TDDREC/v0/initparams2.m -targets/PROJECTS/TDDREC/v0/ofdm_mod.m -targets/PROJECTS/TDDREC/v0/readme.txt -targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m -targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m -targets/PROJECTS/TDDREC/v0/runmeas_mimo.m -targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m -targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m -targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m -targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m -targets/PROJECTS/TDDREC/f_ch_est.m -targets/PROJECTS/TDDREC/f_ofdm_mod.m -targets/PROJECTS/TDDREC/f_ofdm_rx.m -targets/PROJECTS/TDDREC/f_ofdm_tx.m -targets/PROJECTS/TDDREC/f_tls_ap.m -targets/PROJECTS/TDDREC/f_tls_diag.m -targets/PROJECTS/TDDREC/f_tls_svd.m -targets/PROJECTS/TDDREC/s_beamforming.m -targets/PROJECTS/TDDREC/s_calib.m -targets/PROJECTS/TDDREC/s_draw_F.m -targets/PROJECTS/TDDREC/s_init_params.m -targets/PROJECTS/TDDREC/s_run_meas.m -targets/RT/LAUNCH_SCRIPTS/load_module.sh -targets/RT/LAUNCH_SCRIPTS/nas_enb.sh -targets/RT/LAUNCH_SCRIPTS/nas_ue.sh -targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh -targets/RT/LAUNCH_SCRIPTS/start_emos.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh -targets/RT/LAUNCH_SCRIPTS/start_rf.sh -targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh -targets/RT/LAUNCH_SCRIPTS/start_ue.sh -targets/RT/LAUNCH_SCRIPTS/start_ue2.sh -targets/RT/LAUNCH_SCRIPTS/stop_rf.sh -targets/RT/USER/TOOLS/thread_ipc.c -targets/RT/USER/TOOLS/thread_ipc.h -targets/RT/USER/condtest.c -targets/RT/USER/emos-raw.c -targets/RT/USER/eNB_exmimo2.gtkw -targets/RT/USER/eNB_transport_IQ.c -targets/RT/USER/eNB_usrp.gtkw -targets/RT/USER/exmimo2_2arxg.lime -targets/RT/USER/exmimo2_2brxg.lime -targets/RT/USER/init_b200.sh -targets/RT/USER/init_exmimo.sh -targets/RT/USER/init_exmimo2.sh -targets/RT/USER/init_rtai.sh -targets/RT/USER/lte-enb.c -targets/RT/USER/lte-ran.c -targets/RT/USER/lte-ru.c -targets/RT/USER/lte-softmodem.c -targets/RT/USER/lte-softmodem.h -targets/RT/USER/lte-ue.c -targets/RT/USER/make_for_usrp.sh -targets/RT/USER/msg_helper.c -targets/RT/USER/msg_many.c -targets/RT/USER/msg_many.h -targets/RT/USER/rau_if4_single_thread.gtkw -targets/RT/USER/rcc_if4.gtkw -targets/RT/USER/rcc_if5.gtkw -targets/RT/USER/rrh.c -targets/RT/USER/rrh.gtkw -targets/RT/USER/rrh_gw.c -targets/RT/USER/rrh_gw.h -targets/RT/USER/rrh_gw_externs.h -targets/RT/USER/rru_if4p5_single_thread.gtkw -targets/RT/USER/rru_if4p5_usrp.gtkw -targets/RT/USER/rru_if5_usrp.gtkw -targets/RT/USER/rt_wrapper.c -targets/RT/USER/rt_wrapper.h -targets/RT/USER/sleeptest.c -targets/RT/USER/stats.c -targets/RT/USER/stats.fd -targets/RT/USER/stats.h -targets/RT/USER/synctest.c -targets/RT/USER/ue_exmimo2.gtkw -targets/RT/USER/UE_transport_IQ.c -targets/RT/USER/ue_usrp.gtkw -targets/SCRIPTS/asn1_generate_rrc_messaging_c_code.bash -targets/SCRIPTS/install_asn1.sh -targets/SCRIPTS/install_asn1c_0.9.24.modified.bash -targets/SCRIPTS/msc_gen.py -targets/SCRIPTS/svn-merge-meld.py -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 -targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml -targets/SIMU/EXAMPLES/OSD/README.txt -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas -targets/SIMU/PROC/SCRIPT/Run.py -targets/SIMU/PROC/channel_sim_proc.c -targets/SIMU/PROC/channel_sim_proc.h -targets/SIMU/PROC/interface.h -targets/SIMU/PROC/Process.c -targets/SIMU/PROC/Process.h -targets/SIMU/PROC/Tsync.h -targets/SIMU/USER/files/MI_16qam.csv -targets/SIMU/USER/files/MI_16qam.txt -targets/SIMU/USER/files/MI_4qam.csv -targets/SIMU/USER/files/MI_4qam.txt -targets/SIMU/USER/files/MI_64qam.csv -targets/SIMU/USER/files/MI_64qam.txt -targets/SIMU/USER/channel_sim.c -targets/SIMU/USER/cor_SF_sim.c -targets/SIMU/USER/cor_SF_sim.h -targets/SIMU/USER/event_handler.c -targets/SIMU/USER/event_handler.h -targets/SIMU/USER/init_lte.c -targets/SIMU/USER/init_lte.h -targets/SIMU/USER/oaisim.c -targets/SIMU/USER/oaisim.h -targets/SIMU/USER/oaisim_config.c -targets/SIMU/USER/oaisim_config.h -targets/SIMU/USER/oaisim_functions.c -targets/SIMU/USER/oaisim_functions.h -targets/SIMU/USER/oaisim_pad.c -targets/SIMU/USER/phy_procedures_sim_form.c -targets/SIMU/USER/phy_procedures_sim_form.fd -targets/SIMU/USER/phy_procedures_sim_form.h -targets/SIMU/USER/plot_results.m -targets/SIMU/USER/sinr_sim.c -targets/SIMU/USER/threadpool.c -targets/SIMU/USER/threadpool.h -targets/SIMU/USER/valgrind.sh -targets/TEST/AT_COMMANDS/oaisim.c -targets/TEST/OAI/case01.py -targets/TEST/OAI/case02.py -targets/TEST/OAI/case03.py -targets/TEST/OAI/case04.py -targets/TEST/OAI/case05.py -targets/TEST/OAI/case11.py -targets/TEST/OAI/case12.py -targets/TEST/OAI/case13.py -targets/TEST/OAI/core.py -targets/TEST/OAI/log.py -targets/TEST/OAI/openair.py -targets/TEST/OAI/README -targets/TEST/OAI/test01.py -targets/TEST/OAI/test02.py -targets/TEST/PACKET_TRACER/messages/Msg4.txt -targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt -targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt -targets/TEST/PACKET_TRACER/messages/sib1.txt -targets/TEST/PACKET_TRACER/messages/sib2.txt -targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt -targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt -targets/TEST/PACKET_TRACER/messages/sib3.txt -targets/TEST/PACKET_TRACER/pt.c -targets/TEST/PACKET_TRACER/README.txt -targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt -targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c -targets/TEST/PDCP/readme.txt -targets/TEST/PDCP/test_pdcp.c -targets/TEST/PDCP/test_pdcp.h -targets/TEST/PDCP/test_util.h -targets/TEST/PDCP/todo.txt -targets/TEST/RLC_AM_V9.3.0/oaisim.c -targets/TEST/RLC_UM_V9.3.0/oaisim.c -targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp -targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp -targets/TEST/ROHDE_SCHWARZ/TcpClient.h -targets/build_helper.bash -targets/build_oai.bash -targets/itti_vcd_tasks.sav -targets/Makerules -targets/perf_oai.bash -targets/README.txt -LICENSE -maketags -NOTICE.txt -oaienv -pre-commit -README.txt \ No newline at end of file diff --git a/enb_dev.includes b/enb_dev.includes deleted file mode 100755 index a4921c1d5b..0000000000 --- a/enb_dev.includes +++ /dev/null @@ -1,143 +0,0 @@ -cmake_targets/lte_build_oai/build/CMakeFiles/R10.5 -cmake_targets/lte_build_oai/build/CMakeFiles/R11.2 -cmake_targets/lte_build_oai/build/CMakeFiles/Rel14 -common -common/utils -common/utils/collection -common/utils/hashtable -common/utils/itti -common/utils/itti_analyzer/common -common/utils/itti_analyzer/libbuffers -common/utils/itti_analyzer/libparser -common/utils/itti_analyzer/libresolver -common/utils/itti_analyzer/libui -common/utils/msc -common/utils/T -common/utils/T/tracer -common/utils/T/tracer/filter -common/utils/T/tracer/gui -common/utils/T/tracer/logger -common/utils/T/tracer/view -openair1/PHY -openair1/PHY/CODING -openair1/PHY/INIT -openair1/PHY/LTE_ESTIMATION -openair1/PHY/LTE_REFSIG -openair1/PHY/LTE_TRANSPORT -openair1/PHY/MODULATION -openair1/PHY/TOOLS -openair1/SCHED -openair1/SIMULATION/ETH_TRANSPORT -openair1/SIMULATION/LTE_PHY -openair1/SIMULATION/RF -openair1/SIMULATION/TOOLS -openair2/COMMON -openair2/DOCS/TEMPLATES/CODE -openair2/ENB_APP -openair2/ENB_APP/CONTROL_MODULES/MAC -openair2/LAYER2 -openair2/LAYER2/MAC -openair2/LAYER2/PDCP_v10.1.0 -openair2/LAYER2/RLC -openair2/LAYER2/RLC/AM_v9.3.0 -openair2/LAYER2/RLC/TM_v9.3.0 -openair2/LAYER2/RLC/UM_v9.3.0 -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL -openair2/NAS/DRIVER/CELLULAR/NASMT -openair2/NAS/DRIVER/CELLULAR/NASRG -openair2/NAS/SIMU_CELLULAR -openair2/NETWORK_DRIVER/LITE -openair2/NETWORK_DRIVER/MESH -openair2/NETWORK_DRIVER/UE_IP -openair2/PHY_INTERFACE -openair2/RRC/L2_INTERFACE -openair2/RRC/LITE -openair2/RRC/LITE/MESSAGES -openair2/RRC/NAS -openair2/UTIL/ASYNC_IF -openair2/UTIL/BIGPHYS -openair2/UTIL/CLI -openair2/UTIL/FIFO -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack -openair2/UTIL/LFDS/liblfds6.1.1/test/src -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700 -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer -openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack -openair2/UTIL/LFDS/liblfds7.0.0/test/src -openair2/UTIL/LISTS -openair2/UTIL/LOG -openair2/UTIL/MATH -openair2/UTIL/MEM -openair2/UTIL/OCG -openair2/UTIL/OMG -openair2/UTIL/OMV -openair2/UTIL/OPT -openair2/UTIL/OSA -openair2/UTIL/OTG -openair2/UTIL/TIMER -openair2/UTIL/TRACE -openair2/X2AP -openair3/COMMON -openair3/GTPV1-U -openair3/GTPV1-U/nw-gtpv1u/include -openair3/GTPV1-U/nw-gtpv1u/shared -openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld -openair3/NAS/COMMON -openair3/NAS/COMMON/API/NETWORK -openair3/NAS/COMMON/EMM/MSG -openair3/NAS/COMMON/ESM/MSG -openair3/NAS/COMMON/IES -openair3/NAS/COMMON/UTIL -openair3/NAS/TEST/AS_SIMULATOR -openair3/NAS/TEST/NETWORK -openair3/NAS/TEST/USER -openair3/NAS/TOOLS -openair3/NAS/UE -openair3/NAS/UE/API/USER -openair3/NAS/UE/API/USIM -openair3/NAS/UE/EMM -openair3/NAS/UE/EMM/SAP -openair3/NAS/UE/ESM -openair3/NAS/UE/ESM/SAP -openair3/S1AP -openair3/SCTP -openair3/SECU -openair3/TEST -openair3/TEST/EPC_TEST -openair3/UDP -openair3/UTILS -targets/ARCH/BLADERF/USERSPACE/LIB -targets/ARCH/COMMON -targets/ARCH/ETHERNET/USERSPACE/LIB -targets/ARCH/EXMIMO/DEFS -targets/ARCH/EXMIMO/DRIVER/eurecom -targets/ARCH/EXMIMO/DRIVER/exmimo3 -targets/ARCH/EXMIMO/DRIVER/telecomparistech -targets/ARCH/EXMIMO/USERSPACE/LIB -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT -targets/ARCH/EXMIMO/USERSPACE/OCTAVE -targets/COMMON -targets/RT/USER -targets/RT/USER/TOOLS -targets/SIMU/PROC -targets/SIMU/USER -targets/TEST/PDCP -targets/TEST/ROHDE_SCHWARZ \ No newline at end of file diff --git a/oai5g_development.config b/oai5g_development.config deleted file mode 100755 index e0284f4257..0000000000 --- a/oai5g_development.config +++ /dev/null @@ -1,2 +0,0 @@ -// Add predefined macros for your project here. For example: -// #define THE_ANSWER 42 diff --git a/oai5g_development.creator b/oai5g_development.creator deleted file mode 100755 index e94cbbd302..0000000000 --- a/oai5g_development.creator +++ /dev/null @@ -1 +0,0 @@ -[General] diff --git a/oai5g_development.files b/oai5g_development.files deleted file mode 100755 index 24c41067c5..0000000000 --- a/oai5g_development.files +++ /dev/null @@ -1,3763 +0,0 @@ -cmake_targets/at_commands/CMakeLists.txt -cmake_targets/autotests/test.0101/CMakeLists.txt -cmake_targets/autotests/test.0102/CMakeLists.txt -cmake_targets/autotests/test.0103/CMakeLists.txt -cmake_targets/autotests/test.0104/CMakeLists.txt -cmake_targets/autotests/test.0106/CMakeLists.txt -cmake_targets/autotests/test.0107/CMakeLists.txt -cmake_targets/autotests/test.0108/CMakeLists.txt -cmake_targets/autotests/test.0113/CMakeLists.txt -cmake_targets/autotests/test.0114/CMakeLists.txt -cmake_targets/autotests/test.0115/CMakeLists.txt -cmake_targets/autotests/test.0120/CMakeLists.txt -cmake_targets/autotests/run_compilation_autotests.bash -cmake_targets/autotests/run_exec_autotests.bash -cmake_targets/doxygen/CMakeLists.txt -cmake_targets/epc_build_oai/CMakeLists.template -cmake_targets/hss_build/acl.conf.in -cmake_targets/hss_build/CMakeLists.txt -cmake_targets/hss_build/hss.conf.in -cmake_targets/hss_build/hss_fd.conf.in -cmake_targets/lte-simulators/CMakeLists.txt -cmake_targets/lte_noS1_build_oai/CMakeLists.txt -cmake_targets/nas_sim_tools/CMakeLists.txt -cmake_targets/oaisim_build_oai/CMakeLists.template -cmake_targets/oaisim_mme_build_oai/CMakeLists.template -cmake_targets/oaisim_noS1_build_oai/CMakeLists.template -cmake_targets/s1c_mme_test/CMakeLists.template -cmake_targets/tools/MODULES/cmake_useful.cmake -cmake_targets/tools/MODULES/CMakeParseArguments.cmake -cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake -cmake_targets/tools/MODULES/CMakeUserUseBison.cmake -cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake -cmake_targets/tools/MODULES/FindFreeDiameter.cmake -cmake_targets/tools/MODULES/FindGCCXML.cmake -cmake_targets/tools/MODULES/FindGcrypt.cmake -cmake_targets/tools/MODULES/FindGnuTLS.cmake -cmake_targets/tools/MODULES/FindKbuild.cmake -cmake_targets/tools/MODULES/FindLibXml2.cmake -cmake_targets/tools/MODULES/FindMySQL.cmake -cmake_targets/tools/MODULES/FindNettle.cmake -cmake_targets/tools/MODULES/FindPostgreSQL.cmake -cmake_targets/tools/MODULES/FindSCTP.cmake -cmake_targets/tools/MODULES/Kbuild.cmake -cmake_targets/tools/MODULES/kbuild_system.cmake -cmake_targets/tools/MODULES/kmodule.cmake -cmake_targets/tools/MODULES/path_prefixes.cmake -cmake_targets/tools/build_epc -cmake_targets/tools/build_helper -cmake_targets/tools/build_hss -cmake_targets/tools/check_hss_s6a_certificate -cmake_targets/tools/check_mme_s6a_certificate -cmake_targets/tools/create_hss_database -cmake_targets/tools/epc.conf.in -cmake_targets/tools/epc.local.enb.conf.in -cmake_targets/tools/example_enb_exmimo_mme_hss.txt -cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt -cmake_targets/tools/exmimo2_2arxg.lime -cmake_targets/tools/exmimo2_2brxg.lime -cmake_targets/tools/generate_asn1 -cmake_targets/tools/indent_source_code -cmake_targets/tools/init_exmimo2 -cmake_targets/tools/init_nas_nos1 -cmake_targets/tools/Kbuild.cmake -cmake_targets/tools/perf_oai.bash -cmake_targets/tools/run_enb_s1_exmimo -cmake_targets/tools/run_enb_s1_usrp -cmake_targets/tools/run_enb_ue_virt_noS1 -cmake_targets/tools/run_enb_ue_virt_s1 -cmake_targets/tools/run_epc -cmake_targets/tools/run_hss -cmake_targets/tools/s6a.conf.in -cmake_targets/tools/test_helper -cmake_targets/build_oai -cmake_targets/CMakeLists.txt -common/utils/collection/hashtable/COPYING -common/utils/collection/hashtable/hashtable.c -common/utils/collection/hashtable/hashtable.h -common/utils/collection/hashtable/obj_hashtable.c -common/utils/collection/hashtable/obj_hashtable.h -common/utils/collection/COPYING -common/utils/collection/queue.h -common/utils/collection/tree.h -common/utils/itti/assertions.h -common/utils/itti/backtrace.c -common/utils/itti/backtrace.h -common/utils/itti/COPYING -common/utils/itti/intertask_interface.c -common/utils/itti/intertask_interface.h -common/utils/itti/intertask_interface_dump.c -common/utils/itti/intertask_interface_dump.h -common/utils/itti/intertask_interface_init.h -common/utils/itti/intertask_interface_types.h -common/utils/itti/intertask_messages_def.h -common/utils/itti/intertask_messages_types.h -common/utils/itti/itti_types.h -common/utils/itti/memory_pools.c -common/utils/itti/memory_pools.h -common/utils/itti/messages_def.h -common/utils/itti/messages_types.h -common/utils/itti/signals.c -common/utils/itti/signals.h -common/utils/itti/tasks_def.h -common/utils/itti/timer.c -common/utils/itti/timer.h -common/utils/itti/timer_messages_def.h -common/utils/itti/timer_messages_types.h -common/utils/itti_analyzer/common/COPYING -common/utils/itti_analyzer/common/itti_types.h -common/utils/itti_analyzer/common/logs.h -common/utils/itti_analyzer/common/queue.h -common/utils/itti_analyzer/common/rc.h -common/utils/itti_analyzer/libbuffers/buffers.c -common/utils/itti_analyzer/libbuffers/buffers.h -common/utils/itti_analyzer/libbuffers/COPYING -common/utils/itti_analyzer/libbuffers/file.c -common/utils/itti_analyzer/libbuffers/file.h -common/utils/itti_analyzer/libbuffers/socket.c -common/utils/itti_analyzer/libbuffers/socket.h -common/utils/itti_analyzer/libparser/array_type.c -common/utils/itti_analyzer/libparser/array_type.h -common/utils/itti_analyzer/libparser/COPYING -common/utils/itti_analyzer/libparser/enum_type.c -common/utils/itti_analyzer/libparser/enum_type.h -common/utils/itti_analyzer/libparser/enum_value_type.c -common/utils/itti_analyzer/libparser/enum_value_type.h -common/utils/itti_analyzer/libparser/field_type.c -common/utils/itti_analyzer/libparser/field_type.h -common/utils/itti_analyzer/libparser/file_type.c -common/utils/itti_analyzer/libparser/file_type.h -common/utils/itti_analyzer/libparser/fundamental_type.c -common/utils/itti_analyzer/libparser/fundamental_type.h -common/utils/itti_analyzer/libparser/intertask_contexts.h -common/utils/itti_analyzer/libparser/pointer_type.c -common/utils/itti_analyzer/libparser/pointer_type.h -common/utils/itti_analyzer/libparser/reference_type.c -common/utils/itti_analyzer/libparser/reference_type.h -common/utils/itti_analyzer/libparser/struct_type.c -common/utils/itti_analyzer/libparser/struct_type.h -common/utils/itti_analyzer/libparser/typedef_type.c -common/utils/itti_analyzer/libparser/typedef_type.h -common/utils/itti_analyzer/libparser/types.c -common/utils/itti_analyzer/libparser/types.h -common/utils/itti_analyzer/libparser/union_type.c -common/utils/itti_analyzer/libparser/union_type.h -common/utils/itti_analyzer/libparser/xml_parse.c -common/utils/itti_analyzer/libparser/xml_parse.h -common/utils/itti_analyzer/libresolver/COPYING -common/utils/itti_analyzer/libresolver/locate_root.c -common/utils/itti_analyzer/libresolver/locate_root.h -common/utils/itti_analyzer/libresolver/resolvers.c -common/utils/itti_analyzer/libresolver/resolvers.h -common/utils/itti_analyzer/libui/COPYING -common/utils/itti_analyzer/libui/ui_callbacks.c -common/utils/itti_analyzer/libui/ui_callbacks.h -common/utils/itti_analyzer/libui/ui_filters.c -common/utils/itti_analyzer/libui/ui_filters.h -common/utils/itti_analyzer/libui/ui_interface.c -common/utils/itti_analyzer/libui/ui_interface.h -common/utils/itti_analyzer/libui/ui_main_screen.c -common/utils/itti_analyzer/libui/ui_main_screen.h -common/utils/itti_analyzer/libui/ui_menu_bar.c -common/utils/itti_analyzer/libui/ui_menu_bar.h -common/utils/itti_analyzer/libui/ui_notebook.c -common/utils/itti_analyzer/libui/ui_notebook.h -common/utils/itti_analyzer/libui/ui_notif_dlg.c -common/utils/itti_analyzer/libui/ui_notif_dlg.h -common/utils/itti_analyzer/libui/ui_notifications.c -common/utils/itti_analyzer/libui/ui_notifications.h -common/utils/itti_analyzer/libui/ui_signal_dissect_view.c -common/utils/itti_analyzer/libui/ui_signal_dissect_view.h -common/utils/itti_analyzer/libui/ui_tree_view.c -common/utils/itti_analyzer/libui/ui_tree_view.h -common/utils/itti_analyzer/AUTHORS -common/utils/itti_analyzer/autogen.sh -common/utils/itti_analyzer/ChangeLog -common/utils/itti_analyzer/configure.ac -common/utils/itti_analyzer/COPYING -common/utils/itti_analyzer/filters.xml -common/utils/itti_analyzer/filters_mme.xml -common/utils/itti_analyzer/filters_ue_enb.xml -common/utils/itti_analyzer/INSTALL -common/utils/itti_analyzer/itti_analyzer.c -common/utils/itti_analyzer/NEWS -common/utils/itti_analyzer/README -common/utils/msc/msc.c -common/utils/msc/msc.h -common/utils/asn1_conversions.h -common/utils/assertions.h -common/utils/COPYING -openair-cn/COMMON/as_message.h -openair-cn/COMMON/common_types.h -openair-cn/COMMON/gtpv1_u_messages_def.h -openair-cn/COMMON/gtpv1_u_messages_types.h -openair-cn/COMMON/intertask_interface_conf.h -openair-cn/COMMON/ip_forward_messages_def.h -openair-cn/COMMON/ip_forward_messages_types.h -openair-cn/COMMON/messages_def.h -openair-cn/COMMON/messages_types.h -openair-cn/COMMON/mme_app_messages_def.h -openair-cn/COMMON/mme_app_messages_types.h -openair-cn/COMMON/nas_messages_def.h -openair-cn/COMMON/nas_messages_types.h -openair-cn/COMMON/s11_messages_def.h -openair-cn/COMMON/s11_messages_types.h -openair-cn/COMMON/s1ap_messages_def.h -openair-cn/COMMON/s1ap_messages_types.h -openair-cn/COMMON/s6a_messages_def.h -openair-cn/COMMON/s6a_messages_types.h -openair-cn/COMMON/sctp_messages_def.h -openair-cn/COMMON/sctp_messages_types.h -openair-cn/COMMON/security_types.h -openair-cn/COMMON/sgw_lite_def.h -openair-cn/COMMON/sgw_lite_messages_types.h -openair-cn/COMMON/tasks_def.h -openair-cn/COMMON/udp_messages_def.h -openair-cn/COMMON/udp_messages_types.h -openair-cn/DOCS/DOXYGEN/COPYING -openair-cn/DOCS/DOXYGEN/Doxyfile.in -openair-cn/DOCS/Latex/DefaultBearer/COPYING -openair-cn/DOCS/Latex/DefaultBearer/DefaultBearer.pdf -openair-cn/DOCS/Latex/DefaultBearer/DefaultBearer.tex -openair-cn/DOCS/Latex/EPC/COPYING -openair-cn/DOCS/Latex/EPC/EPC.pdf -openair-cn/DOCS/Latex/EPC/EPC.tex -openair-cn/DOCS/Latex/COPYING -openair-cn/DOCS/COPYING -openair-cn/DOCS/EPC_User_Guide.docx -openair-cn/DOCS/EPC_User_Guide.pdf -openair-cn/GTPV1-U/GTPUAH/cmd.sh -openair-cn/GTPV1-U/GTPUAH/COPYING -openair-cn/GTPV1-U/GTPUAH/INSTALL -openair-cn/GTPV1-U/GTPUAH/libxt_GTPUAH.c -openair-cn/GTPV1-U/GTPUAH/README -openair-cn/GTPV1-U/GTPUAH/RELEASE_NOTES -openair-cn/GTPV1-U/GTPUAH/xt_GTPUAH.c -openair-cn/GTPV1-U/GTPUAH/xt_GTPUAH.h -openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h -openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h -openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h -openair-cn/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwLog.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwTypes.h -openair-cn/GTPV1-U/nw-gtpv1u/shared/NwUtils.h -openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c -openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c -openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c -openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h -openair-cn/GTPV1-U/nw-gtpv1u/AUTHORS -openair-cn/GTPV1-U/nw-gtpv1u/ChangeLog -openair-cn/GTPV1-U/nw-gtpv1u/COPYING -openair-cn/GTPV1-U/nw-gtpv1u/NEWS -openair-cn/GTPV1-U/nw-gtpv1u/README -openair-cn/GTPV1-U/gtpv1u.h -openair-cn/GTPV1-U/gtpv1u_eNB.c -openair-cn/GTPV1-U/gtpv1u_eNB_defs.h -openair-cn/GTPV1-U/gtpv1u_eNB_task.h -openair-cn/GTPV1-U/gtpv1u_sgw_defs.h -openair-cn/GTPV1-U/gtpv1u_task.c -openair-cn/GTPV1-U/gtpv1u_teid_pool.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cLog.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cMsgIeParseInfo.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cPrivate.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cTrxn.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/NwGtpv2cTunnel.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/queue.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/include/tree.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwError.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2c.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2cIe.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2cMsg.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwGtpv2cMsgParser.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwLog.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwTypes.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared/NwUtils.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2c.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cMsg.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cMsgIeParseInfo.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cMsgParser.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cTrxn.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/src/NwGtpv2cTunnel.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwEgtPingMain.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwEvt.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniLogMgrEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniLogMgrEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniTmrMgrEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniTmrMgrEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUdpEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUdpEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUlpEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping/NwMiniUlpEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/helloworld.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwEvt.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniLogMgrEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniLogMgrEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniTmrMgrEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniTmrMgrEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUdpEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUdpEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUlpEntity.c -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld/NwMiniUlpEntity.h -openair-cn/GTPV2-C/nwgtpv2c-0.11/AUTHORS -openair-cn/GTPV2-C/nwgtpv2c-0.11/ChangeLog -openair-cn/GTPV2-C/nwgtpv2c-0.11/configure.ac -openair-cn/GTPV2-C/nwgtpv2c-0.11/COPYING -openair-cn/GTPV2-C/nwgtpv2c-0.11/NEWS -openair-cn/GTPV2-C/nwgtpv2c-0.11/README -openair-cn/INTERTASK_INTERFACE/assertions.h -openair-cn/INTERTASK_INTERFACE/backtrace.c -openair-cn/INTERTASK_INTERFACE/backtrace.h -openair-cn/INTERTASK_INTERFACE/COPYING -openair-cn/INTERTASK_INTERFACE/intertask_interface.c -openair-cn/INTERTASK_INTERFACE/intertask_interface.h -openair-cn/INTERTASK_INTERFACE/intertask_interface_dump.c -openair-cn/INTERTASK_INTERFACE/intertask_interface_dump.h -openair-cn/INTERTASK_INTERFACE/intertask_interface_init.h -openair-cn/INTERTASK_INTERFACE/intertask_interface_types.h -openair-cn/INTERTASK_INTERFACE/intertask_messages_def.h -openair-cn/INTERTASK_INTERFACE/intertask_messages_types.h -openair-cn/INTERTASK_INTERFACE/itti_types.h -openair-cn/INTERTASK_INTERFACE/memory_pools.c -openair-cn/INTERTASK_INTERFACE/memory_pools.h -openair-cn/INTERTASK_INTERFACE/messages_def.h -openair-cn/INTERTASK_INTERFACE/messages_types.h -openair-cn/INTERTASK_INTERFACE/signals.c -openair-cn/INTERTASK_INTERFACE/signals.h -openair-cn/INTERTASK_INTERFACE/tasks_def.h -openair-cn/INTERTASK_INTERFACE/timer.c -openair-cn/INTERTASK_INTERFACE/timer.h -openair-cn/INTERTASK_INTERFACE/timer_messages_def.h -openair-cn/INTERTASK_INTERFACE/timer_messages_types.h -openair-cn/MME_APP/COPYING -openair-cn/MME_APP/mme_app_authentication.c -openair-cn/MME_APP/mme_app_bearer.c -openair-cn/MME_APP/mme_app_capabilities.c -openair-cn/MME_APP/mme_app_config.c -openair-cn/MME_APP/mme_app_config.h -openair-cn/MME_APP/mme_app_context.c -openair-cn/MME_APP/mme_app_defs.h -openair-cn/MME_APP/mme_app_extern.h -openair-cn/MME_APP/mme_app_itti_messaging.h -openair-cn/MME_APP/mme_app_location.c -openair-cn/MME_APP/mme_app_main.c -openair-cn/MME_APP/mme_app_statistics.c -openair-cn/MME_APP/mme_app_statistics.h -openair-cn/MME_APP/mme_app_ue_context.h -openair-cn/MME_APP/s6a_2_nas_cause.c -openair-cn/NAS/EURECOM-NAS/bin/COPYING -openair-cn/NAS/EURECOM-NAS/lib/COPYING -openair-cn/NAS/EURECOM-NAS/libMME/COPYING -openair-cn/NAS/EURECOM-NAS/libUE/COPYING -openair-cn/NAS/EURECOM-NAS/src/api/mme/COPYING -openair-cn/NAS/EURECOM-NAS/src/api/mme/mme_api.c -openair-cn/NAS/EURECOM-NAS/src/api/mme/mme_api.h -openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.c -openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.h -openair-cn/NAS/EURECOM-NAS/src/api/network/COPYING -openair-cn/NAS/EURECOM-NAS/src/api/network/l2_message.h -openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.c -openair-cn/NAS/EURECOM-NAS/src/api/network/nas_message.h -openair-cn/NAS/EURECOM-NAS/src/api/network/network_api.c -openair-cn/NAS/EURECOM-NAS/src/api/network/network_api.h -openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.c -openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.in -openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.in.bis -openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.out -openair-cn/NAS/EURECOM-NAS/src/api/user/tst/at_parser.out.bis -openair-cn/NAS/EURECOM-NAS/src/api/user/tst/smartcom.txt -openair-cn/NAS/EURECOM-NAS/src/api/user/at_command.c -openair-cn/NAS/EURECOM-NAS/src/api/user/at_command.h -openair-cn/NAS/EURECOM-NAS/src/api/user/at_error.c -openair-cn/NAS/EURECOM-NAS/src/api/user/at_error.h -openair-cn/NAS/EURECOM-NAS/src/api/user/at_response.c -openair-cn/NAS/EURECOM-NAS/src/api/user/at_response.h -openair-cn/NAS/EURECOM-NAS/src/api/user/COPYING -openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.c -openair-cn/NAS/EURECOM-NAS/src/api/user/user_api.h -openair-cn/NAS/EURECOM-NAS/src/api/user/user_indication.c -openair-cn/NAS/EURECOM-NAS/src/api/user/user_indication.h -openair-cn/NAS/EURECOM-NAS/src/api/usim/aka_functions.c -openair-cn/NAS/EURECOM-NAS/src/api/usim/aka_functions.h -openair-cn/NAS/EURECOM-NAS/src/api/usim/COPYING -openair-cn/NAS/EURECOM-NAS/src/api/usim/usim_api.c -openair-cn/NAS/EURECOM-NAS/src/api/usim/usim_api.h -openair-cn/NAS/EURECOM-NAS/src/api/COPYING -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachAccept.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachComplete.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachComplete.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachReject.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachReject.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AttachRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationFailure.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationFailure.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationReject.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationReject.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationResponse.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/AuthenticationResponse.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/COPYING -openair-cn/NAS/EURECOM-NAS/src/emm/msg/CsServiceNotification.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/CsServiceNotification.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachAccept.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachAccept.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/DetachRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/DownlinkNasTransport.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/DownlinkNasTransport.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_cause.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msg.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/emm_msgDef.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmInformation.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmInformation.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmStatus.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/EmmStatus.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationCommand.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationCommand.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationComplete.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/GutiReallocationComplete.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityResponse.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/IdentityResponse.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/NASSecurityModeCommand.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/NASSecurityModeComplete.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeCommand.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeComplete.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeReject.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/SecurityModeReject.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceReject.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceReject.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/ServiceRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.h -openair-cn/NAS/EURECOM-NAS/src/emm/msg/UplinkNasTransport.c -openair-cn/NAS/EURECOM-NAS/src/emm/msg/UplinkNasTransport.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/COPYING -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_asDef.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_cn.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_cn.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_cnDef.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_esm.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_esm.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_esmDef.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_fsm.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_fsm.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_reg.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_reg.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_regDef.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_sap.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_sap.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_send.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_send.h -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmCommonProcedureInitiated.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregistered.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredAttachNeeded.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredAttemptingToAttach.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredInitiated.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredLimitedService.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredNoCellAvailable.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredNoImsi.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredNormalService.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmDeregisteredPlmnSearch.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmNull.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegistered.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredAttemptingToUpdate.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredImsiDetachInitiated.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredInitiated.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredLimitedService.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredNoCellAvailable.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredNormalService.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredPlmnSearch.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmRegisteredUpdateNeeded.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmServiceRequestInitiated.c -openair-cn/NAS/EURECOM-NAS/src/emm/sap/EmmTrackingAreaUpdatingInitiated.c -openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c -openair-cn/NAS/EURECOM-NAS/src/emm/Authentication.c -openair-cn/NAS/EURECOM-NAS/src/emm/COPYING -openair-cn/NAS/EURECOM-NAS/src/emm/Detach.c -openair-cn/NAS/EURECOM-NAS/src/emm/emm_data_ctx.c -openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c -openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.h -openair-cn/NAS/EURECOM-NAS/src/emm/emm_proc.h -openair-cn/NAS/EURECOM-NAS/src/emm/EmmCommon.c -openair-cn/NAS/EURECOM-NAS/src/emm/EmmCommon.h -openair-cn/NAS/EURECOM-NAS/src/emm/emmData.h -openair-cn/NAS/EURECOM-NAS/src/emm/EmmStatusHdl.c -openair-cn/NAS/EURECOM-NAS/src/emm/Identification.c -openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c -openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.h -openair-cn/NAS/EURECOM-NAS/src/emm/LowerLayer.c -openair-cn/NAS/EURECOM-NAS/src/emm/LowerLayer.h -openair-cn/NAS/EURECOM-NAS/src/emm/SecurityModeControl.c -openair-cn/NAS/EURECOM-NAS/src/emm/ServiceRequestHdl.c -openair-cn/NAS/EURECOM-NAS/src/emm/TrackingAreaUpdate.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/COPYING -openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_cause.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msg.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/esm_msgDef.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationResponse.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmInformationResponse.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmStatus.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/EsmStatus.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectReject.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectReject.h -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.c -openair-cn/NAS/EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.h -openair-cn/NAS/EURECOM-NAS/src/esm/sap/COPYING -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.c -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.h -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_sap.c -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_sap.h -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_sapDef.h -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.c -openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_send.h -openair-cn/NAS/EURECOM-NAS/src/esm/COPYING -openair-cn/NAS/EURECOM-NAS/src/esm/DedicatedEpsBearerContextActivation.c -openair-cn/NAS/EURECOM-NAS/src/esm/DefaultEpsBearerContextActivation.c -openair-cn/NAS/EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c -openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr.c -openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr.h -openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.c -openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.h -openair-cn/NAS/EURECOM-NAS/src/esm/esm_ip.c -openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c -openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.h -openair-cn/NAS/EURECOM-NAS/src/esm/esm_proc.h -openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c -openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.h -openair-cn/NAS/EURECOM-NAS/src/esm/esmData.h -openair-cn/NAS/EURECOM-NAS/src/esm/EsmStatusHdl.c -openair-cn/NAS/EURECOM-NAS/src/esm/PdnConnectivity.c -openair-cn/NAS/EURECOM-NAS/src/esm/PdnDisconnect.c -openair-cn/NAS/EURECOM-NAS/src/ies/AccessPointName.c -openair-cn/NAS/EURECOM-NAS/src/ies/AccessPointName.h -openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateResult.c -openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateResult.h -openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateType.c -openair-cn/NAS/EURECOM-NAS/src/ies/AdditionalUpdateType.h -openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c -openair-cn/NAS/EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationFailureParameter.c -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationFailureParameter.h -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterAutn.c -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterAutn.h -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterRand.c -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationParameterRand.h -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationResponseParameter.c -openair-cn/NAS/EURECOM-NAS/src/ies/AuthenticationResponseParameter.h -openair-cn/NAS/EURECOM-NAS/src/ies/CipheringKeySequenceNumber.c -openair-cn/NAS/EURECOM-NAS/src/ies/CipheringKeySequenceNumber.h -openair-cn/NAS/EURECOM-NAS/src/ies/Cli.c -openair-cn/NAS/EURECOM-NAS/src/ies/Cli.h -openair-cn/NAS/EURECOM-NAS/src/ies/COPYING -openair-cn/NAS/EURECOM-NAS/src/ies/CsfbResponse.c -openair-cn/NAS/EURECOM-NAS/src/ies/CsfbResponse.h -openair-cn/NAS/EURECOM-NAS/src/ies/DaylightSavingTime.c -openair-cn/NAS/EURECOM-NAS/src/ies/DaylightSavingTime.h -openair-cn/NAS/EURECOM-NAS/src/ies/DetachType.c -openair-cn/NAS/EURECOM-NAS/src/ies/DetachType.h -openair-cn/NAS/EURECOM-NAS/src/ies/DrxParameter.c -openair-cn/NAS/EURECOM-NAS/src/ies/DrxParameter.h -openair-cn/NAS/EURECOM-NAS/src/ies/EmergencyNumberList.c -openair-cn/NAS/EURECOM-NAS/src/ies/EmergencyNumberList.h -openair-cn/NAS/EURECOM-NAS/src/ies/EmmCause.c -openair-cn/NAS/EURECOM-NAS/src/ies/EmmCause.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachResult.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachResult.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachType.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsAttachType.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerContextStatus.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerContextStatus.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsBearerIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsMobileIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsMobileIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsQualityOfService.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsQualityOfService.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateResult.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateResult.h -openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateType.c -openair-cn/NAS/EURECOM-NAS/src/ies/EpsUpdateType.h -openair-cn/NAS/EURECOM-NAS/src/ies/EsmCause.c -openair-cn/NAS/EURECOM-NAS/src/ies/EsmCause.h -openair-cn/NAS/EURECOM-NAS/src/ies/EsmInformationTransferFlag.c -openair-cn/NAS/EURECOM-NAS/src/ies/EsmInformationTransferFlag.h -openair-cn/NAS/EURECOM-NAS/src/ies/EsmMessageContainer.c -openair-cn/NAS/EURECOM-NAS/src/ies/EsmMessageContainer.h -openair-cn/NAS/EURECOM-NAS/src/ies/GprsTimer.c -openair-cn/NAS/EURECOM-NAS/src/ies/GprsTimer.h -openair-cn/NAS/EURECOM-NAS/src/ies/GutiType.c -openair-cn/NAS/EURECOM-NAS/src/ies/GutiType.h -openair-cn/NAS/EURECOM-NAS/src/ies/IdentityType2.c -openair-cn/NAS/EURECOM-NAS/src/ies/IdentityType2.h -openair-cn/NAS/EURECOM-NAS/src/ies/ImeisvRequest.c -openair-cn/NAS/EURECOM-NAS/src/ies/ImeisvRequest.h -openair-cn/NAS/EURECOM-NAS/src/ies/KsiAndSequenceNumber.c -openair-cn/NAS/EURECOM-NAS/src/ies/KsiAndSequenceNumber.h -openair-cn/NAS/EURECOM-NAS/src/ies/LcsClientIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/LcsClientIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/LcsIndicator.c -openair-cn/NAS/EURECOM-NAS/src/ies/LcsIndicator.h -openair-cn/NAS/EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.c -openair-cn/NAS/EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.h -openair-cn/NAS/EURECOM-NAS/src/ies/LocationAreaIdentification.c -openair-cn/NAS/EURECOM-NAS/src/ies/LocationAreaIdentification.h -openair-cn/NAS/EURECOM-NAS/src/ies/MessageType.c -openair-cn/NAS/EURECOM-NAS/src/ies/MessageType.h -openair-cn/NAS/EURECOM-NAS/src/ies/MobileIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/MobileIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark2.c -openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark2.h -openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark3.c -openair-cn/NAS/EURECOM-NAS/src/ies/MobileStationClassmark3.h -openair-cn/NAS/EURECOM-NAS/src/ies/MsNetworkCapability.c -openair-cn/NAS/EURECOM-NAS/src/ies/MsNetworkCapability.h -openair-cn/NAS/EURECOM-NAS/src/ies/NasKeySetIdentifier.c -openair-cn/NAS/EURECOM-NAS/src/ies/NasKeySetIdentifier.h -openair-cn/NAS/EURECOM-NAS/src/ies/NasMessageContainer.c -openair-cn/NAS/EURECOM-NAS/src/ies/NasMessageContainer.h -openair-cn/NAS/EURECOM-NAS/src/ies/NasRequestType.c -openair-cn/NAS/EURECOM-NAS/src/ies/NasRequestType.h -openair-cn/NAS/EURECOM-NAS/src/ies/NasSecurityAlgorithms.c -openair-cn/NAS/EURECOM-NAS/src/ies/NasSecurityAlgorithms.h -openair-cn/NAS/EURECOM-NAS/src/ies/NetworkName.c -openair-cn/NAS/EURECOM-NAS/src/ies/NetworkName.h -openair-cn/NAS/EURECOM-NAS/src/ies/Nonce.c -openair-cn/NAS/EURECOM-NAS/src/ies/Nonce.h -openair-cn/NAS/EURECOM-NAS/src/ies/PacketFlowIdentifier.c -openair-cn/NAS/EURECOM-NAS/src/ies/PacketFlowIdentifier.h -openair-cn/NAS/EURECOM-NAS/src/ies/PagingIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/PagingIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/PdnAddress.c -openair-cn/NAS/EURECOM-NAS/src/ies/PdnAddress.h -openair-cn/NAS/EURECOM-NAS/src/ies/PdnType.c -openair-cn/NAS/EURECOM-NAS/src/ies/PdnType.h -openair-cn/NAS/EURECOM-NAS/src/ies/PlmnList.c -openair-cn/NAS/EURECOM-NAS/src/ies/PlmnList.h -openair-cn/NAS/EURECOM-NAS/src/ies/ProcedureTransactionIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/ProcedureTransactionIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolConfigurationOptions.c -openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolConfigurationOptions.h -openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolDiscriminator.c -openair-cn/NAS/EURECOM-NAS/src/ies/ProtocolDiscriminator.h -openair-cn/NAS/EURECOM-NAS/src/ies/PTmsiSignature.c -openair-cn/NAS/EURECOM-NAS/src/ies/PTmsiSignature.h -openair-cn/NAS/EURECOM-NAS/src/ies/QualityOfService.c -openair-cn/NAS/EURECOM-NAS/src/ies/QualityOfService.h -openair-cn/NAS/EURECOM-NAS/src/ies/RadioPriority.c -openair-cn/NAS/EURECOM-NAS/src/ies/RadioPriority.h -openair-cn/NAS/EURECOM-NAS/src/ies/SecurityHeaderType.c -openair-cn/NAS/EURECOM-NAS/src/ies/SecurityHeaderType.h -openair-cn/NAS/EURECOM-NAS/src/ies/ServiceType.c -openair-cn/NAS/EURECOM-NAS/src/ies/ServiceType.h -openair-cn/NAS/EURECOM-NAS/src/ies/ShortMac.c -openair-cn/NAS/EURECOM-NAS/src/ies/ShortMac.h -openair-cn/NAS/EURECOM-NAS/src/ies/SsCode.c -openair-cn/NAS/EURECOM-NAS/src/ies/SsCode.h -openair-cn/NAS/EURECOM-NAS/src/ies/SupportedCodecList.c -openair-cn/NAS/EURECOM-NAS/src/ies/SupportedCodecList.h -openair-cn/NAS/EURECOM-NAS/src/ies/TimeZone.c -openair-cn/NAS/EURECOM-NAS/src/ies/TimeZone.h -openair-cn/NAS/EURECOM-NAS/src/ies/TimeZoneAndTime.c -openair-cn/NAS/EURECOM-NAS/src/ies/TimeZoneAndTime.h -openair-cn/NAS/EURECOM-NAS/src/ies/TmsiStatus.c -openair-cn/NAS/EURECOM-NAS/src/ies/TmsiStatus.h -openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentity.c -openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentity.h -openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentityList.c -openair-cn/NAS/EURECOM-NAS/src/ies/TrackingAreaIdentityList.h -openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.c -openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.h -openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowTemplate.c -openair-cn/NAS/EURECOM-NAS/src/ies/TrafficFlowTemplate.h -openair-cn/NAS/EURECOM-NAS/src/ies/TransactionIdentifier.c -openair-cn/NAS/EURECOM-NAS/src/ies/TransactionIdentifier.h -openair-cn/NAS/EURECOM-NAS/src/ies/UeNetworkCapability.c -openair-cn/NAS/EURECOM-NAS/src/ies/UeNetworkCapability.h -openair-cn/NAS/EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.c -openair-cn/NAS/EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.h -openair-cn/NAS/EURECOM-NAS/src/ies/UeSecurityCapability.c -openair-cn/NAS/EURECOM-NAS/src/ies/UeSecurityCapability.h -openair-cn/NAS/EURECOM-NAS/src/ies/VoiceDomainPreferenceAndUeUsageSetting.c -openair-cn/NAS/EURECOM-NAS/src/ies/VoiceDomainPreferenceAndUeUsageSetting.h -openair-cn/NAS/EURECOM-NAS/src/include/commonDef.h -openair-cn/NAS/EURECOM-NAS/src/include/COPYING -openair-cn/NAS/EURECOM-NAS/src/include/networkDef.h -openair-cn/NAS/EURECOM-NAS/src/include/securityDef.h -openair-cn/NAS/EURECOM-NAS/src/include/userDef.h -openair-cn/NAS/EURECOM-NAS/src/util/tst/timer.c -openair-cn/NAS/EURECOM-NAS/src/util/tst/timer_debug.txt -openair-cn/NAS/EURECOM-NAS/src/util/COPYING -openair-cn/NAS/EURECOM-NAS/src/util/device.c -openair-cn/NAS/EURECOM-NAS/src/util/device.h -openair-cn/NAS/EURECOM-NAS/src/util/memory.c -openair-cn/NAS/EURECOM-NAS/src/util/memory.h -openair-cn/NAS/EURECOM-NAS/src/util/nas_log.c -openair-cn/NAS/EURECOM-NAS/src/util/nas_log.h -openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.c -openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.h -openair-cn/NAS/EURECOM-NAS/src/util/OctetString.c -openair-cn/NAS/EURECOM-NAS/src/util/OctetString.h -openair-cn/NAS/EURECOM-NAS/src/util/parser.c -openair-cn/NAS/EURECOM-NAS/src/util/parser.h -openair-cn/NAS/EURECOM-NAS/src/util/socket.c -openair-cn/NAS/EURECOM-NAS/src/util/socket.h -openair-cn/NAS/EURECOM-NAS/src/util/stty.c -openair-cn/NAS/EURECOM-NAS/src/util/TLVDecoder.c -openair-cn/NAS/EURECOM-NAS/src/util/TLVDecoder.h -openair-cn/NAS/EURECOM-NAS/src/util/TLVEncoder.c -openair-cn/NAS/EURECOM-NAS/src/util/TLVEncoder.h -openair-cn/NAS/EURECOM-NAS/src/COPYING -openair-cn/NAS/EURECOM-NAS/src/MMEprocess.c -openair-cn/NAS/EURECOM-NAS/src/nas_network.c -openair-cn/NAS/EURECOM-NAS/src/nas_network.h -openair-cn/NAS/EURECOM-NAS/src/nas_parser.c -openair-cn/NAS/EURECOM-NAS/src/nas_parser.h -openair-cn/NAS/EURECOM-NAS/src/nas_proc.c -openair-cn/NAS/EURECOM-NAS/src/nas_proc.h -openair-cn/NAS/EURECOM-NAS/src/nas_user.c -openair-cn/NAS/EURECOM-NAS/src/nas_user.h -openair-cn/NAS/EURECOM-NAS/src/UEprocess.c -openair-cn/NAS/EURECOM-NAS/tools/COPYING -openair-cn/NAS/EURECOM-NAS/tools/network.h -openair-cn/NAS/EURECOM-NAS/tools/ue_data.c -openair-cn/NAS/EURECOM-NAS/tools/usim_data.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_data.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_data.h -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_process.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_process.h -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_simulator.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_simulator_parser.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/as_simulator_parser.h -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/COPYING -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_data.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_data.h -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_process.c -openair-cn/NAS/EURECOM-NAS/tst/as_simulator/nas_process.h -openair-cn/NAS/EURECOM-NAS/tst/MSC/ActivatePDN.png -openair-cn/NAS/EURECOM-NAS/tst/MSC/AuthenticationReject.png -openair-cn/NAS/EURECOM-NAS/tst/MSC/COPYING -openair-cn/NAS/EURECOM-NAS/tst/MSC/DeactivatePDN.png -openair-cn/NAS/EURECOM-NAS/tst/MSC/InitialAttach.png -openair-cn/NAS/EURECOM-NAS/tst/MSC/InitialAttachReject.png -openair-cn/NAS/EURECOM-NAS/tst/MSC/msc_gen.py -openair-cn/NAS/EURECOM-NAS/tst/MSC/mscgen -openair-cn/NAS/EURECOM-NAS/tst/MSC/NomalDetach.png -openair-cn/NAS/EURECOM-NAS/tst/MSC/README -openair-cn/NAS/EURECOM-NAS/tst/MSC/SwitchOffDetach.png -openair-cn/NAS/EURECOM-NAS/tst/network/COPYING -openair-cn/NAS/EURECOM-NAS/tst/network/network_parser.c -openair-cn/NAS/EURECOM-NAS/tst/network/network_parser.h -openair-cn/NAS/EURECOM-NAS/tst/network/network_simulator.c -openair-cn/NAS/EURECOM-NAS/tst/network/README -openair-cn/NAS/EURECOM-NAS/tst/user/COPYING -openair-cn/NAS/EURECOM-NAS/tst/user/user_parser.c -openair-cn/NAS/EURECOM-NAS/tst/user/user_parser.h -openair-cn/NAS/EURECOM-NAS/tst/user/user_simulator.c -openair-cn/NAS/EURECOM-NAS/tst/COPYING -openair-cn/NAS/EURECOM-NAS/COPYING -openair-cn/NAS/EURECOM-NAS/Makerules -openair-cn/NAS/COPYING -openair-cn/NAS/nas_defs.h -openair-cn/NAS/nas_itti_messaging.c -openair-cn/NAS/nas_itti_messaging.h -openair-cn/NAS/nas_main.c -openair-cn/NAS/nas_ue_task.c -openair-cn/OAI_EPC/COPYING -openair-cn/OAI_EPC/oai_epc.c -openair-cn/OAI_EPC/oai_epc.h -openair-cn/OAI_EPC/oai_epc_log.c -openair-cn/OAI_SGW/COPYING -openair-cn/OAI_SGW/oai_sgw.c -openair-cn/OAI_SGW/oai_sgw.h -openair-cn/OAI_SGW/oai_sgw_log.c -openair-cn/OAISIM_MME/COPYING -openair-cn/OAISIM_MME/oai_mme_log.c -openair-cn/OAISIM_MME/oaisim_mme.c -openair-cn/OAISIM_MME/oaisim_mme.h -openair-cn/OPENAIRHSS/access_restriction/access_restriction.c -openair-cn/OPENAIRHSS/access_restriction/access_restriction.h -openair-cn/OPENAIRHSS/access_restriction/COPYING -openair-cn/OPENAIRHSS/auc/auc.h -openair-cn/OPENAIRHSS/auc/COPYING -openair-cn/OPENAIRHSS/auc/fx.c -openair-cn/OPENAIRHSS/auc/kdf.c -openair-cn/OPENAIRHSS/auc/random.c -openair-cn/OPENAIRHSS/auc/rijndael.c -openair-cn/OPENAIRHSS/auc/sequence_number.c -openair-cn/OPENAIRHSS/conf/demoCA/COPYING -openair-cn/OPENAIRHSS/conf/COPYING -openair-cn/OPENAIRHSS/conf/hss.conf.in -openair-cn/OPENAIRHSS/conf/make_certs.sh -openair-cn/OPENAIRHSS/db/COPYING -openair-cn/OPENAIRHSS/db/db_connector.c -openair-cn/OPENAIRHSS/db/db_epc_equipment.c -openair-cn/OPENAIRHSS/db/db_proto.h -openair-cn/OPENAIRHSS/db/db_subscription_data.c -openair-cn/OPENAIRHSS/db/oai_db.sql -openair-cn/OPENAIRHSS/db/pft_db.sql -openair-cn/OPENAIRHSS/debian/changelog -openair-cn/OPENAIRHSS/debian/compat -openair-cn/OPENAIRHSS/debian/control -openair-cn/OPENAIRHSS/debian/copyright -openair-cn/OPENAIRHSS/debian/dirs -openair-cn/OPENAIRHSS/debian/files -openair-cn/OPENAIRHSS/debian/openair-hss.install -openair-cn/OPENAIRHSS/debian/rules -openair-cn/OPENAIRHSS/s6a/COPYING -openair-cn/OPENAIRHSS/s6a/s6a_auth_info.c -openair-cn/OPENAIRHSS/s6a/s6a_common.c -openair-cn/OPENAIRHSS/s6a/s6a_error.c -openair-cn/OPENAIRHSS/s6a/s6a_fd.c -openair-cn/OPENAIRHSS/s6a/s6a_in_addr.c -openair-cn/OPENAIRHSS/s6a/s6a_peers.c -openair-cn/OPENAIRHSS/s6a/s6a_proto.h -openair-cn/OPENAIRHSS/s6a/s6a_purge_ue.c -openair-cn/OPENAIRHSS/s6a/s6a_subscription_data.c -openair-cn/OPENAIRHSS/s6a/s6a_supported_features.c -openair-cn/OPENAIRHSS/s6a/s6a_supported_features.h -openair-cn/OPENAIRHSS/s6a/s6a_up_loc.c -openair-cn/OPENAIRHSS/scripts/COPYING -openair-cn/OPENAIRHSS/scripts/install_hss.sh -openair-cn/OPENAIRHSS/tests/COPYING -openair-cn/OPENAIRHSS/tests/test_fd.c -openair-cn/OPENAIRHSS/tests/test_fd.h -openair-cn/OPENAIRHSS/tests/test_kdf.c -openair-cn/OPENAIRHSS/tests/test_security.c -openair-cn/OPENAIRHSS/tests/test_security_f1.c -openair-cn/OPENAIRHSS/tests/test_security_f2_f3_f5.c -openair-cn/OPENAIRHSS/tests/test_security_f4_f5star.c -openair-cn/OPENAIRHSS/tests/test_security_kasme.c -openair-cn/OPENAIRHSS/tests/test_utils.c -openair-cn/OPENAIRHSS/tests/test_utils.h -openair-cn/OPENAIRHSS/tests/up_loc_test.c -openair-cn/OPENAIRHSS/utils/conversion.c -openair-cn/OPENAIRHSS/utils/conversion.h -openair-cn/OPENAIRHSS/utils/COPYING -openair-cn/OPENAIRHSS/utils/hss_config.c -openair-cn/OPENAIRHSS/utils/hss_config.h -openair-cn/OPENAIRHSS/utils/hss_parser.y -openair-cn/OPENAIRHSS/utils/hss_scanner.l -openair-cn/OPENAIRHSS/utils/queue.h -openair-cn/OPENAIRHSS/AUTHORS -openair-cn/OPENAIRHSS/autogen.sh -openair-cn/OPENAIRHSS/ChangeLog -openair-cn/OPENAIRHSS/configure.ac -openair-cn/OPENAIRHSS/hss_main.c -openair-cn/OPENAIRHSS/INSTALL -openair-cn/OPENAIRHSS/NEWS -openair-cn/OPENAIRHSS/README -openair-cn/S11/COPYING -openair-cn/S11/s11_common.c -openair-cn/S11/s11_common.h -openair-cn/S11/s11_ie_formatter.c -openair-cn/S11/s11_ie_formatter.h -openair-cn/S11/s11_mme.h -openair-cn/S11/s11_mme_peer_manager.c -openair-cn/S11/s11_mme_session_manager.c -openair-cn/S11/s11_mme_session_manager.h -openair-cn/S11/s11_mme_task.c -openair-cn/S11/s11_sgw.c -openair-cn/S11/s11_sgw.h -openair-cn/S11/s11_sgw_bearer_manager.c -openair-cn/S11/s11_sgw_bearer_manager.h -openair-cn/S11/s11_sgw_session_manager.c -openair-cn/S11/s11_sgw_session_manager.h -openair-cn/S1AP/MESSAGES/ASN1/R10.5/COPYING -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-CommonDataTypes.asn -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-Constants.asn -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-Containers.asn -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-IEs.asn -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Contents.asn -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU-Descriptions.asn -openair-cn/S1AP/MESSAGES/ASN1/R10.5/S1AP-PDU.asn -openair-cn/S1AP/MESSAGES/ASN1/R8.10/COPYING -openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-CommonDataTypes.asn -openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-Constants.asn -openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-IEs.asn -openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU-Contents.asn -openair-cn/S1AP/MESSAGES/ASN1/R8.10/S1AP-PDU.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/COPYING -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-CommonDataTypes.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-Constants.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-Containers.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-IEs.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Contents.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU-Descriptions.asn -openair-cn/S1AP/MESSAGES/ASN1/R9.8/S1AP-PDU.asn -openair-cn/S1AP/MESSAGES/ASN1/asn1cpatch.p0 -openair-cn/S1AP/MESSAGES/ASN1/asn1cpatch_2.p0 -openair-cn/S1AP/MESSAGES/ASN1/asn1tostruct.py -openair-cn/S1AP/MESSAGES/ASN1/COPYING -openair-cn/S1AP/MESSAGES/ASN1/README -openair-cn/S1AP/MESSAGES/COPYING -openair-cn/S1AP/COPYING -openair-cn/S1AP/s1ap_common.c -openair-cn/S1AP/s1ap_common.h -openair-cn/S1AP/s1ap_eNB.c -openair-cn/S1AP/s1ap_eNB.h -openair-cn/S1AP/s1ap_eNB_context_management_procedures.c -openair-cn/S1AP/s1ap_eNB_context_management_procedures.h -openair-cn/S1AP/s1ap_eNB_decoder.c -openair-cn/S1AP/s1ap_eNB_decoder.h -openair-cn/S1AP/s1ap_eNB_default_values.h -openair-cn/S1AP/s1ap_eNB_defs.h -openair-cn/S1AP/s1ap_eNB_encoder.c -openair-cn/S1AP/s1ap_eNB_encoder.h -openair-cn/S1AP/s1ap_eNB_handlers.c -openair-cn/S1AP/s1ap_eNB_handlers.h -openair-cn/S1AP/s1ap_eNB_itti_messaging.c -openair-cn/S1AP/s1ap_eNB_itti_messaging.h -openair-cn/S1AP/s1ap_eNB_management_procedures.c -openair-cn/S1AP/s1ap_eNB_management_procedures.h -openair-cn/S1AP/s1ap_eNB_nas_procedures.c -openair-cn/S1AP/s1ap_eNB_nas_procedures.h -openair-cn/S1AP/s1ap_eNB_nnsf.c -openair-cn/S1AP/s1ap_eNB_nnsf.h -openair-cn/S1AP/s1ap_eNB_overload.c -openair-cn/S1AP/s1ap_eNB_overload.h -openair-cn/S1AP/s1ap_eNB_trace.c -openair-cn/S1AP/s1ap_eNB_trace.h -openair-cn/S1AP/s1ap_eNB_ue_context.c -openair-cn/S1AP/s1ap_eNB_ue_context.h -openair-cn/S1AP/s1ap_mme.c -openair-cn/S1AP/s1ap_mme.h -openair-cn/S1AP/s1ap_mme_decoder.c -openair-cn/S1AP/s1ap_mme_decoder.h -openair-cn/S1AP/s1ap_mme_encoder.c -openair-cn/S1AP/s1ap_mme_encoder.h -openair-cn/S1AP/s1ap_mme_handlers.c -openair-cn/S1AP/s1ap_mme_handlers.h -openair-cn/S1AP/s1ap_mme_itti_messaging.c -openair-cn/S1AP/s1ap_mme_itti_messaging.h -openair-cn/S1AP/s1ap_mme_nas_procedures.c -openair-cn/S1AP/s1ap_mme_nas_procedures.h -openair-cn/S1AP/s1ap_mme_retransmission.c -openair-cn/S1AP/s1ap_mme_retransmission.h -openair-cn/S1AP/s1ap_mme_ta.c -openair-cn/S1AP/s1ap_mme_ta.h -openair-cn/S6A/freediameter/freediameter-1.1.5.patch -openair-cn/S6A/freediameter/freediameter-1.2.0.patch -openair-cn/S6A/freediameter/install_freediameter.sh -openair-cn/S6A/freediameter/make_certs.sh -openair-cn/S6A/freediameter/README.txt -openair-cn/S6A/freediameter/s6a.conf -openair-cn/S6A/COPYING -openair-cn/S6A/s6a_apn_conf.c -openair-cn/S6A/s6a_auth_info.c -openair-cn/S6A/s6a_defs.h -openair-cn/S6A/s6a_dict.c -openair-cn/S6A/s6a_error.c -openair-cn/S6A/s6a_messages.h -openair-cn/S6A/s6a_peer.c -openair-cn/S6A/s6a_subscription_data.c -openair-cn/S6A/s6a_task.c -openair-cn/S6A/s6a_up_loc.c -openair-cn/SCTP/COPYING -openair-cn/SCTP/sctp_common.c -openair-cn/SCTP/sctp_common.h -openair-cn/SCTP/sctp_default_values.h -openair-cn/SCTP/sctp_eNB_defs.h -openair-cn/SCTP/sctp_eNB_itti_messaging.c -openair-cn/SCTP/sctp_eNB_itti_messaging.h -openair-cn/SCTP/sctp_eNB_task.c -openair-cn/SCTP/sctp_eNB_task.h -openair-cn/SCTP/sctp_itti_messaging.c -openair-cn/SCTP/sctp_itti_messaging.h -openair-cn/SCTP/sctp_primitives_client.c -openair-cn/SCTP/sctp_primitives_client.h -openair-cn/SCTP/sctp_primitives_server.c -openair-cn/SCTP/sctp_primitives_server.h -openair-cn/SECU/COPYING -openair-cn/SECU/kdf.c -openair-cn/SECU/key_nas_deriver.c -openair-cn/SECU/key_nas_encryption.c -openair-cn/SECU/nas_stream_eea1.c -openair-cn/SECU/nas_stream_eea2.c -openair-cn/SECU/nas_stream_eia1.c -openair-cn/SECU/nas_stream_eia2.c -openair-cn/SECU/rijndael.c -openair-cn/SECU/rijndael.h -openair-cn/SECU/secu_defs.h -openair-cn/SECU/snow3g.c -openair-cn/SECU/snow3g.h -openair-cn/SGW-LITE/COPYING -openair-cn/SGW-LITE/pgw_lite_paa.c -openair-cn/SGW-LITE/pgw_lite_paa.h -openair-cn/SGW-LITE/s11_causes.c -openair-cn/SGW-LITE/s11_causes.h -openair-cn/SGW-LITE/sgw_lite.h -openair-cn/SGW-LITE/sgw_lite_context_manager.c -openair-cn/SGW-LITE/sgw_lite_context_manager.h -openair-cn/SGW-LITE/sgw_lite_defs.h -openair-cn/SGW-LITE/sgw_lite_handlers.c -openair-cn/SGW-LITE/sgw_lite_handlers.h -openair-cn/SGW-LITE/sgw_lite_ie_defs.h -openair-cn/SGW-LITE/sgw_lite_task.c -openair-cn/SGW-LITE/spgw_config.c -openair-cn/SGW-LITE/spgw_config.h -openair-cn/TEST/COPYING -openair-cn/TEST/oaisim_mme_client_test.c -openair-cn/TEST/oaisim_mme_itti_test.c -openair-cn/TEST/oaisim_mme_list_benchmark.c -openair-cn/TEST/oaisim_mme_s1ap_test.c -openair-cn/TEST/oaisim_mme_sctp_test.c -openair-cn/TEST/oaisim_mme_test_s1c.c -openair-cn/TEST/oaisim_mme_test_s1c.h -openair-cn/TEST/oaisim_mme_test_s1c_scenario.h -openair-cn/TEST/oaisim_mme_test_s1c_scenario1.c -openair-cn/TEST/test_aes128_cmac_encrypt.c -openair-cn/TEST/test_aes128_ctr_decrypt.c -openair-cn/TEST/test_aes128_ctr_encrypt.c -openair-cn/TEST/test_kdf.c -openair-cn/TEST/test_s1ap.c -openair-cn/TEST/test_secu.c -openair-cn/TEST/test_secu_kenb.c -openair-cn/TEST/test_secu_knas.c -openair-cn/TEST/test_secu_knas_encrypt_eea1.c -openair-cn/TEST/test_secu_knas_encrypt_eea2.c -openair-cn/TEST/test_secu_knas_encrypt_eia1.c -openair-cn/TEST/test_secu_knas_encrypt_eia2.c -openair-cn/TEST/test_secu_knas_stream_int.c -openair-cn/TEST/test_util.c -openair-cn/TEST/test_util.h -openair-cn/UDP/COPYING -openair-cn/UDP/udp_eNB_task.c -openair-cn/UDP/udp_eNB_task.h -openair-cn/UDP/udp_primitives_server.c -openair-cn/UDP/udp_primitives_server.h -openair-cn/UTILS/CONF/COPYING -openair-cn/UTILS/HASHTABLE/COPYING -openair-cn/UTILS/HASHTABLE/hashtable.c -openair-cn/UTILS/HASHTABLE/hashtable.h -openair-cn/UTILS/HASHTABLE/obj_hashtable.c -openair-cn/UTILS/HASHTABLE/obj_hashtable.h -openair-cn/UTILS/conversions.c -openair-cn/UTILS/conversions.h -openair-cn/UTILS/COPYING -openair-cn/UTILS/enum_string.c -openair-cn/UTILS/enum_string.h -openair-cn/UTILS/log.c -openair-cn/UTILS/log.h -openair-cn/UTILS/mcc_mnc_itu.c -openair-cn/UTILS/mcc_mnc_itu.h -openair-cn/UTILS/mme_config.c -openair-cn/UTILS/mme_config.h -openair-cn/UTILS/mme_default_values.h -openair-cn/UTILS/mme_parser.y -openair-cn/UTILS/mme_scanner.l -openair-cn/UTILS/queue.h -openair-cn/UTILS/tree.h -openair-cn/AUTHORS -openair-cn/autogen.sh -openair-cn/ChangeLog -openair-cn/configure.ac -openair-cn/COPYING -openair-cn/cppcheck.sh -openair-cn/INSTALL -openair-cn/NEWS -openair-cn/README -openair-cn/valgrind.sh -openair1/MAC_INTERFACE/COPYING -openair1/MAC_INTERFACE/defs.h -openair1/MAC_INTERFACE/extern.h -openair1/MAC_INTERFACE/init.c -openair1/MAC_INTERFACE/register.c -openair1/MAC_INTERFACE/vars.h -openair1/PHY/CODING/TESTBENCH/COPYING -openair1/PHY/CODING/TESTBENCH/ltetest.c -openair1/PHY/CODING/TESTBENCH/pdcch_test.c -openair1/PHY/CODING/TESTBENCH/README.txt -openair1/PHY/CODING/TESTBENCH/viterbi_test.c -openair1/PHY/CODING/3gpplte.c -openair1/PHY/CODING/3gpplte_sse.c -openair1/PHY/CODING/3gpplte_turbo_decoder.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c -openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c -openair1/PHY/CODING/ccoding_byte.c -openair1/PHY/CODING/ccoding_byte_lte.c -openair1/PHY/CODING/COPYING -openair1/PHY/CODING/crc_byte.c -openair1/PHY/CODING/defs.h -openair1/PHY/CODING/extern.h -openair1/PHY/CODING/extern_3GPPinterleaver.h -openair1/PHY/CODING/lte_interleaver.h -openair1/PHY/CODING/lte_interleaver2.h -openair1/PHY/CODING/lte_interleaver_inline.h -openair1/PHY/CODING/lte_rate_matching.c -openair1/PHY/CODING/lte_segmentation.c -openair1/PHY/CODING/lte_tf.m -openair1/PHY/CODING/rate_matching.c -openair1/PHY/CODING/README.txt -openair1/PHY/CODING/scrambler.h -openair1/PHY/CODING/vars.h -openair1/PHY/CODING/viterbi.c -openair1/PHY/CODING/viterbi_lte.c -openair1/PHY/INIT/COPYING -openair1/PHY/INIT/defs.h -openair1/PHY/INIT/extern.h -openair1/PHY/INIT/init_top.c -openair1/PHY/INIT/lte_init.c -openair1/PHY/INIT/lte_parms.c -openair1/PHY/INIT/README.txt -openair1/PHY/INIT/vars.h -openair1/PHY/LTE_ESTIMATION/adjust_gain.c -openair1/PHY/LTE_ESTIMATION/COPYING -openair1/PHY/LTE_ESTIMATION/defs.h -openair1/PHY/LTE_ESTIMATION/extern.h -openair1/PHY/LTE_ESTIMATION/filt96_32.h -openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m -openair1/PHY/LTE_ESTIMATION/freq_equalization.c -openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c -openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation_emos.c -openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c -openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c -openair1/PHY/LTE_ESTIMATION/lte_sync_time.c -openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c -openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m -openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c -openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c -openair1/PHY/LTE_ESTIMATION/pss6144.h -openair1/PHY/LTE_ESTIMATION/README.txt -openair1/PHY/LTE_ESTIMATION/vars.h -openair1/PHY/LTE_REFSIG/COPYING -openair1/PHY/LTE_REFSIG/defs.h -openair1/PHY/LTE_REFSIG/gen_mod_table.m -openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c -openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c -openair1/PHY/LTE_REFSIG/lte_dl_uespec.c -openair1/PHY/LTE_REFSIG/lte_gold.c -openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c -openair1/PHY/LTE_REFSIG/lte_ul.m -openair1/PHY/LTE_REFSIG/lte_ul_ref.c -openair1/PHY/LTE_REFSIG/mod_table.h -openair1/PHY/LTE_REFSIG/primary_synch.h -openair1/PHY/LTE_REFSIG/primary_synch.m -openair1/PHY/LTE_REFSIG/README.txt -openair1/PHY/LTE_TRANSPORT/COPYING -openair1/PHY/LTE_TRANSPORT/dci.c -openair1/PHY/LTE_TRANSPORT/dci.h -openair1/PHY/LTE_TRANSPORT/dci_tools.c -openair1/PHY/LTE_TRANSPORT/defs.h -openair1/PHY/LTE_TRANSPORT/dlsch_coding.c -openair1/PHY/LTE_TRANSPORT/dlsch_decoding.c -openair1/PHY/LTE_TRANSPORT/dlsch_demodulation.c -openair1/PHY/LTE_TRANSPORT/dlsch_llr_computation.c -openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c -openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c -openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h -openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h -openair1/PHY/LTE_TRANSPORT/drs_modulation.c -openair1/PHY/LTE_TRANSPORT/extern.h -openair1/PHY/LTE_TRANSPORT/group_hopping.c -openair1/PHY/LTE_TRANSPORT/initial_sync.c -openair1/PHY/LTE_TRANSPORT/lte_mcs.c -openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h -openair1/PHY/LTE_TRANSPORT/pbch.c -openair1/PHY/LTE_TRANSPORT/pcfich.c -openair1/PHY/LTE_TRANSPORT/phich.c -openair1/PHY/LTE_TRANSPORT/pilots.c -openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c -openair1/PHY/LTE_TRANSPORT/pmch.c -openair1/PHY/LTE_TRANSPORT/power_control.c -openair1/PHY/LTE_TRANSPORT/prach.c -openair1/PHY/LTE_TRANSPORT/prach.h -openair1/PHY/LTE_TRANSPORT/print_stats.c -openair1/PHY/LTE_TRANSPORT/proto.h -openair1/PHY/LTE_TRANSPORT/pss.c -openair1/PHY/LTE_TRANSPORT/pucch.c -openair1/PHY/LTE_TRANSPORT/rar_tools.c -openair1/PHY/LTE_TRANSPORT/README.txt -openair1/PHY/LTE_TRANSPORT/srs_modulation.c -openair1/PHY/LTE_TRANSPORT/sss.c -openair1/PHY/LTE_TRANSPORT/sss.h -openair1/PHY/LTE_TRANSPORT/sss_gen.m -openair1/PHY/LTE_TRANSPORT/uci.h -openair1/PHY/LTE_TRANSPORT/uci_tools.c -openair1/PHY/LTE_TRANSPORT/ulsch_coding.c -openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c -openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c -openair1/PHY/LTE_TRANSPORT/ulsch_modulation.c -openair1/PHY/LTE_TRANSPORT/vars.h -openair1/PHY/LTE_TRANSPORT/vrb_maps.m -openair1/PHY/MODULATION/COPYING -openair1/PHY/MODULATION/defs.h -openair1/PHY/MODULATION/extern.h -openair1/PHY/MODULATION/gen_7_5_kHz.m -openair1/PHY/MODULATION/kHz_7_5.h -openair1/PHY/MODULATION/ofdm_mod.c -openair1/PHY/MODULATION/prach625Hz.h -openair1/PHY/MODULATION/slot_fep.c -openair1/PHY/MODULATION/slot_fep_mbsfn.c -openair1/PHY/MODULATION/slot_fep_ul.c -openair1/PHY/MODULATION/ul_7_5_kHz.c -openair1/PHY/MODULATION/vars.h -openair1/PHY/TOOLS/8bit_rxdemux.c -openair1/PHY/TOOLS/8bit_txmux.c -openair1/PHY/TOOLS/angle.c -openair1/PHY/TOOLS/cadd_sv.c -openair1/PHY/TOOLS/cadd_vv.c -openair1/PHY/TOOLS/cdot_prod.c -openair1/PHY/TOOLS/cmult_mm.c -openair1/PHY/TOOLS/cmult_sv.c -openair1/PHY/TOOLS/cmult_vv.c -openair1/PHY/TOOLS/cmult_vvh.c -openair1/PHY/TOOLS/COPYING -openair1/PHY/TOOLS/costable.h -openair1/PHY/TOOLS/dB_routines.c -openair1/PHY/TOOLS/dB_routines.h -openair1/PHY/TOOLS/defs.h -openair1/PHY/TOOLS/extern.h -openair1/PHY/TOOLS/file_output.c -openair1/PHY/TOOLS/invSqrt.c -openair1/PHY/TOOLS/log2_approx.c -openair1/PHY/TOOLS/lte_dfts.c -openair1/PHY/TOOLS/lte_phy_scope.c -openair1/PHY/TOOLS/lte_phy_scope.h -openair1/PHY/TOOLS/lut.c -openair1/PHY/TOOLS/memory_routines.c -openair1/PHY/TOOLS/signal_energy.c -openair1/PHY/TOOLS/smbv.c -openair1/PHY/TOOLS/smbv.h -openair1/PHY/TOOLS/sqrt.c -openair1/PHY/TOOLS/time_meas.c -openair1/PHY/TOOLS/time_meas.h -openair1/PHY/TOOLS/twiddle12288.h -openair1/PHY/TOOLS/twiddle1536.h -openair1/PHY/TOOLS/twiddle24576.h -openair1/PHY/TOOLS/twiddle6144.h -openair1/PHY/TOOLS/twiddles4096.h -openair1/PHY/TOOLS/vars.h -openair1/PHY/COPYING -openair1/PHY/defs.h -openair1/PHY/extern.h -openair1/PHY/impl_defs_lte.h -openair1/PHY/impl_defs_top.h -openair1/PHY/spec_defs.h -openair1/PHY/spec_defs_top.h -openair1/PHY/sse_intrin.h -openair1/PHY/types.h -openair1/PHY/vars.h -openair1/SCHED/COPYING -openair1/SCHED/defs.h -openair1/SCHED/extern.h -openair1/SCHED/phy_procedures_emos.h -openair1/SCHED/phy_procedures_lte_common.c -openair1/SCHED/phy_procedures_lte_eNb.c -openair1/SCHED/phy_procedures_lte_ue.c -openair1/SCHED/pucch_pc.c -openair1/SCHED/pusch_pc.c -openair1/SCHED/rt_compat.h -openair1/SCHED/vars.h -openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c -openair1/SIMULATION/ETH_TRANSPORT/COPYING -openair1/SIMULATION/ETH_TRANSPORT/defs.h -openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c -openair1/SIMULATION/ETH_TRANSPORT/extern.h -openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c -openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h -openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c -openair1/SIMULATION/ETH_TRANSPORT/pgm_link.c -openair1/SIMULATION/ETH_TRANSPORT/pgm_link.h -openair1/SIMULATION/ETH_TRANSPORT/proto.h -openair1/SIMULATION/ETH_TRANSPORT/README.txt -openair1/SIMULATION/ETH_TRANSPORT/socket.c -openair1/SIMULATION/ETH_TRANSPORT/socket.h -openair1/SIMULATION/ETH_TRANSPORT/vars.h -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex -openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls -openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m -openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m -openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m -openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m -openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m -openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m -openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m -openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m -openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m -openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m -openair1/SIMULATION/LTE_PHY/plotTools/p -openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m -openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m -openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m -openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt -openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex -openair1/SIMULATION/LTE_PHY/blerSimus.zip -openair1/SIMULATION/LTE_PHY/COPYING -openair1/SIMULATION/LTE_PHY/dlsim.c -openair1/SIMULATION/LTE_PHY/fancyheadings.sty -openair1/SIMULATION/LTE_PHY/framegen.c -openair1/SIMULATION/LTE_PHY/gpib_send.c -openair1/SIMULATION/LTE_PHY/gpib_send.h -openair1/SIMULATION/LTE_PHY/launch_sim.sh -openair1/SIMULATION/LTE_PHY/LTE_Configuration.c -openair1/SIMULATION/LTE_PHY/LTE_Configuration.h -openair1/SIMULATION/LTE_PHY/mat2wv.m -openair1/SIMULATION/LTE_PHY/mbmssim.c -openair1/SIMULATION/LTE_PHY/pbch_awgn.txt -openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt -openair1/SIMULATION/LTE_PHY/pbchsim.c -openair1/SIMULATION/LTE_PHY/pbsPhyProcSim.sh -openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m -openair1/SIMULATION/LTE_PHY/pdcchsim.c -openair1/SIMULATION/LTE_PHY/prachsim.c -openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h -openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c -openair1/SIMULATION/LTE_PHY/pucchsim.c -openair1/SIMULATION/LTE_PHY/README.txt -openair1/SIMULATION/LTE_PHY/scansim.c -openair1/SIMULATION/LTE_PHY/signalanalyzer.c -openair1/SIMULATION/LTE_PHY/signalanalyzer.h -openair1/SIMULATION/LTE_PHY/syncsim.c -openair1/SIMULATION/LTE_PHY/test.c -openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c -openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h -openair1/SIMULATION/LTE_PHY/ulsim.c -openair1/SIMULATION/LTE_PHY/ulsim2.c -openair1/SIMULATION/RF/adc.c -openair1/SIMULATION/RF/COPYING -openair1/SIMULATION/RF/dac.c -openair1/SIMULATION/RF/defs.h -openair1/SIMULATION/RF/README.txt -openair1/SIMULATION/RF/rf.c -openair1/SIMULATION/TOOLS/abstraction.c -openair1/SIMULATION/TOOLS/ch_desc_proto.c -openair1/SIMULATION/TOOLS/COPYING -openair1/SIMULATION/TOOLS/corr_mat.m -openair1/SIMULATION/TOOLS/defs.h -openair1/SIMULATION/TOOLS/gauss.c -openair1/SIMULATION/TOOLS/llr_quantization.c -openair1/SIMULATION/TOOLS/multipath_channel.c -openair1/SIMULATION/TOOLS/multipath_tv_channel.c -openair1/SIMULATION/TOOLS/random_channel.c -openair1/SIMULATION/TOOLS/rangen_double.c -openair1/SIMULATION/TOOLS/scm.m -openair1/SIMULATION/TOOLS/scm_corrmat.h -openair1/SIMULATION/TOOLS/taus.c -openair1/SIMULATION/COPYING -openair1/COPYING -openair1/README.TXT -openair2/COMMON/as_message.h -openair2/COMMON/commonDef.h -openair2/COMMON/COPYING -openair2/COMMON/gtpv1_u_messages_def.h -openair2/COMMON/gtpv1_u_messages_types.h -openair2/COMMON/intertask_interface_conf.h -openair2/COMMON/mac_messages_def.h -openair2/COMMON/mac_messages_types.h -openair2/COMMON/mac_primitives.h -openair2/COMMON/mac_rlc_primitives.h -openair2/COMMON/mac_rrc_primitives.h -openair2/COMMON/messages_def.h -openair2/COMMON/messages_types.h -openair2/COMMON/nas_messages_def.h -openair2/COMMON/nas_messages_types.h -openair2/COMMON/networkDef.h -openair2/COMMON/openair_defs.h -openair2/COMMON/openair_types.h -openair2/COMMON/pdcp_messages_def.h -openair2/COMMON/pdcp_messages_types.h -openair2/COMMON/phy_messages_def.h -openair2/COMMON/phy_messages_types.h -openair2/COMMON/platform_constants.h -openair2/COMMON/platform_types.h -openair2/COMMON/ral_messages_def.h -openair2/COMMON/ral_messages_types.h -openair2/COMMON/rlc_messages_def.h -openair2/COMMON/rlc_messages_types.h -openair2/COMMON/rrc_messages_def.h -openair2/COMMON/rrc_messages_types.h -openair2/COMMON/rrm_config_structs.h -openair2/COMMON/rrm_constants.h -openair2/COMMON/rtos_header.h -openair2/COMMON/s1ap_messages_def.h -openair2/COMMON/s1ap_messages_types.h -openair2/COMMON/sctp_messages_def.h -openair2/COMMON/sctp_messages_types.h -openair2/COMMON/tasks_def.h -openair2/COMMON/udp_messages_def.h -openair2/COMMON/udp_messages_types.h -openair2/COMMON/x2ap_messages_def.h -openair2/COMMON/x2ap_messages_types.h -openair2/DOCS/Documentation/flow.txt -openair2/DOCS/DOXYGEN/images/cellular_topology.doc -openair2/DOCS/DOXYGEN/images/cellular_topology.pdf -openair2/DOCS/DOXYGEN/images/cellular_topology_small.png -openair2/DOCS/DOXYGEN/images/channel server.png -openair2/DOCS/DOXYGEN/images/channel server.vsd -openair2/DOCS/DOXYGEN/images/convolutional.png -openair2/DOCS/DOXYGEN/images/convolutional.vsd -openair2/DOCS/DOXYGEN/images/Diapositive6.JPG -openair2/DOCS/DOXYGEN/images/DLC_arch.png -openair2/DOCS/DOXYGEN/images/Framing.png -openair2/DOCS/DOXYGEN/images/Framing.vsd -openair2/DOCS/DOXYGEN/images/irs_dcf.jpg -openair2/DOCS/DOXYGEN/images/irs_pcf.jpg -openair2/DOCS/DOXYGEN/images/layer2_stack.jpg -openair2/DOCS/DOXYGEN/images/layer2_stack.pdf -openair2/DOCS/DOXYGEN/images/layer2_stack.png -openair2/DOCS/DOXYGEN/images/MAC Services.vsd -openair2/DOCS/DOXYGEN/images/MAC_arch.eps -openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG -openair2/DOCS/DOXYGEN/images/mac_channels.png -openair2/DOCS/DOXYGEN/images/MAC_Measurements.png -openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd -openair2/DOCS/DOXYGEN/images/MAC_Services.eps -openair2/DOCS/DOXYGEN/images/MAC_Services.vsd -openair2/DOCS/DOXYGEN/images/MAC_Services2.eps -openair2/DOCS/DOXYGEN/images/MAC_Services2.png -openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png -openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd -openair2/DOCS/DOXYGEN/images/mac_wbs.jpg -openair2/DOCS/DOXYGEN/images/macphynet.eps -openair2/DOCS/DOXYGEN/images/macphynet.png -openair2/DOCS/DOXYGEN/images/mesh_frame.pdf -openair2/DOCS/DOXYGEN/images/mesh_topology.pdf -openair2/DOCS/DOXYGEN/images/mesh_topology_small.png -openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png -openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd -openair2/DOCS/DOXYGEN/images/PHY_arch.eps -openair2/DOCS/DOXYGEN/images/PHY_arch.png -openair2/DOCS/DOXYGEN/images/PHY_arch.vsd -openair2/DOCS/DOXYGEN/images/QAM modulation.png -openair2/DOCS/DOXYGEN/images/QAM modulation.vsd -openair2/DOCS/DOXYGEN/images/QAMmodulation.png -openair2/DOCS/DOXYGEN/images/scrambler.png -openair2/DOCS/DOXYGEN/images/scrambler.vsd -openair2/DOCS/DOXYGEN/images/Transmission.pdf -openair2/DOCS/DOXYGEN/images/Transmission.png -openair2/DOCS/DOXYGEN/images/Transmission.ps -openair2/DOCS/DOXYGEN/images/w3g4f_framing.png -openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd -openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd -openair2/DOCS/DOXYGEN/Doxyfile -openair2/DOCS/TEMPLATES/CODE/images/arch.eps -openair2/DOCS/TEMPLATES/CODE/images/arch.png -openair2/DOCS/TEMPLATES/CODE/COPYING -openair2/DOCS/TEMPLATES/CODE/Doxyfile -openair2/DOCS/TEMPLATES/CODE/example_doxy.h -openair2/DOCS/TEMPLATES/README/Readme.doxy -openair2/DOCS/TEMPLATES/README/readme.txt -openair2/ENB_APP/enb_app.c -openair2/ENB_APP/enb_app.h -openair2/ENB_APP/enb_config.c -openair2/ENB_APP/enb_config.h -openair2/LAYER2/MAC/config.c -openair2/LAYER2/MAC/COPYING -openair2/LAYER2/MAC/defs.h -openair2/LAYER2/MAC/eNB_scheduler.c -openair2/LAYER2/MAC/eNB_scheduler_bch.c -openair2/LAYER2/MAC/eNB_scheduler_dlsch.c -openair2/LAYER2/MAC/eNB_scheduler_mch.c -openair2/LAYER2/MAC/eNB_scheduler_primitives.c -openair2/LAYER2/MAC/eNB_scheduler_RA.c -openair2/LAYER2/MAC/eNB_scheduler_ulsch.c -openair2/LAYER2/MAC/extern.h -openair2/LAYER2/MAC/l1_helpers.c -openair2/LAYER2/MAC/lte_transport_init.c -openair2/LAYER2/MAC/main.c -openair2/LAYER2/MAC/openair2_proc.c -openair2/LAYER2/MAC/pre_processor.c -openair2/LAYER2/MAC/proto.h -openair2/LAYER2/MAC/ra_procedures.c -openair2/LAYER2/MAC/rar_tools.c -openair2/LAYER2/MAC/ue_procedures.c -openair2/LAYER2/MAC/vars.h -openair2/LAYER2/PDCP_v10.1.0/COPYING -openair2/LAYER2/PDCP_v10.1.0/pdcp.c -openair2/LAYER2/PDCP_v10.1.0/pdcp.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h -openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c -openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h -openair2/LAYER2/RLC/AM_v9.3.0/COPYING -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c -openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h -openair2/LAYER2/RLC/TM_v9.3.0/COPYING -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h -openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h -openair2/LAYER2/RLC/UM_v9.3.0/COPYING -openair2/LAYER2/RLC/UM_v9.3.0/README -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c -openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h -openair2/LAYER2/RLC/COPYING -openair2/LAYER2/RLC/mac_primitives.h -openair2/LAYER2/RLC/rlc.c -openair2/LAYER2/RLC/rlc.h -openair2/LAYER2/RLC/rlc_def.h -openair2/LAYER2/RLC/rlc_def_lte.h -openair2/LAYER2/RLC/rlc_mac.c -openair2/LAYER2/RLC/rlc_mpls.c -openair2/LAYER2/RLC/rlc_primitives.h -openair2/LAYER2/RLC/rlc_rrc.c -openair2/LAYER2/COPYING -openair2/LAYER2/layer2_top.c -openair2/LAYER2/openair2_proc.c -openair2/LAYER2/register.c -openair2/LAYER2/register.h -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.c -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL/nascell_ioctl.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_ascontrol.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_classifier.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_common.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_constant.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_device.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_iocontrol.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_netlink.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_proto.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_sap.h -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_tool.c -openair2/NAS/DRIVER/CELLULAR/NASMT/nasmt_variables.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_ascontrol.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_classifier.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_common.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_constant.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_device.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_iocontrol.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_netlink.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_proto.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_sap.h -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_tool.c -openair2/NAS/DRIVER/CELLULAR/NASRG/nasrg_variables.h -openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest -openair2/NAS/DRIVER/CELLULAR/NETLTEST/netltest.c -openair2/NAS/DRIVER/CELLULAR/NETLTEST/nettestPDCP.c -openair2/NAS/DRIVER/CELLULAR/readme.txt -openair2/NAS/DRIVER/CELLULAR/start_mt_cellular -openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_noradvd -openair2/NAS/DRIVER/CELLULAR/start_rg_cellular_radvd -openair2/NAS/DRIVER/CELLULAR/stop_mt_cellular -openair2/NAS/DRIVER/CELLULAR/stop_rg_cellular -openair2/NAS/SIMU_CELLULAR/nas_simu_proto.h -openair2/NAS/SIMU_CELLULAR/nasrg_simu_meas.c -openair2/NAS/SIMU_CELLULAR/rrm_fifo_standalone.c -openair2/NAS/nas_ue_task.h -openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c -openair2/NETWORK_DRIVER/LITE/classifier.c -openair2/NETWORK_DRIVER/LITE/common.c -openair2/NETWORK_DRIVER/LITE/constant.h -openair2/NETWORK_DRIVER/LITE/COPYING -openair2/NETWORK_DRIVER/LITE/device.c -openair2/NETWORK_DRIVER/LITE/ioctl.c -openair2/NETWORK_DRIVER/LITE/ioctl.h -openair2/NETWORK_DRIVER/LITE/local.h -openair2/NETWORK_DRIVER/LITE/netlink.c -openair2/NETWORK_DRIVER/LITE/proto_extern.h -openair2/NETWORK_DRIVER/LITE/sap.h -openair2/NETWORK_DRIVER/LITE/tool.c -openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c -openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c -openair2/NETWORK_DRIVER/MESH/classifier.c -openair2/NETWORK_DRIVER/MESH/common.c -openair2/NETWORK_DRIVER/MESH/constant.h -openair2/NETWORK_DRIVER/MESH/COPYING -openair2/NETWORK_DRIVER/MESH/device.c -openair2/NETWORK_DRIVER/MESH/ioctl.c -openair2/NETWORK_DRIVER/MESH/ioctl.h -openair2/NETWORK_DRIVER/MESH/local.h -openair2/NETWORK_DRIVER/MESH/mesh.c -openair2/NETWORK_DRIVER/MESH/netlink.c -openair2/NETWORK_DRIVER/MESH/proto_extern.h -openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h -openair2/NETWORK_DRIVER/MESH/sap.h -openair2/NETWORK_DRIVER/MESH/tool.c -openair2/NETWORK_DRIVER/UE_IP/common.c -openair2/NETWORK_DRIVER/UE_IP/constant.h -openair2/NETWORK_DRIVER/UE_IP/COPYING -openair2/NETWORK_DRIVER/UE_IP/device.c -openair2/NETWORK_DRIVER/UE_IP/local.h -openair2/NETWORK_DRIVER/UE_IP/netlink.c -openair2/NETWORK_DRIVER/UE_IP/proto_extern.h -openair2/NETWORK_DRIVER/UE_IP/README -openair2/NETWORK_DRIVER/UE_IP/sap.h -openair2/PHY_INTERFACE/COPYING -openair2/PHY_INTERFACE/defs.h -openair2/PHY_INTERFACE/extern.h -openair2/PHY_INTERFACE/mac_phy_primitives.c -openair2/PHY_INTERFACE/mac_phy_primitives.h -openair2/PHY_INTERFACE/vars.h -openair2/RRC/L2_INTERFACE/COPYING -openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c -openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-860.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/36331-a20.txt -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn -openair2/RRC/LITE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl -openair2/RRC/LITE/MESSAGES/asn1_msg.c -openair2/RRC/LITE/MESSAGES/asn1_msg.h -openair2/RRC/LITE/MESSAGES/asn1_patch -openair2/RRC/LITE/MESSAGES/bsearch.c -openair2/RRC/LITE/MESSAGES/bsearch.h -openair2/RRC/LITE/MESSAGES/COPYING -openair2/RRC/LITE/MESSAGES/README.txt -openair2/RRC/LITE/MESSAGES/rtai_mem.c -openair2/RRC/LITE/MESSAGES/rtai_mem.h -openair2/RRC/LITE/COPYING -openair2/RRC/LITE/defs.h -openair2/RRC/LITE/extern.h -openair2/RRC/LITE/L2_interface.c -openair2/RRC/LITE/mesh_top.c -openair2/RRC/LITE/plmn_data.h -openair2/RRC/LITE/proto.h -openair2/RRC/LITE/rrc_2_rrm_msg.c -openair2/RRC/LITE/rrc_common.c -openair2/RRC/LITE/rrc_config.c -openair2/RRC/LITE/rrc_eNB.c -openair2/RRC/LITE/rrc_eNB_GTPV1U.c -openair2/RRC/LITE/rrc_eNB_GTPV1U.h -openair2/RRC/LITE/rrc_eNB_ral.c -openair2/RRC/LITE/rrc_eNB_ral.h -openair2/RRC/LITE/rrc_eNB_S1AP.c -openair2/RRC/LITE/rrc_eNB_S1AP.h -openair2/RRC/LITE/rrc_eNB_UE_context.c -openair2/RRC/LITE/rrc_eNB_UE_context.h -openair2/RRC/LITE/rrc_rrm_interface.c -openair2/RRC/LITE/rrc_rrm_interface.h -openair2/RRC/LITE/rrc_types.h -openair2/RRC/LITE/rrc_UE.c -openair2/RRC/LITE/rrc_UE_ral.c -openair2/RRC/LITE/rrc_UE_ral.h -openair2/RRC/LITE/rrm_2_rrc_msg.c -openair2/RRC/LITE/utils.c -openair2/RRC/LITE/vars.h -openair2/RRC/NAS/COPYING -openair2/RRC/NAS/nas_config.c -openair2/RRC/NAS/nas_config.h -openair2/RRC/NAS/rb_config.c -openair2/RRC/NAS/rb_config.h -openair2/RRM_4_RRC_LITE/src/com/asn1/rrc-rrm.asn -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerConfirm.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddRadioAccessBearerRequest.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserConfirm.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageAddUserRequest.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageConnectionRequest.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveRadioAccessBearerRequest.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageRemoveUserRequest.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRC2RRMMessageUserReconfigurationComplete.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRCMessageHandler.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRCUdpSocket.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddRadioAccessBearerResponse.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageAddUserResponse.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageConnectionResponse.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveRadioAccessBearerResponse.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageRemoveUserResponse.h -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.cpp -openair2/RRM_4_RRC_LITE/src/com/rrc/RRM2RRCMessageUserReconfiguration.h -openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.cpp -openair2/RRM_4_RRC_LITE/src/com/rrm/RRMMessageHandler.h -openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.cpp -openair2/RRM_4_RRC_LITE/src/com/rrm/RRMUdpSocket.h -openair2/RRM_4_RRC_LITE/src/com/Message.cpp -openair2/RRM_4_RRC_LITE/src/com/Message.h -openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/36331-860.txt -openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/EUTRA-InterNodeDefinitions.asn -openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/EUTRA-RRC-Definitions.asn -openair2/RRM_4_RRC_LITE/src/foreign/generated_c_asn1_rrc/ASN1_files/EUTRA-UE-Variables.asn -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libSockets.pc -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libSockets.pc.IN -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libsockets2.pc -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/pkgconfig/libsockets2.pc.IN -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/base64.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/chunked.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/copy.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/crlf.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/echoserver.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/events.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/http.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/http_post.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/httpd.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/httpd_test.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/https.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/json.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/listener.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/resolve.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/resume.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/retry.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/scanr.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/semtest.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/sloppy_http.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/sockets_test.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/stressclient.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/threadstress.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/tests/x.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ajp13.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ajp13Socket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ajp13Socket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/AjpBaseSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/AjpBaseSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Base64.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Base64.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Changelog -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Debug.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Debug.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Event.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Event.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventHandler.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventHandler.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventTime.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/EventTime.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Exception.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Exception.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/File.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/File.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/FileStream.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/FileStream.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/gpl.txt -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpBaseSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpBaseSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpClientSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpClientSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdCookies.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdCookies.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpDebugSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpDebugSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdForm.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdForm.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpdSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpGetSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpGetSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPostSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPostSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPutSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpPutSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpRequest.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpRequest.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpResponse.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpResponse.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HTTPSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HTTPSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpTransaction.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/HttpTransaction.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IBase.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IEventHandler.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IEventOwner.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IEventOwner.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IFile.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IFileUpload.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IHttpServer.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IMutex.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv4Address.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv4Address.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv6Address.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Ipv6Address.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ISocketHandler.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/IStream.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Json.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Json.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ListenSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Lock.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Lock.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/MemFile.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/MemFile.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/mkdot.sh -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Mutex.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Mutex.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/OSX.zip -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Parse.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Parse.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/README -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/README.macosx -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvServer.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvServer.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/ResolvSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SctpSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SctpSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Semaphore.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Semaphore.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SmtpdSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SmtpdSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Socket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Socket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/socket_include.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/socket_include.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketAddress.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandler.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandler.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerEp.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerEp.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerThread.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketHandlerThread.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Sockets-config -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Sockets-config.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/sockets-config.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketStream.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketStream.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketThread.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SocketThread.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SSLInitializer.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/SSLInitializer.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StdLog.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StdoutLog.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StdoutLog.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamWriter.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/StreamWriter.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/TcpSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/TcpSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Thread.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Thread.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/UdpSocket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/UdpSocket.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Utility.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/Utility.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlDocument.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlDocument.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlException.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlException.h -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlNode.cpp -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4/XmlNode.h -openair2/RRM_4_RRC_LITE/src/foreign/sql/sqlite3.c -openair2/RRM_4_RRC_LITE/src/foreign/sql/sqlite3.h -openair2/RRM_4_RRC_LITE/src/foreign/tcpip/socket.cpp -openair2/RRM_4_RRC_LITE/src/foreign/tcpip/socket.h -openair2/RRM_4_RRC_LITE/src/foreign/tcpip/socketUnitTests.cpp -openair2/RRM_4_RRC_LITE/src/foreign/tcpip/storage.cpp -openair2/RRM_4_RRC_LITE/src/foreign/tcpip/storage.h -openair2/RRM_4_RRC_LITE/src/foreign/tcpip/tcpipUnitTests.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/Asn1Utils.h -openair2/RRM_4_RRC_LITE/src/radio_resources/Command.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/Command.h -openair2/RRM_4_RRC_LITE/src/radio_resources/COPYING -openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/DataRadioBearer.h -openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/ENodeB.h -openair2/RRM_4_RRC_LITE/src/radio_resources/Exceptions.h -openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/LogicalChannel.h -openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/Mobile.h -openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/RadioBearer.h -openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/RadioResources.h -openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/SignallingRadioBearer.h -openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/Transaction.h -openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.cpp -openair2/RRM_4_RRC_LITE/src/radio_resources/Transactions.h -openair2/RRM_4_RRC_LITE/src/test/test.cpp -openair2/RRM_4_RRC_LITE/src/test/TestScenario.cpp -openair2/RRM_4_RRC_LITE/src/test/TestScenario.h -openair2/RRM_4_RRC_LITE/src/COPYING -openair2/RRM_4_RRC_LITE/src/platform.h -openair2/RRM_4_RRC_LITE/src/platform_constants.h -openair2/RRM_4_RRC_LITE/src/platform_defines.h -openair2/RRM_4_RRC_LITE/src/platform_dim.h -openair2/RRM_4_RRC_LITE/src/rrm.cpp -openair2/RRM_4_RRC_LITE/src/version.h -openair2/RRM_4_RRC_LITE/ChangeLog -openair2/RRM_4_RRC_LITE/configure.ac -openair2/RRM_4_RRC_LITE/COPYING -openair2/RRM_4_RRC_LITE/NEWS -openair2/RRM_4_RRC_LITE/README -openair2/UTIL/AT_COMMANDS/COPYING -openair2/UTIL/AT_COMMANDS/parser.c -openair2/UTIL/AT_COMMANDS/parser.h -openair2/UTIL/BIGPHYS/bigphys.c -openair2/UTIL/BIGPHYS/COPYING -openair2/UTIL/BIGPHYS/defs.h -openair2/UTIL/CLI/cli.c -openair2/UTIL/CLI/cli.h -openair2/UTIL/CLI/cli_cmd.c -openair2/UTIL/CLI/cli_if.h -openair2/UTIL/CLI/cli_server.c -openair2/UTIL/CLI/COPYING -openair2/UTIL/FIFO/COPYING -openair2/UTIL/FIFO/pad_list.c -openair2/UTIL/FIFO/pad_list.h -openair2/UTIL/FIFO/types.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c -openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c -openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt -openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln -openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj -openair2/UTIL/LISTS/COPYING -openair2/UTIL/LISTS/list.c -openair2/UTIL/LISTS/list.h -openair2/UTIL/LISTS/list2.c -openair2/UTIL/LOG/COPYING -openair2/UTIL/LOG/log.c -openair2/UTIL/LOG/log.h -openair2/UTIL/LOG/log_extern.h -openair2/UTIL/LOG/log_if.h -openair2/UTIL/LOG/README.txt -openair2/UTIL/LOG/vcd_signal_dumper.c -openair2/UTIL/LOG/vcd_signal_dumper.h -openair2/UTIL/MATH/COPYING -openair2/UTIL/MATH/crc_byte.c -openair2/UTIL/MATH/oml.c -openair2/UTIL/MATH/oml.h -openair2/UTIL/MATH/random.c -openair2/UTIL/MATH/random_proto_extern.h -openair2/UTIL/MATH/taus.c -openair2/UTIL/MEM/COPYING -openair2/UTIL/MEM/mem_block.c -openair2/UTIL/MEM/mem_block.h -openair2/UTIL/MEM/mem_mngt.c -openair2/UTIL/MEM/mem_mngt_proto_extern.h -openair2/UTIL/MEM/mem_pool.h -openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml -openair2/UTIL/OCG/temp_output/OCG_report.xml -openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml -openair2/UTIL/OCG/COPYING -openair2/UTIL/OCG/Doxyfile -openair2/UTIL/OCG/eurecom_20110208110244.xml -openair2/UTIL/OCG/OCG.c -openair2/UTIL/OCG/OCG.h -openair2/UTIL/OCG/OCG_call_emu.c -openair2/UTIL/OCG/OCG_call_emu.h -openair2/UTIL/OCG/OCG_config_mobi.c -openair2/UTIL/OCG/OCG_config_mobi.h -openair2/UTIL/OCG/OCG_create_dir.c -openair2/UTIL/OCG/OCG_create_dir.h -openair2/UTIL/OCG/OCG_detect_file.c -openair2/UTIL/OCG/OCG_detect_file.h -openair2/UTIL/OCG/OCG_extern.h -openair2/UTIL/OCG/OCG_generate_report.c -openair2/UTIL/OCG/OCG_generate_report.h -openair2/UTIL/OCG/OCG_get_opt.c -openair2/UTIL/OCG/OCG_get_opt.h -openair2/UTIL/OCG/OCG_if.h -openair2/UTIL/OCG/OCG_parse_filename.c -openair2/UTIL/OCG/OCG_parse_filename.h -openair2/UTIL/OCG/OCG_parse_XML.c -openair2/UTIL/OCG/OCG_parse_XML.h -openair2/UTIL/OCG/OCG_save_XML.c -openair2/UTIL/OCG/OCG_save_XML.h -openair2/UTIL/OCG/OCG_vars.h -openair2/UTIL/OCG/Readme.doxy -openair2/UTIL/OCG/readme.txt -openair2/UTIL/OMG/SUMO/SCENARIOS/scen.sumo.cfg -openair2/UTIL/OMG/SUMO/SCENARIOS/sumo_commands.txt -openair2/UTIL/OMG/SUMO/SCENARIOS/traci.scen.sumo.cfg -openair2/UTIL/OMG/SUMO/SCENARIOS/traci_ex_Map.net.xml -openair2/UTIL/OMG/SUMO/SCENARIOS/traci_ex_ROU.rou.xml -openair2/UTIL/OMG/SUMO/README.TXT -openair2/UTIL/OMG/TRACE/example_trace.tr -openair2/UTIL/OMG/TRACE/handover.tr -openair2/UTIL/OMG/TRACE/handover_1ue.tr -openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr -openair2/UTIL/OMG/TRACE/mobility_2ues.tr -openair2/UTIL/OMG/TRACE/mobility_3ues.tr -openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf -openair2/UTIL/OMG/TRACE/README.TXT -openair2/UTIL/OMG/TRACE/regular.tr -openair2/UTIL/OMG/TRACE/static_1enb.tr -openair2/UTIL/OMG/TRACE/static_2ues.tr -openair2/UTIL/OMG/TRACE/zero_speed.tr -openair2/UTIL/OMG/client_traci_OMG.c -openair2/UTIL/OMG/client_traci_OMG.h -openair2/UTIL/OMG/common.c -openair2/UTIL/OMG/COPYING -openair2/UTIL/OMG/defs.h -openair2/UTIL/OMG/grid.c -openair2/UTIL/OMG/grid.h -openair2/UTIL/OMG/id_manager.c -openair2/UTIL/OMG/id_manager.h -openair2/UTIL/OMG/job.c -openair2/UTIL/OMG/mobility.txt -openair2/UTIL/OMG/mobility_parser.c -openair2/UTIL/OMG/mobility_parser.h -openair2/UTIL/OMG/omg.c -openair2/UTIL/OMG/omg.h -openair2/UTIL/OMG/omg_constants.h -openair2/UTIL/OMG/omg_hashtable.c -openair2/UTIL/OMG/omg_hashtable.h -openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf -openair2/UTIL/OMG/omg_vars.h -openair2/UTIL/OMG/README.TXT -openair2/UTIL/OMG/rwalk.c -openair2/UTIL/OMG/rwalk.h -openair2/UTIL/OMG/rwp.c -openair2/UTIL/OMG/rwp.h -openair2/UTIL/OMG/socket_traci_OMG.c -openair2/UTIL/OMG/socket_traci_OMG.h -openair2/UTIL/OMG/static.c -openair2/UTIL/OMG/static.h -openair2/UTIL/OMG/steadystaterwp.c -openair2/UTIL/OMG/steadystaterwp.h -openair2/UTIL/OMG/storage_traci_OMG.c -openair2/UTIL/OMG/storage_traci_OMG.h -openair2/UTIL/OMG/sumo.c -openair2/UTIL/OMG/sumo.h -openair2/UTIL/OMG/trace.c -openair2/UTIL/OMG/trace.h -openair2/UTIL/OMG/trace_hashtable.c -openair2/UTIL/OMG/trace_hashtable.h -openair2/UTIL/OMG/TraCIConstants.h -openair2/UTIL/OMV/blue.png -openair2/UTIL/OMV/communicationthread.cpp -openair2/UTIL/OMV/communicationthread.h -openair2/UTIL/OMV/COPYING -openair2/UTIL/OMV/green.png -openair2/UTIL/OMV/jpg.jpeg -openair2/UTIL/OMV/mus.png -openair2/UTIL/OMV/mywindow.cpp -openair2/UTIL/OMV/mywindow.h -openair2/UTIL/OMV/new.jpg -openair2/UTIL/OMV/new2.jpg -openair2/UTIL/OMV/omv.cpp -openair2/UTIL/OMV/openglwidget.cpp -openair2/UTIL/OMV/openglwidget.h -openair2/UTIL/OMV/README.txt -openair2/UTIL/OMV/red.png -openair2/UTIL/OMV/structures.h -openair2/UTIL/OMV/white.png -openair2/UTIL/OMV/wow.png -openair2/UTIL/OPT/COPYING -openair2/UTIL/OPT/mac_pcap.h -openair2/UTIL/OPT/opt.h -openair2/UTIL/OPT/packet-mac-lte.c -openair2/UTIL/OPT/packet-mac-lte.h -openair2/UTIL/OPT/packet-rlc-lte.h -openair2/UTIL/OPT/probe.c -openair2/UTIL/OPT/README.txt -openair2/UTIL/OPT/socket_sender.c -openair2/UTIL/OPT/vars.h -openair2/UTIL/OSA/COPYING -openair2/UTIL/OSA/osa_defs.h -openair2/UTIL/OSA/osa_internal.h -openair2/UTIL/OSA/osa_key_deriver.c -openair2/UTIL/OSA/osa_rijndael.c -openair2/UTIL/OSA/osa_rijndael.h -openair2/UTIL/OSA/osa_snow3g.c -openair2/UTIL/OSA/osa_snow3g.h -openair2/UTIL/OSA/osa_stream_eea.c -openair2/UTIL/OSA/osa_stream_eia.c -openair2/UTIL/OSA/README -openair2/UTIL/OSD/css/images/false.png -openair2/UTIL/OSD/css/images/false2.png -openair2/UTIL/OSD/css/images/lquote.png -openair2/UTIL/OSD/css/images/true.png -openair2/UTIL/OSD/css/images/warning.png -openair2/UTIL/OSD/css/blueprint.css -openair2/UTIL/OSD/css/fix-ie-rtl.css -openair2/UTIL/OSD/css/fix-ie.css -openair2/UTIL/OSD/css/ie.css -openair2/UTIL/OSD/css/ie6.css -openair2/UTIL/OSD/css/print.css -openair2/UTIL/OSD/css/screen.css -openair2/UTIL/OSD/css/style.css -openair2/UTIL/OSD/jquery/jquery.js -openair2/UTIL/OSD/COPYING -openair2/UTIL/OSD/fake_oaisim -openair2/UTIL/OSD/form.php -openair2/UTIL/OSD/header.php -openair2/UTIL/OSD/httpd-result.conf -openair2/UTIL/OSD/index.php -openair2/UTIL/OSD/OCG.pid -openair2/UTIL/OSD/OpenAirEmu.conf -openair2/UTIL/OSD/Platform_is_running.php -openair2/UTIL/OSD/README.txt -openair2/UTIL/OSD/recep.php -openair2/UTIL/OSD/toto.php -openair2/UTIL/OTG/COPYING -openair2/UTIL/OTG/Doxyfile -openair2/UTIL/OTG/help_OTGplot.txt -openair2/UTIL/OTG/main.c -openair2/UTIL/OTG/otg.c -openair2/UTIL/OTG/otg.h -openair2/UTIL/OTG/otg_config.h -openair2/UTIL/OTG/otg_defs.h -openair2/UTIL/OTG/otg_externs.h -openair2/UTIL/OTG/otg_form.c -openair2/UTIL/OTG/otg_form.h -openair2/UTIL/OTG/otg_kpi.c -openair2/UTIL/OTG/otg_kpi.h -openair2/UTIL/OTG/otg_models.c -openair2/UTIL/OTG/otg_models.h -openair2/UTIL/OTG/otg_rx.c -openair2/UTIL/OTG/otg_rx.h -openair2/UTIL/OTG/otg_rx_socket.c -openair2/UTIL/OTG/otg_rx_socket.h -openair2/UTIL/OTG/otg_tx.c -openair2/UTIL/OTG/otg_tx.h -openair2/UTIL/OTG/otg_tx_socket.c -openair2/UTIL/OTG/otg_tx_socket.h -openair2/UTIL/OTG/otg_vars.h -openair2/UTIL/OTG/OTGplot -openair2/UTIL/OTG/traffic_config.h -openair2/UTIL/SCTP/COPYING -openair2/UTIL/TIMER/COPYING -openair2/UTIL/TIMER/umts_timer.c -openair2/UTIL/TIMER/umts_timer.h -openair2/UTIL/TIMER/umts_timer_proto_extern.h -openair2/UTIL/TIMER/umts_timer_struct.h -openair2/UTIL/TRACE/COPYING -openair2/UTIL/TRACE/fifo_printf.c -openair2/UTIL/TRACE/fifo_printf.h -openair2/UTIL/TRACE/fifo_printf_proto_extern.h -openair2/UTIL/TRACE/print.h -openair2/UTIL/queue.h -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-CommonDataTypes.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Constants.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-Containers.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-IEs.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Contents.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Definitions.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU-Descriptions.asn -openair2/X2AP/MESSAGES/ASN1/R.UNKNOWN/X2AP-PDU.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-CommonDataTypes.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Constants.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-Containers.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-IEs.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Contents.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU-Descriptions.asn -openair2/X2AP/MESSAGES/ASN1/R11.2/X2AP-PDU.asn -openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py -openair2/X2AP/COPYING -openair2/X2AP/x2ap.c -openair2/X2AP/x2ap.h -openair2/X2AP/x2ap_common.c -openair2/X2AP/x2ap_common.h -openair3/DOCS/DOXYGEN/Doxyfile -openair3/DOCS/TEMPLATES/CODE/images/arch.eps -openair3/DOCS/TEMPLATES/CODE/images/arch.png -openair3/DOCS/TEMPLATES/CODE/COPYING -openair3/DOCS/TEMPLATES/CODE/Doxyfile -openair3/DOCS/TEMPLATES/CODE/example_doxy.h -openair3/DOCS/TEMPLATES/README/Readme.doxy -openair3/DOCS/TEMPLATES/README/readme.txt -openair3/DOCS/COPYING -openair3/MESH/RRM/DOC/Doxyfile_rrm -openair3/MESH/RRM/EMUL/actdiff.c -openair3/MESH/RRM/EMUL/actdiff.h -openair3/MESH/RRM/EMUL/emul_interface.c -openair3/MESH/RRM/EMUL/emul_interface.h -openair3/MESH/RRM/EMUL/scenario.c -openair3/MESH/RRM/GRAPH/graph -openair3/MESH/RRM/GRAPH/graph_enum.h -openair3/MESH/RRM/GRAPH/graph_int.c -openair3/MESH/RRM/GRAPH/graph_int.h -openair3/MESH/RRM/GRAPH/graph_sock.c -openair3/MESH/RRM/GRAPH/graph_sock.h -openair3/MESH/RRM/VCD/Config_wave.xxx -openair3/MESH/RRM/VCD/gtkwave.ini -openair3/MESH/RRM/VCD/mkvcd -openair3/MESH/RRM/all_freq_to_users_form.c -openair3/MESH/RRM/all_freq_to_users_form.fd -openair3/MESH/RRM/all_freq_to_users_form.h -openair3/MESH/RRM/ch_init.c -openair3/MESH/RRM/ch_init.h -openair3/MESH/RRM/channels_db.c -openair3/MESH/RRM/channels_db.h -openair3/MESH/RRM/cmm_msg.c -openair3/MESH/RRM/cmm_msg.h -openair3/MESH/RRM/debug.h -openair3/MESH/RRM/freq_ass_op.c -openair3/MESH/RRM/freq_ass_op.h -openair3/MESH/RRM/ip_msg.c -openair3/MESH/RRM/ip_msg.h -openair3/MESH/RRM/mr_attach.c -openair3/MESH/RRM/mr_attach.h -openair3/MESH/RRM/msg_mngt.c -openair3/MESH/RRM/msg_mngt.h -openair3/MESH/RRM/neighbor_db.c -openair3/MESH/RRM/neighbor_db.h -openair3/MESH/RRM/pusu_msg.c -openair3/MESH/RRM/pusu_msg.h -openair3/MESH/RRM/rb_db.c -openair3/MESH/RRM/rb_db.h -openair3/MESH/RRM/rb_mngt.c -openair3/MESH/RRM/rb_mngt.h -openair3/MESH/RRM/rrc_2_rrm_msg.c -openair3/MESH/RRM/rrc_rrm_msg.h -openair3/MESH/RRM/rrm.c -openair3/MESH/RRM/rrm.cfg -openair3/MESH/RRM/rrm.h -openair3/MESH/RRM/rrm.sh -openair3/MESH/RRM/rrm_2_rrc_msg.c -openair3/MESH/RRM/rrm_2_sensing_msg.c -openair3/MESH/RRM/rrm_5nodes.sh -openair3/MESH/RRM/rrm_constant.c -openair3/MESH/RRM/rrm_constant.h -openair3/MESH/RRM/rrm_graph.c -openair3/MESH/RRM/rrm_SENS.sh -openair3/MESH/RRM/rrm_sock.c -openair3/MESH/RRM/rrm_sock.h -openair3/MESH/RRM/rrm_SS2_CH1.sh -openair3/MESH/RRM/rrm_SS2_global.sh -openair3/MESH/RRM/rrm_test.sh -openair3/MESH/RRM/rrm_util.c -openair3/MESH/RRM/rrm_util.h -openair3/MESH/RRM/sens_CH1_scen_2.c -openair3/MESH/RRM/sens_CH1_scen_2.fd -openair3/MESH/RRM/sens_CH1_scen_2.h -openair3/MESH/RRM/sens_db.c -openair3/MESH/RRM/sens_db.h -openair3/MESH/RRM/sens_op.c -openair3/MESH/RRM/sens_op.h -openair3/MESH/RRM/sens_scen_2_form.c -openair3/MESH/RRM/sens_scen_2_form.fd -openair3/MESH/RRM/sens_scen_2_form.h -openair3/MESH/RRM/sens_sensor.c -openair3/MESH/RRM/sens_sensor.fd -openair3/MESH/RRM/sens_sensor.h -openair3/MESH/RRM/sensing_2_rrm_msg.c -openair3/MESH/RRM/sensing_form.c -openair3/MESH/RRM/sensing_form.fd -openair3/MESH/RRM/sensing_form.h -openair3/MESH/RRM/sensing_rrm_msg.h -openair3/MESH/RRM/SN_freq_form.c -openair3/MESH/RRM/SN_freq_form.fd -openair3/MESH/RRM/SN_freq_form.h -openair3/MESH/RRM/transact.c -openair3/MESH/RRM/transact.h -openair3/MESH/cmm_ral_interface.h -openair3/MESH/cmm_rrm_interface.h -openair3/MESH/COPYING -openair3/MESH/L3_rrc_defs.h -openair3/MESH/L3_rrc_interface.h -openair3/NEMO_SHO/COPYING -openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nasmesh-2009-may-12.patch -openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-20080108.patch -openair3/NEMO_SHO/mipv6-daemon-umip-0.4-nepl-mcoa-20080108.patch -openair3/NEMO_SHO/mipv6-daemon-umip-0.4-sho-20080331.patch -openair3/NEMO_SHO/mipv6-daemon-umip-0.4.tar.gz -openair3/NEMO_SHO/README -openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/output.0 -openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/output.1 -openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/requests -openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/traces.0 -openair3/PMIPv6/freeradius-client-1.1.6/autom4te.cache/traces.1 -openair3/PMIPv6/freeradius-client-1.1.6/debian/changelog -openair3/PMIPv6/freeradius-client-1.1.6/debian/conffiles -openair3/PMIPv6/freeradius-client-1.1.6/debian/control -openair3/PMIPv6/freeradius-client-1.1.6/debian/copyright -openair3/PMIPv6/freeradius-client-1.1.6/debian/dirs -openair3/PMIPv6/freeradius-client-1.1.6/debian/docs -openair3/PMIPv6/freeradius-client-1.1.6/debian/examples -openair3/PMIPv6/freeradius-client-1.1.6/debian/files -openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng-dev.dirs -openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.conffiles -openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.dirs -openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.postinst -openair3/PMIPv6/freeradius-client-1.1.6/debian/libradius-ng.substvars -openair3/PMIPv6/freeradius-client-1.1.6/debian/postrm -openair3/PMIPv6/freeradius-client-1.1.6/debian/radiusclient-ng.dirs -openair3/PMIPv6/freeradius-client-1.1.6/debian/radiusclient-ng.postinst -openair3/PMIPv6/freeradius-client-1.1.6/debian/README.debian -openair3/PMIPv6/freeradius-client-1.1.6/debian/rules -openair3/PMIPv6/freeradius-client-1.1.6/debian/substvars -openair3/PMIPv6/freeradius-client-1.1.6/debian/watch -openair3/PMIPv6/freeradius-client-1.1.6/doc/ChangeLog -openair3/PMIPv6/freeradius-client-1.1.6/doc/instop.html -openair3/PMIPv6/freeradius-client-1.1.6/doc/login.example -openair3/PMIPv6/freeradius-client-1.1.6/doc/README -openair3/PMIPv6/freeradius-client-1.1.6/doc/release-method.txt -openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary -openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.ascend -openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.compat -openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.merit -openair3/PMIPv6/freeradius-client-1.1.6/etc/dictionary.sip -openair3/PMIPv6/freeradius-client-1.1.6/etc/issue -openair3/PMIPv6/freeradius-client-1.1.6/etc/port-id-map -openair3/PMIPv6/freeradius-client-1.1.6/etc/radiusclient.conf -openair3/PMIPv6/freeradius-client-1.1.6/etc/radiusclient.conf.in -openair3/PMIPv6/freeradius-client-1.1.6/etc/servers -openair3/PMIPv6/freeradius-client-1.1.6/examples/clients.conf -openair3/PMIPv6/freeradius-client-1.1.6/examples/radiusd.conf -openair3/PMIPv6/freeradius-client-1.1.6/examples/users -openair3/PMIPv6/freeradius-client-1.1.6/include/freeradius-client.h -openair3/PMIPv6/freeradius-client-1.1.6/include/includes.h -openair3/PMIPv6/freeradius-client-1.1.6/include/messages.h -openair3/PMIPv6/freeradius-client-1.1.6/include/pathnames.h -openair3/PMIPv6/freeradius-client-1.1.6/lib/avpair.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/buildreq.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/clientid.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/config.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/dict.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/env.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/ip_util.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/lock.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/log.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/md5.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/md5.h -openair3/PMIPv6/freeradius-client-1.1.6/lib/options.h -openair3/PMIPv6/freeradius-client-1.1.6/lib/sendserver.c -openair3/PMIPv6/freeradius-client-1.1.6/lib/util.c -openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/ip-down -openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/ip-up -openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/login.radius -openair3/PMIPv6/freeradius-client-1.1.6/login.radius/migs/README -openair3/PMIPv6/freeradius-client-1.1.6/login.radius/login.radius -openair3/PMIPv6/freeradius-client-1.1.6/login.radius/README -openair3/PMIPv6/freeradius-client-1.1.6/patches/merit-2.4.21-CHAP.diff -openair3/PMIPv6/freeradius-client-1.1.6/patches/radiusd-1.16.accounting.diff -openair3/PMIPv6/freeradius-client-1.1.6/patches/radiusd-1.16.shadow.diff -openair3/PMIPv6/freeradius-client-1.1.6/patches/README -openair3/PMIPv6/freeradius-client-1.1.6/rpm/radiusclient.spec -openair3/PMIPv6/freeradius-client-1.1.6/src/local.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radacct -openair3/PMIPv6/freeradius-client-1.1.6/src/radacct.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radembedded -openair3/PMIPv6/freeradius-client-1.1.6/src/radembedded.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radexample -openair3/PMIPv6/freeradius-client-1.1.6/src/radexample.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radius.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radiusclient -openair3/PMIPv6/freeradius-client-1.1.6/src/radiusclient.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radlogin -openair3/PMIPv6/freeradius-client-1.1.6/src/radlogin.c -openair3/PMIPv6/freeradius-client-1.1.6/src/radlogin.h -openair3/PMIPv6/freeradius-client-1.1.6/src/radstatus -openair3/PMIPv6/freeradius-client-1.1.6/src/radstatus.c -openair3/PMIPv6/freeradius-client-1.1.6/aclocal.m4 -openair3/PMIPv6/freeradius-client-1.1.6/BUGS -openair3/PMIPv6/freeradius-client-1.1.6/config.guess -openair3/PMIPv6/freeradius-client-1.1.6/config.h -openair3/PMIPv6/freeradius-client-1.1.6/config.h.in -openair3/PMIPv6/freeradius-client-1.1.6/config.log -openair3/PMIPv6/freeradius-client-1.1.6/config.status -openair3/PMIPv6/freeradius-client-1.1.6/config.sub -openair3/PMIPv6/freeradius-client-1.1.6/configure -openair3/PMIPv6/freeradius-client-1.1.6/configure.in -openair3/PMIPv6/freeradius-client-1.1.6/COPYRIGHT -openair3/PMIPv6/freeradius-client-1.1.6/depcomp -openair3/PMIPv6/freeradius-client-1.1.6/install-sh -openair3/PMIPv6/freeradius-client-1.1.6/libtool -openair3/PMIPv6/freeradius-client-1.1.6/ltmain.sh -openair3/PMIPv6/freeradius-client-1.1.6/missing -openair3/PMIPv6/freeradius-client-1.1.6/mkinstalldirs -openair3/PMIPv6/freeradius-client-1.1.6/README -openair3/PMIPv6/freeradius-client-1.1.6/README.radexample -openair3/PMIPv6/freeradius-client-1.1.6/stamp-h -openair3/PMIPv6/freeradius-client-1.1.6/stamp-h1 -openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pcap2msc -openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pcap2msc_check.py -openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pcap2msc_filter.py -openair3/PMIPv6/pmipv6-daemon-umip/extras/output-process/pmip_mscgen.sh -openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/lma_guest_setup.bash -openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/lma_vm_setup.bash -openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mag_guest_setup.bash -openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mag_vm_setup.bash -openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mn_guest_setup.bash -openair3/PMIPv6/pmipv6-daemon-umip/extras/VIRTUAL_BOX/mn_vm_setup.bash -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-cn.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-ha-lma.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-ha.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-lma.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-mag1.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-mag2.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-mn.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-nemo-ha.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/example-nemo-mn.conf -openair3/PMIPv6/pmipv6-daemon-umip/extras/mac-mapping.auth -openair3/PMIPv6/pmipv6-daemon-umip/extras/PMIPv6_schema_example_1LMA_2MRs.jpg -openair3/PMIPv6/pmipv6-daemon-umip/extras/UMIP0.4_ALL_UBUNTU_GEN_SEQ_DIAGRAM.10.04.sh -openair3/PMIPv6/pmipv6-daemon-umip/extras/UMIP0.4_LMA_UBUNTU.10.04.py -openair3/PMIPv6/pmipv6-daemon-umip/extras/UMIP0.4_MAG_UBUNTU.10.04.py -openair3/PMIPv6/pmipv6-daemon-umip/include/linux/xfrm.h -openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/icmp6.h -openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/in.h -openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/ip6.h -openair3/PMIPv6/pmipv6-daemon-umip/include/netinet/ip6mh.h -openair3/PMIPv6/pmipv6-daemon-umip/include/libnetlink.h -openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_opt_find.c -openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_add.c -openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_getaddr.c -openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_gettype.c -openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_init.c -openair3/PMIPv6/pmipv6-daemon-umip/libmissing/inet6_rth_space.c -openair3/PMIPv6/pmipv6-daemon-umip/libnetlink/libnetlink.c -openair3/PMIPv6/pmipv6-daemon-umip/libnetlink/README -openair3/PMIPv6/pmipv6-daemon-umip/licenses/cisco-ipr-draft-ietf-nemo-basic-support-03.txt -openair3/PMIPv6/pmipv6-daemon-umip/licenses/nokia-ipr-draft-ietf-nemo-basic-support.txt -openair3/PMIPv6/pmipv6-daemon-umip/man/mip6d.conf.tmpl -openair3/PMIPv6/pmipv6-daemon-umip/man/mip6d.tmpl -openair3/PMIPv6/pmipv6-daemon-umip/man/mipv6.tmpl -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/docs/Doxyfile -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/docs/footer.html -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_cache.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_cache.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_consts.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_fsm.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_fsm.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_handler.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_handler.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_hnp_cache.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_hnp_cache.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_init.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_init.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_lma_proc.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_lma_proc.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_mag_proc.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_mag_proc.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_msgs.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_msgs.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_pcap.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_pcap.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_tunnel.c -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_tunnel.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip/pmip_types.h -openair3/PMIPv6/pmipv6-daemon-umip/src/bcache.c -openair3/PMIPv6/pmipv6-daemon-umip/src/bcache.h -openair3/PMIPv6/pmipv6-daemon-umip/src/bul.c -openair3/PMIPv6/pmipv6-daemon-umip/src/bul.h -openair3/PMIPv6/pmipv6-daemon-umip/src/cn.c -openair3/PMIPv6/pmipv6-daemon-umip/src/cn.h -openair3/PMIPv6/pmipv6-daemon-umip/src/conf.c -openair3/PMIPv6/pmipv6-daemon-umip/src/conf.h -openair3/PMIPv6/pmipv6-daemon-umip/src/crypto.c -openair3/PMIPv6/pmipv6-daemon-umip/src/crypto.h -openair3/PMIPv6/pmipv6-daemon-umip/src/debug.c -openair3/PMIPv6/pmipv6-daemon-umip/src/debug.h -openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_ha.c -openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_ha.h -openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_mn.c -openair3/PMIPv6/pmipv6-daemon-umip/src/dhaad_mn.h -openair3/PMIPv6/pmipv6-daemon-umip/src/gram.y -openair3/PMIPv6/pmipv6-daemon-umip/src/ha.c -openair3/PMIPv6/pmipv6-daemon-umip/src/ha.h -openair3/PMIPv6/pmipv6-daemon-umip/src/hash.c -openair3/PMIPv6/pmipv6-daemon-umip/src/hash.h -openair3/PMIPv6/pmipv6-daemon-umip/src/icmp6.c -openair3/PMIPv6/pmipv6-daemon-umip/src/icmp6.h -openair3/PMIPv6/pmipv6-daemon-umip/src/ipsec.c -openair3/PMIPv6/pmipv6-daemon-umip/src/ipsec.h -openair3/PMIPv6/pmipv6-daemon-umip/src/keygen.c -openair3/PMIPv6/pmipv6-daemon-umip/src/keygen.h -openair3/PMIPv6/pmipv6-daemon-umip/src/list.h -openair3/PMIPv6/pmipv6-daemon-umip/src/main.c -openair3/PMIPv6/pmipv6-daemon-umip/src/mh.c -openair3/PMIPv6/pmipv6-daemon-umip/src/mh.h -openair3/PMIPv6/pmipv6-daemon-umip/src/mipv6.h -openair3/PMIPv6/pmipv6-daemon-umip/src/mk-pmgr_c.sh -openair3/PMIPv6/pmipv6-daemon-umip/src/mk-pmgr_h.sh -openair3/PMIPv6/pmipv6-daemon-umip/src/mn.c -openair3/PMIPv6/pmipv6-daemon-umip/src/mn.h -openair3/PMIPv6/pmipv6-daemon-umip/src/movement.c -openair3/PMIPv6/pmipv6-daemon-umip/src/movement.h -openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_ha.c -openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_ha.h -openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_mn.c -openair3/PMIPv6/pmipv6-daemon-umip/src/mpdisc_mn.h -openair3/PMIPv6/pmipv6-daemon-umip/src/ndisc.c -openair3/PMIPv6/pmipv6-daemon-umip/src/ndisc.h -openair3/PMIPv6/pmipv6-daemon-umip/src/pmgr.c.in -openair3/PMIPv6/pmipv6-daemon-umip/src/pmgr.h.in -openair3/PMIPv6/pmipv6-daemon-umip/src/policy.c -openair3/PMIPv6/pmipv6-daemon-umip/src/policy.h -openair3/PMIPv6/pmipv6-daemon-umip/src/prefix.c -openair3/PMIPv6/pmipv6-daemon-umip/src/prefix.h -openair3/PMIPv6/pmipv6-daemon-umip/src/proc_sys.c -openair3/PMIPv6/pmipv6-daemon-umip/src/proc_sys.h -openair3/PMIPv6/pmipv6-daemon-umip/src/retrout.c -openair3/PMIPv6/pmipv6-daemon-umip/src/retrout.h -openair3/PMIPv6/pmipv6-daemon-umip/src/rtnl.c -openair3/PMIPv6/pmipv6-daemon-umip/src/rtnl.h -openair3/PMIPv6/pmipv6-daemon-umip/src/scan.l -openair3/PMIPv6/pmipv6-daemon-umip/src/statistics.h -openair3/PMIPv6/pmipv6-daemon-umip/src/tqueue.c -openair3/PMIPv6/pmipv6-daemon-umip/src/tqueue.h -openair3/PMIPv6/pmipv6-daemon-umip/src/tunnelctl.c -openair3/PMIPv6/pmipv6-daemon-umip/src/tunnelctl.h -openair3/PMIPv6/pmipv6-daemon-umip/src/util.c -openair3/PMIPv6/pmipv6-daemon-umip/src/util.h -openair3/PMIPv6/pmipv6-daemon-umip/src/vars.c -openair3/PMIPv6/pmipv6-daemon-umip/src/vt.c -openair3/PMIPv6/pmipv6-daemon-umip/src/vt.h -openair3/PMIPv6/pmipv6-daemon-umip/src/xfrm.c -openair3/PMIPv6/pmipv6-daemon-umip/src/xfrm.h -openair3/PMIPv6/pmipv6-daemon-umip/AUTHORS -openair3/PMIPv6/pmipv6-daemon-umip/BUGS -openair3/PMIPv6/pmipv6-daemon-umip/ChangeLog -openair3/PMIPv6/pmipv6-daemon-umip/chkconf_kernel.sh -openair3/PMIPv6/pmipv6-daemon-umip/configure.ac -openair3/PMIPv6/pmipv6-daemon-umip/COPYING -openair3/PMIPv6/pmipv6-daemon-umip/COPYING.NEMO -openair3/PMIPv6/pmipv6-daemon-umip/depcomp -openair3/PMIPv6/pmipv6-daemon-umip/INSTALL -openair3/PMIPv6/pmipv6-daemon-umip/install-sh -openair3/PMIPv6/pmipv6-daemon-umip/INSTALL.kernel -openair3/PMIPv6/pmipv6-daemon-umip/missing -openair3/PMIPv6/pmipv6-daemon-umip/NEWS -openair3/PMIPv6/pmipv6-daemon-umip/README -openair3/PMIPv6/pmipv6-daemon-umip/README.IPsec -openair3/PMIPv6/pmipv6-daemon-umip/README.NEMO -openair3/PMIPv6/pmipv6-daemon-umip/THANKS -openair3/PMIPv6/AUTHORS -openair3/PMIPv6/BUGS -openair3/PMIPv6/CHANGELOG -openair3/PMIPv6/chkconf_kernel.sh -openair3/PMIPv6/COPYING -openair3/PMIPv6/INSTALL -openair3/PMIPv6/INSTALL.kernel -openair3/PMIPv6/README.first -openair3/PMIPv6/VERSION -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_bit_buffer.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F13_data_types_for_information_elements_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F1_basic_data_types_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F2_general_data_types_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F3_data_types_for_address_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F4_data_types_for_links_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_F9_data_types_for_qos_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_header_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_L2_type_values_for_tlv_encoding.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_log.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_Medieval_extensions.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_msg_codec.c -openair3/RAL-LTE/INTERFACE-802.21/C/MIH_C_primitive_codec.c -openair3/RAL-LTE/INTERFACE-802.21/DOXYGEN/Doxyfile -openair3/RAL-LTE/INTERFACE-802.21/DOXYGEN/footer.html -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_bit_buffer.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F13_data_types_for_information_elements_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F1_basic_data_types_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F2_general_data_types_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F3_data_types_for_address_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F4_data_types_for_links_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_F9_data_types_for_qos_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_header_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_L2_type_values_for_tlv_encoding.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Link_Constants.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Link_Messages.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Link_Primitives.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_log.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Medieval_extensions.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_msg_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_primitive_codec.h -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE/MIH_C_Types.h -openair3/RAL-LTE/INTERFACE-802.21/readme.txt -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_action.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_constants.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_main.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_mih_msg.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_parameters.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_process.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_proto.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_rrc_msg.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_subscribe.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_thresholds.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/lteRALenb_variables.h -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE/rrc_d_types.h -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/dist/eNB_lte_user.conf -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/dist/link_sap.conf -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/dist/odtone.conf -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/dummy_130606.tgz -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/eNB_lte_user.conf -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/Jamfile -openair3/RAL-LTE/LTE_RAL_ENB/MIH-USER/lte_test_user/rg_mih_usr.cpp -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_action.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_ioctl.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_main.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_mih_msg.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_parameters.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_process.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_rrc_msg.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_subscribe.c -openair3/RAL-LTE/LTE_RAL_ENB/SRC/lteRALenb_thresholds.c -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_action.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_constants.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_main.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_mih_execute.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_mih_msg.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_parameters.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_proto.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_rrc_msg.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_subscribe.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_thresholds.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/lteRALue_variables.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/nas_ue_ioctl.h -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE/rrc_d_types.h -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/dist/link_sap.conf -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/dist/lte_user.conf -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/dist/odtone.conf -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/Jamfile -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/lte_user.conf -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/mih_usr.cpp -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/README.txt -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/ue_lte_user.conf -openair3/RAL-LTE/LTE_RAL_UE/MIH-USER/lte_test_user/ue_lte_user.cpp -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_action.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_ioctl.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_main.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_mih_execute.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_mih_msg.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_parameters.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_process.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_rrc_msg.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_subscribe.c -openair3/RAL-LTE/LTE_RAL_UE/SRC/lteRALue_thresholds.c -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_0.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_1.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_10.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_11.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_12.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_2.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_3.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_mscgen_page_4.png -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/mih_usr.cpp -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/README.txt -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/VERSION0/rg_mih_usr.cpp -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/sendUDP-01 -openair3/RAL-LTE/RAL-DUMMY/802.21-SCENARIO/sendUDP-FF -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_action.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_constants.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_mih_msg.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_parameters.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_proto.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_subscribe.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_thresholds.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/eRALlte_variables.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_action.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_constants.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_get.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_main.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_mih_msg.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_parameters.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_proto.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_subscribe.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_thresholds.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/mRALlte_variables.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nas_rg_netlink.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nas_ue_ioctl.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nas_ue_netlink.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/nasUE_config.h -openair3/RAL-LTE/RAL-DUMMY/INCLUDE/rrc_d_types.h -openair3/RAL-LTE/RAL-DUMMY/MSCGEN_CHART/msc_gen.py -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_action.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_main.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_mih_msg.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_NAS.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_parameters.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_process.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_subscribe.c -openair3/RAL-LTE/RAL-DUMMY/SRC/eRALlte_thresholds.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_action.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_get.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_main.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_mih_msg.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_NAS.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_parameters.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_process.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_subscribe.c -openair3/RAL-LTE/RAL-DUMMY/SRC/mRALlte_thresholds.c -openair3/RAL-LTE/RAL-DUMMY/SRC/nasRGdummy.c -openair3/RAL-LTE/RAL-DUMMY/SRC/nasUEdummy.c -openair3/RAL-LTE/COPYING -openair3/RAL-LTE/RAL-LTE.readme.txt -openair3/UTILS/GPSDRIVE/maps/expedia/map_27650000_43.847_7.448.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.282_1.989.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.501_2.111.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.502_2.113.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_41.516_2.087.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.735_7.421.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.883_7.355.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.912_7.516.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_3950_43.923_7.527.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_47400_41.282_1.989.gif -openair3/UTILS/GPSDRIVE/maps/expedia/map_98750_41.516_2.088.gif -openair3/UTILS/GPSDRIVE/maps/map_koord.txt -openair3/UTILS/GPSDRIVE/README.txt -openair3/UTILS/REMSERIAL-1.4.UDP/README.txt -openair3/UTILS/REMSERIAL-1.4.UDP/remserial.c -openair3/UTILS/REMSERIAL-1.4.UDP/stty.c -openair3/UTILS/COPYING -openair3/COPYING -openair3/history.txt -openairITS/mac/DOT11/compat/scripts/compat_firmware_install -openairITS/mac/DOT11/compat/scripts/gen-compat-autoconf.sh -openairITS/mac/DOT11/compat/scripts/gen-compat-config.sh -openairITS/mac/DOT11/compat/scripts/skip-colors -openairITS/mac/DOT11/compat/compat-2.6.14.c -openairITS/mac/DOT11/compat/compat-2.6.18.c -openairITS/mac/DOT11/compat/compat-2.6.19.c -openairITS/mac/DOT11/compat/compat-2.6.21.c -openairITS/mac/DOT11/compat/compat-2.6.22.c -openairITS/mac/DOT11/compat/compat-2.6.23.c -openairITS/mac/DOT11/compat/compat-2.6.24.c -openairITS/mac/DOT11/compat/compat-2.6.25.c -openairITS/mac/DOT11/compat/compat-2.6.26.c -openairITS/mac/DOT11/compat/compat-2.6.27.c -openairITS/mac/DOT11/compat/compat-2.6.28.c -openairITS/mac/DOT11/compat/compat-2.6.29.c -openairITS/mac/DOT11/compat/compat-2.6.32.c -openairITS/mac/DOT11/compat/compat-2.6.33.c -openairITS/mac/DOT11/compat/compat-2.6.35.c -openairITS/mac/DOT11/compat/compat-2.6.36.c -openairITS/mac/DOT11/compat/compat-2.6.37.c -openairITS/mac/DOT11/compat/compat-2.6.38.c -openairITS/mac/DOT11/compat/compat-2.6.39.c -openairITS/mac/DOT11/compat/compat-3.0.c -openairITS/mac/DOT11/compat/compat-3.2.c -openairITS/mac/DOT11/compat/compat-3.3.c -openairITS/mac/DOT11/compat/compat-3.5.c -openairITS/mac/DOT11/compat/compat_atomic.c -openairITS/mac/DOT11/compat/compat_firmware_class.c -openairITS/mac/DOT11/compat/cordic.c -openairITS/mac/DOT11/compat/crc8.c -openairITS/mac/DOT11/compat/kfifo.c -openairITS/mac/DOT11/compat/kstrtox.c -openairITS/mac/DOT11/compat/main.c -openairITS/mac/DOT11/compat/modules.order -openairITS/mac/DOT11/compat/pm_qos_params.c -openairITS/mac/DOT11/include/crypto/aes.h -openairITS/mac/DOT11/include/linux/bcma/bcma.h -openairITS/mac/DOT11/include/linux/bcma/bcma_driver_chipcommon.h -openairITS/mac/DOT11/include/linux/bcma/bcma_driver_mips.h -openairITS/mac/DOT11/include/linux/bcma/bcma_driver_pci.h -openairITS/mac/DOT11/include/linux/bcma/bcma_regs.h -openairITS/mac/DOT11/include/linux/bcma/bcma_soc.h -openairITS/mac/DOT11/include/linux/spi/libertas_spi.h -openairITS/mac/DOT11/include/linux/ssb/ssb.h -openairITS/mac/DOT11/include/linux/ssb/ssb_driver_chipcommon.h -openairITS/mac/DOT11/include/linux/ssb/ssb_driver_extif.h -openairITS/mac/DOT11/include/linux/ssb/ssb_driver_gige.h -openairITS/mac/DOT11/include/linux/ssb/ssb_driver_mips.h -openairITS/mac/DOT11/include/linux/ssb/ssb_driver_pci.h -openairITS/mac/DOT11/include/linux/ssb/ssb_embedded.h -openairITS/mac/DOT11/include/linux/ssb/ssb_regs.h -openairITS/mac/DOT11/include/linux/unaligned/access_ok.h -openairITS/mac/DOT11/include/linux/unaligned/be_byteshift.h -openairITS/mac/DOT11/include/linux/unaligned/be_memmove.h -openairITS/mac/DOT11/include/linux/unaligned/be_struct.h -openairITS/mac/DOT11/include/linux/unaligned/generic.h -openairITS/mac/DOT11/include/linux/unaligned/le_byteshift.h -openairITS/mac/DOT11/include/linux/unaligned/le_memmove.h -openairITS/mac/DOT11/include/linux/unaligned/le_struct.h -openairITS/mac/DOT11/include/linux/unaligned/memmove.h -openairITS/mac/DOT11/include/linux/unaligned/packed_struct.h -openairITS/mac/DOT11/include/linux/usb/rndis_host.h -openairITS/mac/DOT11/include/linux/usb/usbnet.h -openairITS/mac/DOT11/include/linux/ath9k_platform.h -openairITS/mac/DOT11/include/linux/atomic.h -openairITS/mac/DOT11/include/linux/average.h -openairITS/mac/DOT11/include/linux/bitops.h -openairITS/mac/DOT11/include/linux/compat-2.6.14.h -openairITS/mac/DOT11/include/linux/compat-2.6.18.h -openairITS/mac/DOT11/include/linux/compat-2.6.19.h -openairITS/mac/DOT11/include/linux/compat-2.6.20.h -openairITS/mac/DOT11/include/linux/compat-2.6.21.h -openairITS/mac/DOT11/include/linux/compat-2.6.22.h -openairITS/mac/DOT11/include/linux/compat-2.6.23.h -openairITS/mac/DOT11/include/linux/compat-2.6.24.h -openairITS/mac/DOT11/include/linux/compat-2.6.25.h -openairITS/mac/DOT11/include/linux/compat-2.6.26.h -openairITS/mac/DOT11/include/linux/compat-2.6.27.h -openairITS/mac/DOT11/include/linux/compat-2.6.28.h -openairITS/mac/DOT11/include/linux/compat-2.6.29.h -openairITS/mac/DOT11/include/linux/compat-2.6.30.h -openairITS/mac/DOT11/include/linux/compat-2.6.31.h -openairITS/mac/DOT11/include/linux/compat-2.6.32.h -openairITS/mac/DOT11/include/linux/compat-2.6.33.h -openairITS/mac/DOT11/include/linux/compat-2.6.34.h -openairITS/mac/DOT11/include/linux/compat-2.6.35.h -openairITS/mac/DOT11/include/linux/compat-2.6.36.h -openairITS/mac/DOT11/include/linux/compat-2.6.37.h -openairITS/mac/DOT11/include/linux/compat-2.6.38.h -openairITS/mac/DOT11/include/linux/compat-2.6.39.h -openairITS/mac/DOT11/include/linux/compat-2.6.h -openairITS/mac/DOT11/include/linux/compat-3.0.h -openairITS/mac/DOT11/include/linux/compat-3.1.h -openairITS/mac/DOT11/include/linux/compat-3.2.h -openairITS/mac/DOT11/include/linux/compat-3.3.h -openairITS/mac/DOT11/include/linux/compat-3.4.h -openairITS/mac/DOT11/include/linux/compat-3.5.h -openairITS/mac/DOT11/include/linux/compat_autoconf.h -openairITS/mac/DOT11/include/linux/cordic.h -openairITS/mac/DOT11/include/linux/crc8.h -openairITS/mac/DOT11/include/linux/eeprom_93cx6.h -openairITS/mac/DOT11/include/linux/export.h -openairITS/mac/DOT11/include/linux/ieee80211.h -openairITS/mac/DOT11/include/linux/kfifo.h -openairITS/mac/DOT11/include/linux/math64.h -openairITS/mac/DOT11/include/linux/nl80211.h -openairITS/mac/DOT11/include/linux/of.h -openairITS/mac/DOT11/include/linux/pci-aspm.h -openairITS/mac/DOT11/include/linux/pci_ids.h -openairITS/mac/DOT11/include/linux/pm_qos.h -openairITS/mac/DOT11/include/linux/pm_qos_params.h -openairITS/mac/DOT11/include/linux/pm_runtime.h -openairITS/mac/DOT11/include/linux/printk.h -openairITS/mac/DOT11/include/linux/rfkill.h -openairITS/mac/DOT11/include/linux/rfkill_backport.h -openairITS/mac/DOT11/include/linux/semaphore.h -openairITS/mac/DOT11/include/linux/tracepoint.h -openairITS/mac/DOT11/include/linux/wireless.h -openairITS/mac/DOT11/include/linux/wl12xx.h -openairITS/mac/DOT11/include/N/pcmcia/cistpl.h -openairITS/mac/DOT11/include/N/trace/define_trace.h -openairITS/mac/DOT11/include/net/cfg80211-wext.h -openairITS/mac/DOT11/include/net/cfg80211.h -openairITS/mac/DOT11/include/net/ieee80211_radiotap.h -openairITS/mac/DOT11/include/net/lib80211.h -openairITS/mac/DOT11/include/net/mac80211.h -openairITS/mac/DOT11/include/net/net_namespace.h -openairITS/mac/DOT11/include/net/regulatory.h -openairITS/mac/DOT11/net/mac80211/aes_ccm.c -openairITS/mac/DOT11/net/mac80211/aes_ccm.h -openairITS/mac/DOT11/net/mac80211/aes_cmac.c -openairITS/mac/DOT11/net/mac80211/aes_cmac.h -openairITS/mac/DOT11/net/mac80211/agg-rx.c -openairITS/mac/DOT11/net/mac80211/agg-tx.c -openairITS/mac/DOT11/net/mac80211/cfg.c -openairITS/mac/DOT11/net/mac80211/cfg.h -openairITS/mac/DOT11/net/mac80211/chan.c -openairITS/mac/DOT11/net/mac80211/debugfs.c -openairITS/mac/DOT11/net/mac80211/debugfs.h -openairITS/mac/DOT11/net/mac80211/debugfs_key.c -openairITS/mac/DOT11/net/mac80211/debugfs_key.h -openairITS/mac/DOT11/net/mac80211/debugfs_netdev.c -openairITS/mac/DOT11/net/mac80211/debugfs_netdev.h -openairITS/mac/DOT11/net/mac80211/debugfs_sta.c -openairITS/mac/DOT11/net/mac80211/debugfs_sta.h -openairITS/mac/DOT11/net/mac80211/driver-ops.h -openairITS/mac/DOT11/net/mac80211/driver-trace.c -openairITS/mac/DOT11/net/mac80211/driver-trace.h -openairITS/mac/DOT11/net/mac80211/event.c -openairITS/mac/DOT11/net/mac80211/ht.c -openairITS/mac/DOT11/net/mac80211/ibss.c -openairITS/mac/DOT11/net/mac80211/ieee80211_i.h -openairITS/mac/DOT11/net/mac80211/iface.c -openairITS/mac/DOT11/net/mac80211/key.c -openairITS/mac/DOT11/net/mac80211/key.h -openairITS/mac/DOT11/net/mac80211/led.c -openairITS/mac/DOT11/net/mac80211/led.h -openairITS/mac/DOT11/net/mac80211/main.c -openairITS/mac/DOT11/net/mac80211/mesh.c -openairITS/mac/DOT11/net/mac80211/mesh.h -openairITS/mac/DOT11/net/mac80211/mesh_hwmp.c -openairITS/mac/DOT11/net/mac80211/mesh_pathtbl.c -openairITS/mac/DOT11/net/mac80211/mesh_plink.c -openairITS/mac/DOT11/net/mac80211/michael.c -openairITS/mac/DOT11/net/mac80211/michael.h -openairITS/mac/DOT11/net/mac80211/mlme.c -openairITS/mac/DOT11/net/mac80211/modules.order -openairITS/mac/DOT11/net/mac80211/offchannel.c -openairITS/mac/DOT11/net/mac80211/pm.c -openairITS/mac/DOT11/net/mac80211/rate.c -openairITS/mac/DOT11/net/mac80211/rate.h -openairITS/mac/DOT11/net/mac80211/rc80211_minstrel.c -openairITS/mac/DOT11/net/mac80211/rc80211_minstrel.h -openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_debugfs.c -openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_ht.c -openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_ht.h -openairITS/mac/DOT11/net/mac80211/rc80211_minstrel_ht_debugfs.c -openairITS/mac/DOT11/net/mac80211/rc80211_pid.h -openairITS/mac/DOT11/net/mac80211/rc80211_pid_algo.c -openairITS/mac/DOT11/net/mac80211/rc80211_pid_debugfs.c -openairITS/mac/DOT11/net/mac80211/rx.c -openairITS/mac/DOT11/net/mac80211/scan.c -openairITS/mac/DOT11/net/mac80211/spectmgmt.c -openairITS/mac/DOT11/net/mac80211/sta_info.c -openairITS/mac/DOT11/net/mac80211/sta_info.h -openairITS/mac/DOT11/net/mac80211/status.c -openairITS/mac/DOT11/net/mac80211/tkip.c -openairITS/mac/DOT11/net/mac80211/tkip.h -openairITS/mac/DOT11/net/mac80211/tx.c -openairITS/mac/DOT11/net/mac80211/util.c -openairITS/mac/DOT11/net/mac80211/wep.c -openairITS/mac/DOT11/net/mac80211/wep.h -openairITS/mac/DOT11/net/mac80211/wme.c -openairITS/mac/DOT11/net/mac80211/wme.h -openairITS/mac/DOT11/net/mac80211/work.c -openairITS/mac/DOT11/net/mac80211/wpa.c -openairITS/mac/DOT11/net/mac80211/wpa.h -openairITS/mac/DOT11/net/wireless/chan.c -openairITS/mac/DOT11/net/wireless/core.c -openairITS/mac/DOT11/net/wireless/core.h -openairITS/mac/DOT11/net/wireless/db.txt -openairITS/mac/DOT11/net/wireless/debugfs.c -openairITS/mac/DOT11/net/wireless/debugfs.h -openairITS/mac/DOT11/net/wireless/ethtool.c -openairITS/mac/DOT11/net/wireless/ethtool.h -openairITS/mac/DOT11/net/wireless/genregdb.awk -openairITS/mac/DOT11/net/wireless/ibss.c -openairITS/mac/DOT11/net/wireless/lib80211.c -openairITS/mac/DOT11/net/wireless/lib80211_crypt_ccmp.c -openairITS/mac/DOT11/net/wireless/lib80211_crypt_tkip.c -openairITS/mac/DOT11/net/wireless/lib80211_crypt_wep.c -openairITS/mac/DOT11/net/wireless/mesh.c -openairITS/mac/DOT11/net/wireless/mlme.c -openairITS/mac/DOT11/net/wireless/modules.order -openairITS/mac/DOT11/net/wireless/nl80211.c -openairITS/mac/DOT11/net/wireless/nl80211.h -openairITS/mac/DOT11/net/wireless/radiotap.c -openairITS/mac/DOT11/net/wireless/reg.c -openairITS/mac/DOT11/net/wireless/reg.h -openairITS/mac/DOT11/net/wireless/regdb.h -openairITS/mac/DOT11/net/wireless/scan.c -openairITS/mac/DOT11/net/wireless/sme.c -openairITS/mac/DOT11/net/wireless/sysfs.c -openairITS/mac/DOT11/net/wireless/sysfs.h -openairITS/mac/DOT11/net/wireless/util.c -openairITS/mac/DOT11/net/wireless/wext-compat.c -openairITS/mac/DOT11/net/wireless/wext-compat.h -openairITS/mac/DOT11/net/wireless/wext-core.c -openairITS/mac/DOT11/net/wireless/wext-priv.c -openairITS/mac/DOT11/net/wireless/wext-proc.c -openairITS/mac/DOT11/net/wireless/wext-sme.c -openairITS/mac/DOT11/net/wireless/wext-spy.c -openairITS/mac/DOT11/scripts/admin-clean.sh -openairITS/mac/DOT11/scripts/admin-refresh.sh -openairITS/mac/DOT11/scripts/admin-update.sh -openairITS/mac/DOT11/scripts/alx-enable -openairITS/mac/DOT11/scripts/athenable -openairITS/mac/DOT11/scripts/athload -openairITS/mac/DOT11/scripts/b43enable -openairITS/mac/DOT11/scripts/b43load -openairITS/mac/DOT11/scripts/btunload.sh -openairITS/mac/DOT11/scripts/check_config.sh -openairITS/mac/DOT11/scripts/check_depmod -openairITS/mac/DOT11/scripts/compress_modules -openairITS/mac/DOT11/scripts/driver-select -openairITS/mac/DOT11/scripts/gen-compat-autoconf.sh -openairITS/mac/DOT11/scripts/gen-stable-release.sh -openairITS/mac/DOT11/scripts/iwl-enable -openairITS/mac/DOT11/scripts/iwl-load -openairITS/mac/DOT11/scripts/madwifi-unload -openairITS/mac/DOT11/scripts/modlib.sh -openairITS/mac/DOT11/scripts/skip-colors -openairITS/mac/DOT11/scripts/unload.sh -openairITS/mac/DOT11/scripts/update-initramfs -openairITS/mac/DOT11/scripts/wlunload.sh -openairITS/mac/DOT11/code-metrics.txt -openairITS/mac/DOT11/compat_base_tree -openairITS/mac/DOT11/compat_base_tree_version -openairITS/mac/DOT11/compat_version -openairITS/mac/DOT11/config.mk -openairITS/mac/DOT11/COPYRIGHT -openairITS/mac/DOT11/MAINTAINERS -openairITS/mac/DOT11/README -openairITS/phy/DOT11/commonvars.h -openairITS/phy/DOT11/crc32.c -openairITS/phy/DOT11/data_detection.c -openairITS/phy/DOT11/defs.h -openairITS/phy/DOT11/generate_STSLTS_corr.m -openairITS/phy/DOT11/initial_sync.c -openairITS/phy/DOT11/interleaver.c -openairITS/phy/DOT11/phy_tx_start.c -openairITS/phy/DOT11/scrambler.c -openairITS/phy/DOT11/STS_LTS_F.h -openairITS/phy/DOT11/txvars.h -openairITS/phy/DRIVERS/ieee80211p-driver.c -openairITS/phy/DRIVERS/ieee80211p-driver.h -openairITS/phy/DRIVERS/ieee80211p-netlinkapi.c -openairITS/phy/DRIVERS/ieee80211p-netlinkapi.h -openairITS/phy/DRIVERS/ieee80211p-softmodem.c -openairITS/phy/SIMULATION/PER_PLOTS/errors_0_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_0_256.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_1_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_1_256.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_2_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_2_256.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_3_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_3_256.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_4_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_4_256.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_5_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/errors_5_256.m -openairITS/phy/SIMULATION/PER_PLOTS/plots.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_0_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_0_256.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_1_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_1_256.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_2_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_2_256.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_3_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_3_256.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_4_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_4_256.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_5_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/signal_errors_5_256.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_0_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_0_256.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_1_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_1_256.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_2_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_2_256.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_3_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_3_256.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_4_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_4_256.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_5_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/SNR_5_256.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_0_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_0_256.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_1_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_1_256.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_2_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_2_256.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_3_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_3_256.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_4_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_4_256.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_5_1024.m -openairITS/phy/SIMULATION/PER_PLOTS/trials_5_256.m -openairITS/phy/SIMULATION/dot11sim.c -openairITS/ieee80211p_compile_modules.sh -openairITS/ieee80211p_configure_interface.sh -openairITS/ieee80211p_insert_modules.sh -openairITS/ieee80211p_setup_vars.sh -svn2git/authors.txt -svn2git/authors_original.txt -svn2git/authors_original_java_output.txt -svn2git/check_diff_author.sh -svn2git/git-author-rewrite.sh -svn2git/README.txt -targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c -targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h -targets/ARCH/COMMON/common_lib.h -targets/ARCH/COMMON/COPYING -targets/ARCH/ETHERNET/USERSPACE/LIB/COPYING -targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c -targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs -targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf -targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk -targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd -targets/ARCH/EXMIMO/BITSTREAM/program_fpga -targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd -targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd -targets/ARCH/EXMIMO/DEFS/COPYING -targets/ARCH/EXMIMO/DEFS/openair_device.h -targets/ARCH/EXMIMO/DEFS/pcie_interface.h -targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/COPYING -targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h -targets/ARCH/EXMIMO/DRIVER/eurecom/do_reenumerate_expressmimo.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/do_reinsert_driver.sh -targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c -targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h -targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c -targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c -targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c -targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/COPYING -targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reenumerate_expressmimo.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/do_reinsert_driver.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h -targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c -targets/ARCH/EXMIMO/DRIVER/exmimo3/test_script.sh -targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h -targets/ARCH/EXMIMO/DRIVER/telecomparistech/COPYING -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c -targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c -targets/ARCH/EXMIMO/DRIVER/readme.txt -targets/ARCH/EXMIMO/USERSPACE/LIB/COPYING -targets/ARCH/EXMIMO/USERSPACE/LIB/example.c -targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c -targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h -targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c -targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/COPYING -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo1 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v10 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/sdr_expressmimo2_v9 -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/COPYING -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m -targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m -targets/ARCH/USRP/USERSPACE/LIB/COPYING -targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp -targets/COMMON/COPYING -targets/COMMON/create_tasks.c -targets/COMMON/create_tasks.h -targets/DOCS/images/oai_logo.png -targets/DOCS/api_icic.xml -targets/DOCS/Doxyfile -targets/DOCS/oaiemu.doc -targets/DOCS/oaisim_walkthrough.pdf -targets/DOCS/openair_header.tex -targets/DOCS/path_loss_oaisim.xlsx -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf -targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/COPYING -targets/PROJECTS/E-MBMS/build_all.bash -targets/PROJECTS/E-MBMS/enb.conf -targets/PROJECTS/E-MBMS/start_enb.bash -targets/PROJECTS/E-MBMS/start_ue.bash -targets/PROJECTS/E-MBMS/utils.bash -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.rel10.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band3.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band38.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band39.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band4.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band5.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.exmimo2_2a.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.100PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.exmimo2.openEPC.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.local.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.epc.remote.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.usrpb210.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.centos.nord.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band13_band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band38_band44.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.band7_band20.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.dual.rel10.band13_band4.exmimo2.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.pft.memphis.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sequans.sud.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.sfr.sud.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.generic.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/epc.on.enb.example.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.band7.epc_eur.local.exmimo2_2a.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/example.enb.epc_eur.local.exmimo.conf -targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml -targets/PROJECTS/GENERIC-LTE-EPC/COPYING -targets/PROJECTS/GENERIC-LTE-EPC/interfaces.bash -targets/PROJECTS/GENERIC-LTE-EPC/networks.bash -targets/PROJECTS/GENERIC-LTE-EPC/start_enb_and_ue_virt.bash -targets/PROJECTS/GENERIC-LTE-EPC/start_ue.bash -targets/PROJECTS/GENERIC-LTE-EPC/utils.bash -targets/PROJECTS/GENERIC-LTE-EPC/virtual_box.bash -targets/PROJECTS/LOCALIZATION/filesave0811.mat -targets/PROJECTS/LOCALIZATION/generation.m -targets/PROJECTS/LOCALIZATION/initial_sync.m -targets/PROJECTS/LOCALIZATION/initparams.m -targets/PROJECTS/LOCALIZATION/plots.m -targets/PROJECTS/LOCALIZATION/recup.m -targets/PROJECTS/LOCALIZATION/where2.m -targets/PROJECTS/LOCALIZATION/where2_v1_final.mat -targets/PROJECTS/LOCALIZATION/where2_vf.m -targets/PROJECTS/TDDREC/v0/alterproj.m -targets/PROJECTS/TDDREC/v0/beamforming.m -targets/PROJECTS/TDDREC/v0/calibration.m -targets/PROJECTS/TDDREC/v0/genorthqpskseq.m -targets/PROJECTS/TDDREC/v0/genrandpskseq.m -targets/PROJECTS/TDDREC/v0/initparams.m -targets/PROJECTS/TDDREC/v0/initparams2.m -targets/PROJECTS/TDDREC/v0/ofdm_mod.m -targets/PROJECTS/TDDREC/v0/readme.txt -targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m -targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m -targets/PROJECTS/TDDREC/v0/runmeas_mimo.m -targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m -targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m -targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m -targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m -targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m -targets/PROJECTS/TDDREC/f_ch_est.m -targets/PROJECTS/TDDREC/f_ofdm_mod.m -targets/PROJECTS/TDDREC/f_ofdm_rx.m -targets/PROJECTS/TDDREC/f_ofdm_tx.m -targets/PROJECTS/TDDREC/f_tls_ap.m -targets/PROJECTS/TDDREC/f_tls_diag.m -targets/PROJECTS/TDDREC/f_tls_svd.m -targets/PROJECTS/TDDREC/s_beamforming.m -targets/PROJECTS/TDDREC/s_calib.m -targets/PROJECTS/TDDREC/s_draw_F.m -targets/PROJECTS/TDDREC/s_init_params.m -targets/PROJECTS/TDDREC/s_run_meas.m -targets/PROJECTS/COPYING -targets/RT/LAUNCH_SCRIPTS/load_module.sh -targets/RT/LAUNCH_SCRIPTS/nas_enb.sh -targets/RT/LAUNCH_SCRIPTS/nas_ue.sh -targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh -targets/RT/LAUNCH_SCRIPTS/start_emos.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh -targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh -targets/RT/LAUNCH_SCRIPTS/start_rf.sh -targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh -targets/RT/LAUNCH_SCRIPTS/start_ue.sh -targets/RT/LAUNCH_SCRIPTS/start_ue2.sh -targets/RT/LAUNCH_SCRIPTS/stop_rf.sh -targets/RT/USER/TOOLS/thread_ipc.c -targets/RT/USER/TOOLS/thread_ipc.h -targets/RT/USER/condtest.c -targets/RT/USER/COPYING -targets/RT/USER/dot11.c -targets/RT/USER/emos-raw.c -targets/RT/USER/eNB.gtkw -targets/RT/USER/eNB_exmimo2.gtkw -targets/RT/USER/exmimo2_2arxg.lime -targets/RT/USER/exmimo2_2brxg.lime -targets/RT/USER/ieee80211p-softmodem.c -targets/RT/USER/init_b200.sh -targets/RT/USER/init_exmimo.sh -targets/RT/USER/init_exmimo2.sh -targets/RT/USER/init_rtai.sh -targets/RT/USER/lte-softmodem.c -targets/RT/USER/lte-ue.c -targets/RT/USER/make_for_usrp.sh -targets/RT/USER/msg_helper.c -targets/RT/USER/msg_many.c -targets/RT/USER/msg_many.h -targets/RT/USER/rrh.c -targets/RT/USER/rt_wrapper.c -targets/RT/USER/rt_wrapper.h -targets/RT/USER/sched_dlsch.c -targets/RT/USER/sched_rx_pdsch.c -targets/RT/USER/sched_ulsch.c -targets/RT/USER/sleeptest.c -targets/RT/USER/stats.c -targets/RT/USER/stats.fd -targets/RT/USER/stats.h -targets/RT/USER/synctest.c -targets/RT/USER/ue_exmimo2.gtkw -targets/SCRIPTS/PROFILING/gprof2dot.py -targets/SCRIPTS/PROFILING/profoai.sh -targets/SCRIPTS/asn1_generate_rrc_messaging_c_code.bash -targets/SCRIPTS/install_asn1.sh -targets/SCRIPTS/install_asn1c_0.9.24.modified.bash -targets/SCRIPTS/msc_gen.py -targets/SCRIPTS/svn-merge-meld.py -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE/start_ue -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/AT_serial_bouchon.py -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_enb_v2 -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_1UE_OAI_DRIVER_ETHERNET/start_ue_cx2android -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_enb -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue1 -targets/SIMU/EXAMPLES/ETH_EMUL_1eNB_2UE/start_ue2 -targets/SIMU/EXAMPLES/OSD/WEBXML/template_0.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_1.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_10.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_11.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_120.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_121.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_122.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_123.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_124.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_125.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_126.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_127.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_128.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_129.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_13.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_14.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_15.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_16.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_17.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_18.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_19.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_2.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_20.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_21.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_22.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_26.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_27.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_29.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_3.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_33.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_34.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_4.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_40.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_41.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_42.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_43.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_5.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_6.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_60.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_7.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_70.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_8.xml -targets/SIMU/EXAMPLES/OSD/WEBXML/template_9.xml -targets/SIMU/EXAMPLES/OSD/README.txt -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_multi_UE_nas -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB/start_one_eNB_two_UE_PHY_nas -targets/SIMU/EXAMPLES/VIRT_EMUL_1eNB_OAI_LITE/start_one_eNB_multi_UE_nas -targets/SIMU/PROC/SCRIPT/Run.py -targets/SIMU/PROC/channel_sim_proc.c -targets/SIMU/PROC/channel_sim_proc.h -targets/SIMU/PROC/COPYING -targets/SIMU/PROC/interface.h -targets/SIMU/PROC/Process.c -targets/SIMU/PROC/Process.h -targets/SIMU/PROC/Tsync.h -targets/SIMU/USER/files/MI_16qam.csv -targets/SIMU/USER/files/MI_16qam.txt -targets/SIMU/USER/files/MI_4qam.csv -targets/SIMU/USER/files/MI_4qam.txt -targets/SIMU/USER/files/MI_64qam.csv -targets/SIMU/USER/files/MI_64qam.txt -targets/SIMU/USER/channel_sim.c -targets/SIMU/USER/COPYING -targets/SIMU/USER/cor_SF_sim.c -targets/SIMU/USER/cor_SF_sim.h -targets/SIMU/USER/event_handler.c -targets/SIMU/USER/event_handler.h -targets/SIMU/USER/init_lte.c -targets/SIMU/USER/init_lte.h -targets/SIMU/USER/oaisim.c -targets/SIMU/USER/oaisim.h -targets/SIMU/USER/oaisim_config.c -targets/SIMU/USER/oaisim_config.h -targets/SIMU/USER/oaisim_functions.c -targets/SIMU/USER/oaisim_functions.h -targets/SIMU/USER/oaisim_pad.c -targets/SIMU/USER/phy_procedures_sim_form.c -targets/SIMU/USER/phy_procedures_sim_form.fd -targets/SIMU/USER/phy_procedures_sim_form.h -targets/SIMU/USER/plot_results.m -targets/SIMU/USER/sinr_sim.c -targets/SIMU/USER/threadpool.c -targets/SIMU/USER/threadpool.h -targets/SIMU/USER/valgrind.sh -targets/TEST/AT_COMMANDS/oaisim.c -targets/TEST/OAI/case01.py -targets/TEST/OAI/case02.py -targets/TEST/OAI/case03.py -targets/TEST/OAI/case04.py -targets/TEST/OAI/case05.py -targets/TEST/OAI/case11.py -targets/TEST/OAI/case12.py -targets/TEST/OAI/case13.py -targets/TEST/OAI/core.py -targets/TEST/OAI/log.py -targets/TEST/OAI/openair.py -targets/TEST/OAI/README -targets/TEST/OAI/test01.py -targets/TEST/OAI/test02.py -targets/TEST/PACKET_TRACER/messages/Msg4.txt -targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt -targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt -targets/TEST/PACKET_TRACER/messages/sib1.txt -targets/TEST/PACKET_TRACER/messages/sib2.txt -targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt -targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt -targets/TEST/PACKET_TRACER/messages/sib3.txt -targets/TEST/PACKET_TRACER/pt.c -targets/TEST/PACKET_TRACER/README.txt -targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt -targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c -targets/TEST/PDCP/readme.txt -targets/TEST/PDCP/test_pdcp.c -targets/TEST/PDCP/test_pdcp.h -targets/TEST/PDCP/test_util.h -targets/TEST/PDCP/todo.txt -targets/TEST/RLC_AM_V9.3.0/oaisim.c -targets/TEST/RLC_UM_V9.3.0/oaisim.c -targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp -targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp -targets/TEST/ROHDE_SCHWARZ/TcpClient.h -targets/build_helper.bash -targets/build_oai.bash -targets/COPYING -targets/itti_vcd_tasks.sav -targets/Makerules -targets/perf_oai.bash -targets/README.txt -COPYING -maketags -oaienv -README.txt \ No newline at end of file diff --git a/oai5g_development.includes b/oai5g_development.includes deleted file mode 100755 index 1fbdd1b648..0000000000 --- a/oai5g_development.includes +++ /dev/null @@ -1,182 +0,0 @@ -common/utils -common/utils/collection -common/utils/collection/hashtable -common/utils/itti -common/utils/itti_analyzer/common -common/utils/itti_analyzer/libbuffers -common/utils/itti_analyzer/libparser -common/utils/itti_analyzer/libresolver -common/utils/itti_analyzer/libui -common/utils/msc -openair-cn/COMMON -openair-cn/GTPV1-U -openair-cn/GTPV1-U/GTPUAH -openair-cn/GTPV1-U/nw-gtpv1u/include -openair-cn/GTPV1-U/nw-gtpv1u/shared -openair-cn/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld -openair-cn/GTPV2-C/nwgtpv2c-0.11/include -openair-cn/GTPV2-C/nwgtpv2c-0.11/shared -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-egtping -openair-cn/GTPV2-C/nwgtpv2c-0.11/test-app/nw-helloworld -openair-cn/INTERTASK_INTERFACE -openair-cn/MME_APP -openair-cn/NAS -openair-cn/NAS/EURECOM-NAS/src -openair-cn/NAS/EURECOM-NAS/src/api/mme -openair-cn/NAS/EURECOM-NAS/src/api/network -openair-cn/NAS/EURECOM-NAS/src/api/user -openair-cn/NAS/EURECOM-NAS/src/api/usim -openair-cn/NAS/EURECOM-NAS/src/emm -openair-cn/NAS/EURECOM-NAS/src/emm/msg -openair-cn/NAS/EURECOM-NAS/src/emm/sap -openair-cn/NAS/EURECOM-NAS/src/esm -openair-cn/NAS/EURECOM-NAS/src/esm/msg -openair-cn/NAS/EURECOM-NAS/src/esm/sap -openair-cn/NAS/EURECOM-NAS/src/ies -openair-cn/NAS/EURECOM-NAS/src/include -openair-cn/NAS/EURECOM-NAS/src/util -openair-cn/NAS/EURECOM-NAS/tools -openair-cn/NAS/EURECOM-NAS/tst/as_simulator -openair-cn/NAS/EURECOM-NAS/tst/network -openair-cn/NAS/EURECOM-NAS/tst/user -openair-cn/OAI_EPC -openair-cn/OAI_SGW -openair-cn/OAISIM_MME -openair-cn/OPENAIRHSS/access_restriction -openair-cn/OPENAIRHSS/auc -openair-cn/OPENAIRHSS/db -openair-cn/OPENAIRHSS/s6a -openair-cn/OPENAIRHSS/tests -openair-cn/OPENAIRHSS/utils -openair-cn/S11 -openair-cn/S1AP -openair-cn/S6A -openair-cn/SCTP -openair-cn/SECU -openair-cn/SGW-LITE -openair-cn/TEST -openair-cn/UDP -openair-cn/UTILS -openair-cn/UTILS/HASHTABLE -openair1/MAC_INTERFACE -openair1/PHY -openair1/PHY/CODING -openair1/PHY/INIT -openair1/PHY/LTE_ESTIMATION -openair1/PHY/LTE_REFSIG -openair1/PHY/LTE_TRANSPORT -openair1/PHY/MODULATION -openair1/PHY/TOOLS -openair1/SCHED -openair1/SIMULATION/ETH_TRANSPORT -openair1/SIMULATION/LTE_PHY -openair1/SIMULATION/RF -openair1/SIMULATION/TOOLS -openair2/COMMON -openair2/DOCS/TEMPLATES/CODE -openair2/ENB_APP -openair2/LAYER2 -openair2/LAYER2/MAC -openair2/LAYER2/PDCP_v10.1.0 -openair2/LAYER2/RLC -openair2/LAYER2/RLC/AM_v9.3.0 -openair2/LAYER2/RLC/TM_v9.3.0 -openair2/LAYER2/RLC/UM_v9.3.0 -openair2/NAS -openair2/NAS/DRIVER/CELLULAR/CTL_TOOL -openair2/NAS/DRIVER/CELLULAR/NASMT -openair2/NAS/DRIVER/CELLULAR/NASRG -openair2/NAS/SIMU_CELLULAR -openair2/NETWORK_DRIVER/LITE -openair2/NETWORK_DRIVER/MESH -openair2/NETWORK_DRIVER/UE_IP -openair2/PHY_INTERFACE -openair2/RRC/L2_INTERFACE -openair2/RRC/LITE -openair2/RRC/LITE/MESSAGES -openair2/RRC/NAS -openair2/RRM_4_RRC_LITE/src -openair2/RRM_4_RRC_LITE/src/com -openair2/RRM_4_RRC_LITE/src/com/rrc -openair2/RRM_4_RRC_LITE/src/com/rrm -openair2/RRM_4_RRC_LITE/src/foreign/sockets-2.3.9.4 -openair2/RRM_4_RRC_LITE/src/foreign/sql -openair2/RRM_4_RRC_LITE/src/foreign/tcpip -openair2/RRM_4_RRC_LITE/src/radio_resources -openair2/RRM_4_RRC_LITE/src/test -openair2/UTIL -openair2/UTIL/AT_COMMANDS -openair2/UTIL/BIGPHYS -openair2/UTIL/CLI -openair2/UTIL/FIFO -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist -openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack -openair2/UTIL/LFDS/liblfds6.1.1/test/src -openair2/UTIL/LISTS -openair2/UTIL/LOG -openair2/UTIL/MATH -openair2/UTIL/MEM -openair2/UTIL/OCG -openair2/UTIL/OMG -openair2/UTIL/OMV -openair2/UTIL/OPT -openair2/UTIL/OSA -openair2/UTIL/OTG -openair2/UTIL/TIMER -openair2/UTIL/TRACE -openair2/X2AP -openair3/DOCS/TEMPLATES/CODE -openair3/MESH -openair3/MESH/RRM -openair3/MESH/RRM/EMUL -openair3/MESH/RRM/GRAPH -openair3/PMIPv6/freeradius-client-1.1.6 -openair3/PMIPv6/freeradius-client-1.1.6/include -openair3/PMIPv6/freeradius-client-1.1.6/lib -openair3/PMIPv6/freeradius-client-1.1.6/src -openair3/PMIPv6/pmipv6-daemon-umip/include -openair3/PMIPv6/pmipv6-daemon-umip/include/linux -openair3/PMIPv6/pmipv6-daemon-umip/include/netinet -openair3/PMIPv6/pmipv6-daemon-umip/src -openair3/PMIPv6/pmipv6-daemon-umip/src/pmip -openair3/RAL-LTE/INTERFACE-802.21/INCLUDE -openair3/RAL-LTE/LTE_RAL_ENB/INCLUDE -openair3/RAL-LTE/LTE_RAL_UE/INCLUDE -openair3/RAL-LTE/RAL-DUMMY/INCLUDE -openairITS/mac/DOT11/include/crypto -openairITS/mac/DOT11/include/linux -openairITS/mac/DOT11/include/linux/bcma -openairITS/mac/DOT11/include/linux/spi -openairITS/mac/DOT11/include/linux/ssb -openairITS/mac/DOT11/include/linux/unaligned -openairITS/mac/DOT11/include/linux/usb -openairITS/mac/DOT11/include/N/pcmcia -openairITS/mac/DOT11/include/N/trace -openairITS/mac/DOT11/include/net -openairITS/mac/DOT11/net/mac80211 -openairITS/mac/DOT11/net/wireless -openairITS/phy/DOT11 -openairITS/phy/DRIVERS -targets/ARCH/BLADERF/USERSPACE/LIB -targets/ARCH/COMMON -targets/ARCH/ETHERNET/USERSPACE/LIB -targets/ARCH/EXMIMO/DEFS -targets/ARCH/EXMIMO/DRIVER/eurecom -targets/ARCH/EXMIMO/DRIVER/exmimo3 -targets/ARCH/EXMIMO/DRIVER/telecomparistech -targets/ARCH/EXMIMO/USERSPACE/LIB -targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT -targets/COMMON -targets/RT/USER -targets/RT/USER/TOOLS -targets/SIMU/PROC -targets/SIMU/USER -targets/TEST/PDCP -targets/TEST/ROHDE_SCHWARZ \ No newline at end of file diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 121270c99b..a03ec0b3f9 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -425,7 +425,7 @@ void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned i AssertFatal(epdcch_setconfig_r11->ext2 && epdcch_setconfig_r11->ext2->mpdcch_config_r13 ," mpdcch config not found") ; -*maxRep = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 ; +*maxRep = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 ; * narrowBandindex = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 ; @@ -461,7 +461,7 @@ void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned i } -/* + void schedule_ue_spec_br( @@ -601,6 +601,8 @@ schedule_ue_spec_br( for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) { + if (!UE_list->UE_template[CC_id][UE_id].rach_resource_type ) // do the following scheduling only if the UE is emtc + continue ; continue_flag = 0; // reset the flag to allow allocation for the remaining UEs rnti = UE_RNTI(module_idP, UE_id); @@ -776,26 +778,26 @@ schedule_ue_spec_br( vrb_map[first_rb + 5] = 1; if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC) > 0)) + (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC) > 0)) { // MPDCCH configuration for RAR dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_list->UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + AssertFatal(cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_list->UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_id].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB @@ -826,7 +828,7 @@ schedule_ue_spec_br( dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; - UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; dl_req->number_pdu++; @@ -846,31 +848,31 @@ schedule_ue_spec_br( S_DL_SCHEDULED); } //repetition_count==0 && SF condition met - else if (UE_template[CC_id][UE_id].msg2_mpdcch_repetition_cnt > 0) + else if (UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt > 0) { // we're in a stream of repetitions - UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; - if (UE_template[CC_id][UE_id].mpdcch_repetition_cnt == reps) + UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + if (UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case + if (cc[CC_id].tdd_Config == NULL) { // FDD case // wait 2 subframes for PDSCH transmission - if (subframeP > 7) UE_template[CC_id][UE_id].Msg2_frame = (frameP + 1) & 1023; - else UE_template[CC_id][UE_id].Msg2_frame = frameP; - UE_template[CC_id][UE_id].Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + if (subframeP > 7) UE_list->UE_template[CC_id][UE_id].Msg2_frame = (frameP + 1) & 1023; + else UE_list->UE_template[CC_id][UE_id].Msg2_frame = frameP; + UE_list->UE_template[CC_id][UE_id].Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 } else { AssertFatal(1 == 0, "TDD case not done yet\n"); } } // mpdcch_repetition_count == reps - if ((UE_template[CC_id][UE_id].Msg2_frame == frameP) && (UE_template[CC_id][UE_id].Msg2_subframe == subframeP)) { + if ((UE_list->UE_template[CC_id][UE_id].Msg2_frame == frameP) && (UE_list->UE_template[CC_id][UE_id].Msg2_subframe == subframeP)) { // Program PDSCH dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = rnti; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 4; // format 6-1A dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized @@ -893,7 +895,7 @@ schedule_ue_spec_br( dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_list->UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2;; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; @@ -956,6 +958,9 @@ schedule_ue_spec_br( rlc_status.bytes_in_buffer = 0; // Now check RLC information to compute number of required RBs // get maximum TBS size for RLC request + + + TBS = 408; // check first for RLC data on DCCH // add the length for all the control elements (timing adv, drx, etc) : header + payload @@ -1155,9 +1160,12 @@ schedule_ue_spec_br( //else { // nb_rb = min_rb_unit[CC_id]; //} + + //[khalid]: maximum MCS (7 or 15) depend on the DCI formate used from UE_list->UE_template[CC_id [UE_id].rach_resource_type + mcs = 4; nb_rb = 6; - + TBS = 408;//get_TBS_DL(mcs, nb_rb); @@ -1368,7 +1376,7 @@ schedule_ue_spec_br( unsigned int first_rb, rep, reps; // rmax from RRC connection setup - getRepetition(&UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); + getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); // choose r3 by default for RAR (Table 9.1.5-5) rep = 2; @@ -1384,28 +1392,28 @@ schedule_ue_spec_br( vrb_map[first_rb + 4] = 1; vrb_map[first_rb + 5] = 1; - if ((UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_idP, frameP, subframeP, rmax, TYPEUESPEC) > 0)) + if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && + (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC) > 0)) { // MPDCCH configuration for RAR dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_list->UE_template[CC_id][UE_id].rach_resource_type > 1) ? 11 : 10; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = narrowBandindex_index; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, + AssertFatal(cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // other-RNTI dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_list->UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_id].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter @@ -1435,7 +1443,7 @@ schedule_ue_spec_br( dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; - UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; dl_req->number_pdu++; @@ -1458,31 +1466,31 @@ schedule_ue_spec_br( eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; } //repetition_count==0 && SF condition met - else if (UE_template[CC_id][UE_id].msg2_mpdcch_repetition_cnt > 0) + else if (UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt > 0) { // we're in a stream of repetitions - UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; - if (UE_template[CC_id][UE_id].mpdcch_repetition_cnt == reps) + UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt++; + if (UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case + if (cc[CC_id].tdd_Config == NULL) { // FDD case // wait 2 subframes for PDSCH transmission - if (subframeP > 7) UE_template[CC_id][UE_id].Msg2_frame = (frameP + 1) & 1023; - else UE_template[CC_id][UE_id].Msg2_frame = frameP; - UE_template[CC_id][UE_id].Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + if (subframeP > 7) UE_list->UE_template[CC_id][UE_id].Msg2_frame = (frameP + 1) & 1023; + else UE_list->UE_template[CC_id][UE_id].Msg2_frame = frameP; + UE_list->UE_template[CC_id][UE_id].Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 } else { AssertFatal(1 == 0, "TDD case not done yet\n"); } } // mpdcch_repetition_count == reps - if ((UE_template[CC_id][UE_id].Msg2_frame == frameP) && (UE_template[CC_id][UE_id].Msg2_subframe == subframeP)) { + if ((UE_list->UE_template[CC_id][UE_id].Msg2_frame == frameP) && (UE_list->UE_template[CC_id][UE_id].Msg2_subframe == subframeP)) { // Program PDSCH dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = rnti; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 4; // format 6-1A dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized @@ -1505,7 +1513,7 @@ schedule_ue_spec_br( dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_list->UE_template[CC_id][UE_id].rach_resource_type < 3) ? 1 : 2;; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; @@ -1574,7 +1582,7 @@ schedule_ue_spec_br( } -*/ + //------------------------------------------------------------------------------ void From 4a067bd119c064d5c984b3d41cffa349dc5c39e0 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Tue, 15 Aug 2017 10:07:04 +0200 Subject: [PATCH 027/125] band 13 50 PRB configuration file including eMTC resources --- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 368 ++++++++++++++++++ 1 file changed, 368 insertions(+) create mode 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf new file mode 100755 index 0000000000..dbae933a5f --- /dev/null +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -0,0 +1,368 @@ +Active_eNBs = ( "eNB_Eurecom_LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB_Eurecom_LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + mobile_country_code = "208"; + + mobile_network_code = "93"; + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNodeB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 13; + downlink_frequency = 751000000L; + uplink_frequency_offset = 31000000; + Nid_cell = 0; + N_RB_DL = 50; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 110; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 1; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + + # BR Parameters + br_parameters : + { + #SIB1 + schedulingInfoSIB1_BR_r13 = 4; + hyperSFN_r13 = 0; + #eDRX_Allowed_r13 = 0; + cellSelectionInfoCE_r13 = "ENABLE"; + q_RxLevMinCE_r13 = -50; + #q_QualMinRSRQ_CE_r13 = ; + bandwidthReducedAccessRelatedInfo_r13 = "ENABLE" + scheduling_info_br = + ( + { + si_Narrowband_r13 = 5; + si_TBS_r13 = 4; + } + ); + si_WindowLength_BR_r13 = 0; + si_RepetitionPattern_r13 = 0; + fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern10-r13" + fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; + fdd_UplinkSubframeBitmapBR_r13 = 0; + startSymbolBR_r13 = 1; + si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF ! + si_ValidityTime_r13 = 0; + system_info_value_tag_SI = + ( + { + systemInfoValueTagSi_r13 = 0; + } + ); + freqHoppingParametersDL_r13 = "ENABLE" + mpdcch_pdsch_HoppingNB_r13 = 0; + interval_DLHoppingConfigCommonModeA_r13 = "interval-FDD-r13" + interval_DLHoppingConfigCommonModeA_r13_val = 0; + interval_DLHoppingConfigCommonModeB_r13 = "interval-FDD-r13" + interval_DLHoppingConfigCommonModeB_r13_val = 0; + mpdcch_pdsch_HoppingOffset_r13 = 1; + + + # SIB23 + frame_type = "FDD"; + preambleTransMax_CE_r13 = 10; + + # max 4 + rach_CE_LevelInfoList_r13 = + ( + { + firstPreamble_r13 = 0; + lastPreamble_r13 = 63; + ra_ResponseWindowSize_r13 = 0; + mac_ContentionResolutionTimer_r13 = 0; + rar_HoppingConfig_r13 = 0; + } + ); + + prach_ConfigCommon_v1310 = "ENABLE"; + + # max 3 + rsrp_range_list = + ( + { + rsrp_range_br = 60; + } + ); + + # max 4 + prach_parameters_ce_r13 = + ( + { + prach_config_index_br = 3; + prach_freq_offset_br = 1; + prach_StartingSubframe_r13 = 0; + maxNumPreambleAttemptCE_r13 = 0; + numRepetitionPerPreambleAttempt_r13 = 0; + mpdcch_NumRepetition_RA_r13 = 0; + prach_HoppingConfig_r13 = 0; + max_available_narrow_band = + ( + { + maxavailablenarrowband = 2; + + } + ); + } + ); + + n1PUCCH_AN_InfoList_r13 = + ( + { + pucch_info_value = 12; + }, + { + pucch_info_value = 13; + } + ); + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13" + mpdcch_startSF_CSS_RA_r13_val = 5; + #prach_HoppingOffset_r13 = ; + + prach_root = 1; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 3; + pucch_delta_shift = 1; + pucch_nRB_CQI = 1; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + rach_numberOfRA_Preambles = 64; + rach_preamblesGroupAConfig = "DISABLE"; + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 1000; + ue_TimersAndConstants_t310 = 1000; + ue_TimersAndConstants_t311 = 10000; + ue_TimersAndConstants_n310 = 20; + ue_TimersAndConstants_n311 = 1; + ue_TransmissionMode = 1; + + } + + + +} + + + + + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "172.17.0.10"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0:S1-C-eNB"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "172.17.0.21/24"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0:S1-U-eNB"; + ENB_IPV4_ADDRESS_FOR_S1U = "172.16.0.21/24"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + }; + + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [13]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 125; + eNB_instances = [0]; + } +); From db9f855b3b5509020504ba2e7e63789e30ee7699 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Tue, 15 Aug 2017 11:48:29 +0200 Subject: [PATCH 028/125] add UEspec mpdcch search space subframe rule --- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 4 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 37 +++---------------- .../LAYER2/MAC/eNB_scheduler_primitives.c | 15 +++++++- openair2/LAYER2/MAC/proto.h | 2 +- 4 files changed, 21 insertions(+), 37 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 88ee3d14ae..0dd607b7da 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -212,7 +212,7 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t first_rb = narrowband_to_first_rb(&cc[CC_idP],RA_template->msg2_narrowband); if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2)>0)){ + (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2,-1)>0)){ // MPDCCH configuration for RAR @@ -558,7 +558,7 @@ void generate_Msg4(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t first_rb = narrowband_to_first_rb(&cc[CC_idP],RA_template->msg34_narrowband); if ((RA_template->msg4_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2)>0)){ + (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2,-1)>0)){ // MPDCCH configuration for RAR memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index a03ec0b3f9..7122ae3baf 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -416,14 +416,14 @@ set_ul_DAI( void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned int *narrowBandindex, unsigned int *first_rb){ EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11; - AssertFatal(pue_template->physicalConfigDedicated, "no RRC physical configuration for this UE ") ; - AssertFatal(pue_template->physicalConfigDedicated->ext4, "no RRC physical configuration for this UE ") ; + AssertFatal(pue_template->physicalConfigDedicated !=NULL, "no RRC physical configuration for this UE ") ; + AssertFatal(pue_template->physicalConfigDedicated->ext4 !=NULL, "no RRC physical configuration for this UE ") ; AssertFatal(pue_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.count > 0 ,"epdcch config list is empty") ; epdcch_setconfig_r11 = pue_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; - AssertFatal(epdcch_setconfig_r11->ext2 && epdcch_setconfig_r11->ext2->mpdcch_config_r13 ," mpdcch config not found") ; + AssertFatal(epdcch_setconfig_r11->ext2 !=NULL && epdcch_setconfig_r11->ext2->mpdcch_config_r13 !=NULL," mpdcch config not found") ; *maxRep = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 ; @@ -431,33 +431,6 @@ void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned i -/* - epdcch_setconfig_r11->setConfigId_r11 = 0; - epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; - epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; - //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; - - epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; - epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; - epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; - - epdcch_setconfig_r11->ext2 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2)); - epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; - epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13)); - epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; - ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); - - */ } @@ -778,7 +751,7 @@ schedule_ue_spec_br( vrb_map[first_rb + 5] = 1; if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC) > 0)) + (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC,UE_id) > 0)) { // MPDCCH configuration for RAR dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; @@ -1393,7 +1366,7 @@ schedule_ue_spec_br( vrb_map[first_rb + 5] = 1; if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC) > 0)) + (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC,UE_id) > 0)) { // MPDCCH configuration for RAR dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 9fa7c16868..a8418d2316 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -486,9 +486,13 @@ int get_numnarrowbandbits(long dl_Bandwidth) { int startSF_fdd_RA_times2[8] = {2,3,4,5,8,10,16,20}; int startSF_tdd_RA[7] = {1,2,4,5,8,10,20}; -int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t subframeP,int rmax,MPDCCH_TYPES_t mpdcch_type) { +int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t subframeP,int rmax,MPDCCH_TYPES_t mpdcch_type,int UE_id) { struct PRACH_ConfigSIB_v1310 *ext4_prach = eNB->common_channels[CC_id].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11= eNB->UE_list ->UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; + + int T; switch (mpdcch_type) { @@ -513,7 +517,14 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t AssertFatal(1==0,"MPDCCH Type 2A not handled yet\n"); break; case TYPEUESPEC: - AssertFatal(1==0,"MPDCCH Type UESPEC not handled yet\n"); + AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); + AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); + + if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD + T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; + else //TDD + T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; + break; default: return(0); diff --git a/openair2/LAYER2/MAC/proto.h b/openair2/LAYER2/MAC/proto.h index 1a7421c7e7..85eaca5b21 100755 --- a/openair2/LAYER2/MAC/proto.h +++ b/openair2/LAYER2/MAC/proto.h @@ -905,7 +905,7 @@ uint8_t subframe2harqpid(COMMON_channels_t *cc,frame_t frame,sub_frame_t subfram #ifdef Rel14 int get_numnarrowbandbits(long dl_Bandwidth); -int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t subframeP,int rmax,MPDCCH_TYPES_t mpdcch_type); +int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t subframeP,int rmax,MPDCCH_TYPES_t mpdcch_type,int UE_id); int get_numnarrowbands(long dl_Bandwidth); From d160ae244aa13bddfdae8285c11948c6b6acb109 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Tue, 15 Aug 2017 12:00:30 +0200 Subject: [PATCH 029/125] fixing issues in do_RRCConnectionSetup_BR --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 69470aff1f..5c23f48fd7 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2267,14 +2267,16 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13)); epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); + // FIXME allocate physicalConfigDedicated2->ext7 + physicalConfigDedicated2->ext7 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7)); physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL; physicalConfigDedicated2->ext7->pusch_ConfigDedicated_r13 = NULL; @@ -2290,7 +2292,9 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->ext7->csi_RS_Config_v1310 = NULL; - physicalConfigDedicated2->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; + // FIXME ce_Mode_r13 allocation + physicalConfigDedicated2->ext7->ce_Mode_r13 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7__ce_Mode_r13)); + physicalConfigDedicated2->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; physicalConfigDedicated2->ext7->ce_Mode_r13->choice.setup = PhysicalConfigDedicated__ext7__ce_Mode_r13__setup_ce_ModeA; physicalConfigDedicated2->ext7->csi_RS_ConfigNZPToAddModListExt_r13 = NULL; physicalConfigDedicated2->ext7->csi_RS_ConfigNZPToReleaseListExt_r13 = NULL; From f0376c7e197d0a93659e84bf2ba14705d1f7d6f7 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Tue, 15 Aug 2017 13:31:14 +0200 Subject: [PATCH 030/125] updated fdd_DownlinkSubframe in enb_config.c , do_SIB1 and rrc_message_types.h --- openair2/COMMON/rrc_messages_types.h | 2 +- openair2/ENB_APP/enb_config.c | 6754 +++++++++++++------------ openair2/RRC/LITE/MESSAGES/asn1_msg.c | 43 +- 3 files changed, 3411 insertions(+), 3388 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index aedf9bfa19..35db0b40a0 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -205,7 +205,7 @@ typedef struct RrcConfigurationReq_s { long si_WindowLength_BR_r13 [MAX_NUM_CCs]; long si_RepetitionPattern_r13 [MAX_NUM_CCs]; - BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs]; + BOOLEAN_t * fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs]; uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 [MAX_NUM_CCs]; uint16_t fdd_UplinkSubframeBitmapBR_r13 [MAX_NUM_CCs]; long startSymbolBR_r13 [MAX_NUM_CCs]; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index a5996d8a9a..afd5ec690e 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -20,12 +20,12 @@ */ /* - enb_config.c - ------------------- - AUTHOR : Lionel GAUTHIER, navid nikaein, Laurent Winckel - COMPANY : EURECOM - EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr -*/ + enb_config.c + ------------------- +AUTHOR : Lionel GAUTHIER, navid nikaein, Laurent Winckel +COMPANY : EURECOM +EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr + */ #include #include @@ -411,11 +411,11 @@ static const eutra_band_t eutra_bands[] = { static int enb_check_band_frequencies(char* lib_config_file_name_pP, - int ind, - int16_t band, - uint32_t downlink_frequency, - int32_t uplink_frequency_offset, - lte_frame_type_t frame_type) + int ind, + int16_t band, + uint32_t downlink_frequency, + int32_t uplink_frequency_offset, + lte_frame_type_t frame_type) { int errors = 0; @@ -427,22 +427,22 @@ static int enb_check_band_frequencies(char* lib_config_file_name_pP, uint32_t uplink_frequency = downlink_frequency + uplink_frequency_offset; AssertError (eutra_bands[band_index].dl_min < downlink_frequency, errors ++, - "Failed to parse eNB configuration file %s, enb %d downlink frequency %u too low (%u) for band %d!", - lib_config_file_name_pP, ind, downlink_frequency, eutra_bands[band_index].dl_min, band); + "Failed to parse eNB configuration file %s, enb %d downlink frequency %u too low (%u) for band %d!", + lib_config_file_name_pP, ind, downlink_frequency, eutra_bands[band_index].dl_min, band); AssertError (downlink_frequency < eutra_bands[band_index].dl_max, errors ++, - "Failed to parse eNB configuration file %s, enb %d downlink frequency %u too high (%u) for band %d!", - lib_config_file_name_pP, ind, downlink_frequency, eutra_bands[band_index].dl_max, band); + "Failed to parse eNB configuration file %s, enb %d downlink frequency %u too high (%u) for band %d!", + lib_config_file_name_pP, ind, downlink_frequency, eutra_bands[band_index].dl_max, band); AssertError (eutra_bands[band_index].ul_min < uplink_frequency, errors ++, - "Failed to parse eNB configuration file %s, enb %d uplink frequency %u too low (%u) for band %d!", - lib_config_file_name_pP, ind, uplink_frequency, eutra_bands[band_index].ul_min, band); + "Failed to parse eNB configuration file %s, enb %d uplink frequency %u too low (%u) for band %d!", + lib_config_file_name_pP, ind, uplink_frequency, eutra_bands[band_index].ul_min, band); AssertError (uplink_frequency < eutra_bands[band_index].ul_max, errors ++, - "Failed to parse eNB configuration file %s, enb %d uplink frequency %u too high (%u) for band %d!", - lib_config_file_name_pP, ind, uplink_frequency, eutra_bands[band_index].ul_max, band); + "Failed to parse eNB configuration file %s, enb %d uplink frequency %u too high (%u) for band %d!", + lib_config_file_name_pP, ind, uplink_frequency, eutra_bands[band_index].ul_max, band); AssertError (eutra_bands[band_index].frame_type == frame_type, errors ++, - "Failed to parse eNB configuration file %s, enb %d invalid frame type (%d/%d) for band %d!", - lib_config_file_name_pP, ind, eutra_bands[band_index].frame_type, frame_type, band); + "Failed to parse eNB configuration file %s, enb %d invalid frame type (%d/%d) for band %d!", + lib_config_file_name_pP, ind, eutra_bands[band_index].frame_type, frame_type, band); } } } @@ -549,89 +549,89 @@ void RCconfig_RU() { if ( !( - config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_IF_NAME,(const char **)&if_name) - ) - ) { - fronthaul_flag = CONFIG_FALSE; + config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_IF_NAME,(const char **)&if_name) + ) + ) { + fronthaul_flag = CONFIG_FALSE; } if ( !( - config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_RF,(const char **)&local_rf) - ) - ) { + config_setting_lookup_string(setting_ru, CONFIG_STRING_RU_LOCAL_RF,(const char **)&local_rf) + ) + ) { local_rf_flag = CONFIG_FALSE; } - - if (local_rf_flag == CONFIG_TRUE) { // eNB or RRU - - if ( !( - config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RS_EPRE, &max_pdschReferenceSignalPower) && - config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RXGAIN, &max_rxgain) - ) - ) { + if (local_rf_flag == CONFIG_TRUE) { // eNB or RRU + + + if ( !( + config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RS_EPRE, &max_pdschReferenceSignalPower) && + config_setting_lookup_int(setting_ru, CONFIG_STRING_RU_MAX_RXGAIN, &max_rxgain) + ) + ) { AssertFatal (0, - "Failed to parse configuration file %s, RU %d config !\n", - RC.config_file_name, j); + "Failed to parse configuration file %s, RU %d config !\n", + RC.config_file_name, j); continue; } - AssertFatal((setting_band = config_setting_get_member(setting_ru, CONFIG_STRING_RU_BAND_LIST))!=NULL,"No allowable LTE bands\n"); + AssertFatal((setting_band = config_setting_get_member(setting_ru, CONFIG_STRING_RU_BAND_LIST))!=NULL,"No allowable LTE bands\n"); - if (setting_band != NULL) num_bands = config_setting_length(setting_band); - else num_bands=0; + if (setting_band != NULL) num_bands = config_setting_length(setting_band); + else num_bands=0; - for (i=0;i0) { - AssertFatal((setting_eNB_list = config_setting_get_member(setting_ru, CONFIG_STRING_RU_ENB_LIST))!=NULL,"No RU<->eNB mappings\n"); - - if (setting_eNB_list != NULL) num_eNB4RU = config_setting_length(setting_eNB_list); - else num_eNB4RU=0; - AssertFatal(num_eNB4RU>0,"Number of eNBs is zero\n"); - - for (i=0;ieNB mappings\n"); + + if (setting_eNB_list != NULL) num_eNB4RU = config_setting_length(setting_eNB_list); + else num_eNB4RU=0; + AssertFatal(num_eNB4RU>0,"Number of eNBs is zero\n"); + + for (i=0;inum_eNB = num_eNB4RU; for (i=0;ieNB_list[i] = RC.eNB[eNB_list[i]][0]; - + if (strcmp(local_rf, "yes") == 0) { - if (fronthaul_flag == CONFIG_FALSE) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = eNodeB_3GPP; - printf("Setting function for RU %d to eNodeB_3GPP\n",j); + if (fronthaul_flag == CONFIG_FALSE) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = eNodeB_3GPP; + printf("Setting function for RU %d to eNodeB_3GPP\n",j); } else { - RC.ru[j]->eth_params.local_if_name = strdup(if_name); - RC.ru[j]->eth_params.my_addr = strdup(ipv4); - RC.ru[j]->eth_params.remote_addr = strdup(ipv4_remote); - RC.ru[j]->eth_params.my_portc = local_portc; - RC.ru[j]->eth_params.remote_portc = remote_portc; - RC.ru[j]->eth_params.my_portd = local_portd; - RC.ru[j]->eth_params.remote_portd = remote_portd; + RC.ru[j]->eth_params.local_if_name = strdup(if_name); + RC.ru[j]->eth_params.my_addr = strdup(ipv4); + RC.ru[j]->eth_params.remote_addr = strdup(ipv4_remote); + RC.ru[j]->eth_params.my_portc = local_portc; + RC.ru[j]->eth_params.remote_portc = remote_portc; + RC.ru[j]->eth_params.my_portd = local_portd; + RC.ru[j]->eth_params.remote_portd = remote_portd; - if (strcmp(tr_preference, "udp") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; - printf("Setting function for RU %d to NGFI_RRU_IF5 (udp)\n",j); - } else if (strcmp(tr_preference, "raw") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; - printf("Setting function for RU %d to NGFI_RRU_IF5 (raw)\n",j); - } else if (strcmp(tr_preference, "udp_if4p5") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; - printf("Setting function for RU %d to NGFI_RRU_IF4p5 (udp)\n",j); - } else if (strcmp(tr_preference, "raw_if4p5") == 0) { - RC.ru[j]->if_south = LOCAL_RF; - RC.ru[j]->function = NGFI_RRU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; - printf("Setting function for RU %d to NGFI_RRU_IF4p5 (raw)\n",j); - } - } + if (strcmp(tr_preference, "udp") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; + printf("Setting function for RU %d to NGFI_RRU_IF5 (udp)\n",j); + } else if (strcmp(tr_preference, "raw") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; + printf("Setting function for RU %d to NGFI_RRU_IF5 (raw)\n",j); + } else if (strcmp(tr_preference, "udp_if4p5") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; + printf("Setting function for RU %d to NGFI_RRU_IF4p5 (udp)\n",j); + } else if (strcmp(tr_preference, "raw_if4p5") == 0) { + RC.ru[j]->if_south = LOCAL_RF; + RC.ru[j]->function = NGFI_RRU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; + printf("Setting function for RU %d to NGFI_RRU_IF4p5 (raw)\n",j); + } + } - RC.ru[j]->max_pdschReferenceSignalPower = max_pdschReferenceSignalPower; - RC.ru[j]->max_rxgain = max_rxgain; - RC.ru[j]->num_bands = num_bands; - for (i=0;iband[i] = band[i]; + RC.ru[j]->max_pdschReferenceSignalPower = max_pdschReferenceSignalPower; + RC.ru[j]->max_rxgain = max_rxgain; + RC.ru[j]->num_bands = num_bands; + for (i=0;iband[i] = band[i]; } else { - printf("RU %d: Transport %s\n",j,tr_preference); + printf("RU %d: Transport %s\n",j,tr_preference); - RC.ru[j]->eth_params.local_if_name = strdup(if_name); - RC.ru[j]->eth_params.my_addr = strdup(ipv4); - RC.ru[j]->eth_params.remote_addr = strdup(ipv4_remote); - RC.ru[j]->eth_params.my_portc = local_portc; - RC.ru[j]->eth_params.remote_portc = remote_portc; - RC.ru[j]->eth_params.my_portd = local_portd; - RC.ru[j]->eth_params.remote_portd = remote_portd; - for (i=0;ieNB_list[i] = RC.eNB[eNB_list[i]][0]; + RC.ru[j]->eth_params.local_if_name = strdup(if_name); + RC.ru[j]->eth_params.my_addr = strdup(ipv4); + RC.ru[j]->eth_params.remote_addr = strdup(ipv4_remote); + RC.ru[j]->eth_params.my_portc = local_portc; + RC.ru[j]->eth_params.remote_portc = remote_portc; + RC.ru[j]->eth_params.my_portd = local_portd; + RC.ru[j]->eth_params.remote_portd = remote_portd; + for (i=0;ieNB_list[i] = RC.eNB[eNB_list[i]][0]; - if (strcmp(tr_preference, "udp") == 0) { - RC.ru[j]->if_south = REMOTE_IF5; - RC.ru[j]->function = NGFI_RAU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; - } else if (strcmp(tr_preference, "raw") == 0) { - RC.ru[j]->if_south = REMOTE_IF5; - RC.ru[j]->function = NGFI_RAU_IF5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; - } else if (strcmp(tr_preference, "udp_if4p5") == 0) { - RC.ru[j]->if_south = REMOTE_IF4p5; - RC.ru[j]->function = NGFI_RAU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; - } else if (strcmp(tr_preference, "raw_if4p5") == 0) { - RC.ru[j]->if_south = REMOTE_IF4p5; - RC.ru[j]->function = NGFI_RAU_IF4p5; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; - } else if (strcmp(tr_preference, "raw_if5_mobipass") == 0) { - RC.ru[j]->if_south = REMOTE_IF5; - RC.ru[j]->function = NGFI_RAU_IF5; - RC.ru[j]->if_timing = synch_to_other; - RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF5_MOBIPASS; - } - RC.ru[j]->att_tx = att_tx; - RC.ru[j]->att_rx = att_rx; + if (strcmp(tr_preference, "udp") == 0) { + RC.ru[j]->if_south = REMOTE_IF5; + RC.ru[j]->function = NGFI_RAU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_MODE; + } else if (strcmp(tr_preference, "raw") == 0) { + RC.ru[j]->if_south = REMOTE_IF5; + RC.ru[j]->function = NGFI_RAU_IF5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_MODE; + } else if (strcmp(tr_preference, "udp_if4p5") == 0) { + RC.ru[j]->if_south = REMOTE_IF4p5; + RC.ru[j]->function = NGFI_RAU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_UDP_IF4p5_MODE; + } else if (strcmp(tr_preference, "raw_if4p5") == 0) { + RC.ru[j]->if_south = REMOTE_IF4p5; + RC.ru[j]->function = NGFI_RAU_IF4p5; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF4p5_MODE; + } else if (strcmp(tr_preference, "raw_if5_mobipass") == 0) { + RC.ru[j]->if_south = REMOTE_IF5; + RC.ru[j]->function = NGFI_RAU_IF5; + RC.ru[j]->if_timing = synch_to_other; + RC.ru[j]->eth_params.transp_preference = ETH_RAW_IF5_MOBIPASS; + } + RC.ru[j]->att_tx = att_tx; + RC.ru[j]->att_rx = att_rx; } RC.ru[j]->nb_tx = nb_tx; @@ -772,25 +772,25 @@ void RCconfig_L1() { setting_l1 = config_setting_get_elem(setting, j); if (!config_setting_lookup_int (setting_l1,CONFIG_STRING_L1_CC,&RC.nb_L1_CC[j])) - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); if (RC.eNB[j] == NULL) { - RC.eNB[j] = (PHY_VARS_eNB **)malloc((1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB**)); - LOG_I(PHY,"RC.eNB[%d] = %p\n",j,RC.eNB[j]); - memset(RC.eNB[j],0,(1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB***)); + RC.eNB[j] = (PHY_VARS_eNB **)malloc((1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB**)); + LOG_I(PHY,"RC.eNB[%d] = %p\n",j,RC.eNB[j]); + memset(RC.eNB[j],0,(1+MAX_NUM_CCs)*sizeof(PHY_VARS_eNB***)); } for (i=0;iMod_id = j; - RC.eNB[j][i]->CC_id = i; - } + if (RC.eNB[j][i] == NULL) { + RC.eNB[j][i] = (PHY_VARS_eNB *)malloc(sizeof(PHY_VARS_eNB)); + memset((void*)RC.eNB[j][i],0,sizeof(PHY_VARS_eNB)); + LOG_I(PHY,"RC.eNB[%d][%d] = %p\n",j,i,RC.eNB[j][i]); + RC.eNB[j][i]->Mod_id = j; + RC.eNB[j][i]->CC_id = i; + } } @@ -800,38 +800,38 @@ void RCconfig_L1() { printf("RU %d: Transport %s\n",j,tr_n_preference); if (!(config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_TRANSPORT_N_PREFERENCE, (const char **)&tr_n_preference))) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); } if (strcmp(tr_n_preference, "local_mac") == 0) { } else if (strcmp(tr_n_preference, "nfapi") == 0) { - if ( !( - config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_IF_NAME, (const char **)&if_name_n) - && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_ADDRESS, (const char **)&ipv4_n) - && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTC, &local_n_portc) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTC, &remote_n_portc) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTD, &local_n_portd) - && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTD, &remote_n_portd) - ) - ) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } - RC.eNB[j][0]->eth_params_n.local_if_name = strdup(if_name_n); - RC.eNB[j][0]->eth_params_n.my_addr = strdup(ipv4_n); - RC.eNB[j][0]->eth_params_n.remote_addr = strdup(ipv4_n_remote); - RC.eNB[j][0]->eth_params_n.my_portc = local_n_portc; - RC.eNB[j][0]->eth_params_n.remote_portc = remote_n_portc; - RC.eNB[j][0]->eth_params_n.my_portd = local_n_portd; - RC.eNB[j][0]->eth_params_n.remote_portd = remote_n_portd; - RC.eNB[j][0]->eth_params_n.transp_preference = ETH_UDP_MODE; + if ( !( + config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_IF_NAME, (const char **)&if_name_n) + && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_LOCAL_N_ADDRESS, (const char **)&ipv4_n) + && config_setting_lookup_string(setting_l1, CONFIG_STRING_L1_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTC, &local_n_portc) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTC, &remote_n_portc) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_LOCAL_N_PORTD, &local_n_portd) + && config_setting_lookup_int (setting_l1, CONFIG_STRING_L1_REMOTE_N_PORTD, &remote_n_portd) + ) + ) { + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + RC.eNB[j][0]->eth_params_n.local_if_name = strdup(if_name_n); + RC.eNB[j][0]->eth_params_n.my_addr = strdup(ipv4_n); + RC.eNB[j][0]->eth_params_n.remote_addr = strdup(ipv4_n_remote); + RC.eNB[j][0]->eth_params_n.my_portc = local_n_portc; + RC.eNB[j][0]->eth_params_n.remote_portc = remote_n_portc; + RC.eNB[j][0]->eth_params_n.my_portd = local_n_portd; + RC.eNB[j][0]->eth_params_n.remote_portd = remote_n_portd; + RC.eNB[j][0]->eth_params_n.transp_preference = ETH_UDP_MODE; } else { // other midhaul @@ -886,52 +886,52 @@ void RCconfig_macrlc() { printf("macrlc %d/%d \n",j,RC.nb_macrlc_inst); if (!(config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_TRANSPORT_N_PREFERENCE, (const char **)&tr_n_preference))) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); } printf("MACRLC %d: Northbound Transport %s\n",j,tr_n_preference); if (strcmp(tr_n_preference, "local_RRC") == 0) { - // check number of instances is same as RRC/PDCP + // check number of instances is same as RRC/PDCP } else if (strcmp(tr_n_preference, "cudu") == 0) { - if ( !( - config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_IF_NAME, (const char **)&if_name_n) - && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS, (const char **)&ipv4_n) - && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_PORTC, &local_n_portc) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_PORTC, &remote_n_portc) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_PORTD, &local_n_portd) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_PORTD, &remote_n_portd) - ) - ) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } - RC.mac[j]->eth_params_n.local_if_name = strdup(if_name_n); - RC.mac[j]->eth_params_n.my_addr = strdup(ipv4_n); - RC.mac[j]->eth_params_n.remote_addr = strdup(ipv4_n_remote); - RC.mac[j]->eth_params_n.my_portc = local_n_portc; - RC.mac[j]->eth_params_n.remote_portc = remote_n_portc; - RC.mac[j]->eth_params_n.my_portd = local_n_portd; - RC.mac[j]->eth_params_n.remote_portd = remote_n_portd; - RC.mac[j]->eth_params_n.transp_preference = ETH_UDP_MODE; + if ( !( + config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_IF_NAME, (const char **)&if_name_n) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_ADDRESS, (const char **)&ipv4_n) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_ADDRESS, (const char **)&ipv4_n_remote) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_PORTC, &local_n_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_PORTC, &remote_n_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_N_PORTD, &local_n_portd) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_N_PORTD, &remote_n_portd) + ) + ) { + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + RC.mac[j]->eth_params_n.local_if_name = strdup(if_name_n); + RC.mac[j]->eth_params_n.my_addr = strdup(ipv4_n); + RC.mac[j]->eth_params_n.remote_addr = strdup(ipv4_n_remote); + RC.mac[j]->eth_params_n.my_portc = local_n_portc; + RC.mac[j]->eth_params_n.remote_portc = remote_n_portc; + RC.mac[j]->eth_params_n.my_portd = local_n_portd; + RC.mac[j]->eth_params_n.remote_portd = remote_n_portd; + RC.mac[j]->eth_params_n.transp_preference = ETH_UDP_MODE; } else { // other midhaul - AssertFatal(1==0,"MACRLC %d: unknown northbound midhaul\n",j); + AssertFatal(1==0,"MACRLC %d: unknown northbound midhaul\n",j); } if (!(config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_TRANSPORT_S_PREFERENCE, (const char **)&tr_s_preference))) { - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... } printf("MACRLC %d: Southbound Transport %s\n",j,tr_s_preference); @@ -941,33 +941,33 @@ void RCconfig_macrlc() { } else if (strcmp(tr_s_preference, "nfapi") == 0) { - if ( !( - config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_IF_NAME, (const char **)&if_name_s) - && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_ADDRESS, (const char **)&ipv4_s) - && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTC, &local_s_portc) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTC, &remote_s_portc) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTD, &local_s_portd) - && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTD, &remote_s_portd) - )){ - AssertFatal (0, - "Failed to parse configuration file %s, L1 %d config !\n", - RC.config_file_name, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } + if ( !( + config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_IF_NAME, (const char **)&if_name_s) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_ADDRESS, (const char **)&ipv4_s) + && config_setting_lookup_string(setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTC, &local_s_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTC, &remote_s_portc) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_LOCAL_S_PORTD, &local_s_portd) + && config_setting_lookup_int (setting_macrlc, CONFIG_STRING_MACRLC_REMOTE_S_PORTD, &remote_s_portd) + )){ + AssertFatal (0, + "Failed to parse configuration file %s, L1 %d config !\n", + RC.config_file_name, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } - RC.mac[j]->eth_params_s.local_if_name = strdup(if_name_s); - RC.mac[j]->eth_params_s.my_addr = strdup(ipv4_s); - RC.mac[j]->eth_params_s.remote_addr = strdup(ipv4_s_remote); - RC.mac[j]->eth_params_s.my_portc = local_s_portc; - RC.mac[j]->eth_params_s.remote_portc = remote_s_portc; - RC.mac[j]->eth_params_s.my_portd = local_s_portd; - RC.mac[j]->eth_params_s.remote_portd = remote_s_portd; - RC.mac[j]->eth_params_s.transp_preference = ETH_UDP_MODE; + RC.mac[j]->eth_params_s.local_if_name = strdup(if_name_s); + RC.mac[j]->eth_params_s.my_addr = strdup(ipv4_s); + RC.mac[j]->eth_params_s.remote_addr = strdup(ipv4_s_remote); + RC.mac[j]->eth_params_s.my_portc = local_s_portc; + RC.mac[j]->eth_params_s.remote_portc = remote_s_portc; + RC.mac[j]->eth_params_s.my_portd = local_s_portd; + RC.mac[j]->eth_params_s.remote_portd = remote_s_portd; + RC.mac[j]->eth_params_s.transp_preference = ETH_UDP_MODE; } else { // other midhaul - AssertFatal(1==0,"MACRLC %d: unknown southbound midhaul\n",j); + AssertFatal(1==0,"MACRLC %d: unknown southbound midhaul\n",j); } }// j=0..num_inst } @@ -1218,19 +1218,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { asn1_xer_print = 0; } } - + #endif - + // Get list of active eNBs, (only these will be configured) setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - + if (setting != NULL) { num_enbs = config_setting_length(setting); setting_enb = config_setting_get_elem(setting, i); active_enb[i] = config_setting_get_string (setting_enb); AssertFatal (active_enb[i] != NULL, - "Failed to parse config file %s, %uth attribute %s \n", - RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); + "Failed to parse config file %s, %uth attribute %s \n", + RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); active_enb[i] = strdup(active_enb[i]); } @@ -1246,28 +1246,28 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { setting_enb = config_setting_get_elem(setting, i); if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { - // Calculate a default eNB ID + // Calculate a default eNB ID # if defined(ENABLE_USE_MME) - uint32_t hash; + uint32_t hash; - hash = s1ap_generate_eNB_id (); - enb_id = i + (hash & 0xFFFF8); + hash = s1ap_generate_eNB_id (); + enb_id = i + (hash & 0xFFFF8); # else - enb_id = i; + enb_id = i; # endif } if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRANSPORT_S_PREFERENCE, (const char **)&tr_s_preference) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRANSPORT_S_PREFERENCE, (const char **)&tr_s_preference) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); } printf("RRC %d: Southbound Transport %s\n",j,tr_s_preference); @@ -1277,3365 +1277,3379 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else if (strcmp(tr_s_preference, "cudu") == 0) { - if ( !(config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_IF_NAME, (const char **)&if_name_s) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_ADDRESS, (const char **)&ipv4_s) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTC, &local_s_portc) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTC, &remote_s_portc) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTD, &local_s_portd) - && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTD, &remote_s_portd) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); - } - rrc->eth_params_s.local_if_name = strdup(if_name_s); - rrc->eth_params_s.my_addr = strdup(ipv4_s); - rrc->eth_params_s.remote_addr = strdup(ipv4_s_remote); - rrc->eth_params_s.my_portc = local_s_portc; - rrc->eth_params_s.remote_portc = remote_s_portc; - rrc->eth_params_s.my_portd = local_s_portd; - rrc->eth_params_s.remote_portd = remote_s_portd; - rrc->eth_params_s.transp_preference = ETH_UDP_MODE; + if ( !(config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_IF_NAME, (const char **)&if_name_s) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_LOCAL_S_ADDRESS, (const char **)&ipv4_s) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_REMOTE_S_ADDRESS, (const char **)&ipv4_s_remote) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTC, &local_s_portc) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTC, &remote_s_portc) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_LOCAL_S_PORTD, &local_s_portd) + && config_setting_lookup_int (setting_enb, ENB_CONFIG_STRING_REMOTE_S_PORTD, &remote_s_portd) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); + } + rrc->eth_params_s.local_if_name = strdup(if_name_s); + rrc->eth_params_s.my_addr = strdup(ipv4_s); + rrc->eth_params_s.remote_addr = strdup(ipv4_s_remote); + rrc->eth_params_s.my_portc = local_s_portc; + rrc->eth_params_s.remote_portc = remote_s_portc; + rrc->eth_params_s.my_portd = local_s_portd; + rrc->eth_params_s.remote_portd = remote_s_portd; + rrc->eth_params_s.transp_preference = ETH_UDP_MODE; } - + else { // other midhaul } // search if in active list for (j=0; j < num_enbs; j++) { - if (strcmp(active_enb[j], enb_name) == 0) { + if (strcmp(active_enb[j], enb_name) == 0) { - RRC_CONFIGURATION_REQ (msg_p).cell_identity = enb_id; - RRC_CONFIGURATION_REQ (msg_p).tac = (uint16_t)atoi(tac); - RRC_CONFIGURATION_REQ (msg_p).mcc = (uint16_t)atoi(mcc); - RRC_CONFIGURATION_REQ (msg_p).mnc = (uint16_t)atoi(mnc); - RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length = strlen(mnc); - AssertFatal((RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 2) || - (RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 3), - "BAD MNC DIGIT LENGTH %d", - RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length); + RRC_CONFIGURATION_REQ (msg_p).cell_identity = enb_id; + RRC_CONFIGURATION_REQ (msg_p).tac = (uint16_t)atoi(tac); + RRC_CONFIGURATION_REQ (msg_p).mcc = (uint16_t)atoi(mcc); + RRC_CONFIGURATION_REQ (msg_p).mnc = (uint16_t)atoi(mnc); + RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length = strlen(mnc); + AssertFatal((RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 2) || + (RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 3), + "BAD MNC DIGIT LENGTH %d", + RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length); - LOG_I(RRC,"RRC config (%s,%s,%s)\n",mcc,mnc,tac); - // Parse optional physical parameters + LOG_I(RRC,"RRC config (%s,%s,%s)\n",mcc,mnc,tac); + // Parse optional physical parameters - setting_component_carriers = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_COMPONENT_CARRIERS); - nb_cc = 0; + setting_component_carriers = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_COMPONENT_CARRIERS); + nb_cc = 0; - if (setting_component_carriers != NULL) { + if (setting_component_carriers != NULL) { - num_component_carriers = config_setting_length(setting_component_carriers); - LOG_I(RRC,"num component carriers %d \n", num_component_carriers); + num_component_carriers = config_setting_length(setting_component_carriers); + LOG_I(RRC,"num component carriers %d \n", num_component_carriers); - //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; - for (j = 0; j < num_component_carriers ;j++) { // && j < MAX_NUM_CCs; j++) { - component_carrier = config_setting_get_elem(setting_component_carriers, j); + //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; + for (j = 0; j < num_component_carriers ;j++) { // && j < MAX_NUM_CCs; j++) { + component_carrier = config_setting_get_elem(setting_component_carriers, j); - //printf("Component carrier %d\n",component_carrier); - if (!(config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG, &tdd_config) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG_S, &tdd_config_s) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PREFIX_TYPE, &prefix_type) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PBCH_REPETITION, &pbch_repetition) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_EUTRA_BAND, &eutra_band) - && config_setting_lookup_int64(component_carrier, ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, &downlink_frequency) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, &uplink_frequency_offset) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NID_CELL, &Nid_cell) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_N_RB_DL, &N_RB_DL) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_CELL_MBSFN, &Nid_cell_mbsfn) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_PORTS, &nb_antenna_ports) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) + //printf("Component carrier %d\n",component_carrier); + if (!(config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG, &tdd_config) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TDD_CONFIG_S, &tdd_config_s) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PREFIX_TYPE, &prefix_type) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PBCH_REPETITION, &pbch_repetition) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_EUTRA_BAND, &eutra_band) + && config_setting_lookup_int64(component_carrier, ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, &downlink_frequency) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, &uplink_frequency_offset) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NID_CELL, &Nid_cell) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_N_RB_DL, &N_RB_DL) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_CELL_MBSFN, &Nid_cell_mbsfn) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_PORTS, &nb_antenna_ports) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) #if !defined(Rel10) && !defined(Rel14) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_N1_AN, &pucch_n1_AN) #endif - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) #if defined(Rel10) || defined(Rel14) #endif - )) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, Component Carrier %d!\n", - RC.config_file_name, nb_cc++); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } + )) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } - nb_cc++; - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + nb_cc++; + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } #ifdef Rel14 - if (!pbch_repetition) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; - } - else if (strcmp(pbch_repetition, "FALSE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", - RC.config_file_name, i, pbch_repetition); - } + if (!pbch_repetition) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); + else if (strcmp(pbch_repetition, "TRUE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; + } + else if (strcmp(pbch_repetition, "FALSE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", + RC.config_file_name, i, pbch_repetition); + } #endif - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; - if (Nid_cell>503) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", - RC.config_file_name, i, Nid_cell); - } + if (Nid_cell>503) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", + RC.config_file_name, i, Nid_cell); + } - RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; + RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; - if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", - RC.config_file_name, i, N_RB_DL); - } + if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", + RC.config_file_name, i, N_RB_DL); + } - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; - } - else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, i, frame_type); - } + if (strcmp(frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; + } + else if (strcmp(frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + RC.config_file_name, i, frame_type); + } - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - if (enb_check_band_frequencies(RC.config_file_name, - j, - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], - RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { - AssertFatal(0, "error calling enb_check_band_frequencies\n"); - } + if (enb_check_band_frequencies(RC.config_file_name, + j, + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], + RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { + AssertFatal(0, "error calling enb_check_band_frequencies\n"); + } - if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", - RC.config_file_name, i, nb_antenna_ports); + if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", + RC.config_file_name, i, nb_antenna_ports); - RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; + RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); #if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); #endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, - (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); - if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) - )) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", - RC.config_file_name, i); + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); #ifndef Rel14 - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } #else - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; - } + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; + } #endif - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; - if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", - RC.config_file_name, i); + if (!(config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; - case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; - case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); - } - else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); - switch (rach_preambleTransMax) { + switch (rach_preambleTransMax) { #ifndef Rel14 - _ case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; + _ case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; #else - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; - break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; + break; #endif - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; - } - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - - } - - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + switch (pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; + } + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + switch (ue_TimersAndConstants_t300) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; + + } + + switch (ue_TimersAndConstants_t301) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - - } + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; + + } - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; + switch (ue_TimersAndConstants_t310) { + case 0: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; + + case 500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; + + } + + switch (ue_TimersAndConstants_t311) { + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; + + case 3110: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; + + case 5000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; + + case 10000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; + + case 15000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; + + case 20000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; + + case 31100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TimersAndConstants_n310) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; + + } + + switch (ue_TimersAndConstants_n311) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } - case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - - } - - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; - - case 3110: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; - - case 31100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - - } - - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; - } - #ifdef Rel14 - setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); - if (setting_br13 == NULL) { - puts("setting BR is NULL"); - } else { - puts("setting BR is NOT NULL"); - } - - if (setting_br13 != NULL) { - - scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); - int num_scheduling_info = config_setting_length(scheduling_info_br_list); - RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; - - for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) - { - scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); - if (!( - config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) - && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) - ) - ){ - AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; - RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; - } - - system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); - int num_system_info = config_setting_length(system_info_value_tag_SI_list); - RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; - - for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) - { - system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); - if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) - { - AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; - } - - - rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); - int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); - RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; - int rach_info_level_idx; - for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) - { - rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); - if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) - ) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", - RC.config_file_name, nb_cc++); - } - - RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13; - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13; - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13; - - } - - rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); - int num_rsrp_list = config_setting_length(rsrp_range_list); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; - int rsrp_range_idx; - for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) - { - rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); - if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rsrp_range %d!\n", - RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; - } - - prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); - int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); - RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; - int prach_parameters_index; - for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index) - { - prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index); - if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) ) - ) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n", - RC.config_file_name, nb_cc++); - } - - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = numRepetitionPerPreambleAttempt_r13; - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = mpdcch_NumRepetition_RA_r13; - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = prach_HoppingConfig_r13; - - if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; - } - - if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; - } - - } - - - // TODO - // max_available_narrow_band = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); - - - n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); - - int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list); - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = num_pucch_an_info; - int pucch_info_idx; - for (pucch_info_idx = 0; pucch_info_idx < num_pucch_an_info; ++pucch_info_idx) - { - n1_pucch_AN_info_r13 = config_setting_get_elem(n1_pucch_AN_info_r13_list, pucch_info_idx); - if (! (config_setting_lookup_int(n1_pucch_AN_info_r13, ENB_CONFIG_STRING_PUCCH_INFO_VALUE, &pucch_info_value)) ) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, n1_pucch_AN_info_list_r13_list %d!\n", - RC.config_file_name, nb_cc++); - } - - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; - } - - // Rel8 RadioResourceConfigCommon Parameters - if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) - - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) - )) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, Component Carrier %d!\n", - RC.config_file_name, nb_cc++); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; - - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; - - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); - - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; - - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; - - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; - - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; - - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; - - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; - - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); - - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; - - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); - - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); - - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; - - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); - - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); - - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); - - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); - - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); - - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); - - if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { - if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) - )) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", - RC.config_file_name, i); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; - - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; - - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); - - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); - - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; - - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); - - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; - - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; - - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); - - - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); - - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); - - - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); - - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); - - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); - - - - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; - - - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); - - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; - - if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", - RC.config_file_name, i); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - - - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; - - case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; - - case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } - - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } + setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); + if (setting_br13 == NULL) { + puts("setting BR is NULL"); + } else { + puts("setting BR is NOT NULL"); + } + + if (setting_br13 != NULL) { + + scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); + int num_scheduling_info = config_setting_length(scheduling_info_br_list); + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; + + for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) + { + scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); + if (!( + config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) + && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) + ) + ){ + AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; + } + + system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); + int num_system_info = config_setting_length(system_info_value_tag_SI_list); + RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; + + for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) + { + system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); + if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) + { + AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; + } + + + rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); + int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; + int rach_info_level_idx; + for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) + { + rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); + if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13; + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13; + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13; + + } + + rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); + int num_rsrp_list = config_setting_length(rsrp_range_list); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; + int rsrp_range_idx; + for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) + { + rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); + if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rsrp_range %d!\n", + RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; + } + + prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); + int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; + int prach_parameters_index; + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index) + { + prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index); + if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = numRepetitionPerPreambleAttempt_r13; + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = mpdcch_NumRepetition_RA_r13; + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = prach_HoppingConfig_r13; + + if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; + } + + if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; + } + + } + + + // TODO + // max_available_narrow_band = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); + + + n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); + + int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = num_pucch_an_info; + int pucch_info_idx; + for (pucch_info_idx = 0; pucch_info_idx < num_pucch_an_info; ++pucch_info_idx) + { + n1_pucch_AN_info_r13 = config_setting_get_elem(n1_pucch_AN_info_r13_list, pucch_info_idx); + if (! (config_setting_lookup_int(n1_pucch_AN_info_r13, ENB_CONFIG_STRING_PUCCH_INFO_VALUE, &pucch_info_value)) ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, n1_pucch_AN_info_list_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; + } + + // Rel8 RadioResourceConfigCommon Parameters + if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + )) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; + + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; + + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; + + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; + + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; + + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; + + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); + + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); + + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; + + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; + + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; + + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); + + + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); + + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); + + + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); + + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); + + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); + + + + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + + + if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + + if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + + + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; + + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; + + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } + + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); - } - else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); - switch (rach_preambleTransMax) { + switch (rach_preambleTransMax) { - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; - break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; - break; - - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; + break; + + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + switch (pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; - } - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - - } - - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + break; + } + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + switch (ue_TimersAndConstants_t300) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + break; + + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t300); + break; + + } + + switch (ue_TimersAndConstants_t301) { + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms200; + break; + + case 300: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + break; + + case 400: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + break; + + case 600: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + break; - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; + case 1500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + break; - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t301); + break; + + } - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + switch (ue_TimersAndConstants_t310) { + case 0: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; + break; + + case 500: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; + break; + + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; + break; + + case 2000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + RC.config_file_name, i, ue_TimersAndConstants_t310); + break; + + } + + switch (ue_TimersAndConstants_t311) { + case 1000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; + break; + + case 3110: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; + break; + + case 5000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; + break; + + case 10000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; + break; + + case 15000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; + break; + + case 20000: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; + break; + + case 31100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TimersAndConstants_n310) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + RC.config_file_name, i, ue_TimersAndConstants_n311); + break; + + } + + switch (ue_TimersAndConstants_n311) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", + RC.config_file_name, i, ue_TimersAndConstants_t311); + break; + + } + + switch (ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } + + int hyperSFN_r13; + int eDRX_Allowed_r13; + int q_RxLevMinCE_r13; + int q_QualMinRSRQ_CE_r13; + int si_WindowLength_BR_r13; + int si_RepetitionPattern_r13; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + int startSymbolBR_r13; + int si_HoppingConfigCommon_r13; + int si_ValidityTime_r13; + int mpdcch_pdsch_HoppingNB_r13; + int interval_DLHoppingConfigCommonModeA_r13_val; + int interval_DLHoppingConfigCommonModeB_r13_val; + int mpdcch_pdsch_HoppingOffset_r13; + int preambleTransMax_CE_r13; + int mpdcch_startSF_CSS_RA_r13_val; + int prach_HoppingOffset_r13; + int schedulingInfoSIB1_BR_r13; + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13; + + + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", + RC.config_file_name, i); + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) + { + printf("Enabling BR access SI scheduling parameters\n"); + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + + bool fdd_downlink_exist = config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13); + if (fdd_downlink_exist) + { + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + + config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13); + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = NULL; + } + + + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; + + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + + } + + else + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + + + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + + /////SIB2 Parameters + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; + } + else + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; - case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - - } - - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; - - case 3110: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; - - case 31100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - - } - - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; - } - - int hyperSFN_r13; - int eDRX_Allowed_r13; - int q_RxLevMinCE_r13; - int q_QualMinRSRQ_CE_r13; - int si_WindowLength_BR_r13; - int si_RepetitionPattern_r13; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - int startSymbolBR_r13; - int si_HoppingConfigCommon_r13; - int si_ValidityTime_r13; - int mpdcch_pdsch_HoppingNB_r13; - int interval_DLHoppingConfigCommonModeA_r13_val; - int interval_DLHoppingConfigCommonModeB_r13_val; - int mpdcch_pdsch_HoppingOffset_r13; - int preambleTransMax_CE_r13; - int mpdcch_startSF_CSS_RA_r13_val; - int prach_HoppingOffset_r13; - int schedulingInfoSIB1_BR_r13; - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13; - - - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", - RC.config_file_name, i); - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; - - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); - *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) - { - printf("Enabling BR access SI scheduling parameters\n"); - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13) || - !config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; - - } - - else - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; - - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; - - - - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; - - /////SIB2 Parameters - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) - { - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; - else - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; - } - else - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; - - #endif - - setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); - if (setting_srb1 != NULL) { - if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu) - && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, " - "timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n", - RC.config_file_name, i); - - switch (srb1_max_retx_threshold) { - case 1: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; - break; - - case 2: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; - break; - - case 3: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; - break; - - case 4: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; - break; - - case 6: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; - break; - - case 8: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - break; - - case 16: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; - break; - - case 32: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", - RC.config_file_name, i, srb1_max_retx_threshold); - } - - - switch (srb1_poll_pdu) { - case 4: - rrc->srb1_poll_pdu = PollPDU_p4; - break; - - case 8: - rrc->srb1_poll_pdu = PollPDU_p8; - break; - - case 16: - rrc->srb1_poll_pdu = PollPDU_p16; - break; - - case 32: - rrc->srb1_poll_pdu = PollPDU_p32; - break; - - case 64: - rrc->srb1_poll_pdu = PollPDU_p64; - break; - - case 128: - rrc->srb1_poll_pdu = PollPDU_p128; - break; - - case 256: - rrc->srb1_poll_pdu = PollPDU_p256; - break; - - default: - if (srb1_poll_pdu >= 10000) - rrc->srb1_poll_pdu = PollPDU_pInfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", - RC.config_file_name, i, srb1_poll_pdu); - } - - rrc->srb1_poll_byte = srb1_poll_byte; - - switch (srb1_poll_byte) { - case 25: - rrc->srb1_poll_byte = PollByte_kB25; - break; - - case 50: - rrc->srb1_poll_byte = PollByte_kB50; - break; - - case 75: - rrc->srb1_poll_byte = PollByte_kB75; - break; - - case 100: - rrc->srb1_poll_byte = PollByte_kB100; - break; - - case 125: - rrc->srb1_poll_byte = PollByte_kB125; - break; - - case 250: - rrc->srb1_poll_byte = PollByte_kB250; - break; - - case 375: - rrc->srb1_poll_byte = PollByte_kB375; - break; - - case 500: - rrc->srb1_poll_byte = PollByte_kB500; - break; - - case 750: - rrc->srb1_poll_byte = PollByte_kB750; - break; - - case 1000: - rrc->srb1_poll_byte = PollByte_kB1000; - break; - - case 1250: - rrc->srb1_poll_byte = PollByte_kB1250; - break; - - case 1500: - rrc->srb1_poll_byte = PollByte_kB1500; - break; - - case 2000: - rrc->srb1_poll_byte = PollByte_kB2000; - break; - - case 3000: - rrc->srb1_poll_byte = PollByte_kB3000; - break; - - default: - if (srb1_poll_byte >= 10000) - rrc->srb1_poll_byte = PollByte_kBinfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", - RC.config_file_name, i, srb1_poll_byte); - } - - if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; - } - else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } - - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; - } - else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; - } - else { - AssertFatal(0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", - RC.config_file_name, i, srb1_timer_status_prohibit); - } - - switch (srb1_timer_reordering) { - case 0: - rrc->srb1_timer_reordering = T_Reordering_ms0; - break; - - case 5: - rrc->srb1_timer_reordering = T_Reordering_ms5; - break; - - case 10: - rrc->srb1_timer_reordering = T_Reordering_ms10; - break; - - case 15: - rrc->srb1_timer_reordering = T_Reordering_ms15; - break; - - case 20: - rrc->srb1_timer_reordering = T_Reordering_ms20; - break; - - case 25: - rrc->srb1_timer_reordering = T_Reordering_ms25; - break; - - case 30: - rrc->srb1_timer_reordering = T_Reordering_ms30; - break; - - case 35: - rrc->srb1_timer_reordering = T_Reordering_ms35; - break; - - case 40: - rrc->srb1_timer_reordering = T_Reordering_ms40; - break; - - case 45: - rrc->srb1_timer_reordering = T_Reordering_ms45; - break; - - case 50: - rrc->srb1_timer_reordering = T_Reordering_ms50; - break; - - case 55: - rrc->srb1_timer_reordering = T_Reordering_ms55; - break; - - case 60: - rrc->srb1_timer_reordering = T_Reordering_ms60; - break; - - case 65: - rrc->srb1_timer_reordering = T_Reordering_ms65; - break; - - case 70: - rrc->srb1_timer_reordering = T_Reordering_ms70; - break; - - case 75: - rrc->srb1_timer_reordering = T_Reordering_ms75; - break; - - case 80: - rrc->srb1_timer_reordering = T_Reordering_ms80; - break; - - case 85: - rrc->srb1_timer_reordering = T_Reordering_ms85; - break; - - case 90: - rrc->srb1_timer_reordering = T_Reordering_ms90; - break; - - case 95: - rrc->srb1_timer_reordering = T_Reordering_ms95; - break; - - case 100: - rrc->srb1_timer_reordering = T_Reordering_ms100; - break; - - case 110: - rrc->srb1_timer_reordering = T_Reordering_ms110; - break; - - case 120: - rrc->srb1_timer_reordering = T_Reordering_ms120; - break; - - case 130: - rrc->srb1_timer_reordering = T_Reordering_ms130; - break; - - case 140: - rrc->srb1_timer_reordering = T_Reordering_ms140; - break; - - case 150: - rrc->srb1_timer_reordering = T_Reordering_ms150; - break; - - case 160: - rrc->srb1_timer_reordering = T_Reordering_ms160; - break; - - case 170: - rrc->srb1_timer_reordering = T_Reordering_ms170; - break; - - case 180: - rrc->srb1_timer_reordering = T_Reordering_ms180; - break; - - case 190: - rrc->srb1_timer_reordering = T_Reordering_ms190; - break; - - case 200: - rrc->srb1_timer_reordering = T_Reordering_ms200; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } - - break; - } + setting_srb1 = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SRB1); - } - } - } + if (setting_srb1 != NULL) { + if (!(config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, &srb1_timer_poll_retransmit) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, &srb1_timer_reordering) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, &srb1_timer_status_prohibit) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, &srb1_max_retx_threshold) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_PDU, &srb1_poll_pdu) + && config_setting_lookup_int(setting_srb1, ENB_CONFIG_STRING_SRB1_POLL_BYTE, &srb1_poll_byte))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d timer_poll_retransmit, timer_reordering, " + "timer_status_prohibit, poll_pdu, poll_byte, max_retx_threshold !\n", + RC.config_file_name, i); + + switch (srb1_max_retx_threshold) { + case 1: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; + break; + + case 2: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; + break; + + case 3: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; + break; + + case 4: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; + break; + + case 6: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; + break; + + case 8: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + break; + + case 16: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; + break; + + case 32: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", + RC.config_file_name, i, srb1_max_retx_threshold); + } + + + switch (srb1_poll_pdu) { + case 4: + rrc->srb1_poll_pdu = PollPDU_p4; + break; + + case 8: + rrc->srb1_poll_pdu = PollPDU_p8; + break; + + case 16: + rrc->srb1_poll_pdu = PollPDU_p16; + break; + + case 32: + rrc->srb1_poll_pdu = PollPDU_p32; + break; + + case 64: + rrc->srb1_poll_pdu = PollPDU_p64; + break; + + case 128: + rrc->srb1_poll_pdu = PollPDU_p128; + break; + + case 256: + rrc->srb1_poll_pdu = PollPDU_p256; + break; + + default: + if (srb1_poll_pdu >= 10000) + rrc->srb1_poll_pdu = PollPDU_pInfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", + RC.config_file_name, i, srb1_poll_pdu); + } + + rrc->srb1_poll_byte = srb1_poll_byte; + + switch (srb1_poll_byte) { + case 25: + rrc->srb1_poll_byte = PollByte_kB25; + break; + + case 50: + rrc->srb1_poll_byte = PollByte_kB50; + break; + + case 75: + rrc->srb1_poll_byte = PollByte_kB75; + break; + + case 100: + rrc->srb1_poll_byte = PollByte_kB100; + break; + + case 125: + rrc->srb1_poll_byte = PollByte_kB125; + break; + + case 250: + rrc->srb1_poll_byte = PollByte_kB250; + break; + + case 375: + rrc->srb1_poll_byte = PollByte_kB375; + break; + + case 500: + rrc->srb1_poll_byte = PollByte_kB500; + break; + + case 750: + rrc->srb1_poll_byte = PollByte_kB750; + break; + + case 1000: + rrc->srb1_poll_byte = PollByte_kB1000; + break; + + case 1250: + rrc->srb1_poll_byte = PollByte_kB1250; + break; + + case 1500: + rrc->srb1_poll_byte = PollByte_kB1500; + break; + + case 2000: + rrc->srb1_poll_byte = PollByte_kB2000; + break; + + case 3000: + rrc->srb1_poll_byte = PollByte_kB3000; + break; + + default: + if (srb1_poll_byte >= 10000) + rrc->srb1_poll_byte = PollByte_kBinfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", + RC.config_file_name, i, srb1_poll_byte); + } + + if (srb1_timer_poll_retransmit <= 250) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5) / 5; + } + else if (srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300) / 50 + 50; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_timer_poll_retransmit); + } + + if (srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit / 5; + } + else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300) / 50 + 51; + } + else { + AssertFatal(0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + RC.config_file_name, i, srb1_timer_status_prohibit); + } + + switch (srb1_timer_reordering) { + case 0: + rrc->srb1_timer_reordering = T_Reordering_ms0; + break; + + case 5: + rrc->srb1_timer_reordering = T_Reordering_ms5; + break; + + case 10: + rrc->srb1_timer_reordering = T_Reordering_ms10; + break; + + case 15: + rrc->srb1_timer_reordering = T_Reordering_ms15; + break; + + case 20: + rrc->srb1_timer_reordering = T_Reordering_ms20; + break; + + case 25: + rrc->srb1_timer_reordering = T_Reordering_ms25; + break; + + case 30: + rrc->srb1_timer_reordering = T_Reordering_ms30; + break; + + case 35: + rrc->srb1_timer_reordering = T_Reordering_ms35; + break; + + case 40: + rrc->srb1_timer_reordering = T_Reordering_ms40; + break; + + case 45: + rrc->srb1_timer_reordering = T_Reordering_ms45; + break; + + case 50: + rrc->srb1_timer_reordering = T_Reordering_ms50; + break; + + case 55: + rrc->srb1_timer_reordering = T_Reordering_ms55; + break; + + case 60: + rrc->srb1_timer_reordering = T_Reordering_ms60; + break; + + case 65: + rrc->srb1_timer_reordering = T_Reordering_ms65; + break; + + case 70: + rrc->srb1_timer_reordering = T_Reordering_ms70; + break; + + case 75: + rrc->srb1_timer_reordering = T_Reordering_ms75; + break; + + case 80: + rrc->srb1_timer_reordering = T_Reordering_ms80; + break; + + case 85: + rrc->srb1_timer_reordering = T_Reordering_ms85; + break; + + case 90: + rrc->srb1_timer_reordering = T_Reordering_ms90; + break; + + case 95: + rrc->srb1_timer_reordering = T_Reordering_ms95; + break; + + case 100: + rrc->srb1_timer_reordering = T_Reordering_ms100; + break; + + case 110: + rrc->srb1_timer_reordering = T_Reordering_ms110; + break; + + case 120: + rrc->srb1_timer_reordering = T_Reordering_ms120; + break; + + case 130: + rrc->srb1_timer_reordering = T_Reordering_ms130; + break; + + case 140: + rrc->srb1_timer_reordering = T_Reordering_ms140; + break; + + case 150: + rrc->srb1_timer_reordering = T_Reordering_ms150; + break; + + case 160: + rrc->srb1_timer_reordering = T_Reordering_ms160; + break; + + case 170: + rrc->srb1_timer_reordering = T_Reordering_ms170; + break; + + case 180: + rrc->srb1_timer_reordering = T_Reordering_ms180; + break; + + case 190: + rrc->srb1_timer_reordering = T_Reordering_ms190; + break; + + case 200: + rrc->srb1_timer_reordering = T_Reordering_ms200; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", + RC.config_file_name, i, srb1_timer_reordering); + } + + break; + } + + } + } + } + } } } } -} -int RCconfig_gtpu() { - config_t cfg; - config_setting_t *setting = NULL; - config_setting_t *subsetting = NULL; - config_setting_t *setting_enb = NULL; - int num_enbs = 0; - libconfig_int enb_id = 0; + int RCconfig_gtpu() { + config_t cfg; + config_setting_t *setting = NULL; + config_setting_t *subsetting = NULL; + config_setting_t *setting_enb = NULL; + int num_enbs = 0; + libconfig_int enb_id = 0; - char* enb_interface_name_for_S1U = NULL; - char* enb_ipv4_address_for_S1U = NULL; - libconfig_int enb_port_for_S1U = 0; - char *address = NULL; - char *cidr = NULL; - char *astring = NULL; + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + libconfig_int enb_port_for_S1U = 0; + char *address = NULL; + char *cidr = NULL; + char *astring = NULL; - // for no gcc warnings - (void)astring; + // for no gcc warnings + (void)astring; - LOG_I(GTPU,"Configuring GTPu\n"); + LOG_I(GTPU,"Configuring GTPu\n"); - config_init(&cfg); + config_init(&cfg); - if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. - if (! config_read_file(&cfg, RC.config_file_name)) { - config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); - } - } else { - config_destroy(&cfg); - AssertFatal (0, "No eNB configuration file provided!\n"); - } - - // Get list of active eNBs, (only these will be configured) - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - - if (setting != NULL) { - num_enbs = config_setting_length(setting); - setting_enb = config_setting_get_elem(setting, 0); - } - - if (num_enbs>0) { - // Output a list of all eNBs. - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - - if (setting != NULL) { - - - setting_enb = config_setting_get_elem(setting, 0); - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - - if (subsetting != NULL) { - if ( (config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, - (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, - (const char **)&enb_ipv4_address_for_S1U) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, - &enb_port_for_S1U) - ) - ) { - - cidr = enb_ipv4_address_for_S1U; - address = strtok(cidr, "/"); - - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); - - LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up); - - } - - RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U; - - } + if (RC.config_file_name != NULL) { + // Read the file. If there is an error, report it and exit. + if (! config_read_file(&cfg, RC.config_file_name)) { + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); } - } - } -} - - -int RCconfig_S1(MessageDef *msg_p, uint32_t i) { - config_t cfg; - config_setting_t *setting = NULL; - config_setting_t *subsetting = NULL; - config_setting_t *setting_mme_addresses = NULL; - config_setting_t *setting_mme_address = NULL; - config_setting_t *setting_enb = NULL; - config_setting_t *setting_otg = NULL; - config_setting_t *subsetting_otg = NULL; - int parse_errors = 0; - int num_enbs = 0; - int num_mme_address = 0; - int num_otg_elements = 0; - int num_component_carriers = 0; - int j = 0; - libconfig_int enb_id = 0; - - - const char* cell_type = NULL; - const char* tac = 0; - const char* enb_name = NULL; - const char* mcc = 0; - const char* mnc = 0; - - libconfig_int my_int; - - - char* if_name = NULL; - char* ipv4 = NULL; - char* ipv4_remote = NULL; - char* ipv6 = NULL; - char* local_rf = NULL; - char* preference = NULL; - char* active = NULL; - - char* tr_preference = NULL; - libconfig_int local_port = 0; - libconfig_int remote_port = 0; - const char* active_enb[MAX_ENB]; - char* enb_interface_name_for_S1U = NULL; - char* enb_ipv4_address_for_S1U = NULL; - libconfig_int enb_port_for_S1U = 0; - char* enb_interface_name_for_S1_MME = NULL; - char* enb_ipv4_address_for_S1_MME = NULL; - char *address = NULL; - char *cidr = NULL; - char *astring = NULL; - - // for no gcc warnings - (void)astring; - (void)my_int; - - memset((char*)active_enb, 0 , MAX_ENB * sizeof(char*)); - - config_init(&cfg); - - if (RC.config_file_name != NULL) { - // Read the file. If there is an error, report it and exit. - if (! config_read_file(&cfg, RC.config_file_name)) { - config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); - } - } else { - config_destroy(&cfg); - AssertFatal (0, "No eNB configuration file provided!\n"); - } - -#if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) - - if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { - if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { - asn_debug = 0; - asn1_xer_print = 0; - } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { - asn_debug = 1; - asn1_xer_print = 1; - } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { - asn_debug = 1; - asn1_xer_print = 2; } else { - asn_debug = 0; - asn1_xer_print = 0; + config_destroy(&cfg); + AssertFatal (0, "No eNB configuration file provided!\n"); } - } -#endif - - // Get list of active eNBs, (only these will be configured) - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - - if (setting != NULL) { - num_enbs = config_setting_length(setting); - setting_enb = config_setting_get_elem(setting, i); - active_enb[i] = config_setting_get_string (setting_enb); - AssertFatal (active_enb[i] != NULL, - "Failed to parse config file %s, %uth attribute %s \n", - RC.config_file_name, i, ENB_CONFIG_STRING_ACTIVE_ENBS); - active_enb[i] = strdup(active_enb[i]); - } - - - if (num_enbs>0) { - // Output a list of all eNBs. - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); + // Get list of active eNBs, (only these will be configured) + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); if (setting != NULL) { num_enbs = config_setting_length(setting); + setting_enb = config_setting_get_elem(setting, 0); + } - for (i = 0; i < num_enbs; i++) { - setting_enb = config_setting_get_elem(setting, i); + if (num_enbs>0) { + // Output a list of all eNBs. + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { - // Calculate a default eNB ID - -# if defined(ENABLE_USE_MME) - uint32_t hash; - - hash = s1ap_generate_eNB_id (); - enb_id = i + (hash & 0xFFFF8); -# else - enb_id = i; -# endif - } - - if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) - && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) + if (setting != NULL) { - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb\n", - RC.config_file_name, i); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } + setting_enb = config_setting_get_elem(setting, 0); + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - // search if in active list - for (j=0; j < num_enbs; j++) { - if (strcmp(active_enb[j], enb_name) == 0) { + if (subsetting != NULL) { + if ( (config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + (const char **)&enb_interface_name_for_S1U) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + (const char **)&enb_ipv4_address_for_S1U) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, + &enb_port_for_S1U) + ) + ) { - S1AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id; + cidr = enb_ipv4_address_for_S1U; + address = strtok(cidr, "/"); - if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB; - } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", - RC.config_file_name, i, cell_type); - } + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO ( address, RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" ); - S1AP_REGISTER_ENB_REQ (msg_p).eNB_name = strdup(enb_name); - S1AP_REGISTER_ENB_REQ (msg_p).tac = (uint16_t)atoi(tac); - S1AP_REGISTER_ENB_REQ (msg_p).mcc = (uint16_t)atoi(mcc); - S1AP_REGISTER_ENB_REQ (msg_p).mnc = (uint16_t)atoi(mnc); - S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(mnc); - S1AP_REGISTER_ENB_REQ (msg_p).default_drx = 0; - AssertFatal((S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) || - (S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3), - "BAD MNC DIGIT LENGTH %d", - S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length); + LOG_I(GTPU,"Configuring GTPu address : %s -> %x\n",address,RC.gtpv1u_data_g->enb_ip_address_for_S1u_S12_S4_up); + } + RC.gtpv1u_data_g->enb_port_for_S1u_S12_S4_up = enb_port_for_S1U; - setting_mme_addresses = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_MME_IP_ADDRESS); - num_mme_address = config_setting_length(setting_mme_addresses); - S1AP_REGISTER_ENB_REQ (msg_p).nb_mme = 0; - - for (j = 0; j < num_mme_address; j++) { - setting_mme_address = config_setting_get_elem(setting_mme_addresses, j); - - if ( !( - config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV4_ADDRESS, (const char **)&ipv4) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV6_ADDRESS, (const char **)&ipv6) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, (const char **)&active) - && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, (const char **)&preference) - ) - ) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, %u th enb %u th mme address !\n", - RC.config_file_name, i, j); - continue; // FIXME will prevent segfaults below, not sure what happens at function exit... - } - - S1AP_REGISTER_ENB_REQ (msg_p).nb_mme += 1; - - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4_address,ipv4); - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6_address,ipv6); - - if (strcmp(active, "yes") == 0) { -#if defined(ENABLE_USE_MME) - EPC_MODE_ENABLED = 1; -#endif - } - if (strcmp(preference, "ipv4") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - } else if (strcmp(preference, "ipv6") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; - } else if (strcmp(preference, "no") == 0) { - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; - S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; - } - } - - - // SCTP SETTING - S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS; - S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = SCTP_IN_STREAMS; -# if defined(ENABLE_USE_MME) - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SCTP_CONFIG); - - if (subsetting != NULL) { - if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_INSTREAMS, &my_int) )) { - S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)my_int; - } - - if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_OUTSTREAMS, &my_int) )) { - S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)my_int; - } - } -#endif - - // NETWORK_INTERFACES - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); - - if (subsetting != NULL) { - if ( ( - config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, - (const char **)&enb_interface_name_for_S1_MME) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME, - (const char **)&enb_ipv4_address_for_S1_MME) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, - (const char **)&enb_interface_name_for_S1U) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, - (const char **)&enb_ipv4_address_for_S1U) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, - &enb_port_for_S1U) - ) - ) { - // S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1U = strdup(enb_interface_name_for_S1U); - cidr = enb_ipv4_address_for_S1U; - address = strtok(cidr, "/"); - - S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv6 = 0; - S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4 = 1; - - strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address); - - } - } - - - - - break; - } - } + } + } } } } - return; -} -void RCConfig(const char *config_file_name) { - config_t cfg; - config_setting_t *setting = NULL; - config_setting_t *setting_enb = NULL; - config_setting_t *setting_component_carriers = NULL; - config_init(&cfg); + int RCconfig_S1(MessageDef *msg_p, uint32_t i) { + config_t cfg; + config_setting_t *setting = NULL; + config_setting_t *subsetting = NULL; + config_setting_t *setting_mme_addresses = NULL; + config_setting_t *setting_mme_address = NULL; + config_setting_t *setting_enb = NULL; + config_setting_t *setting_otg = NULL; + config_setting_t *subsetting_otg = NULL; + int parse_errors = 0; + int num_enbs = 0; + int num_mme_address = 0; + int num_otg_elements = 0; + int num_component_carriers = 0; + int j = 0; + libconfig_int enb_id = 0; - if (config_file_name != NULL) { - RC.config_file_name = config_file_name; - if (! config_read_file(&cfg, RC.config_file_name)) { + const char* cell_type = NULL; + const char* tac = 0; + const char* enb_name = NULL; + const char* mcc = 0; + const char* mnc = 0; + + libconfig_int my_int; + + + char* if_name = NULL; + char* ipv4 = NULL; + char* ipv4_remote = NULL; + char* ipv6 = NULL; + char* local_rf = NULL; + char* preference = NULL; + char* active = NULL; + + char* tr_preference = NULL; + libconfig_int local_port = 0; + libconfig_int remote_port = 0; + const char* active_enb[MAX_ENB]; + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + libconfig_int enb_port_for_S1U = 0; + char* enb_interface_name_for_S1_MME = NULL; + char* enb_ipv4_address_for_S1_MME = NULL; + char *address = NULL; + char *cidr = NULL; + char *astring = NULL; + + // for no gcc warnings + (void)astring; + (void)my_int; + + memset((char*)active_enb, 0 , MAX_ENB * sizeof(char*)); + + config_init(&cfg); + + if (RC.config_file_name != NULL) { + // Read the file. If there is an error, report it and exit. + if (! config_read_file(&cfg, RC.config_file_name)) { + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + } + } else { config_destroy(&cfg); - AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + AssertFatal (0, "No eNB configuration file provided!\n"); } - // Get num eNB instances + +#if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) + + if ( (config_lookup_string( &cfg, ENB_CONFIG_STRING_ASN1_VERBOSITY, (const char **)&astring) )) { + if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_NONE) == 0) { + asn_debug = 0; + asn1_xer_print = 0; + } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_INFO) == 0) { + asn_debug = 1; + asn1_xer_print = 1; + } else if (strcasecmp(astring , ENB_CONFIG_STRING_ASN1_VERBOSITY_ANNOYING) == 0) { + asn_debug = 1; + asn1_xer_print = 2; + } else { + asn_debug = 0; + asn1_xer_print = 0; + } + } + +#endif + + // Get list of active eNBs, (only these will be configured) setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); - if (setting != NULL) RC.nb_inst = config_setting_length(setting); - if (RC.nb_inst > 0) { - printf("Number of eNB RRC instances %d\n",RC.nb_inst); - setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int)); - for (int i=0;i0) { + // Output a list of all eNBs. + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); - // Get num RU instances - setting = config_lookup(&cfg, CONFIG_STRING_RU_LIST); - if (setting != NULL) RC.nb_RU = config_setting_length(setting); - } - else { - config_destroy(&cfg); - AssertFatal(0,"Configuration file is null\n"); + if (setting != NULL) { + num_enbs = config_setting_length(setting); + + for (i = 0; i < num_enbs; i++) { + setting_enb = config_setting_get_elem(setting, i); + + if (! config_setting_lookup_int(setting_enb, ENB_CONFIG_STRING_ENB_ID, &enb_id)) { + // Calculate a default eNB ID + +# if defined(ENABLE_USE_MME) + uint32_t hash; + + hash = s1ap_generate_eNB_id (); + enb_id = i + (hash & 0xFFFF8); +# else + enb_id = i; +# endif + } + + if ( !( config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_CELL_TYPE, &cell_type) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_ENB_NAME, &enb_name) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_TRACKING_AREA_CODE, &tac) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_COUNTRY_CODE, &mcc) + && config_setting_lookup_string(setting_enb, ENB_CONFIG_STRING_MOBILE_NETWORK_CODE, &mnc) + + + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb\n", + RC.config_file_name, i); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } + + // search if in active list + for (j=0; j < num_enbs; j++) { + if (strcmp(active_enb[j], enb_name) == 0) { + + S1AP_REGISTER_ENB_REQ (msg_p).eNB_id = enb_id; + + if (strcmp(cell_type, "CELL_MACRO_ENB") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_MACRO_ENB; + } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).cell_type = CELL_HOME_ENB; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", + RC.config_file_name, i, cell_type); + } + + S1AP_REGISTER_ENB_REQ (msg_p).eNB_name = strdup(enb_name); + S1AP_REGISTER_ENB_REQ (msg_p).tac = (uint16_t)atoi(tac); + S1AP_REGISTER_ENB_REQ (msg_p).mcc = (uint16_t)atoi(mcc); + S1AP_REGISTER_ENB_REQ (msg_p).mnc = (uint16_t)atoi(mnc); + S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length = strlen(mnc); + S1AP_REGISTER_ENB_REQ (msg_p).default_drx = 0; + AssertFatal((S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 2) || + (S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length == 3), + "BAD MNC DIGIT LENGTH %d", + S1AP_REGISTER_ENB_REQ (msg_p).mnc_digit_length); + + + + setting_mme_addresses = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_MME_IP_ADDRESS); + num_mme_address = config_setting_length(setting_mme_addresses); + S1AP_REGISTER_ENB_REQ (msg_p).nb_mme = 0; + + for (j = 0; j < num_mme_address; j++) { + setting_mme_address = config_setting_get_elem(setting_mme_addresses, j); + + if ( !( + config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV4_ADDRESS, (const char **)&ipv4) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IPV6_ADDRESS, (const char **)&ipv6) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_ACTIVE, (const char **)&active) + && config_setting_lookup_string(setting_mme_address, ENB_CONFIG_STRING_MME_IP_ADDRESS_PREFERENCE, (const char **)&preference) + ) + ) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, %u th enb %u th mme address !\n", + RC.config_file_name, i, j); + continue; // FIXME will prevent segfaults below, not sure what happens at function exit... + } + + S1AP_REGISTER_ENB_REQ (msg_p).nb_mme += 1; + + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4_address,ipv4); + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6_address,ipv6); + + if (strcmp(active, "yes") == 0) { +#if defined(ENABLE_USE_MME) + EPC_MODE_ENABLED = 1; +#endif + } + if (strcmp(preference, "ipv4") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + } else if (strcmp(preference, "ipv6") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } else if (strcmp(preference, "no") == 0) { + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv4 = 1; + S1AP_REGISTER_ENB_REQ (msg_p).mme_ip_address[j].ipv6 = 1; + } + } + + + // SCTP SETTING + S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = SCTP_OUT_STREAMS; + S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = SCTP_IN_STREAMS; +# if defined(ENABLE_USE_MME) + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_SCTP_CONFIG); + + if (subsetting != NULL) { + if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_INSTREAMS, &my_int) )) { + S1AP_REGISTER_ENB_REQ (msg_p).sctp_in_streams = (uint16_t)my_int; + } + + if ( (config_setting_lookup_int( subsetting, ENB_CONFIG_STRING_SCTP_OUTSTREAMS, &my_int) )) { + S1AP_REGISTER_ENB_REQ (msg_p).sctp_out_streams = (uint16_t)my_int; + } + } +#endif + + // NETWORK_INTERFACES + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG); + + if (subsetting != NULL) { + if ( ( + config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME, + (const char **)&enb_interface_name_for_S1_MME) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME, + (const char **)&enb_ipv4_address_for_S1_MME) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U, + (const char **)&enb_interface_name_for_S1U) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U, + (const char **)&enb_ipv4_address_for_S1U) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_ENB_PORT_FOR_S1U, + &enb_port_for_S1U) + ) + ) { + // S1AP_REGISTER_ENB_REQ (msg_p).enb_interface_name_for_S1U = strdup(enb_interface_name_for_S1U); + cidr = enb_ipv4_address_for_S1U; + address = strtok(cidr, "/"); + + S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv6 = 0; + S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4 = 1; + + strcpy(S1AP_REGISTER_ENB_REQ (msg_p).enb_ip_address.ipv4_address, address); + + } + } + + + + + break; + } + } + } + } + } + return; } - return; -} + void RCConfig(const char *config_file_name) { + + config_t cfg; + config_setting_t *setting = NULL; + config_setting_t *setting_enb = NULL; + config_setting_t *setting_component_carriers = NULL; + config_init(&cfg); + + if (config_file_name != NULL) { + + RC.config_file_name = config_file_name; + if (! config_read_file(&cfg, RC.config_file_name)) { + config_destroy(&cfg); + AssertFatal (0, "Failed to parse eNB configuration file %s!\n", RC.config_file_name); + } + // Get num eNB instances + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ACTIVE_ENBS); + + if (setting != NULL) RC.nb_inst = config_setting_length(setting); + if (RC.nb_inst > 0) { + printf("Number of eNB RRC instances %d\n",RC.nb_inst); + setting = config_lookup(&cfg, ENB_CONFIG_STRING_ENB_LIST); + RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int)); + for (int i=0;ibandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 + + if (configuration->fdd_DownlinkOrTddSubframeBitmapBR_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13)); - memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13, 0, sizeof(sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13))); - if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) - { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + if (*configuration->fdd_DownlinkOrTddSubframeBitmapBR_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; + } + else + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; + } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.size = 2; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern10_r13.bits_unused = 6; } else { - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; - - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; } sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); From 32201bf30b48587eb64b046f90c62c3bc63b25a3 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Tue, 15 Aug 2017 13:34:09 +0200 Subject: [PATCH 031/125] commit before merge from repository --- openair1/PHY/LTE_TRANSPORT/defs.h | 19 ++++++-- openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c | 35 +++++++++++++-- openair1/PHY/LTE_TRANSPORT/pmch.c | 3 +- openair1/PHY/LTE_TRANSPORT/proto.h | 1 + openair1/SCHED/phy_procedures_lte_eNb.c | 45 ++++++++++--------- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 7 ++- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 16 ++++--- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 2 +- 8 files changed, 92 insertions(+), 36 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/defs.h b/openair1/PHY/LTE_TRANSPORT/defs.h index e2be6810b2..e2105df344 100755 --- a/openair1/PHY/LTE_TRANSPORT/defs.h +++ b/openair1/PHY/LTE_TRANSPORT/defs.h @@ -148,6 +148,8 @@ typedef struct { uint16_t nb_rb; /// downlink power offset field uint8_t dl_power_off; + /// start symbold of pdsch + uint8_t pdsch_start; /// Concatenated "e"-sequences (for definition see 36-212 V8.6 2009-03, p.17-18) uint8_t e[MAX_NUM_CHANNEL_BITS] __attribute__((aligned(32))); /// Turbo-code outputs (36-212 V8.6 2009-03, p.12 @@ -172,8 +174,8 @@ typedef struct { uint8_t Nlayers; /// First layer for this PSCH transmission uint8_t first_layer; - /// codeword this transport block is mapped to - uint8_t codeword; + /// codeword this transport block is mapped to + uint8_t codeword; } LTE_DL_eNB_HARQ_t; typedef struct { @@ -250,11 +252,18 @@ typedef struct { uint8_t decode_phich; } LTE_UL_UE_HARQ_t; +#ifdef Rel14 +typedef enum { + CEmodeA = 0, + CEmodeB = 1 +} CEmode_t; +#endif + typedef struct { /// TX buffers for UE-spec transmission (antenna ports 5 or 7..14, prior to precoding) int32_t *txdataF[8]; /// beamforming weights for UE-spec transmission (antenna ports 5 or 7..14), for each codeword, maximum 4 layers? - int32_t **ue_spec_bf_weights[4]; + int32_t **ue_spec_bf_weights[4]; /// dl channel estimates (estimated from ul channel estimates) int32_t **calib_dl_ch_estimates; /// Allocated RNTI (0 means DLSCH_t is not currently used) @@ -292,7 +301,11 @@ typedef struct { /// amplitude of PDSCH (compared to RS) in symbols containing pilots int16_t sqrt_rho_b; #ifdef Rel14 + /// indicator that this DLSCH corresponds to SIB1-BR, needed for c_init for scrambling uint8_t sib1_br_flag; + /// initial absolute subframe (see 36.211 Section 6.3.1), needed for c_init for scrambling + uint16_t i0; + CEmode_t CEmode; #endif } LTE_eNB_DLSCH_t; diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c index eaaddb0c07..e11a637893 100755 --- a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c +++ b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c @@ -74,23 +74,50 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, int harq_pid, int G, uint8_t q, + uint16_t frame, uint8_t Ns) { - int i; + int n; // uint8_t reset; uint32_t x1, x2, s=0; uint8_t *dlsch_e=dlsch->harq_processes[harq_pid]->e; uint8_t *e=dlsch_e; +#ifdef Rel14 + // Rule for accumulation of subframes for BL/CE UEs + uint8_t Nacc=4; + uint16_t j0,j,idelta; + uint16_t i = (Ns>>1) + (10*frame); + uint16_t i0 = dlsch->i0; + if (dlsch->sib1_br_flag==1) Nacc=1; + else if (dlsch->rnti == 0xFFFF || dlsch->rnti == 0xFFFE) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4; + // Note: above SC-RNTI will also have to be added when/if implemented + else if (dlsch->CEmode == CEmodeA) Nacc=1; + else if (dlsch->CEmode == CEmodeB) Nacc = (frame_parms->frame_type == TDD) ? 10 : 4; + + if (frame_parms->frame_type == FDD || Nacc == 1) idelta = 0; + else idelta = Nacc-2; + + j0 = (i0+idelta)/Nacc; + j = (i - i0)/Nacc; +#endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_SCRAMBLING, VCD_FUNCTION_IN); // reset = 1; // x1 is set in lte_gold_generic if (mbsfn_flag == 0) { - x2 = (dlsch->rnti<<14) + (q<<13) + ((Ns>>1)<<9) + frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.3.1 +#ifdef Rel14 + if (dlsch->i0 != 0xFFFF) { + // rule for BL/CE UEs from Section 6.3.1 in 36.211 + x2= (dlsch->rnti<<14) + (q<<13) + ((((j0+j)*Nacc)%10)<<9) + frame_parms->Nid_cell; + if ((frame&1023) < 200) LOG_D(PHY,"Scrambling init for (i0 %d, i %d, j0 %d, j %d, Nacc %d) => x2 %d\n",i0,i,j0,j,Nacc,x2); + } + else +#endif + x2 = (dlsch->rnti<<14) + (q<<13) + ((Ns>>1)<<9) + frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.3.1 for PDSCH } else { - x2 = ((Ns>>1)<<9) + frame_parms->Nid_cell_mbsfn; //this is c_init in 36.211 Sec 6.3.1 + x2 = ((Ns>>1)<<9) + frame_parms->Nid_cell_mbsfn; //this is c_init in 36.211 Sec 6.3.1 for PMCH } #ifdef DEBUG_SCRAMBLING @@ -98,7 +125,7 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, #endif s = lte_gold_scram(&x1, &x2, 1); - for (i=0; i<(1+(G>>5)); i++) { + for (n=0; n<(1+(G>>5)); n++) { #ifdef DEBUG_SCRAMBLING printf("scrambling %d : %d => ",k,e[k]); diff --git a/openair1/PHY/LTE_TRANSPORT/pmch.c b/openair1/PHY/LTE_TRANSPORT/pmch.c index 3aa14d924c..40f157e56b 100755 --- a/openair1/PHY/LTE_TRANSPORT/pmch.c +++ b/openair1/PHY/LTE_TRANSPORT/pmch.c @@ -285,6 +285,7 @@ void generate_mch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t *a) int G; int subframe = proc->subframe_tx; + int frame = proc->frame_tx; if (eNB->abstraction_flag != 0) { if (eNB_transport_info_TB_index[eNB->Mod_id][eNB->CC_id]!=0) @@ -324,7 +325,7 @@ void generate_mch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,uint8_t *a) &eNB->dlsch_interleaving_stats)==0, "problem in dlsch_encoding"); - dlsch_scrambling(&eNB->frame_parms,1,eNB->dlsch_MCH,0,G,0,subframe<<1); + dlsch_scrambling(&eNB->frame_parms,1,eNB->dlsch_MCH,0,G,0,frame,subframe<<1); mch_modulation(eNB->common_vars.txdataF, diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index 87b736e1b4..f3bc2c5db1 100755 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -1973,6 +1973,7 @@ void dlsch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, int hard_pid, int G, uint8_t q, + uint16_t frame, uint8_t Ns); void dlsch_unscrambling(LTE_DL_FRAME_PARMS *frame_parms, diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 80789c2e8d..e350cf14c3 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -705,8 +705,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, LTE_eNB_DLSCH_t *dlsch, LTE_eNB_DLSCH_t *dlsch1, LTE_eNB_UE_stats *ue_stats, - int ra_flag, - int num_pdcch_symbols) { + int ra_flag) { int frame=proc->frame_tx; int subframe=proc->subframe_tx; @@ -717,15 +716,15 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, if (frame < 20) { LOG_I(PHY, - "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", num_pdcch_symbols %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", + "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", eNB->Mod_id, dlsch->rnti,harq_pid, - frame, subframe, input_buffer_length, num_pdcch_symbols, + frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, get_G(fp, dlsch_harq->nb_rb, dlsch_harq->rb_alloc, dlsch_harq->Qm, dlsch_harq->Nl, - num_pdcch_symbols, + dlsch_harq->pdsch_start, frame, subframe, dlsch_harq->mimo_mode==TM7?7:0), @@ -751,7 +750,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, dlsch_harq->rb_alloc, dlsch_harq->Qm, dlsch_harq->Nl, - num_pdcch_symbols, + dlsch_harq->pdsch_start, frame, subframe, dlsch_harq->mimo_mode==TM7?7:0), @@ -857,7 +856,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, start_meas(&eNB->dlsch_encoding_stats); eNB->te(eNB, dlsch_harq->pdu, - num_pdcch_symbols, + dlsch_harq->pdsch_start, dlsch, frame,subframe, &eNB->dlsch_rate_matching_stats, @@ -875,10 +874,11 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, dlsch_harq->rb_alloc, dlsch_harq->Qm, dlsch_harq->Nl, - num_pdcch_symbols, + dlsch_harq->pdsch_start, frame,subframe, 0), 0, + frame, subframe<<1); stop_meas(&eNB->dlsch_scrambling_stats); @@ -889,7 +889,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, eNB->common_vars.txdataF, AMP, subframe, - num_pdcch_symbols, + dlsch_harq->pdsch_start, dlsch, dlsch1); @@ -991,6 +991,9 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, uint8_t *sdu) { nfapi_dl_config_dlsch_pdu_rel8_t *rel8 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8; +#ifndef Rel8 + nfapi_dl_config_dlsch_pdu_rel10_t *rel10 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10; +#endif #ifdef Rel14 nfapi_dl_config_dlsch_pdu_rel13_t *rel13 = &dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13; #endif @@ -1017,6 +1020,12 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch1_harq = dlsch1->harq_processes[harq_pid]; AssertFatal(dlsch0_harq!=NULL,"dlsch_harq is null\n"); + + dlsch0_harq->pdsch_start = eNB->pdcch_vars[proc->subframe_tx & 1].num_pdcch_symbols; + + + + LOG_D(PHY,"NFAPI: frame %d, subframe %d: programming dlsch, rnti %x, UE_id %d, harq_pid %d\n", proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid); if (codeword_index == 0) dlsch0_harq->pdu = sdu; @@ -1025,10 +1034,12 @@ handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, #ifdef Rel14 dlsch0->sib1_br_flag=0; if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR - dlsch0->rnti = 0xFFFF; - dlsch0->Kmimo = 1; - dlsch0->Mdlharq = 4; - dlsch0->Nsoft = 25344; + dlsch0->rnti = 0xFFFF; + dlsch0->Kmimo = 1; + dlsch0->Mdlharq = 4; + dlsch0->Nsoft = 25344; + dlsch0->i0 = rel13->initial_transmission_sf_io; + dlsch0_harq->pdsch_start = rel10->pdsch_start; if (rel13->pdsch_payload_type == 0) dlsch0->sib1_br_flag=1; @@ -1470,13 +1481,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t)UE_id], - 0, -#ifdef Rel14 - dlsch0->sib1_br_flag==0 ? num_pdcch_symbols : 3 -#else - num_pdcch_symbols -#endif -); + 0); } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 88ee3d14ae..1a3ea1ca9e 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -310,7 +310,10 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - + + // Rel10 fields + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + // Rel13 fields dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10*frameP)+subframeP; @@ -658,6 +661,8 @@ void generate_Msg4(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 4e4c8aca1f..f9b85ffdd8 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -196,7 +196,7 @@ schedule_SIB1_BR( AssertFatal(bcch_sdu_length <= TBS, "length returned by RRC %d is not compatible with the TBS %d from MIB\n",bcch_sdu_length,TBS); - if ((frameP&1023) < 200) LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx); + if ((frameP&1023) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx); // allocate all 6 PRBs in narrowband for SIB1_BR @@ -235,6 +235,8 @@ schedule_SIB1_BR( dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // Rel10 fields + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = 3; // Rel13 fields dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 1; // CEModeA UE dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 0; // SIB1-BR @@ -311,7 +313,7 @@ schedule_SI_BR( nfapi_dl_config_request_body_t *dl_req; int i; int rvidx; - + int absSF = (frameP*10)+subframeP; for (CC_id=0; CC_id>1) + (k&1))&3; @@ -398,7 +400,7 @@ schedule_SI_BR( vrb_map[first_rb+4] = 1; vrb_map[first_rb+5] = 1; - if ((frameP%1000) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", + if ((frameP&1023) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", module_idP,frameP,subframeP,CC_id,si_Narrowband_r13-1,rvidx, sf_mod_period,si_WindowLength_BR_r13,si_RepetitionPattern_r13, bcch_sdu_length); @@ -432,10 +434,12 @@ schedule_SI_BR( dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // Rel10 fields (for PDSCH starting symbol) + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; // Rel13 fields dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = 1; // CEModeA UE dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 1; // SI-BR - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = 0xFFFF; // absolute SF + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = absSF - sf_mod_period; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; dl_req->number_pdu++; @@ -757,7 +761,7 @@ schedule_SI( #ifdef Rel14 schedule_SIB1_BR(module_idP,frameP,subframeP); - // schedule_SI_BR(module_idP,frameP,subframeP); + schedule_SI_BR(module_idP,frameP,subframeP); #endif stop_meas(&eNB->schedule_si); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index dbae933a5f..55548cead3 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -129,7 +129,7 @@ eNBs = fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern10-r13" fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; fdd_UplinkSubframeBitmapBR_r13 = 0; - startSymbolBR_r13 = 1; + startSymbolBR_r13 = 3; si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF ! si_ValidityTime_r13 = 0; system_info_value_tag_SI = From feaa8e2888197163e325ed88981cbf7e14de26a8 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Tue, 15 Aug 2017 13:55:36 +0200 Subject: [PATCH 032/125] fixed fdd_uplinkBitmap --- openair2/COMMON/rrc_messages_types.h | 14 +++++++------- openair2/ENB_APP/enb_config.c | 16 ++++++++++++---- .../LAYER2/MAC/eNB_scheduler_primitives.c | 14 +++++++------- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 19 +++++++++++++------ 4 files changed, 39 insertions(+), 24 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 35db0b40a0..6492a0c4d2 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -203,14 +203,14 @@ typedef struct RrcConfigurationReq_s { int scheduling_info_br_size [MAX_NUM_CCs]; // end +kogo - long si_WindowLength_BR_r13 [MAX_NUM_CCs]; - long si_RepetitionPattern_r13 [MAX_NUM_CCs]; + long si_WindowLength_BR_r13 [MAX_NUM_CCs]; + long si_RepetitionPattern_r13 [MAX_NUM_CCs]; BOOLEAN_t * fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs]; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 [MAX_NUM_CCs]; - uint16_t fdd_UplinkSubframeBitmapBR_r13 [MAX_NUM_CCs]; - long startSymbolBR_r13 [MAX_NUM_CCs]; - long si_HoppingConfigCommon_r13 [MAX_NUM_CCs]; - long* si_ValidityTime_r13 [MAX_NUM_CCs]; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 [MAX_NUM_CCs]; + uint16_t *fdd_UplinkSubframeBitmapBR_r13 [MAX_NUM_CCs]; + long startSymbolBR_r13 [MAX_NUM_CCs]; + long si_HoppingConfigCommon_r13 [MAX_NUM_CCs]; + long* si_ValidityTime_r13 [MAX_NUM_CCs]; // +kogo long systemInfoValueTagSi_r13 [MAX_NUM_CCs][10]; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index afd5ec690e..fcf444a278 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -3771,7 +3771,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13) || !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) { @@ -3800,10 +3799,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; + bool fdd_uplink_exist = config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13); + if (fdd_uplink_exist) + { + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + *RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = NULL;; + } + + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; - - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index a8418d2316..443222f144 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -490,7 +490,7 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t struct PRACH_ConfigSIB_v1310 *ext4_prach = eNB->common_channels[CC_id].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; - EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11= eNB->UE_list ->UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; +// EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11= eNB->UE_list ->UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; int T; @@ -517,13 +517,13 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t AssertFatal(1==0,"MPDCCH Type 2A not handled yet\n"); break; case TYPEUESPEC: - AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); - AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); +// AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); +// AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); - if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD - T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; - else //TDD - T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; +// if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD +// T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; +// else //TDD +// T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; break; default: diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index a8d00f921b..e7a7b2e88c 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -622,13 +622,20 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); - memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, &configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], + if (configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id]) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = calloc(1, sizeof(BIT_STRING_t)); + memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13, 0, sizeof(BIT_STRING_t)); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf = calloc(2, sizeof(uint8_t)); + memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->buf, configuration->fdd_UplinkSubframeBitmapBR_r13[CC_id], 2 * sizeof(uint8_t)); - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->size = 2; + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13->bits_unused = 6; + } + else + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_UplinkSubframeBitmapBR_r13 = NULL; + } sib1_1310->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13 = configuration->startSymbolBR_r13[CC_id]; From 280d57018e68bb0702109cc774ed23e787e39c57 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Tue, 15 Aug 2017 14:16:29 +0200 Subject: [PATCH 033/125] fix mpdcch uespec search space parameters --- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 30 ------------------- .../LAYER2/MAC/eNB_scheduler_primitives.c | 14 ++++----- 2 files changed, 7 insertions(+), 37 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 7122ae3baf..491edbf92f 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -874,20 +874,7 @@ schedule_ue_spec_br( dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; dl_req->number_pdu++; - // Program UL processing for Msg3, same as regular LTE - //get_Msg3alloc(&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); - - //fill_rar_br(eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); - //// DL request - //eNB->TX_req[CC_idP].sfn_sf = (frameP << 3) + subframeP; - //TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - //TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - //TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - //TX_req->num_segments = 1; - //TX_req->segments[0].segment_length = 7; - //TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - //eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; } } @@ -895,23 +882,6 @@ schedule_ue_spec_br( - //dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - //memset((void*)dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); - //dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - //dl_config_pdu->pdu_size = (uint8_t)(2 + sizeof(nfapi_dl_config_dci_dl_pdu)); - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = get_aggregation(get_bw_index(module_idP, CC_id), eNB_UE_stats->dl_cqi, format1); - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = rnti; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 1; // CRNTI : see Table 4-10 from SCF082 - nFAPI specifications - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = harq_pid; - //dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // dont adjust power when retransmitting - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = UE_list->UE_template[CC_id][UE_id].oldNDI[harq_pid]; - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; - // dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = round & 3; - - } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 443222f144..4b4949c949 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -490,7 +490,7 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t struct PRACH_ConfigSIB_v1310 *ext4_prach = eNB->common_channels[CC_id].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; -// EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11= eNB->UE_list ->UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11= &eNB->UE_list.UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; int T; @@ -517,13 +517,13 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t AssertFatal(1==0,"MPDCCH Type 2A not handled yet\n"); break; case TYPEUESPEC: -// AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); -// AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); + AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); + AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); -// if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD -// T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; -// else //TDD -// T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; + if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD + T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; + else //TDD + T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; break; default: From 5d157436c2784756c88745b4cb22eaaecc6e6621 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Tue, 15 Aug 2017 14:53:45 +0200 Subject: [PATCH 034/125] SIB1 system info value tag made optional --- openair2/ENB_APP/enb_config.c | 29 ++++++++++++++++++--------- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 28 +++++++++++++++++--------- 2 files changed, 37 insertions(+), 20 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index fcf444a278..dc925da8eb 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -2579,18 +2579,27 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); - int num_system_info = config_setting_length(system_info_value_tag_SI_list); + int num_system_info; + if (system_info_value_tag_SI_list != NULL) + { + num_system_info = config_setting_length(system_info_value_tag_SI_list); + for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) + { + system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); + if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) + { + AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; + } + } + else + { + num_system_info = 0; + } RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; - for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) - { - system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); - if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) - { - AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; - } + rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e7a7b2e88c..e34e6f7162 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -653,21 +653,29 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL; } - sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13; int num_system_info_value_tag = configuration->system_info_value_tag_SI_size[CC_id]; - for (index = 0; index < num_system_info_value_tag; ++index) + if (num_system_info_value_tag > 0) { - if (configuration->systemInfoValueTagSi_r13[CC_id][index]) + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); + SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13; + for (index = 0; index < num_system_info_value_tag; ++index) { - systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index]; + if (configuration->systemInfoValueTagSi_r13[CC_id][index]) + { + systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index]; + } + else + { + systemInfoValueTagSi_r13 = 0; + } + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); } - else - { - systemInfoValueTagSi_r13 = 0; - } - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + + } + else + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = NULL; } } From aeda8e5cecb30c96ab15eacb84332b926bf65485 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Tue, 15 Aug 2017 15:49:11 +0200 Subject: [PATCH 035/125] added pcch_config_v1310 to config file and handled in enb_config.c , asn1_msg.c --- openair2/COMMON/rrc_messages_types.h | 8 ++- openair2/ENB_APP/enb_config.c | 57 +++++++++++++++++-- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 33 ++++++++++- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 17 +++--- 4 files changed, 99 insertions(+), 16 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 6492a0c4d2..9ef9414f91 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -250,7 +250,7 @@ typedef struct RrcConfigurationReq_s { long prach_HoppingConfig_r13 [MAX_NUM_CCs][4]; int prach_parameters_list_size [MAX_NUM_CCs]; long max_available_narrow_band [MAX_NUM_CCs][4][2]; - int max_available_narrow_band_size [MAX_NUM_CCs]; + int max_available_narrow_band_size [MAX_NUM_CCs][4]; // end kogo @@ -259,6 +259,12 @@ typedef struct RrcConfigurationReq_s { int pucch_info_value_size [MAX_NUM_CCs]; // end kogo + // +kogo + bool pcch_config_v1310 [MAX_NUM_CCs]; + long paging_narrowbands_r13 [MAX_NUM_CCs]; + long mpdcch_numrepetition_paging_r13 [MAX_NUM_CCs]; + long *nb_v1310 [MAX_NUM_CCs]; + #endif } RrcConfigurationReq; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index dc925da8eb..6532575527 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -160,6 +160,12 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_MAX_AVAILABLE_NARROWBAND "maxavailablenarrowband" #define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" +#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" +#define ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13 "paging_narrowbands_r13" +#define ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13 "mpdcch_numrepetition_paging_r13" +#define ENB_CONFIG_STRING_NB_V1310 "nb_v1310" + + #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" #define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" @@ -1007,6 +1013,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_setting_t *n1_pucch_AN_info_r13_list = NULL; config_setting_t *n1_pucch_AN_info_r13 = NULL; + config_setting_t *setting_pcch_config_v1310 = NULL; + #if defined(Rel14) config_setting_t *setting_br13 = NULL; #endif // REL14 @@ -1134,6 +1142,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int maxavailablenarrowband = 0; libconfig_int pucch_info_value = 0; + libconfig_int paging_narrowbands_r13 = 0; + libconfig_int mpdcch_numrepetition_paging_r13 = 0; + libconfig_int nb_v1310 = 0; + + libconfig_int srb1_timer_poll_retransmit = 0; libconfig_int srb1_timer_reordering = 0; libconfig_int srb1_timer_status_prohibit = 0; @@ -2692,13 +2705,20 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; } + + max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13_list, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); + int num_available_narrow_bands = config_setting_length(max_available_narrow_band_list); + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = num_available_narrow_bands; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_available_narrow_bands; narrow_band_index++) + { + max_available_narrow_band = config_setting_get_elem(max_available_narrow_band_list, narrow_band_index); + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prach_parameters_index][narrow_band_index] = config_setting_get_int(max_available_narrow_band); + } + } - // TODO - // max_available_narrow_band = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); - - n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list); @@ -3725,6 +3745,35 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char* prach_ConfigCommon_v1310 = NULL; char* mpdcch_startSF_CSS_RA_r13; + setting_pcch_config_v1310 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); + if (setting_pcch_config_v1310 != NULL) + { + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; + if (!config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, &paging_narrowbands_r13) + || !config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &mpdcch_numrepetition_paging_r13) + ) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d pcch_config_v1310!\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13; + + if (config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &nb_v1310)) + { + RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = nb_v1310; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = NULL; + } + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = FALSE; + } if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) AssertFatal(0, diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e34e6f7162..429fe863bd 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1178,7 +1178,28 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; - (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + + if (configuration->pcch_config_v1310) + { + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = CALLOC(1, sizeof(PCCH_Config_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->paging_narrowBands_r13 = configuration->paging_narrowbands_r13[CC_id]; + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->mpdcch_NumRepetition_Paging_r13 = configuration->mpdcch_numrepetition_paging_r13[CC_id]; + if (configuration->nb_v1310[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = *configuration->nb_v1310[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = NULL; + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + } + + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; @@ -1281,8 +1302,14 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; } - long maxavailablenarrowband = 2; - ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + long maxavailablenarrowband; + int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) + { + maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + } prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index dbae933a5f..6ad1f12c59 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -184,14 +184,8 @@ eNBs = numRepetitionPerPreambleAttempt_r13 = 0; mpdcch_NumRepetition_RA_r13 = 0; prach_HoppingConfig_r13 = 0; - max_available_narrow_band = - ( - { - maxavailablenarrowband = 2; - - } - ); - } + max_available_narrow_band = [2]; + } ); n1PUCCH_AN_InfoList_r13 = @@ -203,6 +197,13 @@ eNBs = pucch_info_value = 13; } ); + + pcch_config_v1310 : + { + paging_narrowbands_r13 = 1; + mpdcch_numrepetition_paging_r13 = 2; + nb_v1310 = 3; + } mpdcch_startSF_CSS_RA_r13 = "fdd-r13" mpdcch_startSF_CSS_RA_r13_val = 5; From 44fc7753b6655c49b23fc4c92cfae2a850aa6d1c Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Tue, 15 Aug 2017 15:50:18 +0200 Subject: [PATCH 036/125] modifications in SI scheduler during interop testing with Sequans module. Some changes in eMTC config file. --- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 2 +- .../GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index f9b85ffdd8..04485a9d3e 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -393,7 +393,7 @@ schedule_SI_BR( // check that SIB1 didn't take this narrowband if (vrb_map[first_rb] > 0) continue; - first_rb = narrowband_to_first_rb(cc,si_Narrowband_r13); + first_rb = narrowband_to_first_rb(cc,si_Narrowband_r13-1); vrb_map[first_rb] = 1; vrb_map[first_rb+1] = 1; vrb_map[first_rb+2] = 1; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 55548cead3..00158a2baf 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -126,9 +126,6 @@ eNBs = ); si_WindowLength_BR_r13 = 0; si_RepetitionPattern_r13 = 0; - fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern10-r13" - fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; - fdd_UplinkSubframeBitmapBR_r13 = 0; startSymbolBR_r13 = 3; si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF ! si_ValidityTime_r13 = 0; @@ -138,7 +135,7 @@ eNBs = systemInfoValueTagSi_r13 = 0; } ); - freqHoppingParametersDL_r13 = "ENABLE" + freqHoppingParametersDL_r13 = "DISABLE" mpdcch_pdsch_HoppingNB_r13 = 0; interval_DLHoppingConfigCommonModeA_r13 = "interval-FDD-r13" interval_DLHoppingConfigCommonModeA_r13_val = 0; @@ -198,9 +195,6 @@ eNBs = ( { pucch_info_value = 12; - }, - { - pucch_info_value = 13; } ); From 291616328ecc6d429a9c82d2c3cb492df54ac521 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Tue, 15 Aug 2017 19:01:47 +0200 Subject: [PATCH 037/125] integration and testing of SIB2 integrity --- openair2/COMMON/rrc_messages_types.h | 6 ++ openair2/ENB_APP/enb_config.c | 68 +++++++++++++++++-- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 56 +++++++++++++-- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 13 +++- 4 files changed, 132 insertions(+), 11 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 9ef9414f91..3193517225 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -265,6 +265,12 @@ typedef struct RrcConfigurationReq_s { long mpdcch_numrepetition_paging_r13 [MAX_NUM_CCs]; long *nb_v1310 [MAX_NUM_CCs]; + long *pucch_NumRepetitionCE_Msg4_Level0_r13 [MAX_NUM_CCs]; + long *pucch_NumRepetitionCE_Msg4_Level1_r13 [MAX_NUM_CCs]; + long *pucch_NumRepetitionCE_Msg4_Level2_r13 [MAX_NUM_CCs]; + long *pucch_NumRepetitionCE_Msg4_Level3_r13 [MAX_NUM_CCs]; + + #endif } RrcConfigurationReq; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 6532575527..8d5d16ead2 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -166,6 +166,10 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_NB_V1310 "nb_v1310" +#define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0 "pucch_NumRepetitionCE_Msg4_Level0_r13" +#define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1 "pucch_NumRepetitionCE_Msg4_Level1_r13" +#define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2 "pucch_NumRepetitionCE_Msg4_Level2_r13" +#define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3 "pucch_NumRepetitionCE_Msg4_Level3_r13" #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" #define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" @@ -1142,10 +1146,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int maxavailablenarrowband = 0; libconfig_int pucch_info_value = 0; - libconfig_int paging_narrowbands_r13 = 0; + libconfig_int paging_narrowbands_r13 = 0; libconfig_int mpdcch_numrepetition_paging_r13 = 0; libconfig_int nb_v1310 = 0; + + libconfig_int pucch_NumRepetitionCE_Msg4_Level0_r13 = 0; + libconfig_int pucch_NumRepetitionCE_Msg4_Level1_r13 = 0; + libconfig_int pucch_NumRepetitionCE_Msg4_Level2_r13 = 0; + libconfig_int pucch_NumRepetitionCE_Msg4_Level3_r13 = 0; libconfig_int srb1_timer_poll_retransmit = 0; libconfig_int srb1_timer_reordering = 0; @@ -2572,7 +2581,51 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } if (setting_br13 != NULL) { + int cnt = 0; + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = pucch_NumRepetitionCE_Msg4_Level0_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = NULL;; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = pucch_NumRepetitionCE_Msg4_Level1_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = NULL;; + } + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, &pucch_NumRepetitionCE_Msg4_Level2_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = pucch_NumRepetitionCE_Msg4_Level2_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = NULL; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, &pucch_NumRepetitionCE_Msg4_Level3_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = pucch_NumRepetitionCE_Msg4_Level3_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = NULL;; + } + scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); int num_scheduling_info = config_setting_length(scheduling_info_br_list); RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; @@ -2656,6 +2709,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, nb_cc++); } RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; + printf("[DEBUGGING][KOGO] : rsrp range br = %d\n", rsrp_range_br); } prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); @@ -2677,6 +2731,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, nb_cc++); } + printf("[DEBUGGING][KOGO] : prach hopping config = %d\n", prach_HoppingConfig_r13); + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; @@ -2706,9 +2762,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13_list, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); + max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); int num_available_narrow_bands = config_setting_length(max_available_narrow_band_list); - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = num_available_narrow_bands; + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prach_parameters_index] = num_available_narrow_bands; int narrow_band_index; for (narrow_band_index = 0; narrow_band_index < num_available_narrow_bands; narrow_band_index++) { @@ -2722,6 +2778,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list); + AssertFatal(cnt == num_pucch_an_info, "Num Repetition Count should be equal to pucch info count !!!"); RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = num_pucch_an_info; int pucch_info_idx; for (pucch_info_idx = 0; pucch_info_idx < num_pucch_an_info; ++pucch_info_idx) @@ -3759,15 +3816,18 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13; - if (config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &nb_v1310)) + if (config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_NB_V1310, &nb_v1310)) { RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = nb_v1310; + + printf("[DEBUGGING][KOGO] : nb_v1310 = %d\n", nb_v1310); } else { RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = NULL; } + } else diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 429fe863bd..89e74fe304 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1217,6 +1217,7 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->rsrp_range_list_size[CC_id]) { rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; + printf("[DEBUGGING][KOGO][SIB23] : rsrp range = %d\n", rsrp_range); } else { @@ -1289,6 +1290,7 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; + printf("[DEBUGGING][KOGO][SIB23] : prach hopping config = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); } else { @@ -1344,10 +1346,56 @@ uint8_t do_SIB23(uint8_t Mod_id, // +kogo FIXME // ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + if (configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]) + { + puts("LEVEL 0"); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]; + printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level0_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13); + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + } + + + if (configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id]) + { + puts("LEVEL 1"); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id]; + printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level1_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13); + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + } + + if (configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id]) + { + puts("LEVEL 2"); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id]; + printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level2_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13); + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + } + + if (configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id]) + { + puts("LEVEL 3"); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id]; + printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level3_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13); + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + } + + //----------------------------------------------------------------------------------------------------------------------------------------- diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 625cbcf6f1..4b66149774 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -181,7 +181,7 @@ eNBs = numRepetitionPerPreambleAttempt_r13 = 0; mpdcch_NumRepetition_RA_r13 = 0; prach_HoppingConfig_r13 = 0; - max_available_narrow_band = [2]; + max_available_narrow_band = [5]; } ); @@ -194,11 +194,18 @@ eNBs = pcch_config_v1310 : { - paging_narrowbands_r13 = 1; + paging_narrowbands_r13 = 5; mpdcch_numrepetition_paging_r13 = 2; - nb_v1310 = 3; + nb_v1310 = 2; } + + pucch_NumRepetitionCE_Msg4_Level0_r13 = 0; + #pucch_NumRepetitionCE_Msg4_Level1_r13 = 1; + #pucch_NumRepetitionCE_Msg4_Level2_r13 = 2; + #pucch_NumRepetitionCE_Msg4_Level3_r13 = 3; + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13" mpdcch_startSF_CSS_RA_r13_val = 5; #prach_HoppingOffset_r13 = ; From c453bb9145e5227efe0881d2126aaceed4bf582d Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Wed, 16 Aug 2017 10:11:54 +0200 Subject: [PATCH 038/125] fix RSRP_Range allocation in prach_ConfigCommon_v1310 --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 89e74fe304..6ac41aa725 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1209,22 +1209,23 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); - RSRP_Range_t rsrp_range; + RSRP_Range_t *rsrp_range; int num_rsrp_range = configuration->rsrp_range_list_size[CC_id]; int rsrp_index; for (rsrp_index = 0; rsrp_index < num_rsrp_range; ++rsrp_index) { + rsrp_range = CALLOC(1, sizeof(RSRP_Range_t)); if (configuration->rsrp_range_list_size[CC_id]) { - rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; - printf("[DEBUGGING][KOGO][SIB23] : rsrp range = %d\n", rsrp_range); + *rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; + printf("[DEBUGGING][KOGO][SIB23] : rsrp range = %d\n", *rsrp_range); } else { - rsrp_range = 60; + *rsrp_range = 60; } - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, rsrp_range); } From defe1ece09cf72289a23c9283d83f7d37a4c2248 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Wed, 16 Aug 2017 10:43:12 +0200 Subject: [PATCH 039/125] Fixed memory allocation bugs in asn1_msg.c (SIB1 & SIB23) ASN1C issue --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 47 ++++++++++++++------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 6ac41aa725..996a7b6126 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -654,22 +654,23 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, } + SystemInfoValueTagSI_r13_t *systemInfoValueTagSi_r13; int num_system_info_value_tag = configuration->system_info_value_tag_SI_size[CC_id]; if (num_system_info_value_tag > 0) { sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13; for (index = 0; index < num_system_info_value_tag; ++index) { + systemInfoValueTagSi_r13 = CALLOC(1, sizeof(SystemInfoValueTagSI_r13_t)); if (configuration->systemInfoValueTagSi_r13[CC_id][index]) { - systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index]; + *systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index]; } else { - systemInfoValueTagSi_r13 = 0; + *systemInfoValueTagSi_r13 = 0; } - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, systemInfoValueTagSi_r13); } } @@ -814,8 +815,9 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t)); - SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0; - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13); + SystemInfoValueTagSI_r13_t *systemInfoValueTagSi_r13 = CALLOC(1, sizeof(SystemInfoValueTagSI_r13_t)); + *systemInfoValueTagSi_r13 = 0; + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, systemInfoValueTagSi_r13); sib1_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t)); memset(sib1_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t)); @@ -1036,13 +1038,12 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); - RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); - memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t)); - + RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13; int num_rach_ce_level_info = configuration->rach_CE_LevelInfoList_r13_size[CC_id]; int index; for (index = 0; index < num_rach_ce_level_info; ++index) { + rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); if (configuration->rach_CE_LevelInfoList_r13_size[CC_id]) { rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = configuration->firstPreamble_r13[CC_id][index]; @@ -1258,13 +1259,14 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; } - PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t)); + PRACH_ParametersCE_r13_t *prach_parametersce_r13; memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id]; int prach_parameters_index; for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index) { + prach_parametersce_r13 = CALLOC(1, sizeof(PRACH_ParametersCE_r13_t)); if (configuration->prach_parameters_list_size[CC_id]) { prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; @@ -1305,13 +1307,14 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; } - long maxavailablenarrowband; + long *maxavailablenarrowband; int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; int narrow_band_index; for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) { - maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; - ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband); + maxavailablenarrowband = CALLOC(1, sizeof(long)); + *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); } prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; @@ -1330,23 +1333,21 @@ uint8_t do_SIB23(uint8_t Mod_id, int num_pucch_info_list = configuration->pucch_info_value_size[CC_id]; int pucch_index; - long pucch_info_value; + long *pucch_info_value; for (pucch_index = 0; pucch_index < num_pucch_info_list; ++pucch_index) { + pucch_info_value = CALLOC(1, sizeof(long)); if (configuration->pucch_info_value_size[CC_id]) { - pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index]; + *pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index]; } else { - pucch_info_value = 0; + *pucch_info_value = 0; } - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value); + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, pucch_info_value); } -// +kogo FIXME -// ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2); - if (configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]) { puts("LEVEL 0"); @@ -1598,7 +1599,7 @@ uint8_t do_SIB23(uint8_t Mod_id, sib2_mbsfn_SubframeConfig1->subframeAllocation.choice.oneFrame.buf[0]=0x38<<2; - ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig1); + ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list, sib2_mbsfn_SubframeConfig1); if (MBMS_flag == 4 ) { LOG_I(RRC,"Adding MBSFN subframe Configuration 2 to SIB2\n"); @@ -1616,7 +1617,7 @@ uint8_t do_SIB23(uint8_t Mod_id, sib2_mbsfn_SubframeConfig2->subframeAllocation.choice.oneFrame.buf[0]=0x07<<2; - ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list,sib2_mbsfn_SubframeConfig2); + ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list, sib2_mbsfn_SubframeConfig2); } } @@ -1741,7 +1742,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #if defined(Rel10) || defined(Rel14) if (MBMS_flag > 0) { - ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list,sib13_part); + ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part); } #endif From 8ec2f370b050b3029e1be8cfb04f84cef2d208a3 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Wed, 16 Aug 2017 12:39:16 +0200 Subject: [PATCH 040/125] added frequncy hopping config in do_SIB23 - ready to test --- openair2/COMMON/rrc_messages_types.h | 14 ++ openair2/ENB_APP/enb_config.c | 147 ++++++++++++++++++ openair2/RRC/LITE/MESSAGES/asn1_msg.c | 132 +++++++++++++++- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 17 ++ 4 files changed, 309 insertions(+), 1 deletion(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 3193517225..501bf4b91c 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -271,6 +271,20 @@ typedef struct RrcConfigurationReq_s { long *pucch_NumRepetitionCE_Msg4_Level3_r13 [MAX_NUM_CCs]; + bool sib2_freq_hoppingParameters_r13_exists [MAX_NUM_CCs]; + long *sib2_mpdcch_pdsch_hoppingNB_r13 [MAX_NUM_CCs]; + long *sib2_interval_DLHoppingConfigCommonModeA_r13 [MAX_NUM_CCs]; + long sib2_interval_DLHoppingConfigCommonModeA_r13_val [MAX_NUM_CCs]; + long *sib2_interval_DLHoppingConfigCommonModeB_r13 [MAX_NUM_CCs]; + long sib2_interval_DLHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs]; + long *sib2_interval_ULHoppingConfigCommonModeA_r13 [MAX_NUM_CCs]; + long sib2_interval_ULHoppingConfigCommonModeA_r13_val [MAX_NUM_CCs]; + long *sib2_interval_ULHoppingConfigCommonModeB_r13 [MAX_NUM_CCs]; + long sib2_interval_ULHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs]; + long *sib2_mpdcch_pdsch_hoppingOffset_r13 [MAX_NUM_CCs]; + + + #endif } RrcConfigurationReq; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 8d5d16ead2..6ec38b3bb9 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -171,6 +171,21 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2 "pucch_NumRepetitionCE_Msg4_Level2_r13" #define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3 "pucch_NumRepetitionCE_Msg4_Level3_r13" +#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13 "sib2_freq_hoppingParameters_r13" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 "sib2_mpdcch_pdsch_hoppingNB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13 "sib2_interval_DLHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_DLHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13 "sib2_interval_DLHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_DLHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13 "sib2_interval_ULHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_ULHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13 "sib2_interval_ULHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_ULHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "sib2_mpdcch_pdsch_hoppingOffset_r13" + + + + #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" #define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" #define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB" @@ -1018,6 +1033,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_setting_t *n1_pucch_AN_info_r13 = NULL; config_setting_t *setting_pcch_config_v1310 = NULL; + config_setting_t *setting_freq_hoppingParameters_r13 = NULL; + #if defined(Rel14) config_setting_t *setting_br13 = NULL; @@ -1156,6 +1173,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int pucch_NumRepetitionCE_Msg4_Level2_r13 = 0; libconfig_int pucch_NumRepetitionCE_Msg4_Level3_r13 = 0; + libconfig_int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; + libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + + + + + libconfig_int srb1_timer_poll_retransmit = 0; libconfig_int srb1_timer_reordering = 0; libconfig_int srb1_timer_status_prohibit = 0; @@ -2794,6 +2826,121 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; } + setting_freq_hoppingParameters_r13 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13); + if (setting_freq_hoppingParameters_r13 != NULL) + { + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, sib2_mpdcch_pdsch_hoppingNB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = sib2_mpdcch_pdsch_hoppingNB_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = NULL; + } + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_DLHoppingConfigCommonModeA_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = sib2_interval_DLHoppingConfigCommonModeA_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeA_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeA_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = NULL; + } + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_DLHoppingConfigCommonModeB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = sib2_interval_DLHoppingConfigCommonModeB_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeB_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeB_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = NULL; + } + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = sib2_interval_ULHoppingConfigCommonModeA_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = NULL; + } + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_ULHoppingConfigCommonModeB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = sib2_interval_ULHoppingConfigCommonModeB_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeB_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeB_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = NULL; + } + + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, &sib2_mpdcch_pdsch_hoppingOffset_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = sib2_mpdcch_pdsch_hoppingOffset_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = NULL; + } + + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = FALSE; + } + + + + + printf("[DEBUGGING][KOGO][CONF]: 0 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j]); + printf("[DEBUGGING][KOGO][CONF]: 1 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); + + printf("[DEBUGGING][KOGO][CONF]: 2 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 3 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j]); + printf("[DEBUGGING][KOGO][CONF]: 4 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 5 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j]); + + printf("[DEBUGGING][KOGO][CONF]: 6 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 7 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j]); + printf("[DEBUGGING][KOGO][CONF]: 8 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 9 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j]); + + printf("[DEBUGGING][KOGO][CONF]: 10 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); + // Rel8 RadioResourceConfigCommon Parameters if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 996a7b6126..30b7ee8d79 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1201,7 +1201,137 @@ uint8_t do_SIB23(uint8_t Mod_id, } - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + if (configuration->sib2_freq_hoppingParameters_r13_exists[CC_id]) + { + puts("[DEBUGGING][KOGO][SIB23]: Structure exists"); + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = CALLOC(1, sizeof(FreqHoppingParameters_r13_t)); + if (configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id]; + + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; + } + + if (configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13)); + if (*configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 = NULL; + } + + + if (configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13)); + if (*configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 = NULL; + } + + if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13)); + if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL; + } + + if (configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13)); + if (*configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeB_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = NULL; + } + + if (configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + } + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 4b66149774..906c3cae30 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -205,6 +205,23 @@ eNBs = #pucch_NumRepetitionCE_Msg4_Level2_r13 = 2; #pucch_NumRepetitionCE_Msg4_Level3_r13 = 3; + sib2_freq_hoppingParameters_r13 : + { + sib2_mpdcch_pdsch_hoppingNB_r13 = 1; + sib2_interval_DLHoppingConfigCommonModeA_r13 = 2; # choice -> (0, FDD) (1, TDD) + sib2_interval_DLHoppingConfigCommonModeA_r13_val = 3; + sib2_interval_DLHoppingConfigCommonModeB_r13 = 4; # choice -> (0, FDD) (1, TDD) + sib2_interval_DLHoppingConfigCommonModeB_r13_val = 5; + + sib2_interval_ULHoppingConfigCommonModeA_r13 = 6; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeA_r13_val = 7; + sib2_interval_ULHoppingConfigCommonModeB_r13 = 8; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeB_r13_val = 9; + + sib2_mpdcch_pdsch_hoppingOffset_r13 = 10; + } + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13" mpdcch_startSF_CSS_RA_r13_val = 5; From c0b0ed5a5760c4d7bd93834926aa5e73e30f931d Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Wed, 16 Aug 2017 12:54:13 +0200 Subject: [PATCH 041/125] SIB2-BR configuration parameters --- openair1/PHY/impl_defs_lte.h | 6 +++-- openair2/ENB_APP/enb_config.c | 19 +--------------- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 1 - .../CONF/enb.band13.tm1.50PRB.emtc.conf | 22 +++++++++---------- 4 files changed, 16 insertions(+), 32 deletions(-) diff --git a/openair1/PHY/impl_defs_lte.h b/openair1/PHY/impl_defs_lte.h index fea33a7707..e11f8edb89 100755 --- a/openair1/PHY/impl_defs_lte.h +++ b/openair1/PHY/impl_defs_lte.h @@ -802,11 +802,13 @@ typedef struct { uint8_t harq_pid; /// Narrowband index uint8_t narrowband; + /// number of repetitions + uint8_t reps; /// number of PRB pairs for MPDCCH uint8_t number_of_prb_pairs; - /// mpdcch resource assignement (0=localized,1=distributed) + /// mpdcch resource assignement (combinatorial index r) uint8_t resource_block_assignment; - /// transmission type + /// transmission type (0=localized,1=distributed) uint8_t transmission_type; /// mpdcch start symbol uint8_t start_symbol; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 6ec38b3bb9..b99aacbf23 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -2830,7 +2830,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (setting_freq_hoppingParameters_r13 != NULL) { RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; - if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, sib2_mpdcch_pdsch_hoppingNB_r13)) + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, &sib2_mpdcch_pdsch_hoppingNB_r13)) { RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = CALLOC(1, sizeof(long)); @@ -2924,23 +2924,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - - - printf("[DEBUGGING][KOGO][CONF]: 0 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j]); - printf("[DEBUGGING][KOGO][CONF]: 1 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); - - printf("[DEBUGGING][KOGO][CONF]: 2 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j]); - printf("[DEBUGGING][KOGO][CONF]: 3 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j]); - printf("[DEBUGGING][KOGO][CONF]: 4 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j]); - printf("[DEBUGGING][KOGO][CONF]: 5 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j]); - - printf("[DEBUGGING][KOGO][CONF]: 6 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j]); - printf("[DEBUGGING][KOGO][CONF]: 7 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j]); - printf("[DEBUGGING][KOGO][CONF]: 8 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j]); - printf("[DEBUGGING][KOGO][CONF]: 9 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j]); - - printf("[DEBUGGING][KOGO][CONF]: 10 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); - // Rel8 RadioResourceConfigCommon Parameters if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 30b7ee8d79..e683cf86de 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1390,7 +1390,6 @@ uint8_t do_SIB23(uint8_t Mod_id, } PRACH_ParametersCE_r13_t *prach_parametersce_r13; - memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t)); int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id]; int prach_parameters_index; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 906c3cae30..c345d71db6 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -121,7 +121,7 @@ eNBs = ( { si_Narrowband_r13 = 5; - si_TBS_r13 = 4; + si_TBS_r13 = 5; } ); si_WindowLength_BR_r13 = 0; @@ -207,18 +207,18 @@ eNBs = sib2_freq_hoppingParameters_r13 : { - sib2_mpdcch_pdsch_hoppingNB_r13 = 1; - sib2_interval_DLHoppingConfigCommonModeA_r13 = 2; # choice -> (0, FDD) (1, TDD) - sib2_interval_DLHoppingConfigCommonModeA_r13_val = 3; - sib2_interval_DLHoppingConfigCommonModeB_r13 = 4; # choice -> (0, FDD) (1, TDD) - sib2_interval_DLHoppingConfigCommonModeB_r13_val = 5; + sib2_mpdcch_pdsch_hoppingNB_r13 = 0; + sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) + sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; + sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) + sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; - sib2_interval_ULHoppingConfigCommonModeA_r13 = 6; # choice -> (0, FDD) (1, TDD) - sib2_interval_ULHoppingConfigCommonModeA_r13_val = 7; - sib2_interval_ULHoppingConfigCommonModeB_r13 = 8; # choice -> (0, FDD) (1, TDD) - sib2_interval_ULHoppingConfigCommonModeB_r13_val = 9; + sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; + sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; - sib2_mpdcch_pdsch_hoppingOffset_r13 = 10; + sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; } From 91beb110f09e50792034b856ad662b2f7f17cf3e Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Wed, 16 Aug 2017 13:18:51 +0200 Subject: [PATCH 042/125] hard-coded PUSCH/PDSCH-Config-Common-v1310, harmonization of configuration file with eMTC config from samples of Verizon network --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 15 +++++- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 48 +++++++++---------- 2 files changed, 37 insertions(+), 26 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e683cf86de..4e15cae695 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1332,8 +1332,17 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; } - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = calloc(1,sizeof(PDSCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = 0; + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + + + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = calloc(1,sizeof(PUSCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = 0; + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; if (rrconfig->prach_ConfigCommon_v1310) { @@ -1456,6 +1465,8 @@ uint8_t do_SIB23(uint8_t Mod_id, { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; } + + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index c345d71db6..c5dac15266 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -152,11 +152,11 @@ eNBs = rach_CE_LevelInfoList_r13 = ( { - firstPreamble_r13 = 0; + firstPreamble_r13 = 60; lastPreamble_r13 = 63; ra_ResponseWindowSize_r13 = 0; mac_ContentionResolutionTimer_r13 = 0; - rar_HoppingConfig_r13 = 0; + rar_HoppingConfig_r13 = 1; } ); @@ -166,7 +166,7 @@ eNBs = rsrp_range_list = ( { - rsrp_range_br = 60; + rsrp_range_br = 0; } ); @@ -175,27 +175,27 @@ eNBs = ( { prach_config_index_br = 3; - prach_freq_offset_br = 1; + prach_freq_offset_br = 2; prach_StartingSubframe_r13 = 0; - maxNumPreambleAttemptCE_r13 = 0; + maxNumPreambleAttemptCE_r13 = 6; numRepetitionPerPreambleAttempt_r13 = 0; mpdcch_NumRepetition_RA_r13 = 0; - prach_HoppingConfig_r13 = 0; - max_available_narrow_band = [5]; + prach_HoppingConfig_r13 = 1; + max_available_narrow_band = [2]; } ); n1PUCCH_AN_InfoList_r13 = ( { - pucch_info_value = 12; + pucch_info_value = 0; } ); pcch_config_v1310 : { - paging_narrowbands_r13 = 5; - mpdcch_numrepetition_paging_r13 = 2; + paging_narrowbands_r13 = 1; + mpdcch_numrepetition_paging_r13 = 0; nb_v1310 = 2; } @@ -207,32 +207,32 @@ eNBs = sib2_freq_hoppingParameters_r13 : { - sib2_mpdcch_pdsch_hoppingNB_r13 = 0; - sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) - sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; - sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) - sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; +# sib2_mpdcch_pdsch_hoppingNB_r13 = 0; +# sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) +# sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; +# sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) +# sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) - sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; - sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) - sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; + sib2_interval_ULHoppingConfigCommonModeA_r13_val = 2; +# sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) +# sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; - sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; +# sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; } mpdcch_startSF_CSS_RA_r13 = "fdd-r13" - mpdcch_startSF_CSS_RA_r13_val = 5; - #prach_HoppingOffset_r13 = ; + mpdcch_startSF_CSS_RA_r13_val = 0; + prach_HoppingOffset_r13 = 0; - prach_root = 1; - prach_config_index = 0; + prach_root = 89; + prach_config_index = 3; prach_high_speed = "DISABLE"; prach_zero_correlation = 1; prach_freq_offset = 3; - pucch_delta_shift = 1; + pucch_delta_shift = 2; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; pucch_n1_AN = 32; From 82cd728edbcdd1d15a5bce431307ecc9eb52ff18 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Wed, 16 Aug 2017 13:40:04 +0200 Subject: [PATCH 043/125] small changes --- openair2/ENB_APP/enb_config.c | 2 +- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index b99aacbf23..23693f0958 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -2786,7 +2786,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) { RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; } else { diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 4e15cae695..9a1e2dd600 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1412,6 +1412,7 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) { + prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; } else @@ -1421,6 +1422,7 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; } else From 4d6af687149223076c4676ecf49790a7875332b8 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Wed, 16 Aug 2017 15:00:01 +0200 Subject: [PATCH 044/125] added edci.c and minor configuration changes --- cmake_targets/CMakeLists.txt | 2 +- openair1/PHY/LTE_TRANSPORT/edci.c | 122 ++++++++++++++++++ openair2/ENB_APP/enb_config.c | 8 +- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 10 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 22 ++-- 5 files changed, 143 insertions(+), 21 deletions(-) create mode 100755 openair1/PHY/LTE_TRANSPORT/edci.c diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index a48590ad55..d25a9a08a6 100755 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -222,7 +222,7 @@ add_definitions("-DPACKAGE_BUGREPORT=\"openair4g-devel@lists.eurecom.fr\"") # Debug related options ######################################### add_boolean_option(ASN_DEBUG False "ASN1 coder/decoder Debug") -add_boolean_option(EMIT_ASN_DEBUG False "ASN1 coder/decoder Debug") +add_boolean_option(EMIT_ASN_DEBUG False "ASN1 coder/decoder Debug") add_boolean_option(MSG_PRINT False "print debug messages") add_boolean_option(DISABLE_XER_PRINT False "print XER Format") add_boolean_option(XER_PRINT False "print XER Format") diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c new file mode 100755 index 0000000000..2487e8370c --- /dev/null +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -0,0 +1,122 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.0 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/*! \file PHY/LTE_TRANSPORT/dci.c +* \brief Implements PDCCH physical channel TX/RX procedures (36.211) and DCI encoding/decoding (36.212/36.213). Current LTE compliance V8.6 2009-03. +* \author R. Knopp +* \date 2011 +* \version 0.1 +* \company Eurecom +* \email: knopp@eurecom.fr +* \note +* \warning +*/ +#ifdef USER_MODE +#include +#include +#include +#endif +#include "PHY/defs.h" +#include "PHY/extern.h" +#include "SCHED/defs.h" +#include "SIMULATION/TOOLS/defs.h" // for taus +#include "PHY/sse_intrin.h" + +#include "assertions.h" +#include "T.h" +#include "UTIL/LOG/log.h" + +//#define DEBUG_DCI_ENCODING 1 +//#define DEBUG_DCI_DECODING 1 +//#define DEBUG_PHY + +typedef struct { + uint8_t num_dci; + mDCI_ALLOC_t mdci_alloc[32]; +} LTE_eNB_MPDCCH; + +typedef struct { + /// Length of DCI in bits + uint8_t dci_length; + /// Aggregation level + uint8_t L; + /// Position of first CCE of the dci + int firstCCE; + /// flag to indicate that this is a RA response + boolean_t ra_flag; + /// rnti + rnti_t rnti; + /// Format + DCI_format_t format; + /// harq process index + uint8_t harq_pid; + /// Narrowband index + uint8_t narrowband; + /// number of PRB pairs for MPDCCH + uint8_t number_of_prb_pairs; + /// mpdcch resource assignement (0=localized,1=distributed) + uint8_t resource_block_assignment; + /// transmission type + uint8_t transmission_type; + /// mpdcch start symbol + uint8_t start_symbol; + /// CE mode (1=ModeA,2=ModeB) + uint8_t ce_mode; + /// 0-503 n_EPDCCHid_i + uint16_t dmrs_scrambling_init; + /// Absolute subframe of the initial transmission (0-10239) + uint16_t initial_transmission_sf_io; + /// DCI pdu + uint8_t dci_pdu[8]; +} mDCI_ALLOC_t; + +void generate_edci_top(PHY_VARS_eNB *eNB, int frame, int subframe) { + +} + +void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe) { + + LTE_eNB_MPDCCH *mpdcch= &eNB->mpdcch_vars[subframe&2]; + mDCI_ALLOC_t *mdci; + uint8_t e[DCI_BITS_MAX]; + + for (i=0;inum_dci;i++) { + mdci = &mdpcch->mdci_alloc[i]; + + // Assume 4 EREG/ECCE case (normal prefix) + AssertFatal(eNB->frame_parms.frame_type==FDD,"TDD is not yet supported for MPDCCH\n"); + + // 9 REs/EREG => 36 REs/ECCE => 72 bits/ECCE + generate_dci0(mdci->dci_pdu, + e+(72*mdci->firstCCE), + mdci_length, + mdci->L, + mdci->rnti); + + // compute MPDCCH format based on parameters from NFAPI + AssertFatal(mdci->reps>0,"mdci->reps==0\n"); + if (reps==0) { // table 6.8A.1-1 + AssertFatal(eNB->frame_parms->Ncp == NORMAL,"Extended Prefix not yet supported for MPDCCH\n"); + N_ECCE_EREG = 4; + } + + } +} diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 23693f0958..325dfceda7 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -2461,7 +2461,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; break; - case 3110: + case 3000: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; break; @@ -2481,7 +2481,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; break; - case 31100: + case 30000: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; break; @@ -3761,7 +3761,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; break; - case 3110: + case 3000: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; break; @@ -3781,7 +3781,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; break; - case 31100: + case 30000: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; break; diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 9a1e2dd600..f339c4182d 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1025,10 +1025,10 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); - if (rrconfig->rach_maxHARQ_Msg3Tx) + if (rrconfig->preambleTransMax_CE_r13) { (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); - *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = rrconfig->rach_maxHARQ_Msg3Tx; // to be re-initialized when we find the enum + *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = *rrconfig->preambleTransMax_CE_r13; // to be re-initialized when we find the enum } else { @@ -1176,9 +1176,9 @@ uint8_t do_SIB23(uint8_t Mod_id, // LTE-M - +Kogo (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); - memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); - (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; + (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = NULL; //calloc(1, sizeof(BCCH_Config_v1310_t)); + //memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); + //(*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; if (configuration->pcch_config_v1310) { diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index c5dac15266..6b5e62f2c7 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -146,7 +146,7 @@ eNBs = # SIB23 frame_type = "FDD"; - preambleTransMax_CE_r13 = 10; + preambleTransMax_CE_r13 = 6; # max 4 rach_CE_LevelInfoList_r13 = @@ -231,9 +231,9 @@ eNBs = prach_config_index = 3; prach_high_speed = "DISABLE"; prach_zero_correlation = 1; - prach_freq_offset = 3; - pucch_delta_shift = 2; - pucch_nRB_CQI = 1; + prach_freq_offset = 2; + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; pucch_nCS_AN = 0; pucch_n1_AN = 32; pdsch_referenceSignalPower = -27; @@ -245,7 +245,7 @@ eNBs = pusch_groupHoppingEnabled = "ENABLE"; pusch_groupAssignment = 0; pusch_sequenceHoppingEnabled = "DISABLE"; - pusch_nDMRS1 = 1; + pusch_nDMRS1 = 0; phich_duration = "NORMAL"; phich_resource = "ONESIXTH"; srs_enable = "DISABLE"; @@ -258,7 +258,7 @@ eNBs = pucch_deltaF_Format2 = "deltaF0"; pucch_deltaF_Format2a = "deltaF0"; pucch_deltaF_Format2b = "deltaF0"; - rach_numberOfRA_Preambles = 64; + rach_numberOfRA_Preambles = 60; rach_preamblesGroupAConfig = "DISABLE"; rach_powerRampingStep = 4; rach_preambleInitialReceivedTargetPower = -108; @@ -270,11 +270,11 @@ eNBs = pcch_nB = "oneT"; bcch_modificationPeriodCoeff = 2; ue_TimersAndConstants_t300 = 1000; - ue_TimersAndConstants_t301 = 1000; - ue_TimersAndConstants_t310 = 1000; - ue_TimersAndConstants_t311 = 10000; - ue_TimersAndConstants_n310 = 20; - ue_TimersAndConstants_n311 = 1; + ue_TimersAndConstants_t301 = 400; + ue_TimersAndConstants_t310 = 50; + ue_TimersAndConstants_t311 = 30000; + ue_TimersAndConstants_n310 = 1; + ue_TimersAndConstants_n311 = 10; ue_TransmissionMode = 1; } From a0f2d4815e013c70b428da5597b58fd18aa5b89d Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Wed, 16 Aug 2017 16:17:40 +0200 Subject: [PATCH 045/125] eMTC modem receives SIB1 & SIB23 successfully --- openair2/ENB_APP/enb_config.c | 2 +- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 32 +++++++++++++++---- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 22 +++++++------ 3 files changed, 39 insertions(+), 17 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 325dfceda7..26c0f51214 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -4063,7 +4063,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &si_ValidityTime_r13)) + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) { RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index f339c4182d..af2292d132 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -608,10 +608,15 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, else { sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->present - = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern10_r13; + = SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13_PR_subframePattern40_r13; sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf = calloc(5, sizeof(uint8_t)); - memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); +// memmove(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf, &configuration->fdd_DownlinkOrTddSubframeBitmapBR_val_r13[CC_id], 5 * sizeof(uint8_t)); + int bm_index; + for (bm_index = 0; bm_index < 5; bm_index++) + { + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.buf[bm_index] = 0xFF; + } sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.size = 5; sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13->choice.subframePattern40_r13.bits_unused = 0; } @@ -647,6 +652,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id]; + printf("[DEBUGGING][KOGO]: si_validity time = %d\n", *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13); } else { @@ -1783,16 +1789,16 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib3)->cellReselectionInfoCommon.speedStateReselectionPars=NULL; - (*sib3)->cellReselectionServingFreqInfo.s_NonIntraSearch=NULL; - (*sib3)->cellReselectionServingFreqInfo.threshServingLow=31; - (*sib3)->cellReselectionServingFreqInfo.cellReselectionPriority=7; + (*sib3)->cellReselectionServingFreqInfo.s_NonIntraSearch = NULL; + (*sib3)->cellReselectionServingFreqInfo.threshServingLow = 0; + (*sib3)->cellReselectionServingFreqInfo.s_NonIntraSearch = 0; + (*sib3)->cellReselectionServingFreqInfo.cellReselectionPriority = 7; (*sib3)->intraFreqCellReselectionInfo.q_RxLevMin = -70; (*sib3)->intraFreqCellReselectionInfo.p_Max = NULL; (*sib3)->intraFreqCellReselectionInfo.s_IntraSearch = CALLOC(1,sizeof(*(*sib3)->intraFreqCellReselectionInfo.s_IntraSearch)); *(*sib3)->intraFreqCellReselectionInfo.s_IntraSearch = 31; (*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth=CALLOC(1,sizeof(*(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth)); - *(*sib3)->intraFreqCellReselectionInfo.allowedMeasBandwidth = AllowedMeasBandwidth_mbw6; (*sib3)->intraFreqCellReselectionInfo.presenceAntennaPort1 = 0; @@ -1800,9 +1806,21 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib3)->intraFreqCellReselectionInfo.neighCellConfig.size = 1; (*sib3)->intraFreqCellReselectionInfo.neighCellConfig.buf[0] = 1; (*sib3)->intraFreqCellReselectionInfo.neighCellConfig.bits_unused = 6; - (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA = 1; + (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA = 2; (*sib3)->intraFreqCellReselectionInfo.t_ReselectionEUTRA_SF = (struct SpeedStateScaleFactors *)NULL; + (*sib3)->ext1 = CALLOC(1, sizeof(struct SystemInformationBlockType3__ext1)); + (*sib3)->ext1->s_IntraSearch_v920 = CALLOC(1, sizeof(struct SystemInformationBlockType3__ext1__s_IntraSearch_v920)); + (*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchP_r9 = 31; // FIXME + (*sib3)->ext1->s_IntraSearch_v920->s_IntraSearchQ_r9 = 4; + + (*sib3)->ext4 = CALLOC(1, sizeof(struct SystemInformationBlockType3__ext4)); + (*sib3)->ext4->cellSelectionInfoCE_r13 = CALLOC(1, sizeof(CellSelectionInfoCE_r13_t)); + (*sib3)->ext4->cellSelectionInfoCE_r13->q_RxLevMinCE_r13 = -70; + (*sib3)->ext4->cellSelectionInfoCE_r13->q_QualMinRSRQ_CE_r13 = NULL; + (*sib3)->ext4->t_ReselectionEUTRA_CE_r13 = CALLOC(1, sizeof(T_ReselectionEUTRA_CE_r13_t)); + *(*sib3)->ext4->t_ReselectionEUTRA_CE_r13 = 2; + // SIB13 // fill in all elements of SIB13 if present #if defined(Rel10) || defined(Rel14) diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 6b5e62f2c7..7baa08b3be 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -109,12 +109,16 @@ eNBs = # BR Parameters br_parameters : { + + fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern40-r13"; + fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0xFFFFFFFFFF; + #SIB1 schedulingInfoSIB1_BR_r13 = 4; - hyperSFN_r13 = 0; + #hyperSFN_r13 = 0; #eDRX_Allowed_r13 = 0; cellSelectionInfoCE_r13 = "ENABLE"; - q_RxLevMinCE_r13 = -50; + q_RxLevMinCE_r13 = -70; #q_QualMinRSRQ_CE_r13 = ; bandwidthReducedAccessRelatedInfo_r13 = "ENABLE" scheduling_info_br = @@ -129,12 +133,12 @@ eNBs = startSymbolBR_r13 = 3; si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF ! si_ValidityTime_r13 = 0; - system_info_value_tag_SI = - ( - { - systemInfoValueTagSi_r13 = 0; - } - ); + #system_info_value_tag_SI = + #( + # { + # systemInfoValueTagSi_r13 = 0; + # } + #); freqHoppingParametersDL_r13 = "DISABLE" mpdcch_pdsch_HoppingNB_r13 = 0; interval_DLHoppingConfigCommonModeA_r13 = "interval-FDD-r13" @@ -196,7 +200,7 @@ eNBs = { paging_narrowbands_r13 = 1; mpdcch_numrepetition_paging_r13 = 0; - nb_v1310 = 2; + #nb_v1310 = 2; } From 7d7adbac357081893fc9dc6d632bfe1e437c96c4 Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Wed, 16 Aug 2017 17:25:09 +0200 Subject: [PATCH 046/125] adding the vrb map in sceduler of BR --- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 120 +++++++++------------- 1 file changed, 47 insertions(+), 73 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 491edbf92f..d3f732b8fc 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -413,7 +413,7 @@ set_ul_DAI( // changes to pre-processor for eMTC //------------------------------------------------------------------------------ -void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned int *narrowBandindex, unsigned int *first_rb){ +void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned int *narrowBandindex){ EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11; AssertFatal(pue_template->physicalConfigDedicated !=NULL, "no RRC physical configuration for this UE ") ; @@ -427,7 +427,7 @@ void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned i *maxRep = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 ; - * narrowBandindex = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 ; + *narrowBandindex = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 ; @@ -492,41 +492,7 @@ schedule_ue_spec_br( VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_IN); - // for TDD: check that we have to act here, otherwise return - //if (cc[0].tdd_Config) { - // tdd_sfa = cc[0].tdd_Config->subframeAssignment; - // switch (subframeP) { - // case 0: - // // always continue - // break; - // case 1: - // return; - // break; - // case 2: - // return; - // break; - // case 3: - // if ((tdd_sfa != 2) && (tdd_sfa != 5)) return; - // break; - // case 4: - // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 5: - // break; - // case 6: - // case 7: - // if ((tdd_sfa != 1) && (tdd_sfa != 2) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 8: - // if ((tdd_sfa != 2) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 5)) return; - // break; - // case 9: - // if ((tdd_sfa != 1) && (tdd_sfa != 3) && (tdd_sfa != 4) && (tdd_sfa != 6)) return; - // break; - // } - //} - //weight = get_ue_weight(module_idP,UE_id); aggregation = 2; for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { N_RB_DL[CC_id] = to_prb(cc[CC_id].mib->message.dl_Bandwidth); @@ -574,14 +540,44 @@ schedule_ue_spec_br( for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) { - if (!UE_list->UE_template[CC_id][UE_id].rach_resource_type ) // do the following scheduling only if the UE is emtc + if (UE_list->UE_template[CC_id][UE_id].rach_resource_type ==0 ) // do the following scheduling only if the UE is emtc continue ; + //[khalid] ******** allocate here the vrb_map + // 1st check on the vrb_map[] and allocate the one that is next to them + + // at the end of the scheduler make sure the right subbands coresponding to these RBs are allocated the UE in UE_template directely + // also check on the fill_DCI function + + unsigned int rmax; + unsigned int narrowBandindex_index; + unsigned int first_rb, rep, reps; + + // rmax from RRC connection setup + getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index); + + first_rb = narrowband_to_first_rb(cc,narrowBandindex_index); + + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; + vrb_map[first_rb + 4] = 1; + vrb_map[first_rb + 5] = 1; + + + + + continue_flag = 0; // reset the flag to allow allocation for the remaining UEs rnti = UE_RNTI(module_idP, UE_id); eNB_UE_stats = &UE_list->eNB_UE_stats[CC_id][UE_id]; ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + //[khalid] allocate the middle RB subbands in sf 1,5 for synch signals and PBCH + + + if (rnti == NOT_A_RNTI) { LOG_D(MAC, "Cannot find rnti for UE_id %d (num_UEs %d)\n", UE_id, UE_list->num_UEs); @@ -679,6 +675,14 @@ schedule_ue_spec_br( if (round > 0) { + + + // choose r3 by default for RAR (Table 9.1.5-5) + rep = 2; + // get actual repetition count from Table 9.1.5-3 + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); + + // get freq_allocation nb_rb = 6;//UE_list->UE_template[CC_id][UE_id].nb_rb[harq_pid]; @@ -728,27 +732,7 @@ schedule_ue_spec_br( case 2: case 7: default: - { - unsigned int rmax; - unsigned int narrowBandindex_index; - unsigned int first_rb, rep, reps; - - // rmax from RRC connection setup - getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); - - // choose r3 by default for RAR (Table 9.1.5-5) - rep = 2; - // get actual repetition count from Table 9.1.5-3 - reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); - - first_rb = narrowBandindex_index * 6; - - vrb_map[first_rb] = 1; - vrb_map[first_rb + 1] = 1; - vrb_map[first_rb + 2] = 1; - vrb_map[first_rb + 3] = 1; - vrb_map[first_rb + 4] = 1; - vrb_map[first_rb + 5] = 1; + { if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC,UE_id) > 0)) @@ -774,6 +758,9 @@ schedule_ue_spec_br( dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_id].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + + //[khalid] missing DCI format should be 10 for 6-1A + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = UE_list->UE_template[CC_id][UE_id].oldmcs1[harq_pid]; // adjust according to size of RAR, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now @@ -1167,7 +1154,7 @@ schedule_ue_spec_br( // TBS = get_TBS_DL(mcs, nb_rb); //} - //// if we have decreased too much or we don't have enough RBs, increase MCS + // if we have decreased too much or we don't have enough RBs, increase MCS //while ((TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (((ue_sched_ctl->dl_pow_off[CC_id] > 0) && (mcs < 28)) // || ((ue_sched_ctl->dl_pow_off[CC_id] == 0) && (mcs <= 15)))) { // mcs++; @@ -1313,27 +1300,14 @@ schedule_ue_spec_br( // tpc = 1; //0 //} - { - unsigned int rmax; - unsigned int narrowBandindex_index; - unsigned int first_rb, rep, reps; - - // rmax from RRC connection setup - getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index, &first_rb); + { // choose r3 by default for RAR (Table 9.1.5-5) rep = 2; // get actual repetition count from Table 9.1.5-3 reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); - first_rb = narrowBandindex_index * 6; - vrb_map[first_rb] = 1; - vrb_map[first_rb + 1] = 1; - vrb_map[first_rb + 2] = 1; - vrb_map[first_rb + 3] = 1; - vrb_map[first_rb + 4] = 1; - vrb_map[first_rb + 5] = 1; if ((UE_list->UE_template[CC_id][UE_id].mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition(eNB, CC_id, frameP, subframeP, rmax, TYPEUESPEC,UE_id) > 0)) From 1ca5c8c40588c41cb5baa18701be07ae9130237f Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Wed, 16 Aug 2017 18:58:15 +0200 Subject: [PATCH 047/125] fixing prach configurations --- openair1/PHY/INIT/lte_init.c | 6 +- openair1/PHY/LTE_TRANSPORT/prach.c | 48 ++++++--- openair1/SCHED/phy_procedures_lte_eNb.c | 6 +- openair2/ENB_APP/enb_config.c | 2 +- openair2/LAYER2/MAC/config.c | 20 ++-- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 102 ++++++++---------- openair2/RRC/LITE/rrc_eNB.c | 18 ++++ .../CONF/enb.band13.tm1.50PRB.emtc.conf | 6 +- 8 files changed, 123 insertions(+), 85 deletions(-) diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c index 4c68021325..914d5de51e 100755 --- a/openair1/PHY/INIT/lte_init.c +++ b/openair1/PHY/INIT/lte_init.c @@ -192,7 +192,11 @@ void phy_config_request(PHY_Config_t *phy_config) { fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0] = cfg->emtc_config.prach_ce_level_0_starting_subframe_periodicity.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] = cfg->emtc_config.prach_ce_level_0_number_of_repetitions_per_attempt.value; AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0]>=fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0], - "prach_starting_subframe_periodicity[0] < prach_numPetitionPerPreambleAttempt[0]\n"); + "prach_starting_subframe_periodicity[0] %d < prach_numPetitionPerPreambleAttempt[0] %d\n", + fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0], + fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]); + AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] > 0, + "prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]==0\n"); fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[0] = cfg->emtc_config.prach_ce_level_0_configuration_index.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[0] = cfg->emtc_config.prach_ce_level_0_frequency_offset.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[0] = cfg->emtc_config.prach_ce_level_0_hopping_enable.value; diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index e616741e13..19a8924863 100755 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -1117,6 +1117,7 @@ void rx_prach0(PHY_VARS_eNB *eNB, uint8_t restricted_set; uint8_t n_ra_prb; + int frame; int subframe; int16_t *prachF=NULL; int16_t **rxsigF=NULL; @@ -1152,9 +1153,9 @@ void rx_prach0(PHY_VARS_eNB *eNB, #ifdef Rel14 int prach_ifft_cnt=0; #endif -#ifdef PRACH_DEBUG + //#ifdef PRACH_DEBUG int en,en0=0; -#endif + //#endif if (ru) { fp = &ru->frame_parms; @@ -1204,17 +1205,27 @@ void rx_prach0(PHY_VARS_eNB *eNB, #ifdef Rel14 if (br_flag == 1) { prach_ifftp = eNB->prach_vars_br.prach_ifft[ce_level]; + frame = eNB->proc.frame_prach_br; subframe = eNB->proc.subframe_prach_br; prachF = eNB->prach_vars_br.prachF; rxsigF = eNB->prach_vars_br.rxsigF; + if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", + br_flag,ce_level,frame,subframe, + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], + prach_ConfigIndex,rootSequenceIndex, + eNB->prach_vars_br.repetition_number[ce_level], + fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]); } else #endif { prach_ifftp = eNB->prach_vars.prach_ifft[0]; + frame = eNB->proc.frame_prach; subframe = eNB->proc.subframe_prach; prachF = eNB->prach_vars.prachF; rxsigF = eNB->prach_vars.rxsigF; + if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", + subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); } } else { @@ -1222,16 +1233,17 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (br_flag == 1) { subframe = ru->proc.subframe_prach_br; rxsigF = ru->prach_rxsigF_br[ce_level]; - LOG_D(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", - subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); + if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", + br_flag,ce_level,frame,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); } else #endif { subframe = ru->proc.subframe_prach; rxsigF = ru->prach_rxsigF; - LOG_D(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", + if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex); + } } @@ -1241,9 +1253,9 @@ void rx_prach0(PHY_VARS_eNB *eNB, for (aa=0; aaif_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset]; -#ifdef PRACH_DEBUG - LOG_D(PHY,"RU %d, subframe %d, : prach %p (energy %d)\n",ru->idx,subframe,prach[aa],dB_fixed(en0=signal_energy(prach[aa],fp->samples_per_tti))); -#endif + //#ifdef PRACH_DEBUG + if ((frame&1023) < 20) LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d, : prach %p (energy %d)\n",ru->idx,br_flag,ce_level,frame,subframe,prach[aa],dB_fixed(en0=signal_energy(prach[aa],fp->samples_per_tti))); + //#endif } } @@ -1467,11 +1479,11 @@ void rx_prach0(PHY_VARS_eNB *eNB, } else if (eNB!=NULL) { -#if 0 + //#if 0 en = dB_fixed(signal_energy(&rxsigF[0][0],840)); /*if (en>60)*/ - printf("PRACH: Frame %d, Subframe %d => %d dB\n",eNB->proc.frame_rx,eNB->proc.subframe_rx,en); -#endif + if ((frame&1023) < 20) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,eNB->proc.frame_rx,eNB->proc.subframe_rx,en); + //#endif } @@ -1506,6 +1518,9 @@ void rx_prach0(PHY_VARS_eNB *eNB, *max_preamble_energy=0; for (preamble_index=0 ; preamble_index<64 ; preamble_index++) { + + if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",frame,subframe,preamble_index,br_flag); + if (restricted_set == 0) { // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS))); @@ -1588,9 +1603,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, } // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex -#ifdef PRACH_DEBUG - LOG_I(PHY,"preamble index %d: offset %d, preamble shift %d\n",preamble_index,preamble_offset,preamble_shift); -#endif + //#ifdef PRACH_DEBUG + if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n", + frame,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); + //#endif log2_ifft_size = 10; fft_size = 6144; @@ -1678,6 +1694,8 @@ void rx_prach0(PHY_VARS_eNB *eNB, eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) #endif { + if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",frame,subframe,br_flag,en); + preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<>log2_ifft_size)*update_TA/update_TA2; *max_preamble = preamble_index; + if (en>60) LOG_I(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d, en %d)\n",frame,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,en); } } + } }// preamble_index diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index e350cf14c3..201c534e34 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -715,7 +715,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, int i; if (frame < 20) { - LOG_I(PHY, + LOG_D(PHY, "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", eNB->Mod_id, dlsch->rnti,harq_pid, frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, @@ -735,8 +735,6 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, pmi2hex_2Ar1(dlsch_harq->pmi_alloc), dlsch_harq->rvidx, dlsch_harq->round); - for (i=0;iTBS>>3;i++) printf("%x.",dlsch_harq->pdu[i]); - printf("\n"); } #if defined(MESSAGE_CHART_GENERATOR_PHY) MSC_LOG_TX_MESSAGE( @@ -2018,6 +2016,8 @@ void prach_procedures(PHY_VARS_eNB *eNB, } } + if ((frame&1023) < 20) LOG_I(PHY,"Frame %d, subframe %d: Running rx_prach (br_flag %d)\n", + frame,subframe,br_flag); rx_prach(eNB, eNB->RU_list[0], &max_preamble[0], diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 26c0f51214..cd01541f6d 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -2776,7 +2776,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) { RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; } else { diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 4646c12580..2084a6046b 100755 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -339,15 +339,16 @@ void config_sib2(int Mod_idP, cfg->emtc_config.prach_ce_level_1_enable.value=0; cfg->emtc_config.prach_ce_level_2_enable.value=0; cfg->emtc_config.prach_ce_level_3_enable.value=0; + switch (prach_ParametersListCE_r13->list.count) { case 4: p=prach_ParametersListCE_r13->list.array[3]; cfg->emtc_config.prach_ce_level_3_enable.value = 1; cfg->emtc_config.prach_ce_level_3_configuration_index.value = p->prach_ConfigIndex_r13; cfg->emtc_config.prach_ce_level_3_frequency_offset.value = p->prach_FreqOffset_r13; - cfg->emtc_config.prach_ce_level_3_number_of_repetitions_per_attempt.value = p->numRepetitionPerPreambleAttempt_r13; + cfg->emtc_config.prach_ce_level_3_number_of_repetitions_per_attempt.value = 1<numRepetitionPerPreambleAttempt_r13; if (p->prach_StartingSubframe_r13) - cfg->emtc_config.prach_ce_level_3_starting_subframe_periodicity.value = *p->prach_StartingSubframe_r13; + cfg->emtc_config.prach_ce_level_3_starting_subframe_periodicity.value = 2<<*p->prach_StartingSubframe_r13; cfg->emtc_config.prach_ce_level_3_hopping_enable.value = p->prach_HoppingConfig_r13; cfg->emtc_config.prach_ce_level_3_hopping_offset.value = cfg->rf_config.ul_channel_bandwidth.value-6; case 3: @@ -355,9 +356,9 @@ void config_sib2(int Mod_idP, cfg->emtc_config.prach_ce_level_2_enable.value = 1; cfg->emtc_config.prach_ce_level_2_configuration_index.value = p->prach_ConfigIndex_r13; cfg->emtc_config.prach_ce_level_2_frequency_offset.value = p->prach_FreqOffset_r13; - cfg->emtc_config.prach_ce_level_2_number_of_repetitions_per_attempt.value = p->numRepetitionPerPreambleAttempt_r13; + cfg->emtc_config.prach_ce_level_2_number_of_repetitions_per_attempt.value = 1<numRepetitionPerPreambleAttempt_r13; if (p->prach_StartingSubframe_r13) - cfg->emtc_config.prach_ce_level_2_starting_subframe_periodicity.value = *p->prach_StartingSubframe_r13; + cfg->emtc_config.prach_ce_level_2_starting_subframe_periodicity.value = 2<<*p->prach_StartingSubframe_r13; cfg->emtc_config.prach_ce_level_2_hopping_enable.value = p->prach_HoppingConfig_r13; cfg->emtc_config.prach_ce_level_2_hopping_offset.value = cfg->rf_config.ul_channel_bandwidth.value-6; case 2: @@ -365,9 +366,9 @@ void config_sib2(int Mod_idP, cfg->emtc_config.prach_ce_level_1_enable.value = 1; cfg->emtc_config.prach_ce_level_1_configuration_index.value = p->prach_ConfigIndex_r13; cfg->emtc_config.prach_ce_level_1_frequency_offset.value = p->prach_FreqOffset_r13; - cfg->emtc_config.prach_ce_level_1_number_of_repetitions_per_attempt.value = p->numRepetitionPerPreambleAttempt_r13; + cfg->emtc_config.prach_ce_level_1_number_of_repetitions_per_attempt.value = 1<numRepetitionPerPreambleAttempt_r13; if (p->prach_StartingSubframe_r13) - cfg->emtc_config.prach_ce_level_1_starting_subframe_periodicity.value = *p->prach_StartingSubframe_r13; + cfg->emtc_config.prach_ce_level_1_starting_subframe_periodicity.value = 2<<*p->prach_StartingSubframe_r13; cfg->emtc_config.prach_ce_level_1_hopping_enable.value = p->prach_HoppingConfig_r13; cfg->emtc_config.prach_ce_level_1_hopping_offset.value = cfg->rf_config.ul_channel_bandwidth.value-6; case 1: @@ -375,13 +376,16 @@ void config_sib2(int Mod_idP, cfg->emtc_config.prach_ce_level_0_enable.value = 1; cfg->emtc_config.prach_ce_level_0_configuration_index.value = p->prach_ConfigIndex_r13; cfg->emtc_config.prach_ce_level_0_frequency_offset.value = p->prach_FreqOffset_r13; - cfg->emtc_config.prach_ce_level_0_number_of_repetitions_per_attempt.value = p->numRepetitionPerPreambleAttempt_r13; + cfg->emtc_config.prach_ce_level_0_number_of_repetitions_per_attempt.value = 1<numRepetitionPerPreambleAttempt_r13; + AssertFatal(p->prach_StartingSubframe_r13!=NULL,"prach_StartingSubframe_r13 is null\n"); if (p->prach_StartingSubframe_r13) - cfg->emtc_config.prach_ce_level_0_starting_subframe_periodicity.value = *p->prach_StartingSubframe_r13; + cfg->emtc_config.prach_ce_level_0_starting_subframe_periodicity.value = 2<<*p->prach_StartingSubframe_r13; cfg->emtc_config.prach_ce_level_0_hopping_enable.value = p->prach_HoppingConfig_r13; cfg->emtc_config.prach_ce_level_0_hopping_offset.value = cfg->rf_config.ul_channel_bandwidth.value-6; } + AssertFatal(cfg->emtc_config.prach_ce_level_0_enable.value>0,"CE_level0 is not enabled\n"); + struct FreqHoppingParameters_r13 *ext4_freqHoppingParameters = radioResourceConfigCommonP->ext4->freqHoppingParameters_r13; if ((ext4_freqHoppingParameters) && (ext4_freqHoppingParameters->interval_ULHoppingConfigCommonModeA_r13)){ diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index af2292d132..e48db1d483 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1408,66 +1408,58 @@ uint8_t do_SIB23(uint8_t Mod_id, int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id]; int prach_parameters_index; + AssertFatal(num_prach_parameters_ce > 0, "PRACH CE parameter list is empty\n"); + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index) { - prach_parametersce_r13 = CALLOC(1, sizeof(PRACH_ParametersCE_r13_t)); - if (configuration->prach_parameters_list_size[CC_id]) + prach_parametersce_r13 = CALLOC(1, sizeof(PRACH_ParametersCE_r13_t)); + + prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index]; + + AssertFatal(configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]!=NULL, + "configuration->prach_StartingSubframe_r13[%d][%d] is null", + (int)CC_id,(int)prach_parameters_index); + if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) + { + prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); + *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + } + + if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; + } + + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; + printf("[DEBUGGING][KOGO][SIB23] : prach hopping config = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); + + + long *maxavailablenarrowband; + int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) { - prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; - prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index]; - - if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) - { - prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); - *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; - } - else - { - prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; - } - - if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); - *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; - } - else - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; - } - - prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; - prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; - printf("[DEBUGGING][KOGO][SIB23] : prach hopping config = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); + maxavailablenarrowband = CALLOC(1, sizeof(long)); + *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); } - else - { - prach_parametersce_r13->prach_ConfigIndex_r13 = 3; - prach_parametersce_r13->prach_FreqOffset_r13 = 1; - prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; - *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long)); - *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3; - prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; - prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - } - - long *maxavailablenarrowband; - int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; - int narrow_band_index; - for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) - { - maxavailablenarrowband = CALLOC(1, sizeof(long)); - *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; - ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); - } - - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; - prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); } - } else { diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 29c2967004..56ce6ded6d 100755 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -333,6 +333,24 @@ init_SI( sib1_v13ext = RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib1_BR->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension; + // Basic Asserts for CE_level0 PRACH configuration + + RadioResourceConfigCommonSIB_t *radioResourceConfigCommon_BR = &RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2_BR->radioResourceConfigCommon; + struct PRACH_ConfigSIB_v1310 *ext4_prach=radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + + PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; + AssertFatal(prach_ParametersListCE_r13->list.count>0,"prach_ParametersListCE_r13 is empty\n"); + PRACH_ParametersCE_r13_t *p = prach_ParametersListCE_r13->list.array[0]; + AssertFatal(p->prach_StartingSubframe_r13 != NULL, "prach_StartingSubframe_r13 celevel0 is null\n"); + AssertFatal((1<numRepetitionPerPreambleAttempt_r13)<=(2<<*p->prach_StartingSubframe_r13), + "prachce0->numReptitionPerPreambleAttempt_r13 %d > prach_StartingSubframe_r13 %d\n", + 1<numRepetitionPerPreambleAttempt_r13, + 2<<*p->prach_StartingSubframe_r13); + + + + + } #endif diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 7baa08b3be..6ba66784e4 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -48,7 +48,7 @@ eNBs = prach_config_index = 0; prach_high_speed = "DISABLE"; prach_zero_correlation = 1; - prach_freq_offset = 2; + prach_freq_offset = 1; pucch_delta_shift = 1; pucch_nRB_CQI = 1; pucch_nCS_AN = 0; @@ -179,7 +179,7 @@ eNBs = ( { prach_config_index_br = 3; - prach_freq_offset_br = 2; + prach_freq_offset_br = 1; prach_StartingSubframe_r13 = 0; maxNumPreambleAttemptCE_r13 = 6; numRepetitionPerPreambleAttempt_r13 = 0; @@ -235,7 +235,7 @@ eNBs = prach_config_index = 3; prach_high_speed = "DISABLE"; prach_zero_correlation = 1; - prach_freq_offset = 2; + prach_freq_offset = 1; pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; From 874e0cf9e57058b523f1112812baa3482881efba Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Thu, 17 Aug 2017 12:52:20 +0200 Subject: [PATCH 048/125] Reviewing do_RRCConnectionSetup_BR --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 94 ++++++++++++++------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e48db1d483..36f8b575dc 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2171,7 +2171,7 @@ do_RRCConnectionReconfigurationComplete( return((enc_rval.encoded+7)/8); } -#ifdef Rel14 +//#ifdef Rel14 uint8_t do_RRCConnectionSetup_BR( const protocol_ctxt_t* const ctxt_pP, @@ -2225,11 +2225,11 @@ do_RRCConnectionSetup_BR( SRB1_config = CALLOC(1,sizeof(*SRB1_config)); SRB1_config->srb_Identity = 1; - SRB1_rlc_config = CALLOC(1,sizeof(*SRB1_rlc_config)); - SRB1_config->rlc_Config = SRB1_rlc_config; + SRB1_rlc_config = CALLOC(1, sizeof(*SRB1_rlc_config)); + SRB1_config->rlc_Config = SRB1_rlc_config; // check this SRB1_rlc_config->present = SRB_ToAddMod__rlc_Config_PR_explicitValue; - SRB1_rlc_config->choice.explicitValue.present=RLC_Config_PR_am; + SRB1_rlc_config->choice.explicitValue.present = RLC_Config_PR_am; #if defined(ENABLE_ITTI) SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = rrc->srb1_timer_poll_retransmit; SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = rrc->srb1_poll_pdu; @@ -2238,23 +2238,23 @@ do_RRCConnectionSetup_BR( SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = rrc->srb1_timer_reordering; SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = rrc->srb1_timer_status_prohibit; #else - SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = T_PollRetransmit_ms20;; - SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = PollPDU_p4;; + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.t_PollRetransmit = T_PollRetransmit_ms20; // FIXME should be 80 + SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollPDU = PollPDU_p4; // FIXME should be infinity SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.pollByte = PollByte_kBinfinity; SRB1_rlc_config->choice.explicitValue.choice.am.ul_AM_RLC.maxRetxThreshold = UL_AM_RLC__maxRetxThreshold_t8; + SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_Reordering = T_Reordering_ms35; SRB1_rlc_config->choice.explicitValue.choice.am.dl_AM_RLC.t_StatusProhibit = T_StatusProhibit_ms0; #endif - SRB1_lchan_config = CALLOC(1,sizeof(*SRB1_lchan_config)); - SRB1_config->logicalChannelConfig = SRB1_lchan_config; + SRB1_lchan_config = CALLOC(1, sizeof(*SRB1_lchan_config)); + SRB1_config->logicalChannelConfig = SRB1_lchan_config; SRB1_lchan_config->present = SRB_ToAddMod__logicalChannelConfig_PR_explicitValue; - SRB1_ul_SpecificParameters = CALLOC(1,sizeof(*SRB1_ul_SpecificParameters)); + SRB1_ul_SpecificParameters = CALLOC(1, sizeof(*SRB1_ul_SpecificParameters)); SRB1_lchan_config->choice.explicitValue.ul_SpecificParameters = SRB1_ul_SpecificParameters; - SRB1_ul_SpecificParameters->priority = 1; //assign_enum(&SRB1_ul_SpecificParameters->prioritisedBitRate,LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity); @@ -2286,9 +2286,9 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->cqi_ReportConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig)); if (rrc->srs_enable[CC_id]) - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); else - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = NULL; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = NULL; physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); physicalConfigDedicated2->schedulingRequestConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->schedulingRequestConfig)); #ifdef CBA @@ -2298,9 +2298,9 @@ do_RRCConnectionSetup_BR( //assign_enum(&physicalConfigDedicated2->pdsch_ConfigDedicated->p_a, // PDSCH_ConfigDedicated__p_a_dB0); if (carrier->p_eNB==2) - physicalConfigDedicated2->pdsch_ConfigDedicated->p_a= PDSCH_ConfigDedicated__p_a_dB_3; + physicalConfigDedicated2->pdsch_ConfigDedicated->p_a = PDSCH_ConfigDedicated__p_a_dB_3; else - physicalConfigDedicated2->pdsch_ConfigDedicated->p_a= PDSCH_ConfigDedicated__p_a_dB0; + physicalConfigDedicated2->pdsch_ConfigDedicated->p_a = PDSCH_ConfigDedicated__p_a_dB0; // PUCCH physicalConfigDedicated2->pucch_ConfigDedicated->ackNackRepetition.present=PUCCH_ConfigDedicated__ackNackRepetition_PR_release; @@ -2309,7 +2309,7 @@ do_RRCConnectionSetup_BR( if (carrier->sib1->tdd_Config == NULL) { physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode=NULL;//PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing; } else { //TDD - physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode= CALLOC(1,sizeof(long)); + physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode = CALLOC(1,sizeof(long)); *(physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode) = PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_bundling;//PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing; } @@ -2616,7 +2616,7 @@ do_RRCConnectionSetup_BR( return((enc_rval.encoded+7)/8); } -#endif +//#endif //------------------------------------------------------------------------------ @@ -2760,9 +2760,9 @@ do_RRCConnectionSetup( } // Pusch_config_dedicated - physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_ACK_Index = 0; // 2.00 - physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_RI_Index = 0; // 1.25 - physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_CQI_Index = 8; // 2.25 + physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_ACK_Index = 0; // 2.00 // FIXME should be 10 + physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_RI_Index = 0; // 1.25 // FIXME should be 9 + physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_CQI_Index = 8; // 2.25 // FIXME should be 10 // UplinkPowerControlDedicated physicalConfigDedicated2->uplinkPowerControlDedicated->p0_UE_PUSCH = 0; // 0 dB @@ -2797,19 +2797,21 @@ do_RRCConnectionSetup( physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH->choice.setup.tpc_RNTI.buf[1]=0x34+ue_context_pP->local_uid; physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH->choice.setup.tpc_RNTI.bits_unused=0; - // CQI ReportConfig - + // CQI ReportConfig // FIXME -- reportModeAperiodic should be rm20 physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic)); #if defined(Rel10) || defined(Rel14) - *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic= CQI_ReportModeAperiodic_rm30; + *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportModeAperiodic_rm30; #else - *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI + *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI #endif physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB //physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=NULL; - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); + // FIXME -- release = NULL + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; + + /* physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup; physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch @@ -2823,23 +2825,23 @@ do_RRCConnectionSetup( //soundingRS-UL-ConfigDedicated if (rrc->srs_enable[CC_id]==1) { - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; - if (carrier->sib1->tdd_Config==NULL) { // FDD - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present - == SoundingRS_UL_ConfigCommon_PR_setup) - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) - LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); - if (ue_context_pP->local_uid >=20) - LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", - ue_context_pP->local_uid); - //the current code will allow for 20 UEs - to be revised for more + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = + SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = + SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; + if (carrier->sib1->tdd_Config==NULL) { // FDD + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); + if (ue_context_pP->local_uid >=20) + LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); + //the current code will allow for 20 UEs - to be revised for more physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2; physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; } @@ -2866,7 +2868,7 @@ do_RRCConnectionSetup( } - //AntennaInfoDedicated + //AntennaInfoDedicated // FIXME -- check this physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); physicalConfigDedicated2->antennaInfo->present = PhysicalConfigDedicated__antennaInfo_PR_explicitValue; //assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode, @@ -2876,11 +2878,11 @@ do_RRCConnectionSetup( default: LOG_W(RRC,"At RRCConnectionSetup Transmission mode can only take values 1 or 2! Defaulting to 1!\n"); case 1: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode = AntennaInfoDedicated__transmissionMode_tm1; break; case 2: - physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode = AntennaInfoDedicated__transmissionMode_tm2; break; /* case 3: @@ -2921,10 +2923,12 @@ do_RRCConnectionSetup( // SchedulingRequestConfig physicalConfigDedicated2->schedulingRequestConfig->present = SchedulingRequestConfig_PR_setup; + // FIXME -- sr_PUCCH_resourceIndex should be 18 physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 3;//ue_context_pP->local_uid; if (carrier->sib1->tdd_Config == NULL) { // FDD - physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 5+(ue_context_pP->local_uid%10); // Isr = 5 (every 10 subframes, offset=2+UE_id mod3) + // FIXME -- check this -- 5 + (ue_context_pP->local_uid % 10) should produce 76 + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 5 + (ue_context_pP->local_uid % 10); // Isr = 5 (every 10 subframes, offset=2+UE_id mod3) } else { switch (carrier->sib1->tdd_Config->subframeAssignment) { case 1: From 0a4fd473343cbec255e16c45701c062a5bc87980 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Thu, 17 Aug 2017 14:06:00 +0200 Subject: [PATCH 049/125] updated fill_rar_brY --- openair2/LAYER2/MAC/rar_tools.c | 43 ++++++++----- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 92 ++++++++++++++------------- 2 files changed, 73 insertions(+), 62 deletions(-) diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index f9ccd4f9ed..008cadec08 100755 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -132,12 +132,12 @@ unsigned short fill_rar( #ifdef Rel14 //------------------------------------------------------------------------------ unsigned short fill_rar_br(eNB_MAC_INST *eNB, - int CC_id, - RA_TEMPLATE *RA_template, - const frame_t frameP, - const sub_frame_t subframeP, - uint8_t* const dlsch_buffer, - const uint8_t ce_level + int CC_id, + RA_TEMPLATE *RA_template, + const frame_t frameP, + const sub_frame_t subframeP, + uint8_t* const dlsch_buffer, + const uint8_t ce_level ) //------------------------------------------------------------------------------ { @@ -147,7 +147,7 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, uint8_t *rar = (uint8_t *)(dlsch_buffer+1); int i; uint8_t nb,rballoc,reps; - uint8_t mcs,TPC,ULdelay,cqireq; + uint8_t mcs,TPC,ULdelay,cqireq,mpdcch_nb_index; int input_buffer_length; @@ -163,10 +163,10 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, int N_NB_index; - AssertFatal(1==0,"RAR for BL/CE Still to be finished ...\n"); + AssertFatal(1==0,"RAR for BL/CE Still to be finished ...\n"); // Copy the Msg2 narrowband - RA_template->msg34_narrowband = RA_template->msg2_narrowband; + RA_template->msg34_narrowband = RA_template->msg2_narrowband; if (ce_level<2) { //CE Level 0,1, CEmodeA input_buffer_length =6; @@ -177,16 +177,25 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, rar[5] = (uint8_t)(RA_template->rnti&0xff); //cc->RA_template[ra_idx].timing_offset = 0; nb = 0; - rballoc = mac_computeRIV(6,1+ce_level,1); // one PRB only for UL Grant in position 1+ce_level within Narrowband - rar[1] |= (rballoc&15)<<(4-N_NB_index); // Hopping = 0 (bit 3), 3 MSBs of rballoc - - reps = 4; - mcs = 7; - TPC = 3; // no power increase + reps = 0; + mcs = 7; + TPC = 3; // no power increase ULdelay = 0; cqireq = 0; - rar[2] |= ((mcs&0x8)>>3); // mcs 10 - rar[3] = (((mcs&0x7)<<5)) | ((TPC&7)<<2) | ((ULdelay&1)<<1) | (cqireq&1); + mpdcch_nb_index = 0; + rballoc = mac_computeRIV(6,1+ce_level,1); // one PRB only for UL Grant in position 1+ce_level within Narrowband + unsigned int buffer = 0; + buffer |= N_NB_index << (16 + (4 - N_NB_index)); + buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index))); + buffer |= ((reps & 0x03) << (10 + (4 - N_NB_index))); + buffer |= ((mcs & 0x07) << (7 + (4 - N_NB_index))); + buffer |= ((TPC & 0x07) << (4 + (4 - N_NB_index))); + buffer |= ((cqireq & 0x01) << (3 + (4 - N_NB_index))); + buffer |= ((ULdelay & 0x01) << (2 + (4 - N_NB_index))); + buffer |= ((ULdelay & 0x01) << (4 - N_NB_index)); + rar[1] = (buffer>>12) & 0x0F; + rar[2] = (buffer>>8) & 0xFF; + rar[3] = buffer&0xFF; } else { // CE level 2,3 => CEModeB diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 36f8b575dc..e8d0e8d90b 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2333,17 +2333,17 @@ do_RRCConnectionSetup_BR( // CQI ReportConfig /// TODO to be reviewed - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic)); + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic)); #if defined(Rel10) || defined(Rel14) - *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic= CQI_ReportModeAperiodic_rm30; + *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportModeAperiodic_rm30; #else *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI #endif physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB //physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=NULL; - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; /* physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup; physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch @@ -2357,46 +2357,46 @@ do_RRCConnectionSetup_BR( /// TODO to be reviewed if (rrc->srs_enable[CC_id]) { - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = - SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; - if (carrier->sib1->tdd_Config==NULL) { // FDD - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present - == SoundingRS_UL_ConfigCommon_PR_setup) - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) - LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); - if (ue_context_pP->local_uid >=20) - LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", - ue_context_pP->local_uid); - //the current code will allow for 20 UEs - to be revised for more - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; - } - else { - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present - == SoundingRS_UL_ConfigCommon_PR_setup) - if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) { - LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, - carrier->sib1->tdd_Config->subframeAssignment); - } - if (ue_context_pP->local_uid >=6) - LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n", - ue_context_pP->local_uid); - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=17+ue_context_pP->local_uid/2; - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; - } - LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid, - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth = + SoundingRS_UL_ConfigDedicated__setup__srs_Bandwidth_bw0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth = + SoundingRS_UL_ConfigDedicated__setup__srs_HoppingBandwidth_hbw0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition=0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.duration=1; + if (carrier->sib1->tdd_Config==NULL) { // FDD + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); + if (ue_context_pP->local_uid >=20) + LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); + //the current code will allow for 20 UEs - to be revised for more + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=7+ue_context_pP->local_uid/2; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; + } + else { + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present + == SoundingRS_UL_ConfigCommon_PR_setup) + if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) { + LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n", + carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, + carrier->sib1->tdd_Config->subframeAssignment); + } + if (ue_context_pP->local_uid >=6) + LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n", + ue_context_pP->local_uid); + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex=17+ue_context_pP->local_uid/2; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; + } + LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid, + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift= - SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift= + SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; } //AntennaInfoDedicated @@ -2530,11 +2530,13 @@ do_RRCConnectionSetup_BR( // FIXME allocate physicalConfigDedicated2->ext7 physicalConfigDedicated2->ext7 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7)); - physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL; + + physicalConfigDedicated2->ext7->pdsch_ConfigDedicated_v1310 = NULL; // has some parameters to be filled + physicalConfigDedicated2->ext7->pusch_ConfigDedicated_r13 = NULL; + physicalConfigDedicated2->ext7->pucch_ConfigDedicated_r13 = NULL; physicalConfigDedicated2->ext7->pdcch_CandidateReductions_r13 = NULL; - physicalConfigDedicated2->ext7->pucch_ConfigDedicated_r13 = NULL; physicalConfigDedicated2->ext7->cqi_ReportConfig_v1310 = NULL; From 8f0ba722f63ded97821de794bba723bb9b6f84f5 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Thu, 17 Aug 2017 16:22:04 +0200 Subject: [PATCH 050/125] first half of RA procedure. PRACH reception functional for CElevel0. Up to RAR generation. --- openair1/PHY/LTE_TRANSPORT/prach.c | 103 ++++++++++-------- openair1/SCHED/phy_procedures_lte_eNb.c | 72 ++++++++---- openair2/LAYER2/MAC/config.c | 1 + openair2/LAYER2/MAC/eNB_scheduler.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 78 +++++++++---- .../LAYER2/MAC/eNB_scheduler_primitives.c | 24 ++-- openair2/PHY_INTERFACE/IF_Module.c | 1 + .../CONF/enb.band13.tm1.50PRB.emtc.conf | 4 +- 8 files changed, 181 insertions(+), 104 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index b6564845d0..27663c6698 100755 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -1153,10 +1153,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, #ifdef Rel14 int prach_ifft_cnt=0; #endif - //#ifdef PRACH_DEBUG - int en,en0=0; - //#endif - +#ifdef PRACH_DEBUG + int en0=0; +#endif + int en; if (ru) { fp = &ru->frame_parms; nb_rx = ru->nb_rx; @@ -1209,12 +1209,14 @@ void rx_prach0(PHY_VARS_eNB *eNB, subframe = eNB->proc.subframe_prach_br; prachF = eNB->prach_vars_br.prachF; rxsigF = eNB->prach_vars_br.rxsigF; +#ifdef PRACH_DEBUG if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", br_flag,ce_level,frame,subframe, fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], prach_ConfigIndex,rootSequenceIndex, eNB->prach_vars_br.repetition_number[ce_level], fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]); +#endif } else #endif @@ -1224,8 +1226,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, subframe = eNB->proc.subframe_prach; prachF = eNB->prach_vars.prachF; rxsigF = eNB->prach_vars.rxsigF; +#ifdef PRACH_DEBUG if ((frame&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); +#endif } } else { @@ -1233,17 +1237,20 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (br_flag == 1) { subframe = ru->proc.subframe_prach_br; rxsigF = ru->prach_rxsigF_br[ce_level]; +#ifdef PRACH_DEBUG if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", br_flag,ce_level,frame,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); +#endif } else #endif { subframe = ru->proc.subframe_prach; rxsigF = ru->prach_rxsigF; +#ifdef PRACH_DEBUG if ((frame&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex); - +#endif } } @@ -1253,9 +1260,9 @@ void rx_prach0(PHY_VARS_eNB *eNB, for (aa=0; aaif_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset]; - //#ifdef PRACH_DEBUG +#ifdef PRACH_DEBUG if ((frame&1023) < 20) LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d, : prach %p (energy %d)\n",ru->idx,br_flag,ce_level,frame,subframe,prach[aa],dB_fixed(en0=signal_energy(prach[aa],fp->samples_per_tti))); - //#endif +#endif } } @@ -1465,25 +1472,13 @@ void rx_prach0(PHY_VARS_eNB *eNB, #endif send_IF4p5(ru, ru->proc.frame_prach, ru->proc.subframe_prach, IF4p5_PRACH); -#if 0 - if (dB_fixed(en0)>30) { - en = dB_fixed(signal_energy(&rxsigF[0][k],840)); - // if (en>60) - printf("PRACH (if4p5), k %d, n_ra_prb %d: Frame %d, Subframe %d => %d dB\n",k,n_ra_prb,ru->proc.frame_rx,ru->proc.subframe_rx,en); - write_output("rxsigF.m","prach_rxF",rxsigF[0],12288,1,1); - exit(-1); - } -#endif - return; } else if (eNB!=NULL) { - - //#if 0 en = dB_fixed(signal_energy(&rxsigF[0][0],840)); - /*if (en>60)*/ - if ((frame&1023) < 20) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,eNB->proc.frame_rx,eNB->proc.subframe_rx,en); - //#endif +#ifdef PRACH_DEBUG + if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en); +#endif } @@ -1519,8 +1514,9 @@ void rx_prach0(PHY_VARS_eNB *eNB, *max_preamble_energy=0; for (preamble_index=0 ; preamble_index<64 ; preamble_index++) { +#ifdef PRACH_DEBUG if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",frame,subframe,preamble_index,br_flag); - +#endif if (restricted_set == 0) { // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS))); @@ -1603,10 +1599,10 @@ void rx_prach0(PHY_VARS_eNB *eNB, } // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex - //#ifdef PRACH_DEBUG +#ifdef PRACH_DEBUG if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n", frame,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); - //#endif +#endif log2_ifft_size = 10; fft_size = 6144; @@ -1667,25 +1663,6 @@ void rx_prach0(PHY_VARS_eNB *eNB, #endif // if (aa=1) write_output("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1); }// antennas_rx - -#ifdef PRACH_DEBUG - - if (en>40) { - k = (12*n_ra_prb) - 6*fp->N_RB_UL; - - if (k<0) k+=fp->ofdm_symbol_size; - - k*=12; - k+=13; - k*=2; - printf("Dumping prach, k = %d (n_ra_prb %d)\n",k,n_ra_prb); - write_output("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); - write_output("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); - write_output("Xu.m","xu",Xu,N_ZC,1,1); - write_output("prach_ifft0.m","prach_t0",prach_ifft[0][0],1024,1,1); - exit(-1); - } -#endif } // new dft // check energy in nth time shift, for @@ -1695,26 +1672,58 @@ void rx_prach0(PHY_VARS_eNB *eNB, eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) #endif { +#ifdef PRACH_DEBUG if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",frame,subframe,br_flag,en); - +#endif preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<*max_preamble_energy) { *max_preamble_energy = levdB; *max_preamble_delay = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2; *max_preamble = preamble_index; - if (en>60) LOG_I(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d, en %d)\n",frame,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,en); + //#ifdef PRACH_DEBUG + if ((en>60) && (br_flag==1)) LOG_I(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n",frame,subframe,*max_preamble_energy,*max_preamble_delay,*max_preamble,br_flag,ce_level,levdB,lev); + //#endif } } } }// preamble_index +#ifdef PRACH_DEBUG + + if (en>60) { + k = (12*n_ra_prb) - 6*fp->N_RB_UL; + + if (k<0) k+=fp->ofdm_symbol_size; + + k*=12; + k+=13; + k*=2; + + if (br_flag == 0) { + /* + write_output("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); + write_output("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); + write_output("Xu.m","xu",Xu,N_ZC,1,1); + write_output("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1);*/ + } + else { + printf("Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb); + write_output("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1); + write_output("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1); + write_output("Xu_br.m","xu_br",Xu,N_ZC,1,1); + write_output("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1); + exit(-1); + } + + } +#endif if (eNB) stop_meas(&eNB->rx_prach); } diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 1a784a306f..0d2d4e8d50 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1889,10 +1889,16 @@ void prach_procedures(PHY_VARS_eNB *eNB, if (br_flag==1) { subframe = eNB->proc.subframe_prach_br; frame = eNB->proc.frame_prach_br; + pthread_mutex_lock(&eNB->UL_INFO_mutex); + eNB->UL_INFO.rach_ind_br.number_of_preambles=0; + pthread_mutex_unlock(&eNB->UL_INFO_mutex); } else #endif { + pthread_mutex_lock(&eNB->UL_INFO_mutex); + eNB->UL_INFO.rach_ind.number_of_preambles=0; + pthread_mutex_unlock(&eNB->UL_INFO_mutex); subframe = eNB->proc.subframe_prach; frame = eNB->proc.frame_prach; } @@ -1905,6 +1911,8 @@ void prach_procedures(PHY_VARS_eNB *eNB, VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX,1); + + for (i=0;inum_RU;i++) { ru=eNB->RU_list[i]; for (ru_aa=0,aa=0;ru_aanb_rx;ru_aa++,aa++) { @@ -1918,8 +1926,6 @@ void prach_procedures(PHY_VARS_eNB *eNB, } } - if ((frame&1023) < 20) LOG_I(PHY,"Frame %d, subframe %d: Running rx_prach (br_flag %d)\n", - frame,subframe,br_flag); rx_prach(eNB, eNB->RU_list[0], &max_preamble[0], @@ -1932,13 +1938,13 @@ void prach_procedures(PHY_VARS_eNB *eNB, #endif ); - //#ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[RAPROC] Frame %d, subframe %d : Most likely preamble %d, energy %d dB delay %d\n", +#ifdef DEBUG_PHY_PROC + LOG_I(PHY,"[RAPROC] Frame %d, subframe %d : Most likely preamble %d, energy %d dB delay %d\n", frame,subframe, max_preamble[0], - max_preamble_energy[0], + max_preamble_energy[0]/10, max_preamble_delay[0]); - //#endif +#endif #ifdef Rel14 if (br_flag==1) { @@ -1949,30 +1955,46 @@ void prach_procedures(PHY_VARS_eNB *eNB, prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br); eNB->UL_INFO.rach_ind_br.preamble_list = eNB->preamble_list_br; - + int ind=0; + int ce_level=0; + /* Save for later, it doesn't work for (int ind=0,ce_level=0;ce_level<4;ce_level++) { - if ((prach_mask&(1<<(1+ce_level)) > 0) && // prach is active and CE level has finished its repetitions + + if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&& + (prach_mask&(1<<(1+ce_level)) > 0) && // prach is active and CE level has finished its repetitions (eNB->prach_vars_br.repetition_number[ce_level]== eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) { - if (max_preamble_energy[ind] > 580) { - eNB->UL_INFO.rach_ind_br.number_of_preambles++; - - eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind];// - eNB->preamble_list_br[ind].preamble_rel8.preamble = max_preamble[ind]; - // note: fid is implicitly 0 here, this is the rule for eMTC RA-RNTI from 36.321, Section 5.1.4 - eNB->preamble_list_br[ind].preamble_rel8.rnti = 1+subframe+(eNB->prach_vars_br.first_frame[ce_level]%40); - eNB->preamble_list_br[ind].instance_length = 0; //don't know exactly what this is - eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type = 1+ce_level; // CE Level - } + */ + if (eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0]==1){ + if (max_preamble_energy[0] > 350) { + eNB->UL_INFO.rach_ind_br.number_of_preambles++; + + eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind];// + eNB->preamble_list_br[ind].preamble_rel8.preamble = max_preamble[ind]; + // note: fid is implicitly 0 here, this is the rule for eMTC RA-RNTI from 36.321, Section 5.1.4 + eNB->preamble_list_br[ind].preamble_rel8.rnti = 1+subframe+(eNB->prach_vars_br.first_frame[ce_level]%40); + eNB->preamble_list_br[ind].instance_length = 0; //don't know exactly what this is + eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type = 1+ce_level; // CE Level + LOG_I(PHY,"Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + ind, + ce_level, + prach_mask, + eNB->preamble_list_br[ind].preamble_rel8.timing_advance, + eNB->preamble_list_br[ind].preamble_rel8.preamble, + eNB->preamble_list_br[ind].preamble_rel8.rnti, + eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type); + } + /* ind++; } - } // ce_level + } */// ce_level + } } else #endif { - if (max_preamble_energy[0] > 580) { + if (max_preamble_energy[0] > 10000) { LOG_D(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", eNB->Mod_id, @@ -2002,10 +2024,15 @@ void prach_procedures(PHY_VARS_eNB *eNB, eNB->preamble_list[0].preamble_rel8.rnti = 1+subframe; // note: fid is implicitly 0 here eNB->preamble_list[0].preamble_rel13.rach_resource_type = 0; eNB->preamble_list[0].instance_length = 0; //don't know exactly what this is - + + LOG_I(PHY,"Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + eNB->preamble_list[0].preamble_rel8.timing_advance, + eNB->preamble_list[0].preamble_rel8.preamble, + eNB->preamble_list[0].preamble_rel8.rnti, + eNB->preamble_list[0].preamble_rel13.rach_resource_type); pthread_mutex_unlock(&eNB->UL_INFO_mutex); } - } // max_preamble_energy > 580 + } // max_preamble_energy > 350 } // else br_flag /* mac_xface->initiate_ra_proc(eNB->Mod_id, @@ -2494,7 +2521,6 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const LOG_D(PHY,"[eNB %d] Frame %d: Doing phy_procedures_eNB_uespec_RX(%d)\n",eNB->Mod_id,frame, subframe); #endif - eNB->rb_mask_ul[0]=0; eNB->rb_mask_ul[1]=0; eNB->rb_mask_ul[2]=0; diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 2084a6046b..50b5531598 100755 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -556,6 +556,7 @@ int rrc_mac_config_req_eNB(module_id_t Mod_idP, (int)radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx); RC.mac[Mod_idP]->common_channels[CC_idP].radioResourceConfigCommon = radioResourceConfigCommon; + RC.mac[Mod_idP]->common_channels[CC_idP].radioResourceConfigCommon_BR = radioResourceConfigCommon_BR; if (ul_CarrierFreq>0) RC.mac[Mod_idP]->common_channels[CC_idP].ul_CarrierFreq = ul_CarrierFreq; if (ul_Bandwidth) RC.mac[Mod_idP]->common_channels[CC_idP].ul_Bandwidth = *ul_Bandwidth; else RC.mac[Mod_idP]->common_channels[CC_idP].ul_Bandwidth = RC.mac[Mod_idP]->common_channels[CC_idP].mib->message.dl_Bandwidth; diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index 7e6e2b67c9..c3f405ad99 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -180,7 +180,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, sub_frame #endif - // LOG_I(MAC,"[eNB %d] Frame %d, Subframe %d, entering MAC scheduler (UE_list->head %d)\n",module_idP, frameP, subframeP,UE_list->head); + LOG_D(MAC,"[eNB %d] Frame %d, Subframe %d, entering MAC scheduler (UE_list->head %d)\n",module_idP, frameP, subframeP,UE_list->head); start_meas(&RC.mac[module_idP]->eNB_scheduler); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_ENB_DLSCH_ULSCH_SCHEDULER,VCD_FUNCTION_IN); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 3488f7c20b..c588540c27 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -90,7 +90,7 @@ void check_and_add_msg3(module_id_t module_idP,frame_t frameP, sub_frame_t subfr if (RA_template->Msg3_subframe<4) msg3_prog_frame=(RA_template->Msg3_frame+1023)&1023; else msg3_prog_frame=RA_template->Msg3_frame; - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d CC_id %d RA %d is active, Msg3 in (%d,%d), programmed in (%d,%d)\n", + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active, Msg3 in (%d,%d), programmed in (%d,%d)\n", module_idP,frameP,subframeP,CC_id,i,RA_template->Msg3_frame,RA_template->Msg3_subframe, msg3_prog_frame,msg3_prog_subframe); @@ -171,6 +171,11 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; PRACH_ParametersCE_r13_t *p[4]={NULL,NULL,NULL,NULL}; + uint16_t absSF = (10*frameP)+subframeP; + uint16_t absSF_Msg2 = (10*RA_template->Msg2_frame)+RA_template->Msg2_subframe; + + if (absSF>absSF_Msg2) return; // we're not ready yet, need to be to start == + if (cc[CC_idP].radioResourceConfigCommon_BR) { ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; @@ -185,8 +190,10 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t p[1]=prach_ParametersListCE_r13->list.array[1]; case 1: p[0]=prach_ParametersListCE_r13->list.array[0]; + break; default: - AssertFatal(1==0,"Illegal count for prach_ParametersListCE_r13 %d\n",prach_ParametersListCE_r13->list.count); + AssertFatal(1==0,"Illegal count for prach_ParametersListCE_r13 %d\n",(int)prach_ParametersListCE_r13->list.count); + break; } } @@ -201,9 +208,10 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t // distributed transmission // rmax from SIB2 information - rmax = p[RA_template->rach_resource_type-1]->mpdcch_NumRepetition_RA_r13; - // choose r3 by default for RAR (Table 9.1.5-5) - rep = 2; + AssertFatal(rmax<9,"rmax>8!\n"); + rmax = 1<rach_resource_type-1]->mpdcch_NumRepetition_RA_r13; + // choose r1 by default for RAR (Table 9.1.5-5) + rep = 0; // get actual repetition count from Table 9.1.5-3 reps = (rmax<=8)?(1<>(3-rep)); // get narrowband according to higher-layer config @@ -212,9 +220,10 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t first_rb = narrowband_to_first_rb(&cc[CC_idP],RA_template->msg2_narrowband); if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2,-1)>0)){ + (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2,-1)>0)){ // MPDCCH configuration for RAR - + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming MPDCCH %d repetitions\n", + module_idP,frameP,subframeP,reps); memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); @@ -265,10 +274,13 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; RA_template->msg2_mpdcch_repetition_cnt++; dl_req->number_pdu++; - + RA_template->Msg2_subframe = (RA_template->Msg2_subframe+9)%10; + } //repetition_count==0 && SF condition met - else if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - RA_template->msg2_mpdcch_repetition_cnt++; + if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", + module_idP,frameP,subframeP,RA_template->msg2_mpdcch_repetition_cnt); + if (RA_template->msg2_mpdcch_repetition_cnt==reps) { // this is the last mpdcch repetition if (cc[CC_idP].tdd_Config==NULL) { // FDD case // wait 2 subframes for PDSCH transmission @@ -279,9 +291,13 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t else { AssertFatal(1==0,"TDD case not done yet\n"); } - } // mpdcch_repetition_count == reps + }// mpdcch_repetition_count == reps + RA_template->msg2_mpdcch_repetition_cnt++; + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { // Program PDSCH + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH %d\n", + module_idP,frameP,subframeP); RA_template->generate_rar = 0; dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; @@ -341,8 +357,9 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t else #endif { + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - LOG_D(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generating RAR DCI, RA_active %d format 1A (%d,%d))\n", + LOG_I(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generating RAR DCI, RA_active %d format 1A (%d,%d))\n", module_idP, CC_idP, frameP, subframeP, RA_template->RA_active, @@ -409,7 +426,8 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t // Program UL processing for Msg3 get_Msg3alloc(&cc[CC_idP],subframeP,frameP,&RA_template->Msg3_frame,&RA_template->Msg3_subframe); - + LOG_I(MAC,"Frame %d, Subframe %d: Setting Msg3 reception for Frame %d Subframe %d\n", + frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe); fill_rar(module_idP,CC_idP,frameP,cc[CC_idP].RAR_pdu.payload,N_RB_DL,7); // DL request @@ -1024,7 +1042,7 @@ void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP) start_meas(&eNB->schedule_ra); - + for (CC_id=0; CC_idRA_active == TRUE) { - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)\n", - module_idP,CC_id,i,RA_template->generate_rar,RA_template->generate_Msg4,RA_template->wait_ack_Msg4, RA_template->rnti); + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)\n", + module_idP,frameP,subframeP,CC_id,i,RA_template->generate_rar,RA_template->generate_Msg4,RA_template->wait_ack_Msg4, RA_template->rnti); if (RA_template->generate_rar == 1) generate_Msg2(module_idP,CC_id,frameP,subframeP,RA_template); else if (RA_template->generate_Msg4 == 1) generate_Msg4(module_idP,CC_id,frameP,subframeP,RA_template); @@ -1068,13 +1086,26 @@ void initiate_ra_proc(module_id_t module_idP, { uint8_t i; - RA_TEMPLATE *RA_template = (RA_TEMPLATE *)&RC.mac[module_idP]->common_channels[CC_id].RA_template[0]; - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Initiating RA procedure for preamble index %d\n",module_idP,CC_id,frameP,preamble_index); + COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_id]; + RA_TEMPLATE *RA_template = &cc->RA_template[0]; + + struct PRACH_ConfigSIB_v1310 *ext4_prach=cc->radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13= &ext4_prach->prach_ParametersListCE_r13; + + LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d\n",module_idP,CC_id,frameP,subframeP,preamble_index); #ifdef Rel14 - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d PRACH resource type %d\n",module_idP,CC_id,frameP,rach_resource_type); + LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n",module_idP,CC_id,frameP,subframeP,rach_resource_type); #endif + if (prach_ParametersListCE_r13->list.countlist.count); + return; + } + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC,1); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC,0); @@ -1093,6 +1124,8 @@ void initiate_ra_proc(module_id_t module_idP, RA_template[i].msg2_mpdcch_repetition_cnt = 0; RA_template[i].msg4_mpdcch_repetition_cnt = 0; #endif + RA_template[i].Msg2_frame = frameP+((subframeP>5)?1:0); + RA_template[i].Msg2_subframe = (subframeP+4)%10; /* TODO: find better procedure to allocate RNTI */ do { RA_template[i].rnti = taus(); @@ -1107,8 +1140,11 @@ void initiate_ra_proc(module_id_t module_idP, if (loop == 100) { printf("%s:%d:%s: FATAL ERROR! contact the authors\n", __FILE__, __LINE__, __FUNCTION__); abort(); } RA_template[i].RA_rnti = ra_rnti; RA_template[i].preamble_index = preamble_index; - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Activating RAR generation for process %d, rnti %x, RA_active %d\n", - module_idP,CC_id,frameP,i,RA_template[i].rnti, + LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Activating RAR generation in Frame %d, subframe %d for process %d, rnti %x, RA_active %d\n", + module_idP,CC_id,frameP, + RA_template[i].Msg2_frame, + RA_template[i].Msg2_subframe, + i,RA_template[i].rnti, RA_template[i].RA_active); return; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 4b4949c949..45cb7082f9 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -490,10 +490,9 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t struct PRACH_ConfigSIB_v1310 *ext4_prach = eNB->common_channels[CC_id].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; - EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11= &eNB->UE_list.UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; - int T; + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11; switch (mpdcch_type) { case TYPE0: @@ -508,6 +507,7 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t case TYPE2: // RAR AssertFatal(ext4_prach->mpdcch_startSF_CSS_RA_r13!=NULL, "mpdcch_startSF_CSS_RA_r13 is null\n"); + AssertFatal(rmax>0,"rmax is 0!\b"); if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD T = rmax*startSF_fdd_RA_times2[ext4_prach->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13]>>1; else //TDD @@ -517,19 +517,23 @@ int mpdcch_sf_condition(eNB_MAC_INST *eNB,int CC_id, frame_t frameP,sub_frame_t AssertFatal(1==0,"MPDCCH Type 2A not handled yet\n"); break; case TYPEUESPEC: - AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); - AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); - - if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD - T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; - else //TDD - T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; - + epdcch_setconfig_r11= &eNB->UE_list.UE_template[CC_id][UE_id].physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0] ; + + + AssertFatal(epdcch_setconfig_r11 != NULL," epdcch_setconfig_r11 is null for UE specific \n"); + AssertFatal(epdcch_setconfig_r11->ext2 != NULL," ext2 doesn't exist in epdcch config ' \n"); + + if (eNB->common_channels[CC_id].tdd_Config==NULL) //FDD + T = rmax*startSF_fdd_RA_times2[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13]>>1; + else //TDD + T = rmax*startSF_tdd_RA[epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.tdd_r13]; + break; default: return(0); } + AssertFatal(T>0,"T is 0!\n"); if (((10*frameP) + subframeP)%T == 0) return(1); else return(0); diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c index 70104e8331..03ce7d4a0b 100755 --- a/openair2/PHY_INTERFACE/IF_Module.c +++ b/openair2/PHY_INTERFACE/IF_Module.c @@ -40,6 +40,7 @@ void handle_rach(UL_IND_t *UL_info) { "Got regular PRACH preamble, not BL/CE\n"); LOG_D(MAC,"Frame %d, Subframe %d Calling initiate_ra_proc (CE_level %d)\n",UL_info->frame,UL_info->subframe, UL_info->rach_ind_br.preamble_list[i].preamble_rel13.rach_resource_type-1); + UL_info->rach_ind_br.number_of_preambles=0; initiate_ra_proc(UL_info->module_id, UL_info->CC_id, UL_info->frame, diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 6ba66784e4..133bcc9caa 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -179,7 +179,7 @@ eNBs = ( { prach_config_index_br = 3; - prach_freq_offset_br = 1; + prach_freq_offset_br = 2; prach_StartingSubframe_r13 = 0; maxNumPreambleAttemptCE_r13 = 6; numRepetitionPerPreambleAttempt_r13 = 0; @@ -235,7 +235,7 @@ eNBs = prach_config_index = 3; prach_high_speed = "DISABLE"; prach_zero_correlation = 1; - prach_freq_offset = 1; + prach_freq_offset = 2; pucch_delta_shift = 1; pucch_nRB_CQI = 0; pucch_nCS_AN = 0; From 94c433d6a071b9bd44d8f44b94f29f76d3a7a784 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Thu, 17 Aug 2017 18:36:40 +0200 Subject: [PATCH 051/125] integration of RAR and Msg3 programming for eMTC --- openair1/SCHED/phy_procedures_lte_eNb.c | 96 ++++++++++++-- openair2/LAYER2/MAC/defs.h | 6 + openair2/LAYER2/MAC/eNB_scheduler_RA.c | 161 ++++++++++++++++-------- openair2/LAYER2/MAC/rar_tools.c | 10 +- 4 files changed, 206 insertions(+), 67 deletions(-) diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 0d2d4e8d50..f387dd5efb 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1018,7 +1018,15 @@ handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfapi_ul_config_request_pdu_t *ul_config_pdu) { nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8; + + uint16_t *RIV2nb_rb_LUT, *RIV2first_rb_LUT; + uint16_t RIV_max; + uint16_t use_srs=0; + int8_t UE_id; + LTE_eNB_ULSCH_t *ulsch; + LTE_UL_eNB_HARQ_t *ulsch_harq; + // check if we have received a dci for this ue and ulsch descriptor is configured if (ul_config_pdu == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) { @@ -1026,6 +1034,80 @@ handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, "No existing UE ULSCH for rnti %x\n",rel8->rnti); AssertFatal(eNB->ulsch[UE_id]->harq_mask > 0, "ulsch for UE_id %d is not active\n",UE_id); + LOG_I(PHY,"Applying UL config for UE %d, rnti %x\n", + UE_id,rel8->rnti); + /* +#ifdef Rel14 + nfapi_ul_config_ulsch_pdu_rel13_t *rel13 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13; + int harq_pid = rel8->harq_process_number; + + if (rel13->ue_type > 0) { // This is a BL/CE UE, retrieve PUSCH programming + ulsch = eNB->ulsch[UE_id]; + + ulsch_harq = ulsch->harq_processes[harq_pid]; + + switch (eNB->frame_parms.N_RB_DL) { + case 6: + RIV2nb_rb_LUT = &RIV2nb_rb_LUT6[0]; + RIV2first_rb_LUT = &RIV2first_rb_LUT6[0]; + RIV_max = RIV_max6; + break; + + case 25: + RIV2nb_rb_LUT = &RIV2nb_rb_LUT25[0]; + RIV2first_rb_LUT = &RIV2first_rb_LUT25[0]; + RIV_max = RIV_max25; + break; + + case 50: + RIV2nb_rb_LUT = &RIV2nb_rb_LUT50[0]; + RIV2first_rb_LUT = &RIV2first_rb_LUT50[0]; + RIV_max = RIV_max50; + break; + + case 100: + RIV2nb_rb_LUT = &RIV2nb_rb_LUT100[0]; + RIV2first_rb_LUT = &RIV2first_rb_LUT100[0]; + RIV_max = RIV_max100; + break; + + default: + DevParam(frame_parms->N_RB_DL, harq_pid, 0); + break; + } + + + ulsch_harq->first_rb = rel8->resource_block_start; + ulsch_harq->nb_rb = rel8->number_of_resource_blocks; + ulsch_harq->O_RI = 0;//1; + ulsch_harq->Or2 = 0; + ulsch_harq->Or1 = 0; + ulsch_harq->O_ACK = 0;//2; + ulsch->beta_offset_cqi_times8 = 18; + ulsch->beta_offset_ri_times8 = 10; + ulsch->beta_offset_harqack_times8 = 16; + + ulsch->rnti = rel8->rnti; + ulsch->harq_mask = 1<round == 0) { + ulsch_harq->status = ACTIVE; + ulsch_harq->rvidx = 0; + //ulsch_harq->TBS = dlsch_tbs25[ulsch_harq->mcs][ulsch_harq->nb_rb-1]; + ulsch_harq->TBS = TBStable[get_I_TBS_UL(ulsch_harq->mcs)][ulsch_harq->nb_rb-1]; + ulsch_harq->Msc_initial = 12*ulsch_harq->nb_rb; + ulsch_harq->Nsymb_initial = 9; + ulsch_harq->round = 0; + } else { + ulsch_harq->rvidx = 0; + ulsch_harq->round++; + } + use_srs = is_srs_occasion_common(frame_parms,ulsch_harq->frame,ulsch_harq->subframe); + ulsch_harq->Nsymb_pusch = 12-(frame_parms->Ncp<<1)-(use_srs==0?0:1); + ulsch_harq->srs_active = use_srs; + } + #endif +*/ } else if (ul_config_pdu == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE) { AssertFatal((UE_id = find_uci(rel8->rnti,proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST))>=0, @@ -1033,19 +1115,19 @@ handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, handle_uci_harq_pdu(eNB,proc,ul_config_pdu); } else if (ul_config_pdu == NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE) { - + } else if (ul_config_pdu == NFAPI_UL_CONFIG_UCI_CQI_HARQ_PDU_TYPE) { - + } else if (ul_config_pdu == NFAPI_UL_CONFIG_UCI_CQI_SR_PDU_TYPE) { - + } else if (ul_config_pdu == NFAPI_UL_CONFIG_UCI_SR_PDU_TYPE) { - + } else if (ul_config_pdu == NFAPI_UL_CONFIG_UCI_SR_HARQ_PDU_TYPE) { - + } } @@ -1151,7 +1233,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) { dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks-1, TX_req->tx_request_body.tx_pdu_list[dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data); if (dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti == eNB->preamble_list[0].preamble_rel8.rnti) {// is RAR pdu - + LOG_I(PHY,"Frame %d, Subframe %d: Received LTE RAR pdu, programming based on UL Grant\n"); generate_eNB_ulsch_params_from_rar(eNB, TX_req->tx_request_body.tx_pdu_list[dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index].segments[0].segment_data, frame, @@ -1197,7 +1279,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) { for (i=0;iul_config_request_body.ul_config_pdu_list[i]; - LOG_D(PHY,"NFAPI: ul_pdu %d : type %d\n",i,ul_config_pdu->pdu_type); + LOG_I(PHY,"NFAPI: ul_pdu %d : type %d\n",i,ul_config_pdu->pdu_type); AssertFatal(ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE || ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE, "Optional UL_PDU type %d not supported\n",ul_config_pdu->pdu_type); diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index ba1ead0b02..1499ba3753 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -861,6 +861,12 @@ typedef struct { int16_t timing_offset; /// Timeout for RRC connection int16_t RRC_timer; + /// Msg3 first RB + uint8_t msg3_first_rb; + /// Msg3 number of RB + uint8_t msg3_nb_rb; + /// Msg3 MCS + uint8_t msg3_mcs; /// Round of Msg3 HARQ uint8_t msg3_round; /// TBS used for Msg4 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index c588540c27..457a41c517 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -85,62 +85,113 @@ void check_and_add_msg3(module_id_t module_idP,frame_t frameP, sub_frame_t subfr if (RA_template->RA_active == TRUE) { - // program reception 4 subframes prior to transmission - msg3_prog_subframe = (RA_template->Msg3_subframe + 6)%10; - - if (RA_template->Msg3_subframe<4) msg3_prog_frame=(RA_template->Msg3_frame+1023)&1023; - else msg3_prog_frame=RA_template->Msg3_frame; - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active, Msg3 in (%d,%d), programmed in (%d,%d)\n", - module_idP,frameP,subframeP,CC_id,i,RA_template->Msg3_frame,RA_template->Msg3_subframe, - msg3_prog_frame,msg3_prog_subframe); - - if ((msg3_prog_frame==frameP) && - (msg3_prog_subframe==subframeP)) { - LOG_I(MAC,"Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d)\n", - frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe); - eNB->UL_req[CC_id].sfn_sf = (RA_template->Msg3_frame<<4) + RA_template->Msg3_subframe; - if (RA_template->msg3_round == 0) { // program ULSCH - ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; - - memset((void*)ul_config_pdu,0,sizeof(nfapi_ul_config_request_pdu_t)); - ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; - ul_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_ul_config_ulsch_pdu)); - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL(10,ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks); - ul_req->number_of_pdus++; - } - else { // program HI - hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; - memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); - hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_HI_PDU_TYPE; - hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_hi_pdu); - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.resource_block_start = 1; // note this is hard-coded like in fill_rar - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.cyclic_shift_2_for_drms = 0; - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.hi_value = 0; - hi_dci0_req->number_of_hi++; - - LOG_I(MAC,"[eNB %d][PUSCH-RA %x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) RA %d (mcs %d, first rb %d, nb_rb %d,round %d)\n", - module_idP,RA_template[i].rnti,CC_id,frameP,subframeP,i,10, - 1,1, - RA_template[i].msg3_round-1); - } +#ifdef Rel14 + if (RA_template->rach_resource_type>0) { + // program reception 4 subframes prior to transmission + msg3_prog_subframe = (RA_template->Msg3_subframe + 6)%10; + + if (RA_template->Msg3_subframe<4) msg3_prog_frame=(RA_template->Msg3_frame+1023)&1023; + else msg3_prog_frame=RA_template->Msg3_frame; + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d CE level %d is active, Msg3 in (%d,%d), programmed in (%d,%d)\n", + module_idP,frameP,subframeP,CC_id,i,RA_template->rach_resource_type-1, + RA_template->Msg3_frame,RA_template->Msg3_subframe, + msg3_prog_frame,msg3_prog_subframe); + if ((msg3_prog_frame==frameP) && + (msg3_prog_subframe==subframeP)) { + LOG_I(MAC,"Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d)\n", + frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe); + eNB->UL_req[CC_id].sfn_sf = (RA_template->Msg3_frame<<4) + RA_template->Msg3_subframe; + if (RA_template->msg3_round == 0) { // program ULSCH + ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + + memset((void*)ul_config_pdu,0,sizeof(nfapi_ul_config_request_pdu_t)); + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_ul_config_ulsch_pdu)); + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = narrowband_to_first_rb(cc,RA_template->msg34_narrowband)+RA_template->msg3_first_rb; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = RA_template->msg3_nb_rb; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = ((10*frameP)+subframeP)&7; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL(RA_template->msg3_mcs, + RA_template->msg3_nb_rb); + // Re13 fields + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.ue_type = RA_template->rach_resource_type>2 ? 2 : 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.total_number_of_repetitions = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.repetition_number = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.initial_transmission_sf_io = (RA_template->Msg3_frame*10)+RA_template->Msg3_subframe; + ul_req->number_of_pdus++; + } + } } - } - } - } + else +#endif + { + // program reception 4 subframes prior to transmission + msg3_prog_subframe = (RA_template->Msg3_subframe + 6)%10; + + if (RA_template->Msg3_subframe<4) msg3_prog_frame=(RA_template->Msg3_frame+1023)&1023; + else msg3_prog_frame=RA_template->Msg3_frame; + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active, Msg3 in (%d,%d), programmed in (%d,%d)\n", + module_idP,frameP,subframeP,CC_id,i,RA_template->Msg3_frame,RA_template->Msg3_subframe, + msg3_prog_frame,msg3_prog_subframe); + + if ((msg3_prog_frame==frameP) && + (msg3_prog_subframe==subframeP)) { + LOG_I(MAC,"Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d)\n", + frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe); + eNB->UL_req[CC_id].sfn_sf = (RA_template->Msg3_frame<<4) + RA_template->Msg3_subframe; + if (RA_template->msg3_round == 0) { // program ULSCH + ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + + memset((void*)ul_config_pdu,0,sizeof(nfapi_ul_config_request_pdu_t)); + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_ul_config_ulsch_pdu)); + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL(10,ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks); + ul_req->number_of_pdus++; + } + } + else { // program HI + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; + memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_HI_PDU_TYPE; + hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_hi_pdu); + hi_dci0_pdu->hi_pdu.hi_pdu_rel8.resource_block_start = 1; // note this is hard-coded like in fill_rar + hi_dci0_pdu->hi_pdu.hi_pdu_rel8.cyclic_shift_2_for_drms = 0; + hi_dci0_pdu->hi_pdu.hi_pdu_rel8.hi_value = 0; + hi_dci0_req->number_of_hi++; + + LOG_I(MAC,"[eNB %d][PUSCH-RA %x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) RA %d (mcs %d, first rb %d, nb_rb %d,round %d)\n", + module_idP,RA_template[i].rnti,CC_id,frameP,subframeP,i,10, + 1,1, + RA_template[i].msg3_round-1); + } // PHICH + } // non-BL/CE UE case + } // RA_active = TRUE + } // for RA_processes + } // for CCids } void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t subframeP,RA_TEMPLATE *RA_template) { diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index 008cadec08..94ede46821 100755 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -163,10 +163,10 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, int N_NB_index; - AssertFatal(1==0,"RAR for BL/CE Still to be finished ...\n"); - // Copy the Msg2 narrowband RA_template->msg34_narrowband = RA_template->msg2_narrowband; + RA_template->msg3_first_rb = ce_level; + RA_template->msg3_nb_rb = 2; if (ce_level<2) { //CE Level 0,1, CEmodeA input_buffer_length =6; @@ -183,7 +183,7 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, ULdelay = 0; cqireq = 0; mpdcch_nb_index = 0; - rballoc = mac_computeRIV(6,1+ce_level,1); // one PRB only for UL Grant in position 1+ce_level within Narrowband + rballoc = mac_computeRIV(6,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); // one PRB only for UL Grant in position 1+ce_level within Narrowband unsigned int buffer = 0; buffer |= N_NB_index << (16 + (4 - N_NB_index)); buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index))); @@ -204,8 +204,8 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, rar[3] = (uint8_t)(RA_template->rnti>>8); rar[4] = (uint8_t)(RA_template->rnti&0xff); } - LOG_D(MAC,"[RAPROC] Frame %d Generating RAR BR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for ce_level %d, CRNTI %x,preamble %d/%d,TIMING OFFSET %d\n", - frameP, + LOG_I(MAC,"[RAPROC] Frame %d Subframe %d : Generating RAR BR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for ce_level %d, CRNTI %x,preamble %d/%d,TIMING OFFSET %d\n", + frameP,subframeP, *(uint8_t*)rarh,rar[0],rar[1],rar[2],rar[3],rar[4],rar[5], ce_level, RA_template->rnti, From d45b6c1f20bda661ebaa7b1873b7c94bd185ec16 Mon Sep 17 00:00:00 2001 From: kogo Date: Mon, 21 Aug 2017 13:34:20 +0200 Subject: [PATCH 052/125] rearranged conf file - added pdsch_configcommon_v1310 & pusch_configcommon_v1310 --- openair2/COMMON/rrc_messages_types.h | 8 + openair2/ENB_APP/enb_config.c | 47 ++++- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 60 +++++- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 186 ++++++++++-------- 4 files changed, 213 insertions(+), 88 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 501bf4b91c..b5d3c45a58 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -284,6 +284,14 @@ typedef struct RrcConfigurationReq_s { long *sib2_mpdcch_pdsch_hoppingOffset_r13 [MAX_NUM_CCs]; + long *pdsch_maxNumRepetitionCEmodeA_r13 [MAX_NUM_CCs]; + long *pdsch_maxNumRepetitionCEmodeB_r13 [MAX_NUM_CCs]; + + long *pusch_maxNumRepetitionCEmodeA_r13 [MAX_NUM_CCs]; + long *pusch_maxNumRepetitionCEmodeB_r13 [MAX_NUM_CCs]; + long *pusch_HoppingOffset_v1310 [MAX_NUM_CCs]; + + #endif } RrcConfigurationReq; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index cd01541f6d..bcbf6d9058 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -184,8 +184,6 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "sib2_mpdcch_pdsch_hoppingOffset_r13" - - #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" #define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" #define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB" @@ -234,6 +232,15 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_UETIMERS_N311 "ue_TimersAndConstants_n311" #define ENB_CONFIG_STRING_UE_TRANSMISSION_MODE "ue_TransmissionMode" +#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" +#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" + +#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13 "pdsch_maxNumRepetitionCEmodeB_r13" +#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13 "pusch_maxNumRepetitionCEmodeB_r13" +#define ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310 "pusch_HoppingOffset_v1310" + + + #define ENB_CONFIG_STRING_SRB1 "srb1_parameters" #define ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT "timer_poll_retransmit" #define ENB_CONFIG_STRING_SRB1_TIMER_REORDERING "timer_reordering" @@ -1184,6 +1191,12 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + libconfig_int pdsch_maxNumRepetitionCEmodeA_r13 = 0; + libconfig_int pdsch_maxNumRepetitionCEmodeB_r13 = 0; + + libconfig_int pusch_maxNumRepetitionCEmodeA_r13 = 0; + libconfig_int pusch_maxNumRepetitionCEmodeB_r13 = 0; + libconfig_int pusch_HoppingOffset_v1310 = 0; @@ -2727,6 +2740,36 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pdsch_maxNumRepetitionCEmodeA_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = pdsch_maxNumRepetitionCEmodeA_r13; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pdsch_maxNumRepetitionCEmodeB_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = pdsch_maxNumRepetitionCEmodeB_r13; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pusch_maxNumRepetitionCEmodeA_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = pusch_maxNumRepetitionCEmodeA_r13; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pusch_maxNumRepetitionCEmodeB_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = pusch_maxNumRepetitionCEmodeB_r13; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310, &pusch_HoppingOffset_v1310)) + { + RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j] = pusch_HoppingOffset_v1310; + } + rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); int num_rsrp_list = config_setting_length(rsrp_range_list); RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e8d0e8d90b..3c49003318 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1338,17 +1338,61 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; } - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = calloc(1,sizeof(PDSCH_ConfigCommon_v1310_t)); - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = 0; - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + // pdsch_ConfigCommon_v1310 + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = CALLOC(1,sizeof(PDSCH_ConfigCommon_v1310_t)); + + if (configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = *configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]; + printf("[DEBUGGING][KOGO] : pdsch CE MODE A : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13); + } else { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + } + + if (configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); // check if they're really long + *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = *configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]; + printf("[DEBUGGING][KOGO] : pdsch CE MODE B : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13); + } else { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + } + + // *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = 0; + // (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + + // pusch_ConfigCommon_v1310 (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = calloc(1,sizeof(PUSCH_ConfigCommon_v1310_t)); - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = 0; - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; + + if (configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = *configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]; + printf("[DEBUGGING][KOGO] : pusch CE MODE A : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13); + } else { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = NULL; + } + + if (configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = *configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]; + printf("[DEBUGGING][KOGO] : pusch CE MODE B : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13); + } else { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; + } + + if (configuration->pusch_HoppingOffset_v1310[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = *configuration->pusch_HoppingOffset_v1310[CC_id]; + printf("[DEBUGGING][KOGO] : pusch hopping offset : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310); + } else { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; + } + + // *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = 0; + // (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; + // (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; + if (rrconfig->prach_ConfigCommon_v1310) { diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 133bcc9caa..d05b6c6c7f 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -24,7 +24,7 @@ eNBs = ////////// Physical parameters: component_carriers = ( - { + { node_function = "3GPP_eNodeB"; node_timing = "synch_to_ext_device"; node_synch_ref = 0; @@ -51,7 +51,7 @@ eNBs = prach_freq_offset = 1; pucch_delta_shift = 1; pucch_nRB_CQI = 1; - pucch_nCS_AN = 0; + pucch_nCS_AN = 0; pucch_n1_AN = 32; pdsch_referenceSignalPower = -27; pdsch_p_b = 0; @@ -110,17 +110,26 @@ eNBs = br_parameters : { - fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern40-r13"; - fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0xFFFFFFFFFF; + #hyperSFN_r13 = 0; + #eDRX_Allowed_r13 = 0; + #q_QualMinRSRQ_CE_r13 = ; #SIB1 schedulingInfoSIB1_BR_r13 = 4; - #hyperSFN_r13 = 0; - #eDRX_Allowed_r13 = 0; + + #system_info_value_tag_SI = + #( + # { + # systemInfoValueTagSi_r13 = 0; + # } + #); + cellSelectionInfoCE_r13 = "ENABLE"; q_RxLevMinCE_r13 = -70; - #q_QualMinRSRQ_CE_r13 = ; bandwidthReducedAccessRelatedInfo_r13 = "ENABLE" + si_WindowLength_BR_r13 = 0; + si_RepetitionPattern_r13 = 0; + scheduling_info_br = ( { @@ -128,17 +137,13 @@ eNBs = si_TBS_r13 = 5; } ); - si_WindowLength_BR_r13 = 0; - si_RepetitionPattern_r13 = 0; + + fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern40-r13"; + fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0xFFFFFFFFFF; startSymbolBR_r13 = 3; si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF ! si_ValidityTime_r13 = 0; - #system_info_value_tag_SI = - #( - # { - # systemInfoValueTagSi_r13 = 0; - # } - #); + freqHoppingParametersDL_r13 = "DISABLE" mpdcch_pdsch_HoppingNB_r13 = 0; interval_DLHoppingConfigCommonModeA_r13 = "interval-FDD-r13" @@ -151,8 +156,16 @@ eNBs = # SIB23 frame_type = "FDD"; preambleTransMax_CE_r13 = 6; - - # max 4 + + rach_numberOfRA_Preambles = 60; + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + # max size for this array is 4 rach_CE_LevelInfoList_r13 = ( { @@ -164,17 +177,74 @@ eNBs = } ); + # BCCH CONFIG + bcch_modificationPeriodCoeff = 2; + + #PCCH Config + pcch_default_PagingCycle = 128; + pcch_nB = "oneT"; + + #PRACH Config + prach_root = 89; + prach_config_index = 3; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 2; + + #PDSCH Config Common + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + + + # PUSCH Config Common + pusch_n_SB = 1; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_enable64QAM = "DISABLE"; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + + # PUCCH Config Common + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + msg3_delta_Preamble = 6; + + prach_ConfigCommon_v1310 = "ENABLE"; - # max 3 + pdsch_maxNumRepetitionCEmodeA_r13 = 0; + #pdsch_maxNumRepetitionCEmodeB_r13 = 2; # NULL + + pusch_maxNumRepetitionCEmodeA_r13 = 0; + #pusch_maxNumRepetitionCEmodeB_r13 = 4; #NULL + #pusch_HoppingOffset_v1310 = 5; #NULL + + # max size for this array is 3 rsrp_range_list = ( { rsrp_range_br = 0; } ); - - # max 4 + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13"; + mpdcch_startSF_CSS_RA_r13_val = 0; + prach_HoppingOffset_r13 = 0; + + # max size for this array is 4 prach_parameters_ce_r13 = ( { @@ -196,15 +266,24 @@ eNBs = } ); + + ue_TimersAndConstants_t300 = 1000; + ue_TimersAndConstants_t301 = 400; + ue_TimersAndConstants_t310 = 50; + ue_TimersAndConstants_t311 = 30000; + ue_TimersAndConstants_n310 = 1; + ue_TimersAndConstants_n311 = 10; + ue_TransmissionMode = 1; + pcch_config_v1310 : { - paging_narrowbands_r13 = 1; - mpdcch_numrepetition_paging_r13 = 0; + paging_narrowbands_r13 = 1; + mpdcch_numrepetition_paging_r13 = 0; #nb_v1310 = 2; } - pucch_NumRepetitionCE_Msg4_Level0_r13 = 0; + pucch_NumRepetitionCE_Msg4_Level0_r13 = 0; #pucch_NumRepetitionCE_Msg4_Level1_r13 = 1; #pucch_NumRepetitionCE_Msg4_Level2_r13 = 2; #pucch_NumRepetitionCE_Msg4_Level3_r13 = 3; @@ -222,65 +301,16 @@ eNBs = # sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) # sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; -# sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; +# sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; } - - - mpdcch_startSF_CSS_RA_r13 = "fdd-r13" - mpdcch_startSF_CSS_RA_r13_val = 0; - prach_HoppingOffset_r13 = 0; - - prach_root = 89; - prach_config_index = 3; - prach_high_speed = "DISABLE"; - prach_zero_correlation = 1; - prach_freq_offset = 2; - pucch_delta_shift = 1; - pucch_nRB_CQI = 0; - pucch_nCS_AN = 0; - pucch_n1_AN = 32; - pdsch_referenceSignalPower = -27; - pdsch_p_b = 0; - pusch_n_SB = 1; - pusch_enable64QAM = "DISABLE"; - pusch_hoppingMode = "interSubFrame"; - pusch_hoppingOffset = 0; - pusch_groupHoppingEnabled = "ENABLE"; - pusch_groupAssignment = 0; - pusch_sequenceHoppingEnabled = "DISABLE"; + rach_preamblesGroupAConfig = "DISABLE"; + pusch_nDMRS1 = 0; phich_duration = "NORMAL"; phich_resource = "ONESIXTH"; srs_enable = "DISABLE"; - pusch_p0_Nominal = -96; - pusch_alpha = "AL1"; - pucch_p0_Nominal = -104; - msg3_delta_Preamble = 6; - pucch_deltaF_Format1 = "deltaF2"; - pucch_deltaF_Format1b = "deltaF3"; - pucch_deltaF_Format2 = "deltaF0"; - pucch_deltaF_Format2a = "deltaF0"; - pucch_deltaF_Format2b = "deltaF0"; - rach_numberOfRA_Preambles = 60; - rach_preamblesGroupAConfig = "DISABLE"; - rach_powerRampingStep = 4; - rach_preambleInitialReceivedTargetPower = -108; - rach_preambleTransMax = 10; - rach_raResponseWindowSize = 10; - rach_macContentionResolutionTimer = 48; - rach_maxHARQ_Msg3Tx = 4; - pcch_default_PagingCycle = 128; - pcch_nB = "oneT"; - bcch_modificationPeriodCoeff = 2; - ue_TimersAndConstants_t300 = 1000; - ue_TimersAndConstants_t301 = 400; - ue_TimersAndConstants_t310 = 50; - ue_TimersAndConstants_t311 = 30000; - ue_TimersAndConstants_n310 = 1; - ue_TimersAndConstants_n311 = 10; - ue_TransmissionMode = 1; - + } @@ -334,9 +364,9 @@ eNBs = NETWORK_INTERFACES : { - ENB_INTERFACE_NAME_FOR_S1_MME = "eth0:S1-C-eNB"; + ENB_INTERFACE_NAME_FOR_S1_MME = "enp0s31f6:S1-C"; ENB_IPV4_ADDRESS_FOR_S1_MME = "172.17.0.21/24"; - ENB_INTERFACE_NAME_FOR_S1U = "eth0:S1-U-eNB"; + ENB_INTERFACE_NAME_FOR_S1U = "enp0s31f6:S1-U"; ENB_IPV4_ADDRESS_FOR_S1U = "172.16.0.21/24"; ENB_PORT_FOR_S1U = 2152; # Spec 2152 }; From a86f8cdb791acd017fc3a3e11a6562021b769892 Mon Sep 17 00:00:00 2001 From: "islam.galal" Date: Mon, 21 Aug 2017 14:11:09 +0200 Subject: [PATCH 053/125] Update RRCConectionSetup_BR --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 59 ++++++++++----------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e8d0e8d90b..2fd0fdfde2 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2278,7 +2278,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->pdsch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pdsch_ConfigDedicated)); physicalConfigDedicated2->pucch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pucch_ConfigDedicated)); - physicalConfigDedicated2->pusch_ConfigDedicated = NULL; + physicalConfigDedicated2->pusch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pusch_ConfigDedicated));; physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH = NULL; physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH = NULL; @@ -2294,9 +2294,7 @@ do_RRCConnectionSetup_BR( #ifdef CBA physicalConfigDedicated2->pusch_CBAConfigDedicated_vlola = CALLOC(1,sizeof(*physicalConfigDedicated2->pusch_CBAConfigDedicated_vlola)); #endif - // PDSCH - //assign_enum(&physicalConfigDedicated2->pdsch_ConfigDedicated->p_a, - // PDSCH_ConfigDedicated__p_a_dB0); + if (carrier->p_eNB==2) physicalConfigDedicated2->pdsch_ConfigDedicated->p_a = PDSCH_ConfigDedicated__p_a_dB_3; else @@ -2306,6 +2304,14 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->pucch_ConfigDedicated->ackNackRepetition.present=PUCCH_ConfigDedicated__ackNackRepetition_PR_release; physicalConfigDedicated2->pucch_ConfigDedicated->ackNackRepetition.choice.release=0; + // PUSCH + physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_ACK_Index = 10; + physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_RI_Index = 9; + physicalConfigDedicated2->pusch_ConfigDedicated->betaOffset_CQI_Index = 10; + + // + + if (carrier->sib1->tdd_Config == NULL) { physicalConfigDedicated2->pucch_ConfigDedicated->tdd_AckNackFeedbackMode=NULL;//PUCCH_ConfigDedicated__tdd_AckNackFeedbackMode_multiplexing; } else { //TDD @@ -2331,30 +2337,14 @@ do_RRCConnectionSetup_BR( // TPC-PDCCH-Config // CQI ReportConfig - - /// TODO to be reviewed physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic)); -#if defined(Rel10) || defined(Rel14) - *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportModeAperiodic_rm30; -#else - *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic=CQI_ReportConfig__cqi_ReportModeAperiodic_rm30; // HLC CQI, no PMI -#endif + *physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportModeAperiodic_rm20; physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB - //physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic=NULL; - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; - /* - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_setup; - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex = 0; // n2_pucch - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_pmi_ConfigIndex = 0; // Icqi/pmi - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_FormatIndicatorPeriodic.present = CQI_ReportPeriodic__setup__cqi_FormatIndicatorPeriodic_PR_subbandCQI; // subband CQI - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_FormatIndicatorPeriodic.choice.subbandCQI.k=4; - - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.ri_ConfigIndex=NULL; - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.simultaneousAckNackAndCQI=0; - */ + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.release = NULL; + /// TODO to be reviewed if (rrc->srs_enable[CC_id]) { physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->present = SoundingRS_UL_ConfigDedicated_PR_setup; @@ -2402,8 +2392,6 @@ do_RRCConnectionSetup_BR( //AntennaInfoDedicated physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); physicalConfigDedicated2->antennaInfo->present = PhysicalConfigDedicated__antennaInfo_PR_explicitValue; - //assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode, - // AntennaInfoDedicated__transmissionMode_tm2); switch (transmission_mode) { default: @@ -2454,7 +2442,7 @@ do_RRCConnectionSetup_BR( // SchedulingRequestConfig physicalConfigDedicated2->schedulingRequestConfig->present = SchedulingRequestConfig_PR_setup; - physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 3;//ue_context_pP->local_uid; + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 18;//ue_context_pP->local_uid; if (carrier->sib1->tdd_Config == NULL) { // FDD physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 5+(ue_context_pP->local_uid%10); // Isr = 5 (every 10 subframes, offset=2+UE_id mod3) @@ -2482,10 +2470,7 @@ do_RRCConnectionSetup_BR( } - // assign_enum(&physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax, - //SchedulingRequestConfig__setup__dsr_TransMax_n4); - // assign_enum(&physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; - physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n16; physicalConfigDedicated2->ext4 = calloc(1, sizeof(struct PhysicalConfigDedicated__ext4) ); physicalConfigDedicated2->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; @@ -2504,15 +2489,15 @@ do_RRCConnectionSetup_BR( // memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(1, sizeof(EPDCCH_SetConfig_r11_t)); epdcch_setconfig_r11->setConfigId_r11 = 0; - epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; + epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_distributed; epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(1, 5 * sizeof(uint8_t)); + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 5; + epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 2; + memset(epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf, 0, 5 * sizeof(uint8_t)); - epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; + epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 54; epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; @@ -2525,7 +2510,7 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 2; ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); // FIXME allocate physicalConfigDedicated2->ext7 From aec3cad8cf693224ef7f09751164b524ed74492c Mon Sep 17 00:00:00 2001 From: kogo Date: Mon, 21 Aug 2017 17:55:37 +0200 Subject: [PATCH 054/125] rearranged enb_config.c --- openair2/ENB_APP/enb_config.c | 569 ++++++++++++++++------------------ 1 file changed, 274 insertions(+), 295 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index bcbf6d9058..99e1383f45 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -1198,7 +1198,34 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int pusch_maxNumRepetitionCEmodeB_r13 = 0; libconfig_int pusch_HoppingOffset_v1310 = 0; + libconfig_int hyperSFN_r13 = 0; + libconfig_int eDRX_Allowed_r13 = 0; + libconfig_int q_RxLevMinCE_r13 = 0; + libconfig_int q_QualMinRSRQ_CE_r13 = 0; + libconfig_int si_WindowLength_BR_r13 = 0; + libconfig_int si_RepetitionPattern_r13 = 0; + libconfig_int startSymbolBR_r13 = 0; + libconfig_int si_HoppingConfigCommon_r13 = 0; + libconfig_int si_ValidityTime_r13 = 0; + libconfig_int mpdcch_pdsch_HoppingNB_r13 = 0; + libconfig_int interval_DLHoppingConfigCommonModeA_r13_val = 0; + libconfig_int interval_DLHoppingConfigCommonModeB_r13_val = 0; + libconfig_int mpdcch_pdsch_HoppingOffset_r13 = 0; + libconfig_int preambleTransMax_CE_r13 = 0; + libconfig_int mpdcch_startSF_CSS_RA_r13_val = 0; + libconfig_int prach_HoppingOffset_r13 = 0; + libconfig_int schedulingInfoSIB1_BR_r13 = 0; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13 = NULL; libconfig_int srb1_timer_poll_retransmit = 0; @@ -2035,7 +2062,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (rach_numberOfRA_Preambles / 4) - 1; if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) AssertFatal(0, @@ -2619,156 +2646,265 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { #ifdef Rel14 setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); - if (setting_br13 == NULL) { - puts("setting BR is NULL"); - } else { - puts("setting BR is NOT NULL"); - } + if (setting_br13 != NULL) { int cnt = 0; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) + + + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) { + AssertFatal(0, "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", RC.config_file_name, i); + } else { + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; + } + + system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); + int num_system_info; + if (system_info_value_tag_SI_list != NULL) { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = pucch_NumRepetitionCE_Msg4_Level0_r13; - ++cnt; + num_system_info = config_setting_length(system_info_value_tag_SI_list); + for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) + { + system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); + if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) + { + AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; + } } else { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = NULL;; + num_system_info = 0; } - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) + RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = pucch_NumRepetitionCE_Msg4_Level1_r13; - ++cnt; + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; + } else + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = NULL;; - } + printf("Enabling BR access SI scheduling parameters\n"); + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, &pucch_NumRepetitionCE_Msg4_Level2_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = pucch_NumRepetitionCE_Msg4_Level2_r13; - ++cnt; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = NULL; - } + } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, &pucch_NumRepetitionCE_Msg4_Level3_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = pucch_NumRepetitionCE_Msg4_Level3_r13; - ++cnt; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = NULL;; - } - - scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); - int num_scheduling_info = config_setting_length(scheduling_info_br_list); - RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; + scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); + int num_scheduling_info = config_setting_length(scheduling_info_br_list); + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; - for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) - { - scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); - if (!( - config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) - && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) - ) - ){ - AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; - RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; - } + for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) + { + scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); + if (!( + config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) + && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) + ) + ){ + AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; + } - system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); - int num_system_info; - if (system_info_value_tag_SI_list != NULL) - { - num_system_info = config_setting_length(system_info_value_tag_SI_list); - for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) - { - system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); - if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) - { - AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; - } - } - else - { - num_system_info = 0; - } - RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; + bool fdd_downlink_exist = config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13); + if (fdd_downlink_exist) + { + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + + config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13); + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = NULL; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + } + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; - rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); - int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); - RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; - int rach_info_level_idx; - for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) - { - rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); - if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) - ) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", - RC.config_file_name, nb_cc++); - } + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; - RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13; - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13; - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; - } + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pdsch_maxNumRepetitionCEmodeA_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = pdsch_maxNumRepetitionCEmodeA_r13; - } + } + else + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pdsch_maxNumRepetitionCEmodeB_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = pdsch_maxNumRepetitionCEmodeB_r13; - } + // SIB23 parameters --------------------------------------------------------------------------------------------------------------------------- - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pusch_maxNumRepetitionCEmodeA_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = pusch_maxNumRepetitionCEmodeA_r13; - } + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; + } + + + rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); + int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; + int rach_info_level_idx; + for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) + { + rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); + if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13; + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13; + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13; + + } + + + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = pucch_NumRepetitionCE_Msg4_Level0_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = NULL;; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = pucch_NumRepetitionCE_Msg4_Level1_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = NULL;; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, &pucch_NumRepetitionCE_Msg4_Level2_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = pucch_NumRepetitionCE_Msg4_Level2_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = NULL; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, &pucch_NumRepetitionCE_Msg4_Level3_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = pucch_NumRepetitionCE_Msg4_Level3_r13; + ++cnt; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = NULL;; + } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pusch_maxNumRepetitionCEmodeB_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = pusch_maxNumRepetitionCEmodeB_r13; - } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310, &pusch_HoppingOffset_v1310)) - { - RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j] = pusch_HoppingOffset_v1310; - } rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); int num_rsrp_list = config_setting_length(rsrp_range_list); @@ -2807,7 +2943,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } printf("[DEBUGGING][KOGO] : prach hopping config = %d\n", prach_HoppingConfig_r13); - + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; @@ -2870,7 +3006,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } setting_freq_hoppingParameters_r13 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13); - if (setting_freq_hoppingParameters_r13 != NULL) + if (setting_freq_hoppingParameters_r13 != NULL) { RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, &sib2_mpdcch_pdsch_hoppingNB_r13)) @@ -2881,9 +3017,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } else { - RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = NULL; + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = NULL; } - + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_DLHoppingConfigCommonModeA_r13)) { @@ -2891,7 +3027,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = sib2_interval_DLHoppingConfigCommonModeA_r13; config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeA_r13_val); RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeA_r13_val; - + } else { @@ -2906,7 +3042,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = sib2_interval_DLHoppingConfigCommonModeB_r13; config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeB_r13_val); RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeB_r13_val; - + } else { @@ -2914,7 +3050,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) { @@ -2922,7 +3058,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = sib2_interval_ULHoppingConfigCommonModeA_r13; config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; - + } else { @@ -2930,7 +3066,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_ULHoppingConfigCommonModeB_r13)) { @@ -2938,7 +3074,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = sib2_interval_ULHoppingConfigCommonModeB_r13; config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeB_r13_val); RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeB_r13_val; - + } else { @@ -2958,7 +3094,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { { RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = NULL; } - + } else @@ -3947,34 +4083,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } - int hyperSFN_r13; - int eDRX_Allowed_r13; - int q_RxLevMinCE_r13; - int q_QualMinRSRQ_CE_r13; - int si_WindowLength_BR_r13; - int si_RepetitionPattern_r13; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - int startSymbolBR_r13; - int si_HoppingConfigCommon_r13; - int si_ValidityTime_r13; - int mpdcch_pdsch_HoppingNB_r13; - int interval_DLHoppingConfigCommonModeA_r13_val; - int interval_DLHoppingConfigCommonModeB_r13_val; - int mpdcch_pdsch_HoppingOffset_r13; - int preambleTransMax_CE_r13; - int mpdcch_startSF_CSS_RA_r13_val; - int prach_HoppingOffset_r13; - int schedulingInfoSIB1_BR_r13; - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13; - setting_pcch_config_v1310 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); if (setting_pcch_config_v1310 != NULL) { @@ -3994,7 +4102,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = nb_v1310; - printf("[DEBUGGING][KOGO] : nb_v1310 = %d\n", nb_v1310); } else { @@ -4008,13 +4115,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = FALSE; } - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", - RC.config_file_name, i); - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j]= schedulingInfoSIB1_BR_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) { RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); @@ -4025,69 +4125,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) { - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; } else - RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j]= FALSE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) - { - printf("Enabling BR access SI scheduling parameters\n"); - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - - bool fdd_downlink_exist = config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13); - if (fdd_downlink_exist) - { - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - else - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - - config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13); - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = NULL; - } + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; bool fdd_uplink_exist = config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13); @@ -4106,78 +4148,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; } else RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; - - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; - - - - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; /////SIB2 Parameters - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) { From e0be431a2cdbbe7617dd37d70a29651f8183f440 Mon Sep 17 00:00:00 2001 From: Ahmed Elias Date: Tue, 22 Aug 2017 08:58:15 -0700 Subject: [PATCH 055/125] minor update in asn file --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 46c2f9ecd4..00eea15b41 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2215,7 +2215,7 @@ do_RRCConnectionReconfigurationComplete( return((enc_rval.encoded+7)/8); } -//#ifdef Rel14 +#ifdef Rel14 uint8_t do_RRCConnectionSetup_BR( const protocol_ctxt_t* const ctxt_pP, @@ -2647,7 +2647,7 @@ do_RRCConnectionSetup_BR( return((enc_rval.encoded+7)/8); } -//#endif +#endif //------------------------------------------------------------------------------ From c8f960c977193d19c48e1553bdc7035295227c5f Mon Sep 17 00:00:00 2001 From: khalidhamdy Date: Wed, 23 Aug 2017 13:25:43 +0200 Subject: [PATCH 056/125] edit scheduler for emtc UE --- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 21 +++++++++++++-------- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 11 +++++++---- targets/RT/USER/lte-enb.c | 5 +++++ 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index d3f732b8fc..475dcd1a6e 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -536,6 +536,18 @@ schedule_ue_spec_br( if (mbsfn_flag[CC_id] > 0) continue; + + unsigned int rmax; + unsigned int narrowBandindex_index; + unsigned int first_rb, rep, reps; + + // rmax from RRC connection setup + getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index); + + first_rb = narrowband_to_first_rb(cc,narrowBandindex_index); + + if (vrb_map[first_rb] == 1) // skip scheduling emtc UEs if first RB is taken + continue ; for (UE_id = UE_list->head; UE_id >= 0; UE_id = UE_list->next[UE_id]) { @@ -549,14 +561,7 @@ schedule_ue_spec_br( // at the end of the scheduler make sure the right subbands coresponding to these RBs are allocated the UE in UE_template directely // also check on the fill_DCI function - unsigned int rmax; - unsigned int narrowBandindex_index; - unsigned int first_rb, rep, reps; - - // rmax from RRC connection setup - getRepetition(&UE_list->UE_template[CC_id][UE_id], &rmax, &narrowBandindex_index); - - first_rb = narrowband_to_first_rb(cc,narrowBandindex_index); + vrb_map[first_rb] = 1; vrb_map[first_rb + 1] = 1; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 1aadc0b1bf..6dcc459d1b 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -999,6 +999,9 @@ abort(); rb_table_index--; } + //********************************* [khalid] here will make the modification for emtc + + TBS = get_TBS_UL(mcs,rb_table[rb_table_index]); UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_rx+=rb_table[rb_table_index]; UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_TBS=TBS; @@ -1016,10 +1019,10 @@ abort(); // bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB) // increment for next UE allocation - first_rb[CC_id]+=rb_table[rb_table_index]; + first_rb[CC_id]+=rb_table[rb_table_index]; // khalid just shifting the first rb for next ue to schedule //store for possible retransmission UE_template->nb_rb_ul[harq_pid] = rb_table[rb_table_index]; - UE_template->first_rb_ul[harq_pid] = first_rb[CC_id]; + UE_template->first_rb_ul[harq_pid] = first_rb[CC_id]; // khalid? should store the firsy UE_sched_ctrl->ul_scheduled |= (1<head) @@ -1039,7 +1042,7 @@ abort(); hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_DCI_PDU_TYPE; - hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu); + hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_dci_pdu); // khalid these items in nFapi in hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dci_format = NFAPI_UL_DCI_FORMAT_0; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.aggregation_level = aggregation; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.rnti = rnti; @@ -1052,7 +1055,7 @@ abort(); hi_dci0_pdu->dci_pdu.dci_pdu_rel8.new_data_indication_1 = ndi; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.tpc = tpc; hi_dci0_pdu->dci_pdu.dci_pdu_rel8.cqi_csi_request = cqi_req; - hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframe]; + hi_dci0_pdu->dci_pdu.dci_pdu_rel8.dl_assignment_index = UE_template->DAI_ul[sched_subframe]; // khalid valid for TDD only if (!CCE_allocation_infeasible(module_idP,CC_id,2,subframeP, aggregation, diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c index 386026690c..0d015ab335 100755 --- a/targets/RT/USER/lte-enb.c +++ b/targets/RT/USER/lte-enb.c @@ -162,9 +162,14 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam wakeup_prach_eNB_br(eNB,NULL,proc->frame_rx,proc->subframe_rx); #endif } + + // khalid begin chain of every thread + // UE-specific RX processing for subframe n phy_procedures_eNB_uespec_RX(eNB, proc, no_relay ); + /* khalid : detection of MSG3 is simple but seems there is another entity that fill the buffers to this phy_rx chain */ + pthread_mutex_lock(&eNB->UL_INFO_mutex); eNB->UL_INFO.frame = proc->frame_rx; eNB->UL_INFO.subframe = proc->subframe_rx; From 1b429a63dab145eea762a42dab2dcc80d25cdddb Mon Sep 17 00:00:00 2001 From: kogo Date: Wed, 30 Aug 2017 16:59:58 +0200 Subject: [PATCH 057/125] refactored config file, SIB1 & SIB2 are sent/received successfully --- openair2/COMMON/rrc_messages_types.h | 7 +- openair2/ENB_APP/enb_config.c | 2840 +++++++++++------ openair2/RRC/LITE/MESSAGES/asn1_msg.c | 104 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 110 +- 4 files changed, 1902 insertions(+), 1159 deletions(-) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index b5d3c45a58..77a701d11b 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -205,9 +205,9 @@ typedef struct RrcConfigurationReq_s { long si_WindowLength_BR_r13 [MAX_NUM_CCs]; long si_RepetitionPattern_r13 [MAX_NUM_CCs]; - BOOLEAN_t * fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs]; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 [MAX_NUM_CCs]; - uint16_t *fdd_UplinkSubframeBitmapBR_r13 [MAX_NUM_CCs]; + BOOLEAN_t * fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs]; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 [MAX_NUM_CCs]; + uint16_t *fdd_UplinkSubframeBitmapBR_r13 [MAX_NUM_CCs]; long startSymbolBR_r13 [MAX_NUM_CCs]; long si_HoppingConfigCommon_r13 [MAX_NUM_CCs]; long* si_ValidityTime_r13 [MAX_NUM_CCs]; @@ -234,6 +234,7 @@ typedef struct RrcConfigurationReq_s { int rach_CE_LevelInfoList_r13_size [MAX_NUM_CCs]; // end kogo +// long pcch_defaultPagingCycle_br; // +kogo -- rsrp_range_list long rsrp_range [MAX_NUM_CCs][3]; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 99e1383f45..a6e430ee95 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -211,6 +211,7 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A "pucch_deltaF_Format2a" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B "pucch_deltaF_Format2b" #define ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES "rach_numberOfRA_Preambles" +#define ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES_BR "rach_numberOfRA_Preambles_br" #define ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG "rach_preamblesGroupAConfig" #define ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA "rach_sizeOfRA_PreamblesGroupA" #define ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA "rach_messageSizeGroupA" @@ -233,9 +234,9 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_UE_TRANSMISSION_MODE "ue_TransmissionMode" #define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" -#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" - #define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13 "pdsch_maxNumRepetitionCEmodeB_r13" + +#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" #define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13 "pusch_maxNumRepetitionCEmodeB_r13" #define ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310 "pusch_HoppingOffset_v1310" @@ -1127,7 +1128,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { const char* pucch_deltaF_Format2 = NULL; const char* pucch_deltaF_Format2a = NULL; const char* pucch_deltaF_Format2b = NULL; - libconfig_int rach_numberOfRA_Preambles = 0; + const char* rach_numberOfRA_Preambles = NULL; const char* rach_preamblesGroupAConfig = NULL; libconfig_int rach_sizeOfRA_PreamblesGroupA = 0; libconfig_int rach_messageSizeGroupA = 0; @@ -1138,16 +1139,18 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int rach_raResponseWindowSize = 0; libconfig_int rach_macContentionResolutionTimer = 0; libconfig_int rach_maxHARQ_Msg3Tx = 0; - libconfig_int pcch_defaultPagingCycle = 0; + const char* pcch_defaultPagingCycle = 0; + const char* pcch_nB = NULL; libconfig_int bcch_modificationPeriodCoeff = 0; - libconfig_int ue_TimersAndConstants_t300 = 0; - libconfig_int ue_TimersAndConstants_t301 = 0; - libconfig_int ue_TimersAndConstants_t310 = 0; - libconfig_int ue_TimersAndConstants_t311 = 0; - libconfig_int ue_TimersAndConstants_n310 = 0; - libconfig_int ue_TimersAndConstants_n311 = 0; - libconfig_int ue_TransmissionMode = 0; + + const char* ue_TimersAndConstants_t300 = NULL; + const char* ue_TimersAndConstants_t301 = NULL; + const char* ue_TimersAndConstants_t310 = NULL; + const char* ue_TimersAndConstants_t311 = NULL; + const char* ue_TimersAndConstants_n310 = NULL; + const char* ue_TimersAndConstants_n311 = NULL; + const char* ue_TransmissionMode = NULL; libconfig_int si_Narrowband_r13 = 0; libconfig_int si_TBS_r13 = 0; @@ -1156,63 +1159,65 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int firstPreamble_r13 = 0; libconfig_int lastPreamble_r13 = 0; - libconfig_int ra_ResponseWindowSize_r13 = 0; - libconfig_int mac_ContentionResolutionTimer_r13 = 0; - libconfig_int rar_HoppingConfig_r13 = 0; + const char* ra_ResponseWindowSize_r13 = NULL; + const char* mac_ContentionResolutionTimer_r13 = NULL; + const char* rar_HoppingConfig_r13 = NULL; libconfig_int rsrp_range_br = 0; libconfig_int prach_config_index_br = 0; libconfig_int prach_freq_offset_br = 0; libconfig_int prach_StartingSubframe_r13 = 0; - libconfig_int maxNumPreambleAttemptCE_r13 = 0; - libconfig_int numRepetitionPerPreambleAttempt_r13 = 0; - libconfig_int mpdcch_NumRepetition_RA_r13 = 0; - libconfig_int prach_HoppingConfig_r13 = 0; + const char* maxNumPreambleAttemptCE_r13 = NULL; + const char* numRepetitionPerPreambleAttempt_r13 = NULL; + const char* mpdcch_NumRepetition_RA_r13 = NULL; + const char* prach_HoppingConfig_r13 = NULL; libconfig_int maxavailablenarrowband = 0; libconfig_int pucch_info_value = 0; libconfig_int paging_narrowbands_r13 = 0; - libconfig_int mpdcch_numrepetition_paging_r13 = 0; - libconfig_int nb_v1310 = 0; + const char* mpdcch_numrepetition_paging_r13 = NULL; + const char* nb_v1310 = NULL; - libconfig_int pucch_NumRepetitionCE_Msg4_Level0_r13 = 0; - libconfig_int pucch_NumRepetitionCE_Msg4_Level1_r13 = 0; - libconfig_int pucch_NumRepetitionCE_Msg4_Level2_r13 = 0; - libconfig_int pucch_NumRepetitionCE_Msg4_Level3_r13 = 0; + const char* pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; - libconfig_int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; - libconfig_int sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; - libconfig_int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; - libconfig_int sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; - libconfig_int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; - libconfig_int sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; - libconfig_int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; - libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; - libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; - libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + const char* sib2_mpdcch_pdsch_hoppingNB_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeA_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeA_r13_val = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeB_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeB_r13_val = NULL; - libconfig_int pdsch_maxNumRepetitionCEmodeA_r13 = 0; - libconfig_int pdsch_maxNumRepetitionCEmodeB_r13 = 0; + const char* sib2_interval_ULHoppingConfigCommonModeA_r13 = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeA_r13_val = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeB_r13 = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeB_r13_val = NULL; + libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; - libconfig_int pusch_maxNumRepetitionCEmodeA_r13 = 0; - libconfig_int pusch_maxNumRepetitionCEmodeB_r13 = 0; + const char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + const char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + + const char* pusch_maxNumRepetitionCEmodeA_r13 = 0; + const char* pusch_maxNumRepetitionCEmodeB_r13 = 0; libconfig_int pusch_HoppingOffset_v1310 = 0; libconfig_int hyperSFN_r13 = 0; libconfig_int eDRX_Allowed_r13 = 0; libconfig_int q_RxLevMinCE_r13 = 0; libconfig_int q_QualMinRSRQ_CE_r13 = 0; - libconfig_int si_WindowLength_BR_r13 = 0; - libconfig_int si_RepetitionPattern_r13 = 0; + const char* si_WindowLength_BR_r13 = NULL; + const char* si_RepetitionPattern_r13 = NULL; libconfig_int startSymbolBR_r13 = 0; - libconfig_int si_HoppingConfigCommon_r13 = 0; - libconfig_int si_ValidityTime_r13 = 0; - libconfig_int mpdcch_pdsch_HoppingNB_r13 = 0; + const char* si_HoppingConfigCommon_r13 = NULL; + const char* si_ValidityTime_r13 = NULL; + const char* mpdcch_pdsch_HoppingNB_r13 = NULL; libconfig_int interval_DLHoppingConfigCommonModeA_r13_val = 0; libconfig_int interval_DLHoppingConfigCommonModeB_r13_val = 0; libconfig_int mpdcch_pdsch_HoppingOffset_r13 = 0; - libconfig_int preambleTransMax_CE_r13 = 0; - libconfig_int mpdcch_startSF_CSS_RA_r13_val = 0; + const char* preambleTransMax_CE_r13 = NULL; + const char* rach_numberOfRA_Preambles_br = NULL; + const char* mpdcch_startSF_CSS_RA_r13_val = NULL; libconfig_int prach_HoppingOffset_r13 = 0; libconfig_int schedulingInfoSIB1_BR_r13 = 0; uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; @@ -1474,7 +1479,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) @@ -1483,16 +1488,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) - && config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_string(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) #if defined(Rel10) || defined(Rel14) @@ -2060,14 +2065,67 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, pucch_deltaF_Format2b); +// 27 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n4 = 0, +// 28 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n8 = 1, +// 29 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n12 = 2, +// 30 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n16 = 3, +// 31 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n20 = 4, +// 32 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n24 = 5, +// 33 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n28 = 6, +// 34 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n32 = 7, +// 35 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n36 = 8, +// 36 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n40 = 9, +// 37 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n44 = 10, +// 38 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n48 = 11, +// 39 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n52 = 12, +// 40 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n56 = 13, +// 41 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n60 = 14, +// 42 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64 = 15 - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (rach_numberOfRA_Preambles / 4) - 1; + if (!strcmp(rach_numberOfRA_Preambles, "n4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (4 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (8 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (12 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (16 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (20 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (24 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (28 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (32 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (36 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (40 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (44 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (48 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (52 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (56 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (60 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (64 / 4) - 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + } + + printf("[DEBUGGIN][KOGO][TESTING]: number of RA Preambles: %s - %d\n", + rach_numberOfRA_Preambles, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles); + - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; @@ -2079,13 +2137,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA / 4) - 1; switch (rach_messageSizeGroupA) { case 56: @@ -2296,30 +2348,22 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, rach_preambleTransMax); - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: + if (!strcmp(pcch_defaultPagingCycle, "rf32")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; + } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; + } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); } + printf("[DEBUGGING][KOGO][CHAR*] : pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle); + if (strcmp(pcch_nB, "fourT") == 0) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; } @@ -2376,274 +2420,449 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; - break; - - default: + if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - } - switch (ue_TimersAndConstants_t301) { - case 100: + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t300 : %s - %d\n", ue_TimersAndConstants_t300, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300); + + if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; - break; - - case 200: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; - break; - - case 300: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; - - case 400: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; - - case 600: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; - - case 1000: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; - - case 1500: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; - - case 2000: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; - - default: + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - } - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t301 : %s - %d\n", ue_TimersAndConstants_t301, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301); - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; - - case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; - - default: + if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - } - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t310 : %s - %d\n", ue_TimersAndConstants_t310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310); - case 3000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; - case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; - - case 30000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; - - default: + if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - } - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t311 : %s - %d\n", ue_TimersAndConstants_t311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311); - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; - - default: + if (!strcmp(ue_TimersAndConstants_n310, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; + } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; + } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; + } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; + } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; + } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; + } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; + } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", + RC.config_file_name, i, ue_TimersAndConstants_n310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n310 : %s - %d\n", ue_TimersAndConstants_n310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310); + + + if (!strcmp(ue_TimersAndConstants_n311, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; + } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; + } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; + } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; + } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; + } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; + } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; + } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - } - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n311 : %s - %d\n", ue_TimersAndConstants_n311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311); - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; - - default: + if (!strcmp(ue_TransmissionMode, "tm1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; + } else if (!strcmp(ue_TransmissionMode, "tm2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; + } else if (!strcmp(ue_TransmissionMode, "tm3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; + } else if (!strcmp(ue_TransmissionMode, "tm4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; + } else if (!strcmp(ue_TransmissionMode, "tm5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; + } else if (!strcmp(ue_TransmissionMode, "tm6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; + } else if (!strcmp(ue_TransmissionMode, "tm7")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", RC.config_file_name, i, ue_TransmissionMode); - break; } + printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode); + + + + +// switch (ue_TimersAndConstants_t300) { +// case 100: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms100; +// break; + +// case 200: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms200; +// break; + +// case 300: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms300; +// break; + +// case 400: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms400; +// break; + +// case 600: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms600; +// break; + +// case 1000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; +// break; + +// case 1500: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms1500; +// break; + +// case 2000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= UE_TimersAndConstants__t300_ms2000; +// break; + +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", +// RC.config_file_name, i, ue_TimersAndConstants_t300); +// break; + +// } + + + +// switch (ue_TimersAndConstants_t301) { +// case 100: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; +// break; + +// case 200: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; +// break; + +// case 300: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; +// break; + +// case 400: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; +// break; + +// case 600: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; +// break; + +// case 1000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; +// break; + +// case 1500: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; +// break; + +// case 2000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; +// break; + +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", +// RC.config_file_name, i, ue_TimersAndConstants_t301); +// break; + +// } + + + +// switch (ue_TimersAndConstants_t310) { +// case 0: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; +// break; + +// case 50: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; +// break; + +// case 100: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; +// break; + +// case 200: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; +// break; + +// case 500: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; +// break; + +// case 1000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; +// break; + +// case 2000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; +// break; + +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", +// RC.config_file_name, i, ue_TimersAndConstants_t310); +// break; + +// } + + +// switch (ue_TimersAndConstants_t311) { +// case 1000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; +// break; + +// case 3000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; +// break; + +// case 5000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; +// break; + +// case 10000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; +// break; + +// case 15000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; +// break; + +// case 20000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; +// break; + +// case 30000: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; +// break; + +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", +// RC.config_file_name, i, ue_TimersAndConstants_t311); +// break; + +// } + + + +// switch (ue_TimersAndConstants_n310) { +// case 1: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; +// break; + +// case 2: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; +// break; + +// case 3: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; +// break; + +// case 4: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; +// break; + +// case 6: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; +// break; + +// case 8: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; +// break; + +// case 10: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; +// break; + +// case 20: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; +// break; + +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", +// RC.config_file_name, i, ue_TimersAndConstants_n311); +// break; + +// } + +// switch (ue_TimersAndConstants_n311) { +// case 1: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; +// break; + +// case 2: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; +// break; + +// case 3: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; +// break; + +// case 4: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; +// break; + +// case 5: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; +// break; + +// case 6: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; +// break; + +// case 8: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; +// break; + +// case 10: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; +// break; + +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", +// RC.config_file_name, i, ue_TimersAndConstants_t311); +// break; + +// } + +// switch (ue_TransmissionMode) { +// case 1: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; +// break; +// case 2: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; +// break; +// case 3: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; +// break; +// case 4: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; +// break; +// case 5: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; +// break; +// case 6: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; +// break; +// case 7: +// RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; +// break; +// default: +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", +// RC.config_file_name, i, ue_TransmissionMode); +// break; +// } + #ifdef Rel14 setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); @@ -2709,10 +2928,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { { printf("Enabling BR access SI scheduling parameters\n"); RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) { AssertFatal(0, "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", @@ -2720,6 +2939,51 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } + + + if (!strcmp(si_WindowLength_BR_r13, "ms20")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; + } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; + } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; + } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; + } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; + } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; + } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; + } else if (!strcmp(si_WindowLength_BR_r13, "spare")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; + } + + + if (!strcmp(si_RepetitionPattern_r13, "everyRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; + } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; + } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; + } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; + } + + + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (!strcmp(si_HoppingConfigCommon_r13, "off")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; + } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; + } + + + printf("DEBUGGING][KOGO][CHAR*]: window length: %s - %d\n", si_WindowLength_BR_r13, RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j]); + printf("DEBUGGING][KOGO][CHAR*]: repetition pattern: %s - %d\n", si_RepetitionPattern_r13, RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j]); + printf("DEBUGGING][KOGO][CHAR*]: hopping config common: %s - %d\n", si_HoppingConfigCommon_r13, RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j]); + scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); int num_scheduling_info = config_setting_length(scheduling_info_br_list); RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; @@ -2755,17 +3019,24 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = NULL; } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) { RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = si_ValidityTime_r13; - + if (!strcmp(si_ValidityTime_r13, "true")) { + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", + RC.config_file_name, i); + } + printf("DEBUGGING][KOGO][CHAR*]: si_ValidityTime_r13: %s - %d\n", si_ValidityTime_r13, *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j]); } else { RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; } + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; @@ -2779,6 +3050,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i); } + + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; else @@ -2794,14 +3067,22 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) { RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = mpdcch_pdsch_HoppingNB_r13; - + if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; + } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", + RC.config_file_name, i); + } } - else + else { RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + } if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) { @@ -2817,18 +3098,45 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; } - // SIB23 parameters --------------------------------------------------------------------------------------------------------------------------- + // SIB23 parameters --------------------------------------------------------------------------------------------------------------------------- - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = preambleTransMax_CE_r13; + if (!strcmp(preambleTransMax_CE_r13, "n3")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 0; + } else if (!strcmp(preambleTransMax_CE_r13, "n4")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 1; + } else if (!strcmp(preambleTransMax_CE_r13, "n5")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 2; + } else if (!strcmp(preambleTransMax_CE_r13, "n6")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 3; + } else if (!strcmp(preambleTransMax_CE_r13, "n7")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 4; + } else if (!strcmp(preambleTransMax_CE_r13, "n8")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 5; + } else if (!strcmp(preambleTransMax_CE_r13, "n10")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 6; + } else if (!strcmp(preambleTransMax_CE_r13, "n20")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 7; + } else if (!strcmp(preambleTransMax_CE_r13, "n50")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 8; + } else if (!strcmp(preambleTransMax_CE_r13, "n100")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 9; + } else if (!strcmp(preambleTransMax_CE_r13, "n200")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 10; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d preambleTransMax_CE_r13 unknown value!\n", + RC.config_file_name, i); + } } else { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; } + printf("DEBUGGING][KOGO][CHAR*]: preambleTransMax_CE_r13: %s - %d\n", preambleTransMax_CE_r13, *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13); rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); @@ -2839,9 +3147,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) + && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) + && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) + && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) ) { AssertFatal (0, @@ -2851,53 +3159,255 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13; - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13; - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13; + if (!strcmp(ra_ResponseWindowSize_r13, "sf20")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 0; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf50")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 1; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf80")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 2; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf120")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 3; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf180")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 4; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf240")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 5; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf320")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 6; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf400")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!\n", + RC.config_file_name); + } + + if (!strcmp(mac_ContentionResolutionTimer_r13, "sf80")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 0; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf100")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 1; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf120")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 2; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf160")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 3; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf200")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 4; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf240")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 5; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf480")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 6; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf960")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!\n", + RC.config_file_name); + } + + if (!strcmp(rar_HoppingConfig_r13, "on")) { + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = 0; + } else if (!strcmp(rar_HoppingConfig_r13, "off")) { + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!\n", + RC.config_file_name); + } + + } // for + + printf("DEBUGGING][KOGO][CHAR*]: ra_ResponseWindowSize_r13: %s - %d\n", preambleTransMax_CE_r13, RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][0]); + printf("DEBUGGING][KOGO][CHAR*]: mac_ContentionResolutionTimer_r13: %s - %d\n", mac_ContentionResolutionTimer_r13, RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][0]); + printf("DEBUGGING][KOGO][CHAR*]: rar_HoppingConfig_r13: %s - %d\n", rar_HoppingConfig_r13, RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][0]); + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pdsch_maxNumRepetitionCEmodeA_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pdsch_maxNumRepetitionCEmodeA_r13: %s - %d\n", pdsch_maxNumRepetitionCEmodeA_r13, *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j]); + } + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pdsch_maxNumRepetitionCEmodeB_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r192")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 0; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r256")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 1; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r384")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 2; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r512")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 3; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r768")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 4; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r1024")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 5; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r1536")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 6; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r2048")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeB_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pdsch_maxNumRepetitionCEmodeB_r13: %s - %d\n", pdsch_maxNumRepetitionCEmodeB_r13, *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j]); } + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pusch_maxNumRepetitionCEmodeA_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pusch_maxNumRepetitionCEmodeA_r13: %s - %d\n", pusch_maxNumRepetitionCEmodeA_r13, *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j]); + } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pusch_maxNumRepetitionCEmodeB_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r192")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 0; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r256")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 1; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r384")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 2; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r512")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 3; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r768")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 4; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r1024")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 5; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r1536")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 6; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r2048")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeB_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pusch_maxNumRepetitionCEmodeB_r13: %s - %d\n", pusch_maxNumRepetitionCEmodeB_r13, *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeB_r13[j]); + } + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310, &pusch_HoppingOffset_v1310)) { + RRC_CONFIGURATION_REQ(msg_p).pusch_HoppingOffset_v1310[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).pusch_HoppingOffset_v1310[j] = pusch_HoppingOffset_v1310; + printf("DEBUGGING][KOGO][CHAR*]: pusch_HoppingOffset_v1310 %d\n", *RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j]); + } + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = pucch_NumRepetitionCE_Msg4_Level0_r13; ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level0_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level0_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j]); } else { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = NULL;; } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = pucch_NumRepetitionCE_Msg4_Level1_r13; ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level1_r13 unknown value!\n", + RC.config_file_name); + + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level0_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level1_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j]); } else { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = NULL;; } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, &pucch_NumRepetitionCE_Msg4_Level2_r13)) + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, &pucch_NumRepetitionCE_Msg4_Level2_r13)) { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = pucch_NumRepetitionCE_Msg4_Level2_r13; ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n16")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n32")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level2_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level2_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level2_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j]); } else { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = NULL; } - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, &pucch_NumRepetitionCE_Msg4_Level3_r13)) + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, &pucch_NumRepetitionCE_Msg4_Level3_r13)) { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = pucch_NumRepetitionCE_Msg4_Level3_r13; ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n16")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n32")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level3_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level3_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level3_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j]); } else { @@ -2905,85 +3415,179 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } + rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); + int num_rsrp_list = config_setting_length(rsrp_range_list); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; + int rsrp_range_idx; + for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) + { + rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); + if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rsrp_range %d!\n", + RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; + printf("[DEBUGGING][KOGO] : rsrp range br = %d\n", rsrp_range_br); + } - rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); - int num_rsrp_list = config_setting_length(rsrp_range_list); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; - int rsrp_range_idx; - for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) - { - rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); - if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rsrp_range %d!\n", - RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; - printf("[DEBUGGING][KOGO] : rsrp range br = %d\n", rsrp_range_br); - } + prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); + int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; + int prach_parameters_index; + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index) + { + prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index); + if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br) + && config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13) + && config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13) + && config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } - prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); - int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); - RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; - int prach_parameters_index; - for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index) - { - prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index); - if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13) - && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) ) - ) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n", - RC.config_file_name, nb_cc++); - } + printf("[DEBUGGING][KOGO] : prach hopping config = %d\n", prach_HoppingConfig_r13); - printf("[DEBUGGING][KOGO] : prach hopping config = %d\n", prach_HoppingConfig_r13); + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = numRepetitionPerPreambleAttempt_r13; - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = mpdcch_NumRepetition_RA_r13; - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = prach_HoppingConfig_r13; - - if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; - } - - if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; - } + if (config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + if (!strcmp(maxNumPreambleAttemptCE_r13, "n3")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 0; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n5")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 2; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n6")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 3; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n7")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 4; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 5; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n10")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 6; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "spare1")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, maxNumPreambleAttemptCE_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + printf("[DEBUGGING][KOGO][CHAR*]: maxNumPreambleAttemptCE_r13: %s - %d\n", maxNumPreambleAttemptCE_r13, *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index]); + } + else + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; + } - max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); - int num_available_narrow_bands = config_setting_length(max_available_narrow_band_list); - RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prach_parameters_index] = num_available_narrow_bands; - int narrow_band_index; - for (narrow_band_index = 0; narrow_band_index < num_available_narrow_bands; narrow_band_index++) - { - max_available_narrow_band = config_setting_get_elem(max_available_narrow_band_list, narrow_band_index); - RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prach_parameters_index][narrow_band_index] = config_setting_get_int(max_available_narrow_band); - } - } + if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 0; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 2; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 3; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n16")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 4; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n32")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 5; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n64")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 6; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n128")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, numRepetitionPerPreambleAttempt_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + printf("[DEBUGGING][KOGO][CHAR*]: numRepetitionPerPreambleAttempt_r13: %s - %d\n", numRepetitionPerPreambleAttempt_r13, RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index]); + + + if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 0; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r4")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 2; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r8")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 3; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r16")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 4; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r32")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 5; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r64")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 6; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r128")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 7; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r256")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 8; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r512")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 9; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1024")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 10; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2048")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 11; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare4")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 12; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare3")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 13; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare2")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 14; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare1")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 15; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, mpdcch_NumRepetition_RA_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO][CHAR*]: mpdcch_NumRepetition_RA_r13: %s - %d\n", mpdcch_NumRepetition_RA_r13, RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index]); + + if (!strcmp(prach_HoppingConfig_r13, "off")) { + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(prach_HoppingConfig_r13, "on")) { + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = 0; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_HoppingConfig_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO][CHAR*]: prach_HoppingConfig_r13: %s - %d\n", prach_HoppingConfig_r13, RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index]); + + if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; + } + + + max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); + int num_available_narrow_bands = config_setting_length(max_available_narrow_band_list); + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prach_parameters_index] = num_available_narrow_bands; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_available_narrow_bands; narrow_band_index++) + { + max_available_narrow_band = config_setting_get_elem(max_available_narrow_band_list, narrow_band_index); + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prach_parameters_index][narrow_band_index] = config_setting_get_int(max_available_narrow_band); + } + + } n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); @@ -3005,28 +3609,75 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; } + puts("---------------------------------------------------------------------------------------------------"); + setting_freq_hoppingParameters_r13 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13); if (setting_freq_hoppingParameters_r13 != NULL) { RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; - if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, &sib2_mpdcch_pdsch_hoppingNB_r13)) + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, &sib2_mpdcch_pdsch_hoppingNB_r13)) { RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = sib2_mpdcch_pdsch_hoppingNB_r13; + if (!strcmp(sib2_mpdcch_pdsch_hoppingNB_r13, "nb2")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = 0; + } else if (!strcmp(sib2_mpdcch_pdsch_hoppingNB_r13, "nb4")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_mpdcch_pdsch_hoppingNB_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_mpdcch_pdsch_hoppingNB_r13: %s - %d\n", sib2_mpdcch_pdsch_hoppingNB_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); } else { RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = NULL; } - if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_DLHoppingConfigCommonModeA_r13)) + + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_DLHoppingConfigCommonModeA_r13)) { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = sib2_interval_DLHoppingConfigCommonModeA_r13; - config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeA_r13_val); - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeA_r13_val; + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeA_r13_val); + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = 0; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeA_r13: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeA_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j]); + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeA_r13_val: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeA_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j]); } else @@ -3035,14 +3686,48 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_DLHoppingConfigCommonModeB_r13)) + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_DLHoppingConfigCommonModeB_r13)) { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = sib2_interval_DLHoppingConfigCommonModeB_r13; - config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeB_r13_val); - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeB_r13_val; - + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeB_r13_val); + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = 0; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int16")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = 1; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int40")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeB_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeB_r13: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeB_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j]); + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeB_r13_val: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeB_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j]); } else { @@ -3051,35 +3736,104 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { - if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = sib2_interval_ULHoppingConfigCommonModeA_r13; - config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeA_r13: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeA_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j]); } else { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = NULL; } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeA_r13_val: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeA_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j]); - if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_ULHoppingConfigCommonModeB_r13)) + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_ULHoppingConfigCommonModeB_r13)) { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = sib2_interval_ULHoppingConfigCommonModeB_r13; - config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeB_r13_val); - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeB_r13_val; - + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeB_r13_val); + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = 0; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int16")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int40")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeB_r13: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeB_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j]); } else { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = NULL; } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeB_r13_val: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeB_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j]); @@ -3136,7 +3890,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) @@ -3144,963 +3898,926 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) )) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, Component Carrier %d!\n", - RC.config_file_name, nb_cc++); - continue; // FIXME this prevents segfaults below, not sure what happens after function exit - } + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; } else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; } else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; } else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; } else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; } else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; } else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; } else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; } else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; } else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; } else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { - if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) - )) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", - RC.config_file_name, i); + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); } RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; } else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; } else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; } else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; } else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; } else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; } else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; } else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; } else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; } else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; } else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; } else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; } else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; } else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; } else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; } else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; } else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; } else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; } else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1; + if (!strcmp(rach_numberOfRA_Preambles, "n4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (4 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (8 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (12 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (16 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (20 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (24 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (28 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (32 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (36 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (40 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (44 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (48 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (52 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (56 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (60 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (64 / 4) - 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + } - if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + printf("[DEBUGGING][KOGO][CHAR*] : rach_numberOfRA_Preambles_br = %d\n", RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles); + +// RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (rach_numberOfRA_Preambles_br/ 4) - 1; + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; - if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) - && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) - && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", - RC.config_file_name, i); + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); +// if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", +// RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - switch (rach_messageSizeGroupA) { + switch (rach_messageSizeGroupA) { case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); switch (rach_preambleTransMax) { - case 3: + case 3: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; break; - case 4: + case 4: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; break; - case 5: + case 5: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; break; - case 6: + case 6: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; break; - case 7: + case 7: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; break; - case 8: + case 8: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; break; - case 10: + case 10: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; break; - case 20: + case 20: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; break; - case 50: + case 50: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; break; - case 100: + case 100: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; break; - case 200: + case 200: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; break; - default: + default: AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); break; } RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + if (!strcmp(pcch_defaultPagingCycle, "rf32")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; + } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; + } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); } + printf("[DEBUGGING][KOGO][CHAR*] : pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle); + if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; } else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; } else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; } else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; } else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; } else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; } else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); switch (bcch_modificationPeriodCoeff) { - case 2: + case 2: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; break; - case 4: + case 4: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; break; - case 8: + case 8: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; break; - case 16: + case 16: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; break; - default: + default: AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); break; } - switch (ue_TimersAndConstants_t300) { - case 100: + if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; - break; - - case 200: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; - break; - - case 300: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; - break; - - case 400: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; - break; - - case 600: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; - break; - - case 1000: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: + } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; - break; - - default: + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - } - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms100; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t300 : %s - %d\n", ue_TimersAndConstants_t300, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300); - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301 = UE_TimersAndConstants__t301_ms200; - break; - - case 300: + if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - break; - - case 400: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - break; - - case 600: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - break; - - case 1000: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - break; - - case 1500: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - break; - - case 2000: + } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - break; - - default: + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - } - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms0; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t301 : %s - %d\n", ue_TimersAndConstants_t301, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301); - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms200; - break; - - case 500: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= UE_TimersAndConstants__t310_ms2000; - break; - - default: + if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - } + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t310 : %s - %d\n", ue_TimersAndConstants_t310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310); - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms1000; - break; - - case 3000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms20000; - break; - - case 30000: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= UE_TimersAndConstants__t311_ms30000; - break; - - default: + if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - } - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n1; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t311 : %s - %d\n", ue_TimersAndConstants_t311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311); - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= UE_TimersAndConstants__n310_n20; - break; - - default: + if (!strcmp(ue_TimersAndConstants_n310, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; + } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; + } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; + } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; + } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; + } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; + } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; + } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", + RC.config_file_name, i, ue_TimersAndConstants_n310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n310 : %s - %d\n", ue_TimersAndConstants_n310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310); + + + if (!strcmp(ue_TimersAndConstants_n311, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; + } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; + } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; + } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; + } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; + } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; + } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; + } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - } - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n1; - break; + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n311 : %s - %d\n", ue_TimersAndConstants_n311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311); - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= UE_TimersAndConstants__n311_n10; - break; - - default: + if (!strcmp(ue_TransmissionMode, "tm1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; + } else if (!strcmp(ue_TransmissionMode, "tm2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; + } else if (!strcmp(ue_TransmissionMode, "tm3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; + } else if (!strcmp(ue_TransmissionMode, "tm4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; + } else if (!strcmp(ue_TransmissionMode, "tm5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; + } else if (!strcmp(ue_TransmissionMode, "tm6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; + } else if (!strcmp(ue_TransmissionMode, "tm7")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; + } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", RC.config_file_name, i, ue_TransmissionMode); - break; } + printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode); + setting_pcch_config_v1310 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); if (setting_pcch_config_v1310 != NULL) { RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; if (!config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, &paging_narrowbands_r13) - || !config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &mpdcch_numrepetition_paging_r13) + || !config_setting_lookup_string(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &mpdcch_numrepetition_paging_r13) ) AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d pcch_config_v1310!\n", - RC.config_file_name, i); + "Failed to parse eNB configuration file %s, enb %d pcch_config_v1310!\n", + RC.config_file_name, i); RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13; - if (config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_NB_V1310, &nb_v1310)) + + if (!strcmp(mpdcch_numrepetition_paging_r13, "r1")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 0; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r2")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 1; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r4")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 2; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r8")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 3; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r16")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 4; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r32")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 5; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r64")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 6; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r128")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 7; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r256")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 8; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + RC.config_file_name); + } + + printf("[DEBUGGING][KOGO][CHAR*] mpdcch_numrepetition_paging_r13: %s - %d\n", mpdcch_numrepetition_paging_r13, RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j]); + + if (config_setting_lookup_string(setting_pcch_config_v1310, ENB_CONFIG_STRING_NB_V1310, &nb_v1310)) { - RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = nb_v1310; + RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); + if (!strcmp(nb_v1310, "one64thT")) { + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; + } else if (!strcmp(nb_v1310, "one128thT")) { + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; + } else if (!strcmp(nb_v1310, "one256thT")) { + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*] nb_v1310: %s - %d\n", nb_v1310, *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j]); } else @@ -4117,11 +4834,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) { - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); - *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; } else - RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) { @@ -4132,72 +4849,97 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; - bool fdd_uplink_exist = config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13); - if (fdd_uplink_exist) - { - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); - *RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; - } - else - { - RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = NULL;; - } - - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = si_WindowLength_BR_r13; - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = si_RepetitionPattern_r13; - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = si_HoppingConfigCommon_r13; - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - - + bool fdd_uplink_exist = config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13); + if (fdd_uplink_exist) + { + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + *RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = NULL;; } - else + } + + else RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; /////SIB2 Parameters - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) { - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", - RC.config_file_name, i); + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; - else - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = mpdcch_startSF_CSS_RA_r13_val; + } + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + } else { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + } + + if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 0; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 1; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 2; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 3; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 4; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 5; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 6; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "10")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 7; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n", + RC.config_file_name, i); + } + printf("[DEBUGGING][KOGO][CHAR*] mpdcch_startSF_CSS_RA_r13_val %s - %d\n", mpdcch_startSF_CSS_RA_r13_val, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val); + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; + } } else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; - + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; } else - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + { + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + } #endif diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 46c2f9ecd4..63c6852a24 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -561,8 +561,8 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); - LOG_I(RRC,"Allocating memory for BR access of SI (%p)\n", - sib1_1310->bandwidthReducedAccessRelatedInfo_r13); + LOG_I(RRC,"Allocating memory for BR access of SI (%p)\n", + sib1_1310->bandwidthReducedAccessRelatedInfo_r13); sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_WindowLength_BR_r13 = configuration->si_WindowLength_BR_r13[CC_id]; // 0 @@ -581,10 +581,10 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, for (index = 0; index < num_sched_info_br; ++index) { - schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; - schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; - LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",schedulinginfo_br_13->si_Narrowband_r13,schedulinginfo_br_13->si_TBS_r13); - ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); + schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; + schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; + LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",schedulinginfo_br_13->si_Narrowband_r13,schedulinginfo_br_13->si_TBS_r13); + ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); } @@ -1464,45 +1464,45 @@ uint8_t do_SIB23(uint8_t Mod_id, AssertFatal(configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]!=NULL, "configuration->prach_StartingSubframe_r13[%d][%d] is null", (int)CC_id,(int)prach_parameters_index); - if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) - { - prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); - *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; - } - else - { - prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; - } - - if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); - *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; - } - else - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; - } - - prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; - prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; - printf("[DEBUGGING][KOGO][SIB23] : prach hopping config = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); - - - long *maxavailablenarrowband; - int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; - int narrow_band_index; - for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) - { - maxavailablenarrowband = CALLOC(1, sizeof(long)); - *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; - ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); - } - - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; - prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) + { + prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); + *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + } + + if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; + } + + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; + printf("[DEBUGGING][KOGO][SIB23] : prach hopping config = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); + + + long *maxavailablenarrowband; + int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) + { + maxavailablenarrowband = CALLOC(1, sizeof(long)); + *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); + } + + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); } } else @@ -1640,7 +1640,7 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.pcch_Config.nB=PCCH_Config__nB_oneT; // PRACH-Config - (*sib2)->radioResourceConfigCommon.prach_Config.rootSequenceIndex=Mod_id;//0;//384; + (*sib2)->radioResourceConfigCommon.prach_Config.rootSequenceIndex = Mod_id;//0;//384; (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_ConfigIndex = 0;//3; (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.highSpeedFlag = 0; (*sib2)->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig = 1;//12; @@ -1744,17 +1744,17 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; //----------------------------------------------------------------------------------------------------------------------------------------- - (*sib2)->ue_TimersAndConstants.t300=UE_TimersAndConstants__t300_ms1000; + (*sib2)->ue_TimersAndConstants.t300 = UE_TimersAndConstants__t300_ms1000; - (*sib2)->ue_TimersAndConstants.t301=UE_TimersAndConstants__t301_ms1000; + (*sib2)->ue_TimersAndConstants.t301 = UE_TimersAndConstants__t301_ms1000; - (*sib2)->ue_TimersAndConstants.t310=UE_TimersAndConstants__t310_ms1000; + (*sib2)->ue_TimersAndConstants.t310 = UE_TimersAndConstants__t310_ms1000; - (*sib2)->ue_TimersAndConstants.n310=UE_TimersAndConstants__n310_n20; + (*sib2)->ue_TimersAndConstants.n310 = UE_TimersAndConstants__n310_n20; - (*sib2)->ue_TimersAndConstants.t311=UE_TimersAndConstants__t311_ms10000; + (*sib2)->ue_TimersAndConstants.t311 = UE_TimersAndConstants__t311_ms10000; - (*sib2)->ue_TimersAndConstants.n311=UE_TimersAndConstants__n311_n1; + (*sib2)->ue_TimersAndConstants.n311 = UE_TimersAndConstants__n311_n1; #endif diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index d05b6c6c7f..1fccdfe026 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -81,7 +81,7 @@ eNBs = pucch_deltaF_Format2a = "deltaF0"; pucch_deltaF_Format2b = "deltaF0"; - rach_numberOfRA_Preambles = 64; + rach_numberOfRA_Preambles = "n64"; #64 rach_preamblesGroupAConfig = "DISABLE"; /* rach_sizeOfRA_PreamblesGroupA = ; @@ -95,16 +95,16 @@ eNBs = rach_macContentionResolutionTimer = 48; rach_maxHARQ_Msg3Tx = 4; - pcch_default_PagingCycle = 128; + pcch_default_PagingCycle = "rf128"; #128 pcch_nB = "oneT"; bcch_modificationPeriodCoeff = 2; - ue_TimersAndConstants_t300 = 1000; - ue_TimersAndConstants_t301 = 1000; - ue_TimersAndConstants_t310 = 1000; - ue_TimersAndConstants_t311 = 10000; - ue_TimersAndConstants_n310 = 20; - ue_TimersAndConstants_n311 = 1; - ue_TransmissionMode = 1; + ue_TimersAndConstants_t300 = "ms1000"; + ue_TimersAndConstants_t301 = "ms1000"; + ue_TimersAndConstants_t310 = "ms1000"; + ue_TimersAndConstants_t311 = "ms10000"; + ue_TimersAndConstants_n310 = "n20"; + ue_TimersAndConstants_n311 = "n1"; + ue_TransmissionMode = "tm1"; # BR Parameters br_parameters : @@ -127,8 +127,8 @@ eNBs = cellSelectionInfoCE_r13 = "ENABLE"; q_RxLevMinCE_r13 = -70; bandwidthReducedAccessRelatedInfo_r13 = "ENABLE" - si_WindowLength_BR_r13 = 0; - si_RepetitionPattern_r13 = 0; + si_WindowLength_BR_r13 = "ms20"; #0 + si_RepetitionPattern_r13 = "everyRF"; #0 scheduling_info_br = ( @@ -141,11 +141,11 @@ eNBs = fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern40-r13"; fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0xFFFFFFFFFF; startSymbolBR_r13 = 3; - si_HoppingConfigCommon_r13 = 1; # Note: 1==OFF ! - si_ValidityTime_r13 = 0; + si_HoppingConfigCommon_r13 = "off"; #1; # Note: 1==OFF ! + si_ValidityTime_r13 = "true"; #0 freqHoppingParametersDL_r13 = "DISABLE" - mpdcch_pdsch_HoppingNB_r13 = 0; + mpdcch_pdsch_HoppingNB_r13 = "nb2"; #0 interval_DLHoppingConfigCommonModeA_r13 = "interval-FDD-r13" interval_DLHoppingConfigCommonModeA_r13_val = 0; interval_DLHoppingConfigCommonModeB_r13 = "interval-FDD-r13" @@ -155,9 +155,9 @@ eNBs = # SIB23 frame_type = "FDD"; - preambleTransMax_CE_r13 = 6; + preambleTransMax_CE_r13 = "n10"; #6 - rach_numberOfRA_Preambles = 60; + rach_numberOfRA_Preambles = "n60"; #14 rach_powerRampingStep = 4; rach_preambleInitialReceivedTargetPower = -108; rach_preambleTransMax = 10; @@ -171,9 +171,9 @@ eNBs = { firstPreamble_r13 = 60; lastPreamble_r13 = 63; - ra_ResponseWindowSize_r13 = 0; - mac_ContentionResolutionTimer_r13 = 0; - rar_HoppingConfig_r13 = 1; + ra_ResponseWindowSize_r13 = "sf20"; #0 + mac_ContentionResolutionTimer_r13 = "sf80"; #0 + rar_HoppingConfig_r13 = "off"; #1; } ); @@ -181,7 +181,7 @@ eNBs = bcch_modificationPeriodCoeff = 2; #PCCH Config - pcch_default_PagingCycle = 128; + pcch_default_PagingCycle = "rf128"; #128 pcch_nB = "oneT"; #PRACH Config @@ -189,7 +189,7 @@ eNBs = prach_config_index = 3; prach_high_speed = "DISABLE"; prach_zero_correlation = 1; - prach_freq_offset = 2; + prach_freq_offset = 1; #PDSCH Config Common pdsch_referenceSignalPower = -27; @@ -225,11 +225,11 @@ eNBs = prach_ConfigCommon_v1310 = "ENABLE"; - pdsch_maxNumRepetitionCEmodeA_r13 = 0; - #pdsch_maxNumRepetitionCEmodeB_r13 = 2; # NULL + pdsch_maxNumRepetitionCEmodeA_r13 = "r16"; #0 + #pdsch_maxNumRepetitionCEmodeB_r13 = "r384"; # NULL - 2 - pusch_maxNumRepetitionCEmodeA_r13 = 0; - #pusch_maxNumRepetitionCEmodeB_r13 = 4; #NULL + pusch_maxNumRepetitionCEmodeA_r13 = "r8"; #0 + #pusch_maxNumRepetitionCEmodeB_r13 = "r768"; #4 #NULL #pusch_HoppingOffset_v1310 = 5; #NULL # max size for this array is 3 @@ -241,7 +241,7 @@ eNBs = ); mpdcch_startSF_CSS_RA_r13 = "fdd-r13"; - mpdcch_startSF_CSS_RA_r13_val = 0; + mpdcch_startSF_CSS_RA_r13_val = "v1"; #0 prach_HoppingOffset_r13 = 0; # max size for this array is 4 @@ -249,12 +249,12 @@ eNBs = ( { prach_config_index_br = 3; - prach_freq_offset_br = 2; + prach_freq_offset_br = 1; prach_StartingSubframe_r13 = 0; - maxNumPreambleAttemptCE_r13 = 6; - numRepetitionPerPreambleAttempt_r13 = 0; - mpdcch_NumRepetition_RA_r13 = 0; - prach_HoppingConfig_r13 = 1; + maxNumPreambleAttemptCE_r13 = "n10"; #6 + numRepetitionPerPreambleAttempt_r13 = "n1"; #0 + mpdcch_NumRepetition_RA_r13 = "r1"; #0 + prach_HoppingConfig_r13 = "off"; #1 max_available_narrow_band = [2]; } ); @@ -267,39 +267,39 @@ eNBs = ); - ue_TimersAndConstants_t300 = 1000; - ue_TimersAndConstants_t301 = 400; - ue_TimersAndConstants_t310 = 50; - ue_TimersAndConstants_t311 = 30000; - ue_TimersAndConstants_n310 = 1; - ue_TimersAndConstants_n311 = 10; - ue_TransmissionMode = 1; + ue_TimersAndConstants_t300 = "ms1000"; + ue_TimersAndConstants_t301 = "ms400"; + ue_TimersAndConstants_t310 = "ms50"; + ue_TimersAndConstants_t311 = "ms30000"; + ue_TimersAndConstants_n310 = "n1"; + ue_TimersAndConstants_n311 = "n10"; + ue_TransmissionMode = "tm1"; pcch_config_v1310 : { paging_narrowbands_r13 = 1; - mpdcch_numrepetition_paging_r13 = 0; - #nb_v1310 = 2; + mpdcch_numrepetition_paging_r13 = "r1"; #0 + #nb_v1310 = "one256thT"; #2 } - pucch_NumRepetitionCE_Msg4_Level0_r13 = 0; - #pucch_NumRepetitionCE_Msg4_Level1_r13 = 1; - #pucch_NumRepetitionCE_Msg4_Level2_r13 = 2; - #pucch_NumRepetitionCE_Msg4_Level3_r13 = 3; + pucch_NumRepetitionCE_Msg4_Level0_r13 = "n1"; #0 + #pucch_NumRepetitionCE_Msg4_Level1_r13 = "n2"; #1 + #pucch_NumRepetitionCE_Msg4_Level2_r13 = "n16"; #2 + #pucch_NumRepetitionCE_Msg4_Level3_r13 = "n32"; #3 sib2_freq_hoppingParameters_r13 : { -# sib2_mpdcch_pdsch_hoppingNB_r13 = 0; -# sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) -# sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; -# sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) -# sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; + #sib2_mpdcch_pdsch_hoppingNB_r13 = "nb2"; #0 + #sib2_interval_DLHoppingConfigCommonModeA_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) + #sib2_interval_DLHoppingConfigCommonModeA_r13_val = "int1"; + #sib2_interval_DLHoppingConfigCommonModeB_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) + #sib2_interval_DLHoppingConfigCommonModeB_r13_val = "int2"; - sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; # choice -> (0, FDD) (1, TDD) - sib2_interval_ULHoppingConfigCommonModeA_r13_val = 2; -# sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; # choice -> (0, FDD) (1, TDD) -# sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; + sib2_interval_ULHoppingConfigCommonModeA_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeA_r13_val = "int4"; #2 +# sib2_interval_ULHoppingConfigCommonModeB_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) +# sib2_interval_ULHoppingConfigCommonModeB_r13_val = "int2"; #0 # sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; } @@ -364,9 +364,9 @@ eNBs = NETWORK_INTERFACES : { - ENB_INTERFACE_NAME_FOR_S1_MME = "enp0s31f6:S1-C"; + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0:S1-C-eNB"; ENB_IPV4_ADDRESS_FOR_S1_MME = "172.17.0.21/24"; - ENB_INTERFACE_NAME_FOR_S1U = "enp0s31f6:S1-U"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0:S1-U-eNB"; ENB_IPV4_ADDRESS_FOR_S1U = "172.16.0.21/24"; ENB_PORT_FOR_S1U = 2152; # Spec 2152 }; From 3289891e9d5f147ce86f7c25aa0f7b3f9d6c6e96 Mon Sep 17 00:00:00 2001 From: Ahmed Elias Date: Thu, 7 Sep 2017 04:00:55 -0700 Subject: [PATCH 058/125] Update do_RRCConnectionReconfiguration_BR method --- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 68 +++------------------------ openair2/RRC/LITE/MESSAGES/asn1_msg.h | 31 ++++++++++++ 2 files changed, 37 insertions(+), 62 deletions(-) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index eba2005e4e..ada24b881d 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -3206,6 +3206,7 @@ do_UECapabilityEnquiry( return((enc_rval.encoded+7)/8); } +#ifdef Rel14 uint16_t do_RRCConnectionReconfiguration_BR( const protocol_ctxt_t* const ctxt_pP, @@ -3262,68 +3263,10 @@ do_RRCConnectionReconfiguration_BR( rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->cba_RNTI_vlola= cba_rnti; #endif - // +kogo - physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n4; - - physicalConfigDedicated->ext4->csi_RS_ConfigNZPToReleaseList_r11 = NULL; - physicalConfigDedicated->ext4->csi_RS_ConfigNZPToAddModList_r11 = NULL; - physicalConfigDedicated->ext4->csi_RS_ConfigZPToAddModList_r11 = NULL; - physicalConfigDedicated->ext4->csi_RS_ConfigZPToReleaseList_r11 = NULL; - - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToReleaseList_r11 = NULL; - - - physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = calloc(1, sizeof(EPDCCH_SetConfigToAddModList_r11_t)); - // memset(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, 0, sizeof()) - EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = calloc(0, sizeof(EPDCCH_SetConfig_r11_t)); - epdcch_setconfig_r11->setConfigId_r11 = 0; - epdcch_setconfig_r11->transmissionType_r11 = EPDCCH_SetConfig_r11__transmissionType_r11_localised; - epdcch_setconfig_r11->resourceBlockAssignment_r11.numberPRB_Pairs_r11 = EPDCCH_SetConfig_r11__resourceBlockAssignment_r11__numberPRB_Pairs_r11_n2; - //epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11 = calloc(0, sizeof(BIT_STRING_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf = calloc(0, 2 * sizeof(uint8_t)); - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.size = 2; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 6; - epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf[0] = 0x0E; - - epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 0; - epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; - epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; - epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; - ASN_SEQUENCE_ADD(physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); - - physicalConfigDedicated->ext7->pdsch_ConfigDedicated_v1310 = NULL; - physicalConfigDedicated->ext7->pusch_ConfigDedicated_r13 = NULL; - - physicalConfigDedicated->ext7->pdcch_CandidateReductions_r13 = NULL; - - physicalConfigDedicated->ext7->pucch_ConfigDedicated_r13 = NULL; - - physicalConfigDedicated->ext7->cqi_ReportConfig_v1310 = NULL; - - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicated_v1310 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedUpPTsExt_r13 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodic_v1310 = NULL; - physicalConfigDedicated->ext7->soundingRS_UL_ConfigDedicatedAperiodicUpPTsExt_r13 = NULL; - - physicalConfigDedicated->ext7->csi_RS_Config_v1310 = NULL; - - physicalConfigDedicated->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; - physicalConfigDedicated->ext7->ce_Mode_r13->choice.setup = PhysicalConfigDedicated__ext7__ce_Mode_r13__setup_ce_ModeA; - physicalConfigDedicated->ext7->csi_RS_ConfigNZPToAddModListExt_r13 = NULL; - physicalConfigDedicated->ext7->csi_RS_ConfigNZPToReleaseListExt_r13 = NULL; - - // +kogo ------------------------------------------------------------------------------------------ - + physicalConfigDedicated->cqi_ReportConfig = CALLOC(1, sizeof(struct CQI_ReportConfig)); + physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic = CALLOC(1, sizeof(CQI_ReportModeAperiodic_t)); + *physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic = CQI_ReportModeAperiodic_rm20; + physicalConfigDedicated->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; if (mac_MainConfig!=NULL) { rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->mac_MainConfig = CALLOC(1, @@ -3424,6 +3367,7 @@ do_RRCConnectionReconfiguration_BR( return((enc_rval.encoded+7)/8); } +#endif //------------------------------------------------------------------------------ uint16_t diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.h b/openair2/RRC/LITE/MESSAGES/asn1_msg.h index d16c53f7cc..84c13b6c5f 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.h +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.h @@ -176,6 +176,37 @@ do_RRCConnectionSetup_BR( ); #endif + + +#ifdef Rel14 +uint16_t +do_RRCConnectionReconfiguration_BR( + const protocol_ctxt_t* const ctxt_pP, + uint8_t *buffer, + uint8_t Transaction_id, + SRB_ToAddModList_t *SRB_list, + DRB_ToAddModList_t *DRB_list, + DRB_ToReleaseList_t *DRB_list2, + struct SPS_Config *sps_Config, + struct PhysicalConfigDedicated *physicalConfigDedicated, + MeasObjectToAddModList_t *MeasObj_list, + ReportConfigToAddModList_t *ReportConfig_list, + QuantityConfig_t *quantityConfig, + MeasIdToAddModList_t *MeasId_list, + MAC_MainConfig_t *mac_MainConfig, + MeasGapConfig_t *measGapConfig, + MobilityControlInfo_t *mobilityInfo, + struct MeasConfig__speedStatePars *speedStatePars, + RSRP_Range_t *rsrp, + C_RNTI_t *cba_rnti, + struct RRCConnectionReconfiguration_r8_IEs__dedicatedInfoNASList + *dedicatedInfoNASList + +#if defined(Rel10) || defined(Rel14) + , SCellToAddMod_r10_t *SCell_config +#endif + ); +#endif /** \brief Generate an RRCConnectionReconfiguration DL-DCCH-Message (eNB). This routine configures SRBToAddMod (SRB2) and one DRBToAddMod (DRB3). PhysicalConfigDedicated is not updated. From cb33ca456abc746854eaf7bdce0c96a11e1ea528 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Wed, 11 Oct 2017 02:45:26 -0700 Subject: [PATCH 059/125] partial adaption of configuration parameters --- openair2/ENB_APP/enb_config.c | 28 +++- openair2/ENB_APP/enb_paramdef.h | 230 +++++++++++++++++--------------- 2 files changed, 143 insertions(+), 115 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index a02f365954..a0e5ba2893 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -480,15 +480,24 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { // for no gcc warnings (void)my_int; - paramdef_t ENBSParams[] = ENBSPARAMS_DESC; + paramdef_t ENBSParams[] = ENBSPARAMS_DESC; - paramdef_t ENBParams[] = ENBPARAMS_DESC; - paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; + paramdef_t ENBParams[] = ENBPARAMS_DESC; + paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; - paramdef_t CCsParams[] = CCPARAMS_DESC; - paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; - - paramdef_t SRB1Params[] = SRB1PARAMS_DESC; + paramdef_t CCsParams[] = CCPARAMS_DESC; + paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; + + paramdef_t brParams[] = BRPARAMS_DESC; + paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC; + paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; + paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; + paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; + paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; + paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; + + paramdef_t SRB1Params[] = SRB1PARAMS_DESC; @@ -1717,6 +1726,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ue_TransmissionMode); break; } + + + sprintf(brpath,"%s.%s.[%i].%s",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,ENB_CONFIG_STRING_BR_PARAMETERS,j); + config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); + } } char srb1path[MAX_OPTNAME_SIZE*2 + 8]; diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index d4679b9242..c63a2a420c 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -489,141 +489,155 @@ static int DEFENBS[] = {0}; #define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br" -#define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" -#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" -#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13 "systemInfoValueTagSi_r13" -#define BR_PARAMS_DESC { \ - {"schedulingInfoSIB1_BR_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ - {"cellSelectionInfoCE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_Narrowband_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_TBS_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"cellSelectionInfoCE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"q_RxLevMinCE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"bandwidthReducedAccessRelatedInfo_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_WindowLength_BR_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_RepetitionPattern_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"fdd_DownlinkOrTddSubframeBitmapBR_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"fdd_DownlinkOrTddSubframeBitmapBR_val_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"startSymbolBR_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_HoppingConfigCommon_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_ValidityTime_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"freqHoppingParametersDL_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_pdsch_HoppingNB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"interval_DLHoppingConfigCommonModeA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"interval_DLHoppingConfigCommonModeB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_pdsch_HoppingOffset_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"frame_type", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"preambleTransMax_CE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_numberOfRA_Preambles", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_powerRampingStep", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_preambleInitialReceivedTargetPower", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_preambleTransMax", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_raResponseWindowSize", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_macContentionResolutionTimer", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_maxHARQ_Msg3Tx", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"bcch_modificationPeriodCoeff", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pcch_default_PagingCycle", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pcch_nB", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_root", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_config_index", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_high_speed", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_zero_correlation", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_freq_offset", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pdsch_referenceSignalPower", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pdsch_p_b", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_n_SB", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_hoppingMode", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_hoppingOffset", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_enable64QAM", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_groupHoppingEnabled", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_groupAssignment", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_sequenceHoppingEnabled", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_delta_shift", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_nRB_CQI", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_nCS_AN", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_n1_AN", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_p0_Nominal", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_alpha", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_p0_Nominal", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_deltaF_Format1", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_deltaF_Format1b", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_deltaF_Format2", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_deltaF_Format2a", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_deltaF_Format2b", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"msg3_delta_Preamble", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_ConfigCommon_v1310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pdsch_maxNumRepetitionCEmodeA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pdsch_maxNumRepetitionCEmodeB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_maxNumRepetitionCEmodeA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_maxNumRepetitionCEmodeB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_HoppingOffset_v1310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_startSF_CSS_RA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_startSF_CSS_RA_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_HoppingOffset_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TimersAndConstants_t300", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TimersAndConstants_t301", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TimersAndConstants_t310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TimersAndConstants_t311", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TimersAndConstants_n310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TimersAndConstants_n311", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ue_TransmissionMode", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level0_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level1_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level2_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level3_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rach_preamblesGroupAConfig", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"pusch_nDMRS1", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"phich_duration", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"phich_resource", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"srs_enable", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ + +#define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" +#define BRPARAMS_DESC { \ +{"schedulingInfoSIB1_BR_r13", NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:, TYPE_UINT, 0}, \ +{"cellSelectionInfoCE_r13", NULL, 0, strptr:&cellSelectionInfoCE_r13, defintval:, TYPE_STRING, 0}, \ +{"si_Narrowband_r13", NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:, TYPE_UINT, 0}, \ +{"si_TBS_r13", NULL, 0, iptr:&si_TBS_r13, defintval:, TYPE_UINT, 0}, \ +{"cellSelectionInfoCE_r13", NULL, 0, strptr:&cellSelectionInfoCE_r13, defintval:, TYPE_STRING, 0}, \ +{"q_RxLevMinCE_r13", NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:, TYPE_INT, 0}, \ +{"bandwidthReducedAccessRelatedInfo_r13", NULL, 0, iptr:&bandwidthReducedAccessRelatedInfo_r13, defintval:, TYPE_UINT, 0}, \ +{"si_WindowLength_BR_r13", NULL, 0, strptr:&si_WindowLength_BR_r13, defintval:, TYPE_STRING, 0}, \ +{"si_RepetitionPattern_r13", NULL, 0, strptr:&si_RepetitionPattern_r13, defintval:, TYPE_STRING, 0}, \ +{"fdd_DownlinkOrTddSubframeBitmapBR_r13", NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defintval:, TYPE_STRING, 0}, \ +{"fdd_DownlinkOrTddSubframeBitmapBR_val_r13", NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defintval:, TYPE_UINT64, 0}, \ +{"startSymbolBR_r13", NULL, 0, iptr:&startSymbolBR_r13, defintval:, TYPE_UINT, 0}, \ +{"si_HoppingConfigCommon_r13", NULL, 0, dytptr:&si_HoppingConfigCommon_r13 , defintval:, TYPE_STRING, 0}, \ +{"si_ValidityTime_r13", NULL, 0, strptr:&si_ValidityTime_r13, defintval:, TYPE_STRING, 0}, \ +{"freqHoppingParametersDL_r13", NULL, 0, strptr:&freqHoppingParametersDL_r13, defintval:, TYPE_STRING, 0}, \ +{"mpdcch_pdsch_HoppingNB_r13", NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defintval:, TYPE_STRING, 0}, \ +{"interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defintval:, TYPE_STRING, 0}, \ +{"interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:, TYPE_UINT, 0}, \ +{"interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defintval:, TYPE_STRING, 0}, \ +{"interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:, TYPE_UINT, 0}, \ +{"mpdcch_pdsch_HoppingOffset_r13", NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level0_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:, TYPE_STRING, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level1_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:, TYPE_STRING, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level2_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:, TYPE_STRING, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level3_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:, TYPE_STRING, 0}, \ +{"rach_preamblesGroupAConfig", NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:, TYPE_STRING, 0}, \ } +#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" +#define RSRP_RANGE_LIST_DESC { \ +{"systemInfoValueTagSi_r13", NULL, 0, iptr:&systemInfoValueTagSi_r13, defintval:, TYPE_UINT, 0} \ + } + + #define ENB_CONFIG_STRING_SCHEDULING_INFO_BR "scheduling_info_br" #define SI_INFO_BR_DESC { \ - {"si_Narrowband_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ - {"si_TBS_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +{"si_Narrowband_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"si_TBS_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" #define RSRP_RANGE_LIST_DESC { \ -{"rsrp_range_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +{"rsrp_range_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13" -#define BR_PARAMS_DESC { \ +#define RACH_CE_LEVELINFOLIST_R13_DESC { \ {"firstPreamble_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ - {"lastPreamble_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ - {"ra_ResponseWindowSize_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"lastPreamble_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"ra_ResponseWindowSize_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ {"mac_ContentionResolutionTimer_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ {"rar_HoppingConfig_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}\ } #define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" #define PRACH_PARAMS_CE_R13_DESC { \ -{"prach_config_index_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_freq_offset_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_StartingSubframe_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"maxNumPreambleAttemptCE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"numRepetitionPerPreambleAttempt_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_NumRepetition_RA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_HoppingConfig_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"max_available_narrow_band", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +{"prach_config_index_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"prach_freq_offset_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"prach_StartingSubframe_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"maxNumPreambleAttemptCE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"numRepetitionPerPreambleAttempt_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"mpdcch_NumRepetition_RA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"prach_HoppingConfig_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ +{"max_available_narrow_band", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" -#define PRACH_PARAMS_CE_R13_DESC { \ -"pucch_info_value", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +#define N1PUCCH_AN_INFOLIST_R13_DESC { \ +"pucch_info_value", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" #define PCCH_CONFIG_V1310_DESC { \ -"paging_narrowbands_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"mpdcch_numrepetition_paging_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"nb_v1310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +"paging_narrowbands_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +"mpdcch_numrepetition_paging_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +"nb_v1310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" From cd318b327a9a6e60902b45644debc9b071986873 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Wed, 11 Oct 2017 05:29:19 -0700 Subject: [PATCH 060/125] filled in parameter definitions --- openair2/ENB_APP/enb_paramdef.h | 249 ++++++++++++++++---------------- 1 file changed, 123 insertions(+), 126 deletions(-) diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index c63a2a420c..0165d5b8fc 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -493,165 +493,162 @@ static int DEFENBS[] = {0}; #define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" #define BRPARAMS_DESC { \ -{"schedulingInfoSIB1_BR_r13", NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:, TYPE_UINT, 0}, \ -{"cellSelectionInfoCE_r13", NULL, 0, strptr:&cellSelectionInfoCE_r13, defintval:, TYPE_STRING, 0}, \ -{"si_Narrowband_r13", NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:, TYPE_UINT, 0}, \ -{"si_TBS_r13", NULL, 0, iptr:&si_TBS_r13, defintval:, TYPE_UINT, 0}, \ -{"cellSelectionInfoCE_r13", NULL, 0, strptr:&cellSelectionInfoCE_r13, defintval:, TYPE_STRING, 0}, \ -{"q_RxLevMinCE_r13", NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:, TYPE_INT, 0}, \ -{"bandwidthReducedAccessRelatedInfo_r13", NULL, 0, iptr:&bandwidthReducedAccessRelatedInfo_r13, defintval:, TYPE_UINT, 0}, \ -{"si_WindowLength_BR_r13", NULL, 0, strptr:&si_WindowLength_BR_r13, defintval:, TYPE_STRING, 0}, \ -{"si_RepetitionPattern_r13", NULL, 0, strptr:&si_RepetitionPattern_r13, defintval:, TYPE_STRING, 0}, \ -{"fdd_DownlinkOrTddSubframeBitmapBR_r13", NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defintval:, TYPE_STRING, 0}, \ -{"fdd_DownlinkOrTddSubframeBitmapBR_val_r13", NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defintval:, TYPE_UINT64, 0}, \ -{"startSymbolBR_r13", NULL, 0, iptr:&startSymbolBR_r13, defintval:, TYPE_UINT, 0}, \ -{"si_HoppingConfigCommon_r13", NULL, 0, dytptr:&si_HoppingConfigCommon_r13 , defintval:, TYPE_STRING, 0}, \ -{"si_ValidityTime_r13", NULL, 0, strptr:&si_ValidityTime_r13, defintval:, TYPE_STRING, 0}, \ -{"freqHoppingParametersDL_r13", NULL, 0, strptr:&freqHoppingParametersDL_r13, defintval:, TYPE_STRING, 0}, \ -{"mpdcch_pdsch_HoppingNB_r13", NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defintval:, TYPE_STRING, 0}, \ -{"interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defintval:, TYPE_STRING, 0}, \ -{"interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:, TYPE_UINT, 0}, \ -{"interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defintval:, TYPE_STRING, 0}, \ -{"interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_pdsch_HoppingOffset_r13", NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level0_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:, TYPE_STRING, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level1_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:, TYPE_STRING, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level2_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:, TYPE_STRING, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level3_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:, TYPE_STRING, 0}, \ -{"rach_preamblesGroupAConfig", NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:, TYPE_STRING, 0}, \ +{"schedulingInfoSIB1_BR_r13", NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ +{"cellSelectionInfoCE_r13", NULL, 0, strptr:&cellSelectionInfoCE_r13, defintval:"ENABLE", TYPE_STRING, 0}, \ +{"q_RxLevMinCE_r13", NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ +{"bandwidthReducedAccessRelatedInfo_r13", NULL, 0, strptr:&bandwidthReducedAccessRelatedInfo_r13, defintval:"ENABLE", TYPE_STRING, 0}, \ +{"si_WindowLength_BR_r13", NULL, 0, strptr:&si_WindowLength_BR_r13, defintval:"ms20", TYPE_STRING, 0}, \ +{"si_RepetitionPattern_r13", NULL, 0, strptr:&si_RepetitionPattern_r13, defintval:"everyRF", TYPE_STRING, 0}, \ +{"fdd_DownlinkOrTddSubframeBitmapBR_r13", NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defintval:"subframePattern40-r13", TYPE_STRING, 0}, \ +{"fdd_DownlinkOrTddSubframeBitmapBR_val_r13", NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defintval:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ +{"startSymbolBR_r13", NULL, 0, iptr:&startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ + {"si_HoppingConfigCommon_r13", NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defintval:"off", TYPE_STRING, 0}, \ +{"si_ValidityTime_r13", NULL, 0, strptr:&si_ValidityTime_r13, defintval:"true", TYPE_STRING, 0}, \ +{"freqHoppingParametersDL_r13", NULL, 0, strptr:&freqHoppingParametersDL_r13, defintval:"DISABLE", TYPE_STRING, 0}, \ +{"mpdcch_pdsch_HoppingNB_r13", NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defintval:"nb2", TYPE_STRING, 0}, \ +{"interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defintval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{"interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defintval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{"interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"mpdcch_pdsch_HoppingOffset_r13", NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level0_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level1_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level2_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ +{"pucch_NumRepetitionCE_Msg4_Level3_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ +{"rach_preamblesGroupAConfig", NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ } #define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" #define RSRP_RANGE_LIST_DESC { \ -{"systemInfoValueTagSi_r13", NULL, 0, iptr:&systemInfoValueTagSi_r13, defintval:, TYPE_UINT, 0} \ +{"systemInfoValueTagSi_r13", NULL, 0, iptr:&systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_SCHEDULING_INFO_BR "scheduling_info_br" #define SI_INFO_BR_DESC { \ -{"si_Narrowband_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"si_TBS_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ - } +{"si_Narrowband_r13", NULL, 0, iptr:&si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ +{"si_TBS_r13", NULL, 0, iptr:&si_TBS_r13, defintval:5, TYPE_UINT, 0} \ +} #define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" #define RSRP_RANGE_LIST_DESC { \ -{"rsrp_range_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +{"rsrp_range_br", NULL, 0, iptr:&rsrp_range_br, defintval:0, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13" #define RACH_CE_LEVELINFOLIST_R13_DESC { \ -{"firstPreamble_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"lastPreamble_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"ra_ResponseWindowSize_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mac_ContentionResolutionTimer_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"rar_HoppingConfig_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}\ +{"firstPreamble_r13", NULL, 0, iptr:&firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ +{"lastPreamble_r13", NULL, 0, iptr:&lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ +{"ra_ResponseWindowSize_r13", NULL, 0, iptr:&ra_ResponseWindowSize_r13, defintval:"sf20", TYPE_STRING, 0}, \ +{"mac_ContentionResolutionTimer_r13", NULL, 0, iptr:&mac_ContentionResolutionTimer_r13, defintval:"sf80", TYPE_STRING, 0}, \ +{"rar_HoppingConfig_r13", NULL, 0, iptr:&rar_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}\ } #define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" #define PRACH_PARAMS_CE_R13_DESC { \ -{"prach_config_index_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_freq_offset_br", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_StartingSubframe_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"maxNumPreambleAttemptCE_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"numRepetitionPerPreambleAttempt_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"mpdcch_NumRepetition_RA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"prach_HoppingConfig_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0}, \ -{"max_available_narrow_band", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +{"prach_config_index_br", NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ +{"prach_freq_offset_br", NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ +{"prach_StartingSubframe_r13", NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ +{"maxNumPreambleAttemptCE_r13", NULL, 0, iptr:&maxNumPreambleAttemptCE_r13, defintval:"n10", TYPE_STRING, 0}, \ +{"numRepetitionPerPreambleAttempt_r13", NULL, 0, iptr:&numRepetitionPerPreambleAttempt_r13, defintval:"n1", TYPE_STRING, 0}, \ +{"mpdcch_NumRepetition_RA_r13", NULL, 0, iptr:&mpdcch_NumRepetition_RA_r13, defintval:"r1", TYPE_STRING, 0}, \ +{"prach_HoppingConfig_r13", NULL, 0, iptr:&prach_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}, \ +{"max_available_narrow_band", NULL, 0, iptr:&maxavailablenarrowband, defintval:2, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" #define N1PUCCH_AN_INFOLIST_R13_DESC { \ -"pucch_info_value", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +"pucch_info_value", NULL, 0, iptr:&pucch_info_value, defintval:0, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" #define PCCH_CONFIG_V1310_DESC { \ -"paging_narrowbands_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"mpdcch_numrepetition_paging_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"nb_v1310", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +"paging_narrowbands_r13", NULL, 0, iptr:&paging_narrowbands_r13, defintval:1, TYPE_UINT, 0} \ +"mpdcch_numrepetition_paging_r13", NULL, 0, iptr:&mpdcch_numrepetition_paging_r13, defintval:"r1", TYPE_STRING, 0} \ +"nb_v1310", NULL, 0, iptr:&nb_v1310, defintval:"one256thT", TYPE_STRING, 0} \ } #define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" #define SIB2_FREQ_HOPPING_R13_DESC { \ -"sib2_mpdcch_pdsch_hoppingNB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ -"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&, defintval:, TYPE_UINT, 0} \ +"sib2_mpdcch_pdsch_hoppingNB_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingNB_r13, defintval:"", TYPE_STRING, 0} \ +"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13, defintval:"", TYPE_STRING, 0} \ +"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:"", TYPE_STRING, 0} \ +"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0} \ +"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0} \ +"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13, defintval:"FDD", TYPE_STRING, 0} \ +"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:"int4", TYPE_STRING, 0} \ +"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0} \ +"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_UHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0} \ +"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ } /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ From d34226c8b22c1a1934793a63f2b03c6a07aa4907 Mon Sep 17 00:00:00 2001 From: Ahmed Elias Date: Wed, 11 Oct 2017 19:06:06 +0200 Subject: [PATCH 061/125] resolving compilation errors (temp commit) --- openair1/SCHED/fapi_l1.c | 8 +++---- openair2/ENB_APP/enb_config.c | 21 ++++++++++--------- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 4 ++-- .../LAYER2/MAC/eNB_scheduler_primitives.c | 4 ++-- 5 files changed, 20 insertions(+), 19 deletions(-) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index ed0ccf3480..cf846947dc 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -275,8 +275,8 @@ void handle_ulsch_cqi_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request ulsch_harq->frame = frame; ulsch_harq->subframe = subframe; ulsch_harq->O_RI = rel9->aperiodic_cqi_pmi_ri_report.cc[0].ri_size; - ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; - if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; + //ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; + //if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; ulsch->beta_offset_ri_times8 = to_beta_offset_ri[rel9->delta_offset_ri]; ulsch->beta_offset_cqi_times8 = to_beta_offset_cqi[rel9->delta_offset_cqi]; LOG_I(PHY,"Filling ulsch_cqi_ri information for frame %d, subframe %d : O_RI %d, Or1 %d, beta_offset_cqi_times8 %d (%d)\n", @@ -296,10 +296,10 @@ void handle_ulsch_cqi_harq_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_re ulsch_harq->frame = frame; ulsch_harq->subframe = subframe; ulsch_harq->O_RI = rel9->aperiodic_cqi_pmi_ri_report.cc[0].ri_size; - ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; + //ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; ulsch_harq->O_ACK = harq_information->harq_information_rel10.harq_size; - if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; + //if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; ulsch->beta_offset_harqack_times8 = to_beta_offset_harqack[harq_information->harq_information_rel10.delta_offset_harq]; ulsch->beta_offset_ri_times8 = to_beta_offset_ri[rel9->delta_offset_ri]; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index a0e5ba2893..9a9e25c336 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -449,7 +449,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int32_t my_int; - /* char* flexran_agent_interface_name = NULL; char* flexran_agent_ipv4_address = NULL; @@ -488,14 +487,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { paramdef_t CCsParams[] = CCPARAMS_DESC; paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; - paramdef_t brParams[] = BRPARAMS_DESC; - paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC; - paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; - paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; - paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; - paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; - paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; - paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; + //paramdef_t brParams[] = BRPARAMS_DESC; + // paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC; + //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; + //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; + //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; + //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; + //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; paramdef_t SRB1Params[] = SRB1PARAMS_DESC; @@ -616,6 +615,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { LOG_I(RRC,"num component carriers %d \n", num_component_carriers); if ( CCsParamList.numelt> 0) { +#ifdef CLOSE_FOR_NOW char ccspath[MAX_OPTNAME_SIZE*2 + 16]; @@ -1732,6 +1732,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); } +#endif } char srb1path[MAX_OPTNAME_SIZE*2 + 8]; sprintf(srb1path,"%s.%s",enbpath,ENB_CONFIG_STRING_SRB1); @@ -2346,7 +2347,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { */ break; } - + } } return 0; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index bd52918c87..9a26f0d723 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -307,7 +307,7 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t } //repetition_count==0 && SF condition met if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions -<<<<<<< HEAD + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", module_idP,frameP,subframeP,RA_template->msg2_mpdcch_repetition_cnt); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 6e2ed4f73d..2ece362c2c 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -436,7 +436,7 @@ void getRepetition(UE_TEMPLATE * pue_template,unsigned int *maxRep , unsigned i -void +/*void schedule_ue_spec_br( module_id_t module_idP, frame_t frameP, @@ -1503,7 +1503,7 @@ schedule_ue_spec_br( VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_SCHEDULE_DLSCH, VCD_FUNCTION_OUT); } - +*/ //------------------------------------------------------------------------------ diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 853032aaba..3c186d8978 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -1383,11 +1383,11 @@ void fill_nfapi_ulsch_config_request_rel8(nfapi_ul_config_request_pdu_t *ul_con for (int ri=0; ri<(1<ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.aperiodic_cqi_pmi_ri_report.cc[0].ri_size); ri++) - ul_config_pdu->ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[ri] = + /*ul_config_pdu->ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[ri] = get_dl_cqi_pmi_size_pusch(cc, tmode, 1+ri, - physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic); + physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic);*/ ul_config_pdu->ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.delta_offset_cqi = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_CQI_Index; ((nfapi_ul_config_ulsch_cqi_ri_pdu*)ul_config_pdu)->cqi_ri_information.cqi_ri_information_rel9.delta_offset_ri = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_RI_Index; From 1ee9b1b684ce72920b353dbab9df5cfb3f86f415 Mon Sep 17 00:00:00 2001 From: kogo Date: Wed, 11 Oct 2017 20:03:37 +0200 Subject: [PATCH 062/125] modified enb_paramdef.h file ,, parameters fixing --- openair2/ENB_APP/enb_paramdef.h | 203 ++++++++++++++++++-------------- 1 file changed, 112 insertions(+), 91 deletions(-) diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index 0165d5b8fc..02132a3054 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -491,99 +491,120 @@ static int DEFENBS[] = {0}; +#define ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13 "schedulingInfoSIB1_BR_r13" +#define ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13 "cellSelectionInfoCE_r13" +#define ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13 "q_RxLevMinCE_r13" +#define ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13 "bandwidthReducedAccessRelatedInfo_r13" +#define ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13 "si_WindowLength_BR_r13" +#define ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13 "si_RepetitionPattern_r13" +#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13 "fdd_DownlinkOrTddSubframeBitmapBR_r13" +#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13 "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" +#define ENB_CONFIG_STRING_START_SYMBOL_BR_R13 "startSymbolBR_r13" +#define ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13 "si_HoppingConfigCommon_r13" +#define ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13 "si_ValidityTime_r13" +#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13 "freqHoppingParametersDL_r13" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 "mpdcch_pdsch_HoppingNB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13 "interval_DLHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "interval_DLHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13 "interval_DLHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "interval_DLHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "mpdcch_pdsch_HoppingOffset_r13" + + + #define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" #define BRPARAMS_DESC { \ -{"schedulingInfoSIB1_BR_r13", NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ -{"cellSelectionInfoCE_r13", NULL, 0, strptr:&cellSelectionInfoCE_r13, defintval:"ENABLE", TYPE_STRING, 0}, \ -{"q_RxLevMinCE_r13", NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ -{"bandwidthReducedAccessRelatedInfo_r13", NULL, 0, strptr:&bandwidthReducedAccessRelatedInfo_r13, defintval:"ENABLE", TYPE_STRING, 0}, \ -{"si_WindowLength_BR_r13", NULL, 0, strptr:&si_WindowLength_BR_r13, defintval:"ms20", TYPE_STRING, 0}, \ -{"si_RepetitionPattern_r13", NULL, 0, strptr:&si_RepetitionPattern_r13, defintval:"everyRF", TYPE_STRING, 0}, \ -{"fdd_DownlinkOrTddSubframeBitmapBR_r13", NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defintval:"subframePattern40-r13", TYPE_STRING, 0}, \ -{"fdd_DownlinkOrTddSubframeBitmapBR_val_r13", NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defintval:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ -{"startSymbolBR_r13", NULL, 0, iptr:&startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ - {"si_HoppingConfigCommon_r13", NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defintval:"off", TYPE_STRING, 0}, \ -{"si_ValidityTime_r13", NULL, 0, strptr:&si_ValidityTime_r13, defintval:"true", TYPE_STRING, 0}, \ -{"freqHoppingParametersDL_r13", NULL, 0, strptr:&freqHoppingParametersDL_r13, defintval:"DISABLE", TYPE_STRING, 0}, \ -{"mpdcch_pdsch_HoppingNB_r13", NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defintval:"nb2", TYPE_STRING, 0}, \ -{"interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defintval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{"interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defintval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{"interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"mpdcch_pdsch_HoppingOffset_r13", NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level0_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level1_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level2_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ -{"pucch_NumRepetitionCE_Msg4_Level3_r13", NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ -{"rach_preamblesGroupAConfig", NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ } #define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" From 56eedf67faa213ed43dca369d44ffc5d38068dec Mon Sep 17 00:00:00 2001 From: Ahmed Elias Date: Sun, 15 Oct 2017 08:47:46 +0200 Subject: [PATCH 063/125] semi stablr version still need to add br configuration parameters --- openair1/SCHED/fapi_l1.c | 8 +- openair2/ENB_APP/enb_config.c | 3817 ++++++++--------- .../LAYER2/MAC/eNB_scheduler_primitives.c | 4 +- 3 files changed, 1890 insertions(+), 1939 deletions(-) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index cf846947dc..ed0ccf3480 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -275,8 +275,8 @@ void handle_ulsch_cqi_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request ulsch_harq->frame = frame; ulsch_harq->subframe = subframe; ulsch_harq->O_RI = rel9->aperiodic_cqi_pmi_ri_report.cc[0].ri_size; - //ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; - //if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; + ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; + if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; ulsch->beta_offset_ri_times8 = to_beta_offset_ri[rel9->delta_offset_ri]; ulsch->beta_offset_cqi_times8 = to_beta_offset_cqi[rel9->delta_offset_cqi]; LOG_I(PHY,"Filling ulsch_cqi_ri information for frame %d, subframe %d : O_RI %d, Or1 %d, beta_offset_cqi_times8 %d (%d)\n", @@ -296,10 +296,10 @@ void handle_ulsch_cqi_harq_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_re ulsch_harq->frame = frame; ulsch_harq->subframe = subframe; ulsch_harq->O_RI = rel9->aperiodic_cqi_pmi_ri_report.cc[0].ri_size; - //ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; + ulsch_harq->Or1 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[0]; ulsch_harq->O_ACK = harq_information->harq_information_rel10.harq_size; - //if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; + if (ulsch_harq->O_RI>1) ulsch_harq->Or2 = rel9->aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[1]; ulsch->beta_offset_harqack_times8 = to_beta_offset_harqack[harq_information->harq_information_rel10.delta_offset_harq]; ulsch->beta_offset_ri_times8 = to_beta_offset_ri[rel9->delta_offset_ri]; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 9a9e25c336..f941d8a8db 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -352,2005 +352,1956 @@ void RCconfig_macrlc() { } } -int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { +int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) +{ + int num_enbs = 0; - int num_enbs = 0; - - int num_component_carriers = 0; - int j,k = 0; - int32_t enb_id = 0; - int nb_cc = 0; + int num_component_carriers = 0; + int j,k = 0; + int32_t enb_id = 0; + int nb_cc = 0; - char* frame_type = NULL; - int32_t tdd_config = 0; - int32_t tdd_config_s = 0; + char* frame_type = NULL; + int32_t tdd_config = 0; + int32_t tdd_config_s = 0; - char* prefix_type = NULL; - char* pbch_repetition = NULL; - - int32_t eutra_band = 0; - long long int downlink_frequency = 0; - int32_t uplink_frequency_offset = 0; - int32_t Nid_cell = 0; - int32_t Nid_cell_mbsfn = 0; - int32_t N_RB_DL = 0; - int32_t nb_antenna_ports = 0; + char* prefix_type = NULL; + char* pbch_repetition = NULL; - int32_t prach_root = 0; - int32_t prach_config_index = 0; - char* prach_high_speed = NULL; - int32_t prach_zero_correlation = 0; - int32_t prach_freq_offset = 0; - int32_t pucch_delta_shift = 0; - int32_t pucch_nRB_CQI = 0; - int32_t pucch_nCS_AN = 0; -//#if !defined(Rel10) && !defined(Rel14) - int32_t pucch_n1_AN = 0; -//#endif - int32_t pdsch_referenceSignalPower = 0; - int32_t pdsch_p_b = 0; - int32_t pusch_n_SB = 0; - char * pusch_hoppingMode = NULL; - int32_t pusch_hoppingOffset = 0; - char* pusch_enable64QAM = NULL; - char* pusch_groupHoppingEnabled = NULL; - int32_t pusch_groupAssignment = 0; - char* pusch_sequenceHoppingEnabled = NULL; - int32_t pusch_nDMRS1 = 0; - char* phich_duration = NULL; - char* phich_resource = NULL; - char* srs_enable = NULL; - int32_t srs_BandwidthConfig = 0; - int32_t srs_SubframeConfig = 0; - char* srs_ackNackST = NULL; - char* srs_MaxUpPts = NULL; - int32_t pusch_p0_Nominal = 0; - char* pusch_alpha = NULL; - int32_t pucch_p0_Nominal = 0; - int32_t msg3_delta_Preamble = 0; - //int32_t ul_CyclicPrefixLength = 0; - char* pucch_deltaF_Format1 = NULL; - //const char* pucch_deltaF_Format1a = NULL; - char* pucch_deltaF_Format1b = NULL; - char* pucch_deltaF_Format2 = NULL; - char* pucch_deltaF_Format2a = NULL; - char* pucch_deltaF_Format2b = NULL; - int32_t rach_numberOfRA_Preambles = 0; - char* rach_preamblesGroupAConfig = NULL; - int32_t rach_sizeOfRA_PreamblesGroupA = 0; - int32_t rach_messageSizeGroupA = 0; - char* rach_messagePowerOffsetGroupB = NULL; - int32_t rach_powerRampingStep = 0; - int32_t rach_preambleInitialReceivedTargetPower = 0; - int32_t rach_preambleTransMax = 0; - int32_t rach_raResponseWindowSize = 0; - int32_t rach_macContentionResolutionTimer = 0; - int32_t rach_maxHARQ_Msg3Tx = 0; - int32_t pcch_defaultPagingCycle = 0; - char* pcch_nB = NULL; - int32_t bcch_modificationPeriodCoeff = 0; - int32_t ue_TimersAndConstants_t300 = 0; - int32_t ue_TimersAndConstants_t301 = 0; - int32_t ue_TimersAndConstants_t310 = 0; - int32_t ue_TimersAndConstants_t311 = 0; - int32_t ue_TimersAndConstants_n310 = 0; - int32_t ue_TimersAndConstants_n311 = 0; - int32_t ue_TransmissionMode = 0; + int32_t eutra_band = 0; + long long int downlink_frequency = 0; + int32_t uplink_frequency_offset = 0; + int32_t Nid_cell = 0; + int32_t Nid_cell_mbsfn = 0; + int32_t N_RB_DL = 0; + int32_t nb_antenna_ports = 0; + + int32_t prach_root = 0; + int32_t prach_config_index = 0; + char* prach_high_speed = NULL; + int32_t prach_zero_correlation = 0; + int32_t prach_freq_offset = 0; + int32_t pucch_delta_shift = 0; + int32_t pucch_nRB_CQI = 0; + int32_t pucch_nCS_AN = 0; + //#if !defined(Rel10) && !defined(Rel14) + int32_t pucch_n1_AN = 0; + //#endif + int32_t pdsch_referenceSignalPower = 0; + int32_t pdsch_p_b = 0; + int32_t pusch_n_SB = 0; + char * pusch_hoppingMode = NULL; + int32_t pusch_hoppingOffset = 0; + char* pusch_enable64QAM = NULL; + char* pusch_groupHoppingEnabled = NULL; + int32_t pusch_groupAssignment = 0; + char* pusch_sequenceHoppingEnabled = NULL; + int32_t pusch_nDMRS1 = 0; + char* phich_duration = NULL; + char* phich_resource = NULL; + char* srs_enable = NULL; + int32_t srs_BandwidthConfig = 0; + int32_t srs_SubframeConfig = 0; + char* srs_ackNackST = NULL; + char* srs_MaxUpPts = NULL; + int32_t pusch_p0_Nominal = 0; + char* pusch_alpha = NULL; + int32_t pucch_p0_Nominal = 0; + int32_t msg3_delta_Preamble = 0; + //int32_t ul_CyclicPrefixLength = 0; + char* pucch_deltaF_Format1 = NULL; + //const char* pucch_deltaF_Format1a = NULL; + char* pucch_deltaF_Format1b = NULL; + char* pucch_deltaF_Format2 = NULL; + char* pucch_deltaF_Format2a = NULL; + char* pucch_deltaF_Format2b = NULL; + int32_t rach_numberOfRA_Preambles = 0; + char* rach_preamblesGroupAConfig = NULL; + int32_t rach_sizeOfRA_PreamblesGroupA = 0; + int32_t rach_messageSizeGroupA = 0; + char* rach_messagePowerOffsetGroupB = NULL; + int32_t rach_powerRampingStep = 0; + int32_t rach_preambleInitialReceivedTargetPower = 0; + int32_t rach_preambleTransMax = 0; + int32_t rach_raResponseWindowSize = 0; + int32_t rach_macContentionResolutionTimer = 0; + int32_t rach_maxHARQ_Msg3Tx = 0; + int32_t pcch_defaultPagingCycle = 0; + char* pcch_nB = NULL; + int32_t bcch_modificationPeriodCoeff = 0; + int32_t ue_TimersAndConstants_t300 = 0; + int32_t ue_TimersAndConstants_t301 = 0; + int32_t ue_TimersAndConstants_t310 = 0; + int32_t ue_TimersAndConstants_t311 = 0; + int32_t ue_TimersAndConstants_n310 = 0; + int32_t ue_TimersAndConstants_n311 = 0; + int32_t ue_TransmissionMode = 0; - int32_t srb1_timer_poll_retransmit = 0; - int32_t srb1_timer_reordering = 0; - int32_t srb1_timer_status_prohibit = 0; - int32_t srb1_poll_pdu = 0; - int32_t srb1_poll_byte = 0; - int32_t srb1_max_retx_threshold = 0; + int32_t srb1_timer_poll_retransmit = 0; + int32_t srb1_timer_reordering = 0; + int32_t srb1_timer_status_prohibit = 0; + int32_t srb1_poll_pdu = 0; + int32_t srb1_poll_byte = 0; + int32_t srb1_max_retx_threshold = 0; - int32_t my_int; + int32_t my_int; -/* - char* flexran_agent_interface_name = NULL; - char* flexran_agent_ipv4_address = NULL; - int32_t flexran_agent_port = 0; - char* flexran_agent_cache = NULL; - int32_t otg_ue_id = 0; - char* otg_app_type = NULL; - char* otg_bg_traffic = NULL; - char* glog_level = NULL; - char* glog_verbosity = NULL; - char* hw_log_level = NULL; - char* hw_log_verbosity = NULL; - char* phy_log_level = NULL; - char* phy_log_verbosity = NULL; - char* mac_log_level = NULL; - char* mac_log_verbosity = NULL; - char* rlc_log_level = NULL; - char* rlc_log_verbosity = NULL; - char* pdcp_log_level = NULL; - char* pdcp_log_verbosity = NULL; - char* rrc_log_level = NULL; - char* rrc_log_verbosity = NULL; - char* udp_log_verbosity = NULL; - char* osa_log_level = NULL; - char* osa_log_verbosity = NULL; -*/ - - - // for no gcc warnings - (void)my_int; - paramdef_t ENBSParams[] = ENBSPARAMS_DESC; - - paramdef_t ENBParams[] = ENBPARAMS_DESC; - paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; - - paramdef_t CCsParams[] = CCPARAMS_DESC; - paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; - - //paramdef_t brParams[] = BRPARAMS_DESC; - // paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC; - //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; - //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; - //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; - //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; - //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; - //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; - - paramdef_t SRB1Params[] = SRB1PARAMS_DESC; - - -/* get global parameters, defined outside any section in the config file */ - - config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL); - num_enbs = ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt; - AssertFatal (i0) { - // Output a list of all eNBs. - config_getlist( &ENBParamList,ENBParams,sizeof(ENBParams)/sizeof(paramdef_t),NULL); - - - - - if (ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr == NULL) { - // Calculate a default eNB ID + + + if (num_enbs>0) + { + // Output a list of all eNBs. + config_getlist( &ENBParamList,ENBParams,sizeof(ENBParams)/sizeof(paramdef_t),NULL); + + + + + if (ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr == NULL) + { + // Calculate a default eNB ID # if defined(ENABLE_USE_MME) - uint32_t hash; - - hash = s1ap_generate_eNB_id (); - enb_id = i + (hash & 0xFFFF8); + uint32_t hash; + + hash = s1ap_generate_eNB_id (); + enb_id = i + (hash & 0xFFFF8); # else - enb_id = i; + enb_id = i; # endif - } else { - enb_id = *(ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr); - } - - - printf("RRC %d: Southbound Transport %s\n",i,*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr)); - - if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "local_mac") == 0) { - - - } - else if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "cudu") == 0) { - rrc->eth_params_s.local_if_name = strdup(*(ENBParamList.paramarray[i][ENB_LOCAL_S_IF_NAME_IDX].strptr)); - rrc->eth_params_s.my_addr = strdup(*(ENBParamList.paramarray[i][ENB_LOCAL_S_ADDRESS_IDX].strptr)); - rrc->eth_params_s.remote_addr = strdup(*(ENBParamList.paramarray[i][ENB_REMOTE_S_ADDRESS_IDX].strptr)); - rrc->eth_params_s.my_portc = *(ENBParamList.paramarray[i][ENB_LOCAL_S_PORTC_IDX].uptr); - rrc->eth_params_s.remote_portc = *(ENBParamList.paramarray[i][ENB_REMOTE_S_PORTC_IDX].uptr); - rrc->eth_params_s.my_portd = *(ENBParamList.paramarray[i][ENB_LOCAL_S_PORTD_IDX].uptr); - rrc->eth_params_s.remote_portd = *(ENBParamList.paramarray[i][ENB_REMOTE_S_PORTD_IDX].uptr); - rrc->eth_params_s.transp_preference = ETH_UDP_MODE; - } - - else { // other midhaul - } - - // search if in active list - - - - - - - for (k=0; k cell_type = CELL_MACRO_ENB; - } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cell_type = CELL_HOME_ENB; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", - lib_config_file_name_pP, i, cell_type); - } - - enb_properties_loc.properties[enb_properties_loc_index]->eNB_name = strdup(enb_name); - */ - RRC_CONFIGURATION_REQ (msg_p).tac = (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_TRACKING_AREA_CODE_IDX].strptr) ); - RRC_CONFIGURATION_REQ (msg_p).mcc = (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_COUNTRY_CODE_IDX].strptr) ); - RRC_CONFIGURATION_REQ (msg_p).mnc = (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr) ); - RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length = strlen(*(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr)); - AssertFatal((RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 2) || - (RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 3), - "BAD MNC DIGIT LENGTH %d", - RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length); - - - // Parse optional physical parameters - sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k), - config_getlist( &CCsParamList,NULL,0,enbpath); - - LOG_I(RRC,"num component carriers %d \n", num_component_carriers); - if ( CCsParamList.numelt> 0) { -#ifdef CLOSE_FOR_NOW - char ccspath[MAX_OPTNAME_SIZE*2 + 16]; - - - - - - //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; - - - for (j = 0; j < CCsParamList.numelt ;j++) { - - sprintf(ccspath,"%s.%s.[%i]",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,j); - config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); - - - //printf("Component carrier %d\n",component_carrier); - - - - nb_cc++; - /* - if (strcmp(cc_node_function, "eNodeB_3GPP") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = eNodeB_3GPP; - } else if (strcmp(cc_node_function, "eNodeB_3GPP_BBU") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = eNodeB_3GPP_BBU; - } else if (strcmp(cc_node_function, "NGFI_RCC_IF4p5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RCC_IF4p5; - } else if (strcmp(cc_node_function, "NGFI_RAU_IF4p5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RAU_IF4p5; - } else if (strcmp(cc_node_function, "NGFI_RRU_IF4p5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RRU_IF4p5; - } else if (strcmp(cc_node_function, "NGFI_RRU_IF5") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_function[j] = NGFI_RRU_IF5; - } else { - AssertError (0, parse_errors ++, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for node_function choice: eNodeB_3GPP or eNodeB_3GPP_BBU or NGFI_IF4_RCC or NGFI_IF4_RRU or NGFI_IF5_RRU !\n", - lib_config_file_name_pP, i, cc_node_function); - } - - if (strcmp(cc_node_timing, "synch_to_ext_device") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_timing[j] = synch_to_ext_device; - } else if (strcmp(cc_node_timing, "synch_to_other") == 0) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_timing[j] = synch_to_other; - } else { - AssertError (0, parse_errors ++, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for node_function choice: SYNCH_TO_DEVICE or SYNCH_TO_OTHER !\n", - lib_config_file_name_pP, i, cc_node_timing); - } - - if ((cc_node_synch_ref >= -1) && (cc_node_synch_ref < num_component_carriers)) { - enb_properties_loc.properties[enb_properties_loc_index]->cc_node_synch_ref[j] = (int16_t) cc_node_synch_ref; - } else { - AssertError (0, parse_errors ++, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for node_synch_ref choice: valid CC_id or -1 !\n", - lib_config_file_name_pP, i, cc_node_synch_ref); - } - */ - - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL; - } else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } -#ifdef Rel14 - if (!pbch_repetition) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 1; - } else if (strcmp(pbch_repetition, "FALSE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 0; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", - RC.config_file_name, i, pbch_repetition); - } -#endif - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; - - if (Nid_cell>503) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", - RC.config_file_name, i, Nid_cell); - } - - RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; - - if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", - RC.config_file_name, i, N_RB_DL); - } - - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = FDD; - } else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = TDD; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, i, frame_type); - } - - - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - - - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL; - } else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } - - - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); - - - - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); - - - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - - if (enb_check_band_frequencies(RC.config_file_name, - j, - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], - RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { - AssertFatal(0, "error calling enb_check_band_frequencies\n"); - } - - if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", - RC.config_file_name, i, nb_antenna_ports); - - RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; - - - RRC_CONFIGURATION_REQ (msg_p).prach_root[j] = prach_root; - - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j] = prach_config_index; - - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); - - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = TRUE; - } else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).prach_zero_correlation[j] =prach_zero_correlation; - - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j] = prach_freq_offset; - - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - RRC_CONFIGURATION_REQ (msg_p).pucch_delta_shift[j] = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).pucch_nRB_CQI[j] = pucch_nRB_CQI; - - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); - - RRC_CONFIGURATION_REQ (msg_p).pucch_nCS_AN[j] = pucch_nCS_AN; - - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); - -#if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).pucch_n1_AN[j] = pucch_n1_AN; - - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); - -#endif - RRC_CONFIGURATION_REQ (msg_p).pdsch_referenceSignalPower[j] = pdsch_referenceSignalPower; - - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); - - RRC_CONFIGURATION_REQ (msg_p).pdsch_p_b[j] = pdsch_p_b; - - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); - - RRC_CONFIGURATION_REQ (msg_p).pusch_n_SB[j] = pusch_n_SB; - - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); - - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode,"interSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } else if (strcmp(pusch_hoppingMode,"intraAndInterSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); - - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingOffset[j] = pusch_hoppingOffset; - - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); - - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = TRUE; - } else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); - - if (!pusch_groupHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = TRUE; - } else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); - - - RRC_CONFIGURATION_REQ (msg_p).pusch_groupAssignment[j] = pusch_groupAssignment; - - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); - - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = TRUE; - } else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).pusch_nDMRS1[j] = pusch_nDMRS1; //cyclic_shift in RRC! - - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); - - if (strcmp(phich_duration,"NORMAL")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_normal; - } else if (strcmp(phich_duration,"EXTENDED")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); - - if (strcmp(phich_resource,"ONESIXTH")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_oneSixth ; - } else if (strcmp(phich_resource,"HALF")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_half; - } else if (strcmp(phich_resource,"ONE")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_one; - } else if (strcmp(phich_resource,"TWO")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_two; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); - - printf("phich.resource %ld (%s), phich.duration %ld (%s)\n", - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j],phich_resource, - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j],phich_duration); - - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = TRUE; - } else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); - - if (RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] == TRUE) { - - RRC_CONFIGURATION_REQ (msg_p).srs_BandwidthConfig[j] = srs_BandwidthConfig; - - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); - - RRC_CONFIGURATION_REQ (msg_p).srs_SubframeConfig[j] = srs_SubframeConfig; - - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); - - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = TRUE; - } else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); - - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = TRUE; - } else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); - } - - RRC_CONFIGURATION_REQ (msg_p).pusch_p0_Nominal[j] = pusch_p0_Nominal; - - if ((pusch_p0_Nominal<-126) || (pusch_p0_Nominal>24)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); - -#ifndef Rel14 - if (strcmp(pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0; - } else if (strcmp(pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al04; - } else if (strcmp(pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al05; - } else if (strcmp(pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al06; - } else if (strcmp(pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al07; - } else if (strcmp(pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al08; - } else if (strcmp(pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al09; - } else if (strcmp(pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1; - } -#else - if (strcmp(pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al0; - } else if (strcmp(pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al04; - } else if (strcmp(pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al05; - } else if (strcmp(pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al06; - } else if (strcmp(pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al07; - } else if (strcmp(pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al08; - } else if (strcmp(pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al09; - } else if (strcmp(pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al1; - } -#endif - else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); - - RRC_CONFIGURATION_REQ (msg_p).pucch_p0_Nominal[j] = pucch_p0_Nominal; - - if ((pucch_p0_Nominal<-127) || (pucch_p0_Nominal>-96)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); - - RRC_CONFIGURATION_REQ (msg_p).msg3_delta_Preamble[j] = msg3_delta_Preamble; - - if ((msg3_delta_Preamble<-1) || (msg3_delta_Preamble>6)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); - - - if (strcmp(pucch_deltaF_Format1,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } else if (strcmp(pucch_deltaF_Format1,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } else if (strcmp(pucch_deltaF_Format1,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); - - if (strcmp(pucch_deltaF_Format1b,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } else if (strcmp(pucch_deltaF_Format1b,"deltaF3")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } else if (strcmp(pucch_deltaF_Format1b,"deltaF5")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); - - - if (strcmp(pucch_deltaF_Format2,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } else if (strcmp(pucch_deltaF_Format2,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } else if (strcmp(pucch_deltaF_Format2,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); - - if (strcmp(pucch_deltaF_Format2a,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2a,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } else if (strcmp(pucch_deltaF_Format2a,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); - - if (strcmp(pucch_deltaF_Format2b,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2b,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } else if (strcmp(pucch_deltaF_Format2b,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); - - - - - RRC_CONFIGURATION_REQ (msg_p).rach_numberOfRA_Preambles[j] = (rach_numberOfRA_Preambles/4)-1; - - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>64) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); - - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = TRUE; - - - RRC_CONFIGURATION_REQ (msg_p).rach_sizeOfRA_PreamblesGroupA[j] = (rach_sizeOfRA_PreamblesGroupA/4)-1; - - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); - - - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; - - case 144: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; - - case 208: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } - - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } + } + else { + enb_id = *(ENBParamList.paramarray[i][ENB_ENB_ID_IDX].uptr); + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } - - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + printf("RRC %d: Southbound Transport %s\n",i,*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr)); - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "local_mac") == 0) { - } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); - RRC_CONFIGURATION_REQ (msg_p).rach_preambleInitialReceivedTargetPower[j] = (rach_preambleInitialReceivedTargetPower+120)/2; + } + else if (strcmp(*(ENBParamList.paramarray[i][ENB_TRANSPORT_S_PREFERENCE_IDX].strptr), "cudu") == 0) + { + rrc->eth_params_s.local_if_name = strdup(*(ENBParamList.paramarray[i][ENB_LOCAL_S_IF_NAME_IDX].strptr)); + rrc->eth_params_s.my_addr = strdup(*(ENBParamList.paramarray[i][ENB_LOCAL_S_ADDRESS_IDX].strptr)); + rrc->eth_params_s.remote_addr = strdup(*(ENBParamList.paramarray[i][ENB_REMOTE_S_ADDRESS_IDX].strptr)); + rrc->eth_params_s.my_portc = *(ENBParamList.paramarray[i][ENB_LOCAL_S_PORTC_IDX].uptr); + rrc->eth_params_s.remote_portc = *(ENBParamList.paramarray[i][ENB_REMOTE_S_PORTC_IDX].uptr); + rrc->eth_params_s.my_portd = *(ENBParamList.paramarray[i][ENB_LOCAL_S_PORTD_IDX].uptr); + rrc->eth_params_s.remote_portd = *(ENBParamList.paramarray[i][ENB_REMOTE_S_PORTD_IDX].uptr); + rrc->eth_params_s.transp_preference = ETH_UDP_MODE; + } - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + else { // other midhaul + } + // search if in active list - RRC_CONFIGURATION_REQ (msg_p).rach_powerRampingStep[j] = rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); - switch (rach_preambleTransMax) { -#ifndef Rel14 - case 3: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; + for (k=0; k cell_type = CELL_MACRO_ENB; + } else if (strcmp(cell_type, "CELL_HOME_ENB") == 0) { + enb_properties_loc.properties[enb_properties_loc_index]->cell_type = CELL_HOME_ENB; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for cell_type choice: CELL_MACRO_ENB or CELL_HOME_ENB !\n", + lib_config_file_name_pP, i, cell_type); + } - case 8: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; + enb_properties_loc.properties[enb_properties_loc_index]->eNB_name = strdup(enb_name); + */ + RRC_CONFIGURATION_REQ (msg_p).tac = (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_TRACKING_AREA_CODE_IDX].strptr) ); + RRC_CONFIGURATION_REQ (msg_p).mcc = (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_COUNTRY_CODE_IDX].strptr) ); + RRC_CONFIGURATION_REQ (msg_p).mnc = (uint16_t)atoi( *(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr) ); + RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length = strlen(*(ENBParamList.paramarray[i][ENB_MOBILE_NETWORK_CODE_IDX].strptr)); + AssertFatal((RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 2) || + (RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length == 3), + "BAD MNC DIGIT LENGTH %d", + RRC_CONFIGURATION_REQ (msg_p).mnc_digit_length); - case 10: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; + // Parse optional physical parameters + sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k), + config_getlist( &CCsParamList,NULL,0,enbpath); - case 50: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; + LOG_I(RRC,"num component carriers %d \n", num_component_carriers); + if ( CCsParamList.numelt> 0) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; + char ccspath[MAX_OPTNAME_SIZE*2 + 16]; - case 200: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; -#else - case 3: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n10; - break; + //enb_properties_loc.properties[enb_properties_loc_index]->nb_cc = num_component_carriers; - case 20: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n20; - break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n50; - break; + for (j = 0; j < CCsParamList.numelt ;j++) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n100; - break; + sprintf(ccspath,"%s.%s.[%i]",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,j); + config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); - case 200: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n200; - break; -#endif - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).rach_raResponseWindowSize[j] = (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).rach_macContentionResolutionTimer[j] = (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).rach_maxHARQ_Msg3Tx[j] = rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - switch (pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - break; - } - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_fourT; - } else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_twoT; - } else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneT; - } else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_halfT; - } else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_quarterT; - } else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneEighthT; - } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneSixteenthT; - } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneThirtySecondT; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - - switch (ue_TimersAndConstants_t300) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms1000; - break; - - case 1500: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms1500; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = UE_TimersAndConstants__t300_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t300); - break; - - } - - switch (ue_TimersAndConstants_t301) { - case 100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms200; - break; - - case 300: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms300; - break; - - case 400: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms400; - break; - - case 600: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms600; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms1000; - break; - case 1500: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms1500; - break; + //printf("Component carrier %d\n",component_carrier); - case 2000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = UE_TimersAndConstants__t301_ms2000; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 choice: 100,200,300,400,600,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t301); - break; - - } - switch (ue_TimersAndConstants_t310) { - case 0: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms0; - break; + nb_cc++; + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - case 50: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms50; - break; + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - case 100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms100; - break; + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - case 200: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms200; - break; + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } + #ifdef Rel14 + if (!pbch_repetition) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); + else if (strcmp(pbch_repetition, "TRUE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; + } + else if (strcmp(pbch_repetition, "FALSE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", + RC.config_file_name, i, pbch_repetition); + } + #endif - case 500: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms500; - break; - - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms1000; - break; - - case 2000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = UE_TimersAndConstants__t310_ms2000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 choice: 0,50,100,200,500,1000,1500,2000 ", - RC.config_file_name, i, ue_TimersAndConstants_t310); - break; - - } - - switch (ue_TimersAndConstants_t311) { - case 1000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms1000; - break; - - case 3110: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms3000; - break; - - case 5000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms5000; - break; - - case 10000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms10000; - break; - - case 15000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms15000; - break; - - case 20000: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms20000; - break; - - case 31100: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = UE_TimersAndConstants__t311_ms30000; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1000,3000,5000,10000,150000,20000,30000", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TimersAndConstants_n310) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n4; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = UE_TimersAndConstants__n310_n20; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 choice: 1,2,3,4,6,6,8,10,20", - RC.config_file_name, i, ue_TimersAndConstants_n311); - break; - - } - - switch (ue_TimersAndConstants_n311) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n6; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = UE_TimersAndConstants__n311_n10; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 choice: 1,2,3,4,5,6,8,10", - RC.config_file_name, i, ue_TimersAndConstants_t311); - break; - - } - - switch (ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm1; - break; - case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm2; - break; - case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm7; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); - break; - } - - - sprintf(brpath,"%s.%s.[%i].%s",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,ENB_CONFIG_STRING_BR_PARAMETERS,j); - config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); - - } -#endif - } - char srb1path[MAX_OPTNAME_SIZE*2 + 8]; - sprintf(srb1path,"%s.%s",enbpath,ENB_CONFIG_STRING_SRB1); - int npar = config_get( SRB1Params,sizeof(SRB1Params)/sizeof(paramdef_t), srb1path); - if (npar == sizeof(SRB1Params)/sizeof(paramdef_t)) { - switch (srb1_max_retx_threshold) { - case 1: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; - break; - - case 2: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; - break; - - case 3: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; - break; - - case 4: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; - break; - - case 6: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; - break; - - case 8: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - break; - - case 16: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; - break; - - case 32: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", - RC.config_file_name, i, srb1_max_retx_threshold); - } - - - switch (srb1_poll_pdu) { - case 4: - rrc->srb1_poll_pdu = PollPDU_p4; - break; - - case 8: - rrc->srb1_poll_pdu = PollPDU_p8; - break; - - case 16: - rrc->srb1_poll_pdu = PollPDU_p16; - break; - - case 32: - rrc->srb1_poll_pdu = PollPDU_p32; - break; - - case 64: - rrc->srb1_poll_pdu = PollPDU_p64; - break; - - case 128: - rrc->srb1_poll_pdu = PollPDU_p128; - break; - - case 256: - rrc->srb1_poll_pdu = PollPDU_p256; - break; - - default: - if (srb1_poll_pdu >= 10000) - rrc->srb1_poll_pdu = PollPDU_pInfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", - RC.config_file_name, i, srb1_poll_pdu); - } - - rrc->srb1_poll_byte = srb1_poll_byte; - - switch (srb1_poll_byte) { - case 25: - rrc->srb1_poll_byte = PollByte_kB25; - break; - - case 50: - rrc->srb1_poll_byte = PollByte_kB50; - break; - - case 75: - rrc->srb1_poll_byte = PollByte_kB75; - break; - - case 100: - rrc->srb1_poll_byte = PollByte_kB100; - break; - - case 125: - rrc->srb1_poll_byte = PollByte_kB125; - break; - - case 250: - rrc->srb1_poll_byte = PollByte_kB250; - break; - - case 375: - rrc->srb1_poll_byte = PollByte_kB375; - break; - - case 500: - rrc->srb1_poll_byte = PollByte_kB500; - break; - - case 750: - rrc->srb1_poll_byte = PollByte_kB750; - break; - - case 1000: - rrc->srb1_poll_byte = PollByte_kB1000; - break; - - case 1250: - rrc->srb1_poll_byte = PollByte_kB1250; - break; - - case 1500: - rrc->srb1_poll_byte = PollByte_kB1500; - break; - - case 2000: - rrc->srb1_poll_byte = PollByte_kB2000; - break; - - case 3000: - rrc->srb1_poll_byte = PollByte_kB3000; - break; - - default: - if (srb1_poll_byte >= 10000) - rrc->srb1_poll_byte = PollByte_kBinfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", - RC.config_file_name, i, srb1_poll_byte); - } - - if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5)/5; - } else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300)/50 + 50; - } else { - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } - - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit/5; - } else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300)/50 + 51; - } else { - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", - RC.config_file_name, i, srb1_timer_status_prohibit); - } - - switch (srb1_timer_reordering) { - case 0: - rrc->srb1_timer_reordering = T_Reordering_ms0; - break; - - case 5: - rrc->srb1_timer_reordering = T_Reordering_ms5; - break; - - case 10: - rrc->srb1_timer_reordering = T_Reordering_ms10; - break; - - case 15: - rrc->srb1_timer_reordering = T_Reordering_ms15; - break; - - case 20: - rrc->srb1_timer_reordering = T_Reordering_ms20; - break; - - case 25: - rrc->srb1_timer_reordering = T_Reordering_ms25; - break; - - case 30: - rrc->srb1_timer_reordering = T_Reordering_ms30; - break; - - case 35: - rrc->srb1_timer_reordering = T_Reordering_ms35; - break; - - case 40: - rrc->srb1_timer_reordering = T_Reordering_ms40; - break; - - case 45: - rrc->srb1_timer_reordering = T_Reordering_ms45; - break; - - case 50: - rrc->srb1_timer_reordering = T_Reordering_ms50; - break; - - case 55: - rrc->srb1_timer_reordering = T_Reordering_ms55; - break; - - case 60: - rrc->srb1_timer_reordering = T_Reordering_ms60; - break; - - case 65: - rrc->srb1_timer_reordering = T_Reordering_ms65; - break; - - case 70: - rrc->srb1_timer_reordering = T_Reordering_ms70; - break; - - case 75: - rrc->srb1_timer_reordering = T_Reordering_ms75; - break; - - case 80: - rrc->srb1_timer_reordering = T_Reordering_ms80; - break; - - case 85: - rrc->srb1_timer_reordering = T_Reordering_ms85; - break; - - case 90: - rrc->srb1_timer_reordering = T_Reordering_ms90; - break; - - case 95: - rrc->srb1_timer_reordering = T_Reordering_ms95; - break; - - case 100: - rrc->srb1_timer_reordering = T_Reordering_ms100; - break; - - case 110: - rrc->srb1_timer_reordering = T_Reordering_ms110; - break; - - case 120: - rrc->srb1_timer_reordering = T_Reordering_ms120; - break; - - case 130: - rrc->srb1_timer_reordering = T_Reordering_ms130; - break; - - case 140: - rrc->srb1_timer_reordering = T_Reordering_ms140; - break; - - case 150: - rrc->srb1_timer_reordering = T_Reordering_ms150; - break; - - case 160: - rrc->srb1_timer_reordering = T_Reordering_ms160; - break; - - case 170: - rrc->srb1_timer_reordering = T_Reordering_ms170; - break; - - case 180: - rrc->srb1_timer_reordering = T_Reordering_ms180; - break; - - case 190: - rrc->srb1_timer_reordering = T_Reordering_ms190; - break; - - case 200: - rrc->srb1_timer_reordering = T_Reordering_ms200; - break; - - default: - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } - - } else { - rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; - rrc->srb1_timer_reordering = T_Reordering_ms35; - rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; - rrc->srb1_poll_pdu = PollPDU_p4; - rrc->srb1_poll_byte = PollByte_kBinfinity; - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - } - /* - // Network Controller - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_CONTROLLER_CONFIG); - - if (subsetting != NULL) { - if ( ( - config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_INTERFACE_NAME, - (const char **)&flexran_agent_interface_name) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_IPV4_ADDRESS, - (const char **)&flexran_agent_ipv4_address) - && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_PORT, - &flexran_agent_port) - && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_CACHE, - (const char **)&flexran_agent_cache) - ) - ) { - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_interface_name = strdup(flexran_agent_interface_name); - cidr = flexran_agent_ipv4_address; - address = strtok(cidr, "/"); - //enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address = strdup(address); - if (address) { - IPV4_STR_ADDR_TO_INT_NWBO (address, enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB Agent !\n" ); - } - - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_port = flexran_agent_port; - enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_cache = strdup(flexran_agent_cache); - } - } - */ - - /* - // OTG _CONFIG - setting_otg = config_setting_get_member (setting_enb, ENB_CONF_STRING_OTG_CONFIG); - - if (setting_otg != NULL) { - num_otg_elements = config_setting_length(setting_otg); - printf("num otg elements %d \n", num_otg_elements); - enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements = 0; - - for (j = 0; j < num_otg_elements; j++) { - subsetting_otg=config_setting_get_elem(setting_otg, j); - - if (config_setting_lookup_int(subsetting_otg, ENB_CONF_STRING_OTG_UE_ID, &otg_ue_id)) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = otg_ue_id; - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = 1; - } - - if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_APP_TYPE, (const char **)&otg_app_type)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = map_str_to_int(otg_app_type_names,otg_app_type))== -1) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = BCBR; - } - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = NO_PREDEFINED_TRAFFIC; // 0 - } - - if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_BG_TRAFFIC, (const char **)&otg_bg_traffic)) { - - if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = map_str_to_int(switch_names,otg_bg_traffic)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j]=0; - } - } else { - enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = 0; - printf("otg bg %s\n", otg_bg_traffic); - } - - enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements+=1; - - } - } - - // log_config - subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_LOG_CONFIG); - - if (subsetting != NULL) { - // global - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_LEVEL, (const char **) &glog_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_level = map_str_to_int(log_level_names, glog_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - } - - //printf( "\tGlobal log level :\t%s->%d\n",glog_level, enb_properties_loc.properties[enb_properties_loc_index]->glog_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,(const char **) &glog_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = map_str_to_int(log_verbosity_names, glog_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - } - - //printf( "\tGlobal log verbosity:\t%s->%d\n",glog_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - } - - // HW - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_LEVEL, (const char **) &hw_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = map_str_to_int(log_level_names,hw_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - } - - //printf( "\tHW log level :\t%s->%d\n",hw_log_level,enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_VERBOSITY, (const char **) &hw_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = map_str_to_int(log_verbosity_names,hw_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - } - - //printf( "\tHW log verbosity:\t%s->%d\n",hw_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - } - - // phy - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_LEVEL,(const char **) &phy_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = map_str_to_int(log_level_names,phy_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - } - - //printf( "\tPHY log level :\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_VERBOSITY, (const char **)&phy_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = map_str_to_int(log_verbosity_names,phy_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - } - - //printf( "\tPHY log verbosity:\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - } - - //mac - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_LEVEL, (const char **)&mac_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = map_str_to_int(log_level_names,mac_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - } - - //printf( "\tMAC log level :\t%s->%d\n",mac_log_level,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_VERBOSITY, (const char **)&mac_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = map_str_to_int(log_verbosity_names,mac_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - } - - //printf( "\tMAC log verbosity:\t%s->%d\n",mac_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - } - - //rlc - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_LEVEL, (const char **)&rlc_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = map_str_to_int(log_level_names,rlc_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - } - - //printf( "\tRLC log level :\t%s->%d\n",rlc_log_level, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_VERBOSITY, (const char **)&rlc_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = map_str_to_int(log_verbosity_names,rlc_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - } - - //printf( "\tRLC log verbosity:\t%s->%d\n",rlc_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - } - - //pdcp - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_LEVEL, (const char **)&pdcp_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = map_str_to_int(log_level_names,pdcp_log_level)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - } - - //printf( "\tPDCP log level :\t%s->%d\n",pdcp_log_level, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_VERBOSITY, (const char **)&pdcp_log_verbosity)) { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = map_str_to_int(log_verbosity_names,pdcp_log_verbosity); - //printf( "\tPDCP log verbosity:\t%s->%d\n",pdcp_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; - } - - //rrc - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_LEVEL, (const char **)&rrc_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = map_str_to_int(log_level_names,rrc_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - } - - //printf( "\tRRC log level :\t%s->%d\n",rrc_log_level,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_VERBOSITY, (const char **)&rrc_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = map_str_to_int(log_verbosity_names,rrc_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - } - - //printf( "\tRRC log verbosity:\t%s->%d\n",rrc_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_LEVEL, (const char **)>pu_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = map_str_to_int(log_level_names,gtpu_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - } - - //printf( "\tGTPU log level :\t%s->%d\n",gtpu_log_level,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_VERBOSITY, (const char **)>pu_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = map_str_to_int(log_verbosity_names,gtpu_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - } - - //printf( "\tGTPU log verbosity:\t%s->%d\n",gtpu_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_LEVEL, (const char **)&udp_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = map_str_to_int(log_level_names,udp_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - } - - //printf( "\tUDP log level :\t%s->%d\n",udp_log_level,enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_VERBOSITY, (const char **)&udp_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = map_str_to_int(log_verbosity_names,udp_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - } - - //printf( "\tUDP log verbosity:\t%s->%d\n",udp_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_LEVEL, (const char **)&osa_log_level)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = map_str_to_int(log_level_names,osa_log_level)) == -1 ) { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - } - - //printf( "\tOSA log level :\t%s->%d\n",osa_log_level,enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - } - - if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_VERBOSITY, (const char **)&osa_log_verbosity)) { - if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = map_str_to_int(log_verbosity_names,osa_log_verbosity)) == -1) { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } - - //printf( "\tOSA log verbosity:\t%s->%d\n",osa_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gosa_log_verbosity); - } else { - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } - - } else { // not configuration is given - enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; - enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; - } - */ - break; - } + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; + if (Nid_cell>503) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", + RC.config_file_name, i, Nid_cell); + } + + RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; + + if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", + RC.config_file_name, i, N_RB_DL); + } + + if (strcmp(frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; + } + else if (strcmp(frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + RC.config_file_name, i, frame_type); + } + + + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + + + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + + + + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } + + + + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); + + + + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); + + + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + + if (enb_check_band_frequencies(RC.config_file_name, + j, + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], + RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { + AssertFatal(0, "error calling enb_check_band_frequencies\n"); + } + + if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", + RC.config_file_name, i, nb_antenna_ports); + + RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); + + #if !defined(Rel10) && !defined(Rel14) + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; + + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); + + #endif + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; + + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; + + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; + + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; + + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; + + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; + + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); + + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); + + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; + + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + + #ifndef Rel14 + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } + #else + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; + } + #endif + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; + + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; + + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); + + + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); + + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); + + + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); + + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); + + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); + + + // 27 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n4 = 0, + // 28 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n8 = 1, + // 29 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n12 = 2, + // 30 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n16 = 3, + // 31 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n20 = 4, + // 32 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n24 = 5, + // 33 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n28 = 6, + // 34 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n32 = 7, + // 35 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n36 = 8, + // 36 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n40 = 9, + // 37 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n44 = 10, + // 38 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n48 = 11, + // 39 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n52 = 12, + // 40 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n56 = 13, + // 41 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n60 = 14, + // 42 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64 = 15 + + + if (!strcmp(rach_numberOfRA_Preambles, "n4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (4 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (8 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (12 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (16 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (20 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (24 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (28 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (32 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (36 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (40 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (44 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (48 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (52 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (56 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (60 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (64 / 4) - 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + } + + printf("[DEBUGGIN][KOGO][TESTING]: number of RA Preambles: %s - %d\n", + rach_numberOfRA_Preambles, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles); + + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; + + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA / 4) - 1; + + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; + + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; + + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } + + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); + + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; + + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); + + + + switch (rach_preambleTransMax) { + #ifndef Rel14 + _ case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; + + #else + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; + break; + #endif + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + if (!strcmp(pcch_defaultPagingCycle, "rf32")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; + } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; + } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + } + + printf("[DEBUGGING][KOGO][CHAR*] : pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle); + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", + RC.config_file_name, i, ue_TimersAndConstants_t300); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t300 : %s - %d\n", ue_TimersAndConstants_t300, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300); + + if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", + RC.config_file_name, i, ue_TimersAndConstants_t301); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t301 : %s - %d\n", ue_TimersAndConstants_t301, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301); + + if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", + RC.config_file_name, i, ue_TimersAndConstants_t310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t310 : %s - %d\n", ue_TimersAndConstants_t310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310); + + + if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", + RC.config_file_name, i, ue_TimersAndConstants_t311); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t311 : %s - %d\n", ue_TimersAndConstants_t311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311); + + + if (!strcmp(ue_TimersAndConstants_n310, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; + } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; + } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; + } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; + } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; + } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; + } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; + } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", + RC.config_file_name, i, ue_TimersAndConstants_n310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n310 : %s - %d\n", ue_TimersAndConstants_n310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310); + + + if (!strcmp(ue_TimersAndConstants_n311, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; + } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; + } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; + } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; + } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; + } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; + } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; + } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", + RC.config_file_name, i, ue_TimersAndConstants_n311); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n311 : %s - %d\n", ue_TimersAndConstants_n311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311); + + + if (!strcmp(ue_TransmissionMode, "tm1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; + } else if (!strcmp(ue_TransmissionMode, "tm2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; + } else if (!strcmp(ue_TransmissionMode, "tm3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; + } else if (!strcmp(ue_TransmissionMode, "tm4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; + } else if (!strcmp(ue_TransmissionMode, "tm5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; + } else if (!strcmp(ue_TransmissionMode, "tm6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; + } else if (!strcmp(ue_TransmissionMode, "tm7")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", + RC.config_file_name, i, ue_TransmissionMode); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode); + + + + + //sprintf(brpath,"%s.%s.[%i].%s",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,ENB_CONFIG_STRING_BR_PARAMETERS,j); + //config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); + + } + } + char srb1path[MAX_OPTNAME_SIZE*2 + 8]; + sprintf(srb1path,"%s.%s",enbpath,ENB_CONFIG_STRING_SRB1); + int npar = config_get( SRB1Params,sizeof(SRB1Params)/sizeof(paramdef_t), srb1path); + if (npar == sizeof(SRB1Params)/sizeof(paramdef_t)) { + switch (srb1_max_retx_threshold) { + case 1: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; + break; + + case 2: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; + break; + + case 3: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; + break; + + case 4: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; + break; + + case 6: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; + break; + + case 8: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + break; + + case 16: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; + break; + + case 32: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", + RC.config_file_name, i, srb1_max_retx_threshold); + } + + + switch (srb1_poll_pdu) { + case 4: + rrc->srb1_poll_pdu = PollPDU_p4; + break; + + case 8: + rrc->srb1_poll_pdu = PollPDU_p8; + break; + + case 16: + rrc->srb1_poll_pdu = PollPDU_p16; + break; + + case 32: + rrc->srb1_poll_pdu = PollPDU_p32; + break; + + case 64: + rrc->srb1_poll_pdu = PollPDU_p64; + break; + + case 128: + rrc->srb1_poll_pdu = PollPDU_p128; + break; + + case 256: + rrc->srb1_poll_pdu = PollPDU_p256; + break; + + default: + if (srb1_poll_pdu >= 10000) + rrc->srb1_poll_pdu = PollPDU_pInfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", + RC.config_file_name, i, srb1_poll_pdu); + } + + rrc->srb1_poll_byte = srb1_poll_byte; + + switch (srb1_poll_byte) { + case 25: + rrc->srb1_poll_byte = PollByte_kB25; + break; + + case 50: + rrc->srb1_poll_byte = PollByte_kB50; + break; + + case 75: + rrc->srb1_poll_byte = PollByte_kB75; + break; + + case 100: + rrc->srb1_poll_byte = PollByte_kB100; + break; + + case 125: + rrc->srb1_poll_byte = PollByte_kB125; + break; + + case 250: + rrc->srb1_poll_byte = PollByte_kB250; + break; + + case 375: + rrc->srb1_poll_byte = PollByte_kB375; + break; + + case 500: + rrc->srb1_poll_byte = PollByte_kB500; + break; + + case 750: + rrc->srb1_poll_byte = PollByte_kB750; + break; + + case 1000: + rrc->srb1_poll_byte = PollByte_kB1000; + break; + + case 1250: + rrc->srb1_poll_byte = PollByte_kB1250; + break; + + case 1500: + rrc->srb1_poll_byte = PollByte_kB1500; + break; + + case 2000: + rrc->srb1_poll_byte = PollByte_kB2000; + break; + + case 3000: + rrc->srb1_poll_byte = PollByte_kB3000; + break; + + default: + if (srb1_poll_byte >= 10000) + rrc->srb1_poll_byte = PollByte_kBinfinity; + else + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", + RC.config_file_name, i, srb1_poll_byte); + } + + if (srb1_timer_poll_retransmit <= 250) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5)/5; + } else if (srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300)/50 + 50; + } else { + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_timer_poll_retransmit); + } + + if (srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit/5; + } else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300)/50 + 51; + } else { + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + RC.config_file_name, i, srb1_timer_status_prohibit); + } + + switch (srb1_timer_reordering) { + case 0: + rrc->srb1_timer_reordering = T_Reordering_ms0; + break; + + case 5: + rrc->srb1_timer_reordering = T_Reordering_ms5; + break; + + case 10: + rrc->srb1_timer_reordering = T_Reordering_ms10; + break; + + case 15: + rrc->srb1_timer_reordering = T_Reordering_ms15; + break; + + case 20: + rrc->srb1_timer_reordering = T_Reordering_ms20; + break; + + case 25: + rrc->srb1_timer_reordering = T_Reordering_ms25; + break; + + case 30: + rrc->srb1_timer_reordering = T_Reordering_ms30; + break; + + case 35: + rrc->srb1_timer_reordering = T_Reordering_ms35; + break; + + case 40: + rrc->srb1_timer_reordering = T_Reordering_ms40; + break; + + case 45: + rrc->srb1_timer_reordering = T_Reordering_ms45; + break; + + case 50: + rrc->srb1_timer_reordering = T_Reordering_ms50; + break; + + case 55: + rrc->srb1_timer_reordering = T_Reordering_ms55; + break; + + case 60: + rrc->srb1_timer_reordering = T_Reordering_ms60; + break; + + case 65: + rrc->srb1_timer_reordering = T_Reordering_ms65; + break; + + case 70: + rrc->srb1_timer_reordering = T_Reordering_ms70; + break; + + case 75: + rrc->srb1_timer_reordering = T_Reordering_ms75; + break; + + case 80: + rrc->srb1_timer_reordering = T_Reordering_ms80; + break; + + case 85: + rrc->srb1_timer_reordering = T_Reordering_ms85; + break; + + case 90: + rrc->srb1_timer_reordering = T_Reordering_ms90; + break; + + case 95: + rrc->srb1_timer_reordering = T_Reordering_ms95; + break; + + case 100: + rrc->srb1_timer_reordering = T_Reordering_ms100; + break; + + case 110: + rrc->srb1_timer_reordering = T_Reordering_ms110; + break; + + case 120: + rrc->srb1_timer_reordering = T_Reordering_ms120; + break; + + case 130: + rrc->srb1_timer_reordering = T_Reordering_ms130; + break; + + case 140: + rrc->srb1_timer_reordering = T_Reordering_ms140; + break; + + case 150: + rrc->srb1_timer_reordering = T_Reordering_ms150; + break; + + case 160: + rrc->srb1_timer_reordering = T_Reordering_ms160; + break; + + case 170: + rrc->srb1_timer_reordering = T_Reordering_ms170; + break; + + case 180: + rrc->srb1_timer_reordering = T_Reordering_ms180; + break; + + case 190: + rrc->srb1_timer_reordering = T_Reordering_ms190; + break; + + case 200: + rrc->srb1_timer_reordering = T_Reordering_ms200; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", + RC.config_file_name, i, srb1_timer_reordering); + } + + } else { + rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; + rrc->srb1_timer_reordering = T_Reordering_ms35; + rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; + rrc->srb1_poll_pdu = PollPDU_p4; + rrc->srb1_poll_byte = PollByte_kBinfinity; + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + } + /* + // Network Controller + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_CONTROLLER_CONFIG); + + if (subsetting != NULL) { + if ( ( + config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_INTERFACE_NAME, + (const char **)&flexran_agent_interface_name) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_IPV4_ADDRESS, + (const char **)&flexran_agent_ipv4_address) + && config_setting_lookup_int(subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_PORT, + &flexran_agent_port) + && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_FLEXRAN_AGENT_CACHE, + (const char **)&flexran_agent_cache) + ) + ) { + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_interface_name = strdup(flexran_agent_interface_name); + cidr = flexran_agent_ipv4_address; + address = strtok(cidr, "/"); + //enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address = strdup(address); + if (address) { + IPV4_STR_ADDR_TO_INT_NWBO (address, enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_ipv4_address, "BAD IP ADDRESS FORMAT FOR eNB Agent !\n" ); + } + + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_port = flexran_agent_port; + enb_properties_loc.properties[enb_properties_loc_index]->flexran_agent_cache = strdup(flexran_agent_cache); + } + } + */ + + /* + // OTG _CONFIG + setting_otg = config_setting_get_member (setting_enb, ENB_CONF_STRING_OTG_CONFIG); + + if (setting_otg != NULL) { + num_otg_elements = config_setting_length(setting_otg); + printf("num otg elements %d \n", num_otg_elements); + enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements = 0; + + for (j = 0; j < num_otg_elements; j++) { + subsetting_otg=config_setting_get_elem(setting_otg, j); + + if (config_setting_lookup_int(subsetting_otg, ENB_CONF_STRING_OTG_UE_ID, &otg_ue_id)) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = otg_ue_id; + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_ue_id[j] = 1; + } + + if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_APP_TYPE, (const char **)&otg_app_type)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = map_str_to_int(otg_app_type_names,otg_app_type))== -1) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = BCBR; + } + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_app_type[j] = NO_PREDEFINED_TRAFFIC; // 0 + } + + if (config_setting_lookup_string(subsetting_otg, ENB_CONF_STRING_OTG_BG_TRAFFIC, (const char **)&otg_bg_traffic)) { + + if ((enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = map_str_to_int(switch_names,otg_bg_traffic)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j]=0; + } + } else { + enb_properties_loc.properties[enb_properties_loc_index]->otg_bg_traffic[j] = 0; + printf("otg bg %s\n", otg_bg_traffic); + } + + enb_properties_loc.properties[enb_properties_loc_index]->num_otg_elements+=1; + + } + } + + // log_config + subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_LOG_CONFIG); + + if (subsetting != NULL) { + // global + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_LEVEL, (const char **) &glog_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_level = map_str_to_int(log_level_names, glog_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + } + + //printf( "\tGlobal log level :\t%s->%d\n",glog_level, enb_properties_loc.properties[enb_properties_loc_index]->glog_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GLOBAL_LOG_VERBOSITY,(const char **) &glog_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = map_str_to_int(log_verbosity_names, glog_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + } + + //printf( "\tGlobal log verbosity:\t%s->%d\n",glog_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + } + + // HW + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_LEVEL, (const char **) &hw_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = map_str_to_int(log_level_names,hw_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + } + + //printf( "\tHW log level :\t%s->%d\n",hw_log_level,enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_HW_LOG_VERBOSITY, (const char **) &hw_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = map_str_to_int(log_verbosity_names,hw_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + } + + //printf( "\tHW log verbosity:\t%s->%d\n",hw_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + } + + // phy + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_LEVEL,(const char **) &phy_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = map_str_to_int(log_level_names,phy_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + } + + //printf( "\tPHY log level :\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PHY_LOG_VERBOSITY, (const char **)&phy_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = map_str_to_int(log_verbosity_names,phy_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + } + + //printf( "\tPHY log verbosity:\t%s->%d\n",phy_log_level,enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + } + + //mac + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_LEVEL, (const char **)&mac_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = map_str_to_int(log_level_names,mac_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + } + + //printf( "\tMAC log level :\t%s->%d\n",mac_log_level,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_MAC_LOG_VERBOSITY, (const char **)&mac_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = map_str_to_int(log_verbosity_names,mac_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + } + + //printf( "\tMAC log verbosity:\t%s->%d\n",mac_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + } + + //rlc + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_LEVEL, (const char **)&rlc_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = map_str_to_int(log_level_names,rlc_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + } + + //printf( "\tRLC log level :\t%s->%d\n",rlc_log_level, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RLC_LOG_VERBOSITY, (const char **)&rlc_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = map_str_to_int(log_verbosity_names,rlc_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + } + + //printf( "\tRLC log verbosity:\t%s->%d\n",rlc_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + } + + //pdcp + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_LEVEL, (const char **)&pdcp_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = map_str_to_int(log_level_names,pdcp_log_level)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + } + + //printf( "\tPDCP log level :\t%s->%d\n",pdcp_log_level, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_PDCP_LOG_VERBOSITY, (const char **)&pdcp_log_verbosity)) { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = map_str_to_int(log_verbosity_names,pdcp_log_verbosity); + //printf( "\tPDCP log verbosity:\t%s->%d\n",pdcp_log_verbosity, enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; + } + + //rrc + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_LEVEL, (const char **)&rrc_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = map_str_to_int(log_level_names,rrc_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + } + + //printf( "\tRRC log level :\t%s->%d\n",rrc_log_level,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_RRC_LOG_VERBOSITY, (const char **)&rrc_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = map_str_to_int(log_verbosity_names,rrc_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + } + + //printf( "\tRRC log verbosity:\t%s->%d\n",rrc_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_LEVEL, (const char **)>pu_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = map_str_to_int(log_level_names,gtpu_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + } + + //printf( "\tGTPU log level :\t%s->%d\n",gtpu_log_level,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_GTPU_LOG_VERBOSITY, (const char **)>pu_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = map_str_to_int(log_verbosity_names,gtpu_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + } + + //printf( "\tGTPU log verbosity:\t%s->%d\n",gtpu_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_LEVEL, (const char **)&udp_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = map_str_to_int(log_level_names,udp_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + } + + //printf( "\tUDP log level :\t%s->%d\n",udp_log_level,enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_UDP_LOG_VERBOSITY, (const char **)&udp_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = map_str_to_int(log_verbosity_names,udp_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + } + + //printf( "\tUDP log verbosity:\t%s->%d\n",udp_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_LEVEL, (const char **)&osa_log_level)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = map_str_to_int(log_level_names,osa_log_level)) == -1 ) { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + } + + //printf( "\tOSA log level :\t%s->%d\n",osa_log_level,enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + } + + if (config_setting_lookup_string(subsetting, ENB_CONFIG_STRING_OSA_LOG_VERBOSITY, (const char **)&osa_log_verbosity)) { + if ((enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = map_str_to_int(log_verbosity_names,osa_log_verbosity)) == -1) { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } + + //printf( "\tOSA log verbosity:\t%s->%d\n",osa_log_verbosity,enb_properties_loc.properties[enb_properties_loc_index]->gosa_log_verbosity); + } else { + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } + + } else { // not configuration is given + enb_properties_loc.properties[enb_properties_loc_index]->glog_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->glog_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->hw_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->phy_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->mac_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->rlc_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->pdcp_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->rrc_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->gtpu_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->udp_log_verbosity = LOG_MED; + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_level = LOG_INFO; + enb_properties_loc.properties[enb_properties_loc_index]->osa_log_verbosity = LOG_MED; + } + */ + break; + } + + } } - } -return 0; + return 0; } int RCconfig_gtpu(void ) { diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 3c186d8978..07097451a5 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -1383,11 +1383,11 @@ void fill_nfapi_ulsch_config_request_rel8(nfapi_ul_config_request_pdu_t *ul_con for (int ri=0; ri<(1<ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.aperiodic_cqi_pmi_ri_report.cc[0].ri_size); ri++) - /*ul_config_pdu->ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[ri] = + ul_config_pdu->ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.aperiodic_cqi_pmi_ri_report.cc[0].dl_cqi_pmi_size[ri] = get_dl_cqi_pmi_size_pusch(cc, tmode, 1+ri, - physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic);*/ + physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic); ul_config_pdu->ulsch_cqi_ri_pdu.cqi_ri_information.cqi_ri_information_rel9.delta_offset_cqi = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_CQI_Index; ((nfapi_ul_config_ulsch_cqi_ri_pdu*)ul_config_pdu)->cqi_ri_information.cqi_ri_information_rel9.delta_offset_ri = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_RI_Index; From 40cbafa757c11135d06625e6dbbd1498546ac126 Mon Sep 17 00:00:00 2001 From: Ahmed Elias Date: Sun, 15 Oct 2017 13:23:41 +0200 Subject: [PATCH 064/125] Reading BR parameters from configuration --- openair2/ENB_APP/enb_config.c | 2173 ++++++++++++++++++++++++++++++- openair2/ENB_APP/enb_paramdef.h | 5 +- 2 files changed, 2173 insertions(+), 5 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index f941d8a8db..b819bfd5bc 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -351,7 +351,8 @@ void RCconfig_macrlc() { "No " CONFIG_STRING_MACRLC_LIST " configuration found"); } } - + +#include int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int num_enbs = 0; @@ -448,7 +449,88 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) int32_t my_int; + int si_Narrowband_r13 = 0; + int si_TBS_r13 = 0; + int systemInfoValueTagSi_r13 = 0; + + int firstPreamble_r13 = 0; + int lastPreamble_r13 = 0; + const char* ra_ResponseWindowSize_r13 = NULL; + const char* mac_ContentionResolutionTimer_r13 = NULL; + const char* rar_HoppingConfig_r13 = NULL; + int rsrp_range_br = 0; + int prach_config_index_br = 0; + int prach_freq_offset_br = 0; + int prach_StartingSubframe_r13 = 0; + const char* maxNumPreambleAttemptCE_r13 = NULL; + const char* numRepetitionPerPreambleAttempt_r13 = NULL; + const char* mpdcch_NumRepetition_RA_r13 = NULL; + const char* prach_HoppingConfig_r13 = NULL; + int maxavailablenarrowband = 0; + int pucch_info_value = 0; + + int paging_narrowbands_r13 = 0; + const char* mpdcch_numrepetition_paging_r13 = NULL; + const char* nb_v1310 = NULL; + + + const char* pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + + const char* sib2_mpdcch_pdsch_hoppingNB_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeA_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeA_r13_val = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeB_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeB_r13_val = NULL; + + const char* sib2_interval_ULHoppingConfigCommonModeA_r13 = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeA_r13_val = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeB_r13 = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeB_r13_val = NULL; + libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + + const char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + const char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + + const char* pusch_maxNumRepetitionCEmodeA_r13 = 0; + const char* pusch_maxNumRepetitionCEmodeB_r13 = 0; + int pusch_HoppingOffset_v1310 = 0; + + int hyperSFN_r13 = 0; + int eDRX_Allowed_r13 = 0; + int q_RxLevMinCE_r13 = 0; + int q_QualMinRSRQ_CE_r13 = 0; + const char* si_WindowLength_BR_r13 = NULL; + const char* si_RepetitionPattern_r13 = NULL; + int startSymbolBR_r13 = 0; + const char* si_HoppingConfigCommon_r13 = NULL; + const char* si_ValidityTime_r13 = NULL; + const char* mpdcch_pdsch_HoppingNB_r13 = NULL; + int interval_DLHoppingConfigCommonModeA_r13_val = 0; + int interval_DLHoppingConfigCommonModeB_r13_val = 0; + int mpdcch_pdsch_HoppingOffset_r13 = 0; + const char* preambleTransMax_CE_r13 = NULL; + const char* rach_numberOfRA_Preambles_br = NULL; + const char* mpdcch_startSF_CSS_RA_r13_val = NULL; + int prach_HoppingOffset_r13 = 0; + int schedulingInfoSIB1_BR_r13 = 0; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; + + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13 = NULL; + + printf("[KOGO][TESTING] Start of RCConfig_RCC"); + getchar(); @@ -462,7 +544,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) paramdef_t CCsParams[] = CCPARAMS_DESC; paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; - //paramdef_t brParams[] = BRPARAMS_DESC; + paramdef_t brParams[] = BRPARAMS_DESC; //paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC; //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; @@ -594,6 +676,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k), config_getlist( &CCsParamList,NULL,0,enbpath); + printf("[KOGO][TESTING]: CC List count: %d \n", CCsParamList.numelt); + getchar(); LOG_I(RRC,"num component carriers %d \n", num_component_carriers); if ( CCsParamList.numelt> 0) { @@ -614,7 +698,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) //printf("Component carrier %d\n",component_carrier); - + printf("[KOGO][TESTING]: tdd_config: %d \n",tdd_config); + getchar(); nb_cc++; RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; @@ -1679,7 +1764,2089 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) +#ifdef Rel14 + char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(brparamspath,"%s.%s",ccspath,ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS); + config_get( brParams,sizeof(brParams)/sizeof(paramdef_t),brparamspath); + /*setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); + + if (setting_br13 != NULL) {*/ + int cnt = 0; + + + /*if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) { + AssertFatal(0, "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", RC.config_file_name, i); + } else {*/ + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; + //} + + /*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); + int num_system_info; + if (system_info_value_tag_SI_list != NULL) + { + num_system_info = config_setting_length(system_info_value_tag_SI_list); + for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx) + { + system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx); + if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) ) + { + AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13; + } + } + else + { + num_system_info = 0; + } + RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; + if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + + } + else + RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; + + } + else + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) + { + printf("Enabling BR access SI scheduling parameters\n"); + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + + + + if (!strcmp(si_WindowLength_BR_r13, "ms20")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; + } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; + } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; + } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; + } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; + } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; + } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; + } else if (!strcmp(si_WindowLength_BR_r13, "spare")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; + } + + + if (!strcmp(si_RepetitionPattern_r13, "everyRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; + } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; + } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; + } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; + } + + + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + if (!strcmp(si_HoppingConfigCommon_r13, "off")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; + } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; + } + + + printf("DEBUGGING][KOGO][CHAR*]: window length: %s - %d\n", si_WindowLength_BR_r13, RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j]); + printf("DEBUGGING][KOGO][CHAR*]: repetition pattern: %s - %d\n", si_RepetitionPattern_r13, RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j]); + printf("DEBUGGING][KOGO][CHAR*]: hopping config common: %s - %d\n", si_HoppingConfigCommon_r13, RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j]); + + scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); + int num_scheduling_info = config_setting_length(scheduling_info_br_list); + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; + + for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) + { + scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); + if (!( + config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) + && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) + ) + ){ + AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; + } + + bool fdd_downlink_exist = config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13); + if (fdd_downlink_exist) + { + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + else + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + + config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13); + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = NULL; + } + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + if (!strcmp(si_ValidityTime_r13, "true")) { + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", + RC.config_file_name, i); + } + printf("DEBUGGING][KOGO][CHAR*]: si_ValidityTime_r13: %s - %d\n", si_ValidityTime_r13, *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; + } + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeA_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeA_r13_val) || + !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB, &interval_DLHoppingConfigCommonModeB_r13) || + !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_INTERVAL_DLHOPPINGCONFIGCOMMONMODEB_VAL, &interval_DLHoppingConfigCommonModeB_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", + RC.config_file_name, i); + + } + + + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + + + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; + } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", + RC.config_file_name, i); + } + } + else { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + } + + // SIB23 parameters --------------------------------------------------------------------------------------------------------------------------- + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); + if (!strcmp(preambleTransMax_CE_r13, "n3")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 0; + } else if (!strcmp(preambleTransMax_CE_r13, "n4")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 1; + } else if (!strcmp(preambleTransMax_CE_r13, "n5")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 2; + } else if (!strcmp(preambleTransMax_CE_r13, "n6")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 3; + } else if (!strcmp(preambleTransMax_CE_r13, "n7")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 4; + } else if (!strcmp(preambleTransMax_CE_r13, "n8")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 5; + } else if (!strcmp(preambleTransMax_CE_r13, "n10")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 6; + } else if (!strcmp(preambleTransMax_CE_r13, "n20")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 7; + } else if (!strcmp(preambleTransMax_CE_r13, "n50")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 8; + } else if (!strcmp(preambleTransMax_CE_r13, "n100")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 9; + } else if (!strcmp(preambleTransMax_CE_r13, "n200")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 10; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d preambleTransMax_CE_r13 unknown value!\n", + RC.config_file_name, i); + } + } + else + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; + } + + printf("DEBUGGING][KOGO][CHAR*]: preambleTransMax_CE_r13: %s - %d\n", preambleTransMax_CE_r13, *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13); + + rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); + int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; + int rach_info_level_idx; + for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) + { + rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); + if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) + && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) + && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) + && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) + && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; + + if (!strcmp(ra_ResponseWindowSize_r13, "sf20")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 0; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf50")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 1; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf80")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 2; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf120")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 3; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf180")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 4; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf240")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 5; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf320")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 6; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf400")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!\n", + RC.config_file_name); + } + + if (!strcmp(mac_ContentionResolutionTimer_r13, "sf80")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 0; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf100")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 1; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf120")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 2; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf160")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 3; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf200")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 4; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf240")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 5; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf480")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 6; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf960")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!\n", + RC.config_file_name); + } + + if (!strcmp(rar_HoppingConfig_r13, "on")) { + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = 0; + } else if (!strcmp(rar_HoppingConfig_r13, "off")) { + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!\n", + RC.config_file_name); + } + + } // for + + printf("DEBUGGING][KOGO][CHAR*]: ra_ResponseWindowSize_r13: %s - %d\n", preambleTransMax_CE_r13, RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][0]); + printf("DEBUGGING][KOGO][CHAR*]: mac_ContentionResolutionTimer_r13: %s - %d\n", mac_ContentionResolutionTimer_r13, RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][0]); + printf("DEBUGGING][KOGO][CHAR*]: rar_HoppingConfig_r13: %s - %d\n", rar_HoppingConfig_r13, RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][0]); + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pdsch_maxNumRepetitionCEmodeA_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pdsch_maxNumRepetitionCEmodeA_r13: %s - %d\n", pdsch_maxNumRepetitionCEmodeA_r13, *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j]); + } + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pdsch_maxNumRepetitionCEmodeB_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r192")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 0; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r256")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 1; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r384")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 2; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r512")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 3; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r768")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 4; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r1024")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 5; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r1536")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 6; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeB_r13, "r2048")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeB_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pdsch_maxNumRepetitionCEmodeB_r13: %s - %d\n", pdsch_maxNumRepetitionCEmodeB_r13, *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeB_r13[j]); + } + + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pusch_maxNumRepetitionCEmodeA_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pusch_maxNumRepetitionCEmodeA_r13: %s - %d\n", pusch_maxNumRepetitionCEmodeA_r13, *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j]); + } + + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pusch_maxNumRepetitionCEmodeB_r13)) { + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r192")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 0; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r256")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 1; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r384")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 2; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r512")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 3; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r768")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 4; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r1024")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 5; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r1536")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 6; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r2048")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeB_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pusch_maxNumRepetitionCEmodeB_r13: %s - %d\n", pusch_maxNumRepetitionCEmodeB_r13, *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeB_r13[j]); + } + + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPING_OFFSET_V1310, &pusch_HoppingOffset_v1310)) { + RRC_CONFIGURATION_REQ(msg_p).pusch_HoppingOffset_v1310[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).pusch_HoppingOffset_v1310[j] = pusch_HoppingOffset_v1310; + printf("DEBUGGING][KOGO][CHAR*]: pusch_HoppingOffset_v1310 %d\n", *RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j]); + } + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); + ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level0_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level0_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = NULL;; + } + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = CALLOC(1, sizeof(long)); + ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level1_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level1_r13 unknown value!\n", + RC.config_file_name); + + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level0_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level1_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level1_r13[j] = NULL;; + } + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, &pucch_NumRepetitionCE_Msg4_Level2_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = CALLOC(1, sizeof(long)); + ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n16")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level2_r13, "n32")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level2_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level2_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level2_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level2_r13[j] = NULL; + } + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, &pucch_NumRepetitionCE_Msg4_Level3_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = CALLOC(1, sizeof(long)); + ++cnt; + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n16")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level3_r13, "n32")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level3_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level3_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level3_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level3_r13[j] = NULL;; + } + + + rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); + int num_rsrp_list = config_setting_length(rsrp_range_list); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; + int rsrp_range_idx; + for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) + { + rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); + if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rsrp_range %d!\n", + RC.config_file_name, nb_cc++); + } + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; + printf("[DEBUGGING][KOGO] : rsrp range br = %d\n", rsrp_range_br); + } + + prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); + int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; + int prach_parameters_index; + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index) + { + prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index); + if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br) + && config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br) + && config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13) + && config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13) + && config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) ) + ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO] : prach hopping config = %d\n", prach_HoppingConfig_r13); + + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + + if (config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + if (!strcmp(maxNumPreambleAttemptCE_r13, "n3")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 0; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n5")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 2; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n6")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 3; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n7")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 4; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 5; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n10")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 6; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "spare1")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, maxNumPreambleAttemptCE_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + printf("[DEBUGGING][KOGO][CHAR*]: maxNumPreambleAttemptCE_r13: %s - %d\n", maxNumPreambleAttemptCE_r13, *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index]); + } + else + { + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; + } + + + + if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 0; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 2; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 3; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n16")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 4; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n32")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 5; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n64")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 6; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n128")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, numRepetitionPerPreambleAttempt_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + printf("[DEBUGGING][KOGO][CHAR*]: numRepetitionPerPreambleAttempt_r13: %s - %d\n", numRepetitionPerPreambleAttempt_r13, RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index]); + + + if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 0; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r4")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 2; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r8")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 3; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r16")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 4; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r32")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 5; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r64")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 6; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r128")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 7; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r256")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 8; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r512")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 9; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1024")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 10; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2048")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 11; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare4")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 12; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare3")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 13; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare2")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 14; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare1")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 15; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, mpdcch_NumRepetition_RA_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO][CHAR*]: mpdcch_NumRepetition_RA_r13: %s - %d\n", mpdcch_NumRepetition_RA_r13, RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index]); + + if (!strcmp(prach_HoppingConfig_r13, "off")) { + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = 1; + } else if (!strcmp(prach_HoppingConfig_r13, "on")) { + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = 0; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_HoppingConfig_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO][CHAR*]: prach_HoppingConfig_r13: %s - %d\n", prach_HoppingConfig_r13, RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index]); + + if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; + } + else + { + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; + } + + + max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); + int num_available_narrow_bands = config_setting_length(max_available_narrow_band_list); + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prach_parameters_index] = num_available_narrow_bands; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_available_narrow_bands; narrow_band_index++) + { + max_available_narrow_band = config_setting_get_elem(max_available_narrow_band_list, narrow_band_index); + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prach_parameters_index][narrow_band_index] = config_setting_get_int(max_available_narrow_band); + } + + } + + + n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST); + + int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list); + AssertFatal(cnt == num_pucch_an_info, "Num Repetition Count should be equal to pucch info count !!!"); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = num_pucch_an_info; + int pucch_info_idx; + for (pucch_info_idx = 0; pucch_info_idx < num_pucch_an_info; ++pucch_info_idx) + { + n1_pucch_AN_info_r13 = config_setting_get_elem(n1_pucch_AN_info_r13_list, pucch_info_idx); + if (! (config_setting_lookup_int(n1_pucch_AN_info_r13, ENB_CONFIG_STRING_PUCCH_INFO_VALUE, &pucch_info_value)) ) + { + AssertFatal (0, + "Failed to parse eNB configuration file %s, n1_pucch_AN_info_list_r13_list %d!\n", + RC.config_file_name, nb_cc++); + } + + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; + } + + puts("---------------------------------------------------------------------------------------------------"); + + setting_freq_hoppingParameters_r13 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13); + if (setting_freq_hoppingParameters_r13 != NULL) + { + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, &sib2_mpdcch_pdsch_hoppingNB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(sib2_mpdcch_pdsch_hoppingNB_r13, "nb2")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = 0; + } else if (!strcmp(sib2_mpdcch_pdsch_hoppingNB_r13, "nb4")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_mpdcch_pdsch_hoppingNB_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_mpdcch_pdsch_hoppingNB_r13: %s - %d\n", sib2_mpdcch_pdsch_hoppingNB_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = NULL; + } + + + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_DLHoppingConfigCommonModeA_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeA_r13_val); + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = 0; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeA_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeA_r13: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeA_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j]); + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeA_r13_val: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeA_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j]); + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = NULL; + } + + + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_DLHoppingConfigCommonModeB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeB_r13_val); + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = 0; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int16")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = 1; + if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_DLHoppingConfigCommonModeB_r13_val, "int40")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_DLHoppingConfigCommonModeB_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeB_r13: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeB_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j]); + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_DLHoppingConfigCommonModeB_r13_val: %s - %d\n", sib2_interval_DLHoppingConfigCommonModeB_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j]); + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = NULL; + } + + + + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeA_r13: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeA_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = NULL; + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeA_r13_val: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeA_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j]); + + + + if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_ULHoppingConfigCommonModeB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); + config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeB_r13_val); + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = 0; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int16")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeB_r13_val, "int40")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeB_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeB_r13: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeB_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j]); + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = NULL; + } + printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeB_r13_val: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeB_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j]); + + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, &sib2_mpdcch_pdsch_hoppingOffset_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = sib2_mpdcch_pdsch_hoppingOffset_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = NULL; + } + + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = FALSE; + } + + + // Rel8 RadioResourceConfigCommon Parameters + if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) + + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, &prach_zero_correlation) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, &prach_freq_offset) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, &pucch_delta_shift) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NRB_CQI, &pucch_nRB_CQI) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_NCS_AN, &pucch_nCS_AN) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_RS_EPRE, &pdsch_referenceSignalPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PDSCH_PB, &pdsch_p_b) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_N_SB, &pusch_n_SB) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, &pusch_hoppingMode) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, &pusch_hoppingOffset) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, &pusch_enable64QAM) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, &pusch_groupHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, &pusch_groupAssignment) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, &pusch_sequenceHoppingEnabled) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_NDMRS1, &pusch_nDMRS1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_DURATION, &phich_duration) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PHICH_RESOURCE, &phich_resource) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ENABLE, &srs_enable) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, &pusch_p0_Nominal) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_ALPHA, &pusch_alpha) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, &pucch_p0_Nominal) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, &msg3_delta_Preamble) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, &pucch_deltaF_Format1) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, &pucch_deltaF_Format1b) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, &pucch_deltaF_Format2) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, &pucch_deltaF_Format2a) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, &pucch_deltaF_Format2b) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, &rach_numberOfRA_Preambles) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, &rach_preamblesGroupAConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, &rach_powerRampingStep) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, &rach_preambleInitialReceivedTargetPower) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, &rach_preambleTransMax) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T300, &ue_TimersAndConstants_t300) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T301, &ue_TimersAndConstants_t301) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T310, &ue_TimersAndConstants_t310) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode) + )) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, Component Carrier %d!\n", + RC.config_file_name, nb_cc++); + continue; // FIXME this prevents segfaults below, not sure what happens after function exit + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; + + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; + + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; + + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; + + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, &srs_ackNackST) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SRS_MAXUPPTS, &srs_MaxUpPts) + )) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown values for srs_BandwidthConfig, srs_SubframeConfig, srs_ackNackST, srs_MaxUpPts\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig = srs_BandwidthConfig; + + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig = srs_SubframeConfig; + + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); + + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); + + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); + } + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; + + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; + + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; + + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); + + + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); + + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); + + + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); + + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); + + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); + + + + + if (!strcmp(rach_numberOfRA_Preambles, "n4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (4 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (8 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (12 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (16 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (20 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (24 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (28 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (32 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (36 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (40 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (44 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (48 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (52 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (56 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (60 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (64 / 4) - 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); + + } + + + printf("[DEBUGGING][KOGO][CHAR*] : rach_numberOfRA_Preambles_br = %d\n", RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles); + +// RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (rach_numberOfRA_Preambles_br/ 4) - 1; + + + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + + if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, &rach_sizeOfRA_PreamblesGroupA) + && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, &rach_messageSizeGroupA) + && config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, &rach_messagePowerOffsetGroupB))) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d rach_sizeOfRA_PreamblesGroupA, messageSizeGroupA,messagePowerOffsetGroupB!\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + +// if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) +// AssertFatal (0, +// "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", +// RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + + + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; + + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; + + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } + + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } + + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); + + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; + + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); + + + + switch (rach_preambleTransMax) { + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; + break; + + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + if (!strcmp(pcch_defaultPagingCycle, "rf32")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; + } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; + } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + } + + printf("[DEBUGGING][KOGO][CHAR*] : pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle); + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + + if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", + RC.config_file_name, i, ue_TimersAndConstants_t300); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t300 : %s - %d\n", ue_TimersAndConstants_t300, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300); + + if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", + RC.config_file_name, i, ue_TimersAndConstants_t301); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t301 : %s - %d\n", ue_TimersAndConstants_t301, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301); + + if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", + RC.config_file_name, i, ue_TimersAndConstants_t310); + } + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t310 : %s - %d\n", ue_TimersAndConstants_t310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310); + + if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", + RC.config_file_name, i, ue_TimersAndConstants_t311); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t311 : %s - %d\n", ue_TimersAndConstants_t311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311); + + + if (!strcmp(ue_TimersAndConstants_n310, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; + } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; + } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; + } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; + } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; + } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; + } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; + } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", + RC.config_file_name, i, ue_TimersAndConstants_n310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n310 : %s - %d\n", ue_TimersAndConstants_n310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310); + + + if (!strcmp(ue_TimersAndConstants_n311, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; + } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; + } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; + } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; + } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; + } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; + } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; + } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", + RC.config_file_name, i, ue_TimersAndConstants_n311); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n311 : %s - %d\n", ue_TimersAndConstants_n311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311); + + + if (!strcmp(ue_TransmissionMode, "tm1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; + } else if (!strcmp(ue_TransmissionMode, "tm2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; + } else if (!strcmp(ue_TransmissionMode, "tm3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; + } else if (!strcmp(ue_TransmissionMode, "tm4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; + } else if (!strcmp(ue_TransmissionMode, "tm5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; + } else if (!strcmp(ue_TransmissionMode, "tm6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; + } else if (!strcmp(ue_TransmissionMode, "tm7")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", + RC.config_file_name, i, ue_TransmissionMode); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode); + + setting_pcch_config_v1310 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); + if (setting_pcch_config_v1310 != NULL) + { + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; + if (!config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, &paging_narrowbands_r13) + || !config_setting_lookup_string(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &mpdcch_numrepetition_paging_r13) + ) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d pcch_config_v1310!\n", + RC.config_file_name, i); + + RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; + + + if (!strcmp(mpdcch_numrepetition_paging_r13, "r1")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 0; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r2")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 1; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r4")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 2; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r8")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 3; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r16")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 4; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r32")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 5; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r64")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 6; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r128")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 7; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r256")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 8; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + RC.config_file_name); + } + + printf("[DEBUGGING][KOGO][CHAR*] mpdcch_numrepetition_paging_r13: %s - %d\n", mpdcch_numrepetition_paging_r13, RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j]); + + if (config_setting_lookup_string(setting_pcch_config_v1310, ENB_CONFIG_STRING_NB_V1310, &nb_v1310)) + { + RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); + if (!strcmp(nb_v1310, "one64thT")) { + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; + } else if (!strcmp(nb_v1310, "one128thT")) { + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; + } else if (!strcmp(nb_v1310, "one256thT")) { + *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + RC.config_file_name); + } + printf("[DEBUGGING][KOGO][CHAR*] nb_v1310: %s - %d\n", nb_v1310, *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j]); + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = NULL; + } + + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = FALSE; + } + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= calloc(1, sizeof(uint16_t)); + *RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= (uint16_t)hyperSFN_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).hyperSFN_r13[j]= NULL; + + if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_EDRX_ALLOWED, &eDRX_Allowed_r13)) + { + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= eDRX_Allowed_r13; + } + else + RRC_CONFIGURATION_REQ(msg_p).eDRX_Allowed_r13[j]= NULL; + + + bool fdd_uplink_exist = config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_FDD_ULSUBFRAMEBITMAPBR, &fdd_UplinkSubframeBitmapBR_r13); + if (fdd_uplink_exist) + { + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + *RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = fdd_UplinkSubframeBitmapBR_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).fdd_UplinkSubframeBitmapBR_r13[j] = NULL;; + } + + } + + else + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; + + + /////SIB2 Parameters + + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + + if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) + { + if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) + { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", + RC.config_file_name, i); + + } + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + } else { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + } + + if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 0; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 1; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 2; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 3; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 4; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 5; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 6; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "10")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 7; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n", + RC.config_file_name, i); + } + printf("[DEBUGGING][KOGO][CHAR*] mpdcch_startSF_CSS_RA_r13_val %s - %d\n", mpdcch_startSF_CSS_RA_r13_val, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val); + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; + } + + //if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) + //{ + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + + //} + //else + //{ + // RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; + //} + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; + } + } + else + { + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = 0; + }*/ + + +#endif //sprintf(brpath,"%s.%s.[%i].%s",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,ENB_CONFIG_STRING_BR_PARAMETERS,j); //config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index 02132a3054..ee40c38731 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -295,6 +295,7 @@ static int DEFENBS[] = {0}; /* component carriers configuration section name */ #define ENB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers" +#define ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS "br_parameters" #define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br" #define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" @@ -526,12 +527,12 @@ static int DEFENBS[] = {0}; {ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ From 06e9aacc6410a461653ba6e311fd6cdbda1812ce Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Sun, 15 Oct 2017 15:19:04 +0200 Subject: [PATCH 065/125] fixed some br parameters in the macro definition --- openair2/ENB_APP/enb_config.c | 2301 +++++++++-------- openair2/ENB_APP/enb_paramdef.h | 44 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 4 +- 3 files changed, 1204 insertions(+), 1145 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index b819bfd5bc..722e80e4b5 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -310,146 +310,163 @@ void RCconfig_macrlc() { if ( MacRLC_ParamList.numelt > 0) { - RC.nb_macrlc_inst=MacRLC_ParamList.numelt; - mac_top_init_eNB(); - for (j=0;jeth_params_n.local_if_name = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_IF_NAME_IDX].strptr)); - RC.mac[j]->eth_params_n.my_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_ADDRESS_IDX].strptr)); - RC.mac[j]->eth_params_n.remote_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_N_ADDRESS_IDX].strptr)); - RC.mac[j]->eth_params_n.my_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_PORTC_IDX].iptr); - RC.mac[j]->eth_params_n.remote_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_N_PORTC_IDX].iptr); - RC.mac[j]->eth_params_n.my_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_PORTD_IDX].iptr); - RC.mac[j]->eth_params_n.remote_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_N_PORTD_IDX].iptr);; - RC.mac[j]->eth_params_n.transp_preference = ETH_UDP_MODE; - } else { // other midhaul - AssertFatal(1==0,"MACRLC %d: %s unknown northbound midhaul\n",j, *(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_N_PREFERENCE_IDX].strptr)); - } + if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_N_PREFERENCE_IDX].strptr), "local_RRC") == 0) { + // check number of instances is same as RRC/PDCP - if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr), "local_L1") == 0) { + } else if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_N_PREFERENCE_IDX].strptr), "cudu") == 0) { + RC.mac[j]->eth_params_n.local_if_name = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_IF_NAME_IDX].strptr)); + RC.mac[j]->eth_params_n.my_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_ADDRESS_IDX].strptr)); + RC.mac[j]->eth_params_n.remote_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_N_ADDRESS_IDX].strptr)); + RC.mac[j]->eth_params_n.my_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_PORTC_IDX].iptr); + RC.mac[j]->eth_params_n.remote_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_N_PORTC_IDX].iptr); + RC.mac[j]->eth_params_n.my_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_N_PORTD_IDX].iptr); + RC.mac[j]->eth_params_n.remote_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_N_PORTD_IDX].iptr);; + RC.mac[j]->eth_params_n.transp_preference = ETH_UDP_MODE; + } else { // other midhaul + AssertFatal(1==0,"MACRLC %d: %s unknown northbound midhaul\n",j, *(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_N_PREFERENCE_IDX].strptr)); + } - - } else if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr), "nfapi") == 0) { - RC.mac[j]->eth_params_s.local_if_name = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_IF_NAME_IDX].strptr)); - RC.mac[j]->eth_params_s.my_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_ADDRESS_IDX].strptr)); - RC.mac[j]->eth_params_s.remote_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_S_ADDRESS_IDX].strptr)); - RC.mac[j]->eth_params_s.my_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_PORTC_IDX].iptr); - RC.mac[j]->eth_params_s.remote_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_S_PORTC_IDX].iptr); - RC.mac[j]->eth_params_s.my_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_PORTD_IDX].iptr); - RC.mac[j]->eth_params_s.remote_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_S_PORTD_IDX].iptr); - RC.mac[j]->eth_params_s.transp_preference = ETH_UDP_MODE; - } else { // other midhaul - AssertFatal(1==0,"MACRLC %d: %s unknown southbound midhaul\n",j,*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr)); - } - }// j=0..num_inst + if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr), "local_L1") == 0) { + + + } else if (strcmp(*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr), "nfapi") == 0) { + RC.mac[j]->eth_params_s.local_if_name = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_IF_NAME_IDX].strptr)); + RC.mac[j]->eth_params_s.my_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_ADDRESS_IDX].strptr)); + RC.mac[j]->eth_params_s.remote_addr = strdup(*(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_S_ADDRESS_IDX].strptr)); + RC.mac[j]->eth_params_s.my_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_PORTC_IDX].iptr); + RC.mac[j]->eth_params_s.remote_portc = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_S_PORTC_IDX].iptr); + RC.mac[j]->eth_params_s.my_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_LOCAL_S_PORTD_IDX].iptr); + RC.mac[j]->eth_params_s.remote_portd = *(MacRLC_ParamList.paramarray[j][MACRLC_REMOTE_S_PORTD_IDX].iptr); + RC.mac[j]->eth_params_s.transp_preference = ETH_UDP_MODE; + } else { // other midhaul + AssertFatal(1==0,"MACRLC %d: %s unknown southbound midhaul\n",j,*(MacRLC_ParamList.paramarray[j][MACRLC_TRANSPORT_S_PREFERENCE_IDX].strptr)); + } + }// j=0..num_inst } else {// MacRLC_ParamList.numelt > 0 - AssertFatal (0, - "No " CONFIG_STRING_MACRLC_LIST " configuration found"); + AssertFatal (0, + "No " CONFIG_STRING_MACRLC_LIST " configuration found"); } } -#include int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int num_enbs = 0; int num_component_carriers = 0; - int j,k = 0; - int32_t enb_id = 0; + int k = 0; + int32_t enb_id = 0; int nb_cc = 0; - char* frame_type = NULL; - int32_t tdd_config = 0; - int32_t tdd_config_s = 0; + int parse_errors = 0; - char* prefix_type = NULL; - char* pbch_repetition = NULL; + int num_mme_address = 0; + int num_otg_elements = 0; - int32_t eutra_band = 0; - long long int downlink_frequency = 0; - int32_t uplink_frequency_offset = 0; - int32_t Nid_cell = 0; - int32_t Nid_cell_mbsfn = 0; - int32_t N_RB_DL = 0; - int32_t nb_antenna_ports = 0; - - int32_t prach_root = 0; - int32_t prach_config_index = 0; - char* prach_high_speed = NULL; - int32_t prach_zero_correlation = 0; - int32_t prach_freq_offset = 0; - int32_t pucch_delta_shift = 0; - int32_t pucch_nRB_CQI = 0; - int32_t pucch_nCS_AN = 0; - //#if !defined(Rel10) && !defined(Rel14) - int32_t pucch_n1_AN = 0; - //#endif - int32_t pdsch_referenceSignalPower = 0; - int32_t pdsch_p_b = 0; - int32_t pusch_n_SB = 0; - char * pusch_hoppingMode = NULL; - int32_t pusch_hoppingOffset = 0; - char* pusch_enable64QAM = NULL; - char* pusch_groupHoppingEnabled = NULL; - int32_t pusch_groupAssignment = 0; - char* pusch_sequenceHoppingEnabled = NULL; - int32_t pusch_nDMRS1 = 0; - char* phich_duration = NULL; - char* phich_resource = NULL; - char* srs_enable = NULL; - int32_t srs_BandwidthConfig = 0; - int32_t srs_SubframeConfig = 0; - char* srs_ackNackST = NULL; - char* srs_MaxUpPts = NULL; - int32_t pusch_p0_Nominal = 0; - char* pusch_alpha = NULL; - int32_t pucch_p0_Nominal = 0; - int32_t msg3_delta_Preamble = 0; - //int32_t ul_CyclicPrefixLength = 0; - char* pucch_deltaF_Format1 = NULL; - //const char* pucch_deltaF_Format1a = NULL; - char* pucch_deltaF_Format1b = NULL; - char* pucch_deltaF_Format2 = NULL; - char* pucch_deltaF_Format2a = NULL; - char* pucch_deltaF_Format2b = NULL; - int32_t rach_numberOfRA_Preambles = 0; - char* rach_preamblesGroupAConfig = NULL; - int32_t rach_sizeOfRA_PreamblesGroupA = 0; - int32_t rach_messageSizeGroupA = 0; - char* rach_messagePowerOffsetGroupB = NULL; - int32_t rach_powerRampingStep = 0; - int32_t rach_preambleInitialReceivedTargetPower = 0; - int32_t rach_preambleTransMax = 0; - int32_t rach_raResponseWindowSize = 0; - int32_t rach_macContentionResolutionTimer = 0; - int32_t rach_maxHARQ_Msg3Tx = 0; - int32_t pcch_defaultPagingCycle = 0; - char* pcch_nB = NULL; - int32_t bcch_modificationPeriodCoeff = 0; - int32_t ue_TimersAndConstants_t300 = 0; - int32_t ue_TimersAndConstants_t301 = 0; - int32_t ue_TimersAndConstants_t310 = 0; - int32_t ue_TimersAndConstants_t311 = 0; - int32_t ue_TimersAndConstants_n310 = 0; - int32_t ue_TimersAndConstants_n311 = 0; - int32_t ue_TransmissionMode = 0; + int j = 0; + int sched_info_idx = 0; + int sys_info_idx = 0; - int32_t srb1_timer_poll_retransmit = 0; - int32_t srb1_timer_reordering = 0; - int32_t srb1_timer_status_prohibit = 0; - int32_t srb1_poll_pdu = 0; - int32_t srb1_poll_byte = 0; - int32_t srb1_max_retx_threshold = 0; + char* if_name_s = NULL; + char* ipv4_s = NULL; + char* ipv4_s_remote = NULL; - int32_t my_int; + char* tr_s_preference = NULL; + int local_s_portc = 0; + int remote_s_portc = 0; + int local_s_portd = 0; + int remote_s_portd = 0; - int si_Narrowband_r13 = 0; + const char* cell_type = NULL; + const char* tac = 0; + const char* enb_name = NULL; + const char* mcc = 0; + const char* mnc = 0; + char* frame_type = NULL; + int tdd_config = 0; + int tdd_config_s = 0; + const char* prefix_type = NULL; + const char* pbch_repetition = NULL; + int eutra_band = 0; + long long int downlink_frequency = 0; + int uplink_frequency_offset = 0; + int Nid_cell = 0; + int Nid_cell_mbsfn = 0; + int N_RB_DL = 0; + int nb_antenna_ports = 0; + int nb_antennas_tx = 0; + int nb_antennas_rx = 0; + int tx_gain = 0; + int rx_gain = 0; + int prach_root = 0; + int prach_config_index = 0; + const char* prach_high_speed = NULL; + int prach_zero_correlation = 0; + int prach_freq_offset = 0; + int pucch_delta_shift = 0; + int pucch_nRB_CQI = 0; + int pucch_nCS_AN = 0; + + int pucch_n1_AN = 0; + + int pdsch_referenceSignalPower = 0; + int pdsch_p_b = 0; + int pusch_n_SB = 0; + const char * pusch_hoppingMode = NULL; + int pusch_hoppingOffset = 0; + const char* pusch_enable64QAM = NULL; + const char* pusch_groupHoppingEnabled = NULL; + int pusch_groupAssignment = 0; + const char* pusch_sequenceHoppingEnabled = NULL; + int pusch_nDMRS1 = 0; + const char* phich_duration = NULL; + const char* phich_resource = NULL; + const char* srs_enable = NULL; + int srs_BandwidthConfig = 0; + int srs_SubframeConfig = 0; + const char* srs_ackNackST = NULL; + const char* srs_MaxUpPts = NULL; + int pusch_p0_Nominal = 0; + const char* pusch_alpha = NULL; + int pucch_p0_Nominal = 0; + int msg3_delta_Preamble = 0; + //int ul_CyclicPrefixLength = 0; + const char* pucch_deltaF_Format1 = NULL; + //const char* pucch_deltaF_Format1a = NULL; + const char* pucch_deltaF_Format1b = NULL; + const char* pucch_deltaF_Format2 = NULL; + const char* pucch_deltaF_Format2a = NULL; + const char* pucch_deltaF_Format2b = NULL; + const char* rach_numberOfRA_Preambles = NULL; + const char* rach_preamblesGroupAConfig = NULL; + int rach_sizeOfRA_PreamblesGroupA = 0; + int rach_messageSizeGroupA = 0; + const char* rach_messagePowerOffsetGroupB = NULL; + int rach_powerRampingStep = 0; + int rach_preambleInitialReceivedTargetPower = 0; + int rach_preambleTransMax = 0; + int rach_raResponseWindowSize = 0; + int rach_macContentionResolutionTimer = 0; + int rach_maxHARQ_Msg3Tx = 0; + const char* pcch_defaultPagingCycle = 0; + + const char* pcch_nB = NULL; + int bcch_modificationPeriodCoeff = 0; + + const char* ue_TimersAndConstants_t300 = NULL; + const char* ue_TimersAndConstants_t301 = NULL; + const char* ue_TimersAndConstants_t310 = NULL; + const char* ue_TimersAndConstants_t311 = NULL; + const char* ue_TimersAndConstants_n310 = NULL; + const char* ue_TimersAndConstants_n311 = NULL; + const char* ue_TransmissionMode = NULL; + + int si_Narrowband_r13 = 0; int si_TBS_r13 = 0; int systemInfoValueTagSi_r13 = 0; @@ -459,18 +476,18 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) const char* ra_ResponseWindowSize_r13 = NULL; const char* mac_ContentionResolutionTimer_r13 = NULL; const char* rar_HoppingConfig_r13 = NULL; - int rsrp_range_br = 0; - int prach_config_index_br = 0; - int prach_freq_offset_br = 0; - int prach_StartingSubframe_r13 = 0; + int rsrp_range_br = 0; + int prach_config_index_br = 0; + int prach_freq_offset_br = 0; + int prach_StartingSubframe_r13 = 0; const char* maxNumPreambleAttemptCE_r13 = NULL; const char* numRepetitionPerPreambleAttempt_r13 = NULL; const char* mpdcch_NumRepetition_RA_r13 = NULL; const char* prach_HoppingConfig_r13 = NULL; - int maxavailablenarrowband = 0; - int pucch_info_value = 0; + int maxavailablenarrowband = 0; + int pucch_info_value = 0; - int paging_narrowbands_r13 = 0; + int paging_narrowbands_r13 = 0; const char* mpdcch_numrepetition_paging_r13 = NULL; const char* nb_v1310 = NULL; @@ -490,7 +507,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) const char* sib2_interval_ULHoppingConfigCommonModeA_r13_val = NULL; const char* sib2_interval_ULHoppingConfigCommonModeB_r13 = NULL; const char* sib2_interval_ULHoppingConfigCommonModeB_r13_val = NULL; - libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; const char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; const char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; @@ -499,9 +516,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) const char* pusch_maxNumRepetitionCEmodeB_r13 = 0; int pusch_HoppingOffset_v1310 = 0; - int hyperSFN_r13 = 0; - int eDRX_Allowed_r13 = 0; - int q_RxLevMinCE_r13 = 0; + int hyperSFN_r13 = 0; + int eDRX_Allowed_r13 = 0; + int q_RxLevMinCE_r13 = 0; int q_QualMinRSRQ_CE_r13 = 0; const char* si_WindowLength_BR_r13 = NULL; const char* si_RepetitionPattern_r13 = NULL; @@ -529,10 +546,52 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) char* prach_ConfigCommon_v1310 = NULL; char* mpdcch_startSF_CSS_RA_r13 = NULL; + + int srb1_timer_poll_retransmit = 0; + int srb1_timer_reordering = 0; + int srb1_timer_status_prohibit = 0; + int srb1_poll_pdu = 0; + int srb1_poll_byte = 0; + int srb1_max_retx_threshold = 0; + + int my_int; + + + const char* active_enb[MAX_ENB]; + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + int enb_port_for_S1U = 0; + char* enb_interface_name_for_S1_MME = NULL; + char* enb_ipv4_address_for_S1_MME = NULL; + char *address = NULL; + char *cidr = NULL; + char *astring = NULL; + char* flexran_agent_interface_name = NULL; + char* flexran_agent_ipv4_address = NULL; + int flexran_agent_port = 0; + char* flexran_agent_cache = NULL; + int otg_ue_id = 0; + char* otg_app_type = NULL; + char* otg_bg_traffic = NULL; + char* glog_level = NULL; + char* glog_verbosity = NULL; + char* hw_log_level = NULL; + char* hw_log_verbosity = NULL; + char* phy_log_level = NULL; + char* phy_log_verbosity = NULL; + char* mac_log_level = NULL; + char* mac_log_verbosity = NULL; + char* rlc_log_level = NULL; + char* rlc_log_verbosity = NULL; + char* pdcp_log_level = NULL; + char* pdcp_log_verbosity = NULL; + char* rrc_log_level = NULL; + char* rrc_log_verbosity = NULL; + char* udp_log_verbosity = NULL; + char* osa_log_level = NULL; + char* osa_log_verbosity = NULL; + printf("[KOGO][TESTING] Start of RCConfig_RCC"); - getchar(); - - // for no gcc warnings (void)my_int; @@ -673,11 +732,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) // Parse optional physical parameters - sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k), - config_getlist( &CCsParamList,NULL,0,enbpath); + sprintf(enbpath,"%s.[%i]",ENB_CONFIG_STRING_ENB_LIST,k); + config_getlist( &CCsParamList, NULL, 0, enbpath); printf("[KOGO][TESTING]: CC List count: %d \n", CCsParamList.numelt); - getchar(); LOG_I(RRC,"num component carriers %d \n", num_component_carriers); if ( CCsParamList.numelt> 0) { @@ -699,553 +757,554 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) //printf("Component carrier %d\n",component_carrier); printf("[KOGO][TESTING]: tdd_config: %d \n",tdd_config); - getchar(); nb_cc++; - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } - #ifdef Rel14 - if (!pbch_repetition) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; - } - else if (strcmp(pbch_repetition, "FALSE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", - RC.config_file_name, i, pbch_repetition); - } - #endif - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; - - if (Nid_cell>503) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", - RC.config_file_name, i, Nid_cell); - } - - RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; - - if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", - RC.config_file_name, i, N_RB_DL); - } - - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; - } - else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, i, frame_type); - } - - - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - - - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; - } - else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } - - - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); - - - - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); - - - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - - if (enb_check_band_frequencies(RC.config_file_name, - j, - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], - RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { - AssertFatal(0, "error calling enb_check_band_frequencies\n"); - } - - if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", - RC.config_file_name, i, nb_antenna_ports); - - RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; - - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; - - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } +#ifdef Rel14 + if (!pbch_repetition) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); + else if (strcmp(pbch_repetition, "TRUE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 1; + } + else if (strcmp(pbch_repetition, "FALSE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).pbch_repetition[j] = 0; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", + RC.config_file_name, i, pbch_repetition); + } +#endif + + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; + + if (Nid_cell>503) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", + RC.config_file_name, i, Nid_cell); + } + + RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; + + if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", + RC.config_file_name, i, N_RB_DL); + } + + printf("[KOGO][DBUGGING] frame type = %s \n", frame_type); + + if (strcmp(frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = FDD; + } + else if (strcmp(frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ(msg_p).frame_type[j] = TDD; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + RC.config_file_name, i, frame_type); + } + + + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; + AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); + + + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; + AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", + RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + + + + if (!prefix_type) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); + else if (strcmp(prefix_type, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = NORMAL; + } + else if (strcmp(prefix_type, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).prefix_type[j] = EXTENDED; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", + RC.config_file_name, i, prefix_type); + } + + + + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; + // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); + + + + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; + //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); + + + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + + if (enb_check_band_frequencies(RC.config_file_name, + j, + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], + RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { + AssertFatal(0, "error calling enb_check_band_frequencies\n"); + } + + if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", + RC.config_file_name, i, nb_antenna_ports); - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; - - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; - - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; - - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; - - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); - - #if !defined(Rel10) && !defined(Rel14) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; - - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); - - #endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; - - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; - - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); - - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; - - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); - - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); - - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; - - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); - - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); - - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); - - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); - - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, - (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); - - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); + RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; + + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; + + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; + + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; + + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); + +#if !defined(Rel10) && !defined(Rel14) + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; + + if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN); + +#endif + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; + + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; + + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + if (!pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; + + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; + + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_resource, phich_resource, + (int)RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_enable = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable == TRUE) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig = srs_BandwidthConfig; - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); + if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig = srs_SubframeConfig; - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); + if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; - } - else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + if (strcmp(srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = TRUE; + } + else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_ackNackST = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; - } - else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); + if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = TRUE; + } + else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].srs_MaxUpPts = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts); } RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_p0_Nominal = pusch_p0_Nominal; - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); - #ifndef Rel14 - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; - } - #else - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; - } - #endif - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); +#ifndef Rel14 + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = UplinkPowerControlCommon__alpha_al1; + } +#else + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al0; + } + else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al04; + } + else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al05; + } + else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al06; + } + else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al07; + } + else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al08; + } + else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al09; + } + else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pusch_alpha = Alpha_r12_al1; + } +#endif + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_p0_Nominal = pucch_p0_Nominal; - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].msg3_delta_Preamble = msg3_delta_Preamble; - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); // 27 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n4 = 0, @@ -1266,522 +1325,522 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) // 42 RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64 = 15 - if (!strcmp(rach_numberOfRA_Preambles, "n4")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (4 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (8 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (12 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (16 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (20 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (24 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (28 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (32 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (36 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (40 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (44 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (48 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (52 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (56 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (60 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (64 / 4) - 1; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + if (!strcmp(rach_numberOfRA_Preambles, "n4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (4 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (8 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (12 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (16 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (20 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (24 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (28 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (32 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (36 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (40 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (44 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (48 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (52 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (56 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (60 / 4) - 1; + } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles = (64 / 4) - 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles); - } + } - printf("[DEBUGGIN][KOGO][TESTING]: number of RA Preambles: %s - %d\n", - rach_numberOfRA_Preambles, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles); + printf("[DEBUGGIN][KOGO][TESTING]: number of RA Preambles: %s - %d\n", + rach_numberOfRA_Preambles, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles); if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA / 4) - 1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA / 4) - 1; - switch (rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; + switch (rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; - case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; - case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); - break; - } + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA); + break; + } - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } + if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } + else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } - else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); + else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB); - } - else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); + } + else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep); - switch (rach_preambleTransMax) { - #ifndef Rel14 - _ case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; + switch (rach_preambleTransMax) { +#ifndef Rel14 + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; - #else +#else - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; - break; - #endif - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - if (!strcmp(pcch_defaultPagingCycle, "rf32")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; - } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; - } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; - } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - } - - printf("[DEBUGGING][KOGO][CHAR*] : pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle); - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", - RC.config_file_name, i, ue_TimersAndConstants_t300); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t300 : %s - %d\n", ue_TimersAndConstants_t300, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300); - - if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", - RC.config_file_name, i, ue_TimersAndConstants_t301); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t301 : %s - %d\n", ue_TimersAndConstants_t301, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301); - - if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", - RC.config_file_name, i, ue_TimersAndConstants_t310); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t310 : %s - %d\n", ue_TimersAndConstants_t310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310); - - - if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", - RC.config_file_name, i, ue_TimersAndConstants_t311); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t311 : %s - %d\n", ue_TimersAndConstants_t311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311); - - - if (!strcmp(ue_TimersAndConstants_n310, "n1")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; - } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; - } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; - } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; - } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; - } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; - } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; - } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", - RC.config_file_name, i, ue_TimersAndConstants_n310); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n310 : %s - %d\n", ue_TimersAndConstants_n310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310); - - - if (!strcmp(ue_TimersAndConstants_n311, "n1")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; - } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; - } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; - } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; - } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; - } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; - } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; - } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", - RC.config_file_name, i, ue_TimersAndConstants_n311); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n311 : %s - %d\n", ue_TimersAndConstants_n311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311); - - - if (!strcmp(ue_TransmissionMode, "tm1")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; - } else if (!strcmp(ue_TransmissionMode, "tm2")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; - } else if (!strcmp(ue_TransmissionMode, "tm3")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; - } else if (!strcmp(ue_TransmissionMode, "tm4")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; - } else if (!strcmp(ue_TransmissionMode, "tm5")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; - } else if (!strcmp(ue_TransmissionMode, "tm6")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; - } else if (!strcmp(ue_TransmissionMode, "tm7")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", - RC.config_file_name, i, ue_TransmissionMode); - } - - printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode); - - - -#ifdef Rel14 - char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; - sprintf(brparamspath,"%s.%s",ccspath,ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS); - config_get( brParams,sizeof(brParams)/sizeof(paramdef_t),brparamspath); - /*setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; + break; +#endif + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + if (!strcmp(pcch_defaultPagingCycle, "rf32")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; + } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; + } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + } + + printf("[DEBUGGING][KOGO][CHAR*] : pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle); + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig[j].pcch_nB = PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", + RC.config_file_name, i, ue_TimersAndConstants_t300); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t300 : %s - %d\n", ue_TimersAndConstants_t300, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300); + + if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", + RC.config_file_name, i, ue_TimersAndConstants_t301); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t301 : %s - %d\n", ue_TimersAndConstants_t301, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301); + + if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", + RC.config_file_name, i, ue_TimersAndConstants_t310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t310 : %s - %d\n", ue_TimersAndConstants_t310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310); + + + if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", + RC.config_file_name, i, ue_TimersAndConstants_t311); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_t311 : %s - %d\n", ue_TimersAndConstants_t311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311); + + + if (!strcmp(ue_TimersAndConstants_n310, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; + } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; + } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; + } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; + } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; + } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; + } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; + } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", + RC.config_file_name, i, ue_TimersAndConstants_n310); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n310 : %s - %d\n", ue_TimersAndConstants_n310, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310); + + + if (!strcmp(ue_TimersAndConstants_n311, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; + } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; + } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; + } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; + } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; + } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; + } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; + } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", + RC.config_file_name, i, ue_TimersAndConstants_n311); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TimersAndConstants_n311 : %s - %d\n", ue_TimersAndConstants_n311, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311); + + + if (!strcmp(ue_TransmissionMode, "tm1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; + } else if (!strcmp(ue_TransmissionMode, "tm2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; + } else if (!strcmp(ue_TransmissionMode, "tm3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; + } else if (!strcmp(ue_TransmissionMode, "tm4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; + } else if (!strcmp(ue_TransmissionMode, "tm5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; + } else if (!strcmp(ue_TransmissionMode, "tm6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; + } else if (!strcmp(ue_TransmissionMode, "tm7")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", + RC.config_file_name, i, ue_TransmissionMode); + } + + printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode); + + + +//#ifdef Rel14 + char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(brparamspath,"%s.%s",ccspath,ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS); + config_get( brParams,sizeof(brParams)/sizeof(paramdef_t),brparamspath); + /*setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR); if (setting_br13 != NULL) {*/ - int cnt = 0; + int cnt = 0; - /*if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) { + /*if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13)) { AssertFatal(0, "Failed to parse eNB configuration file %s, enb %d schedulingInfoSIB1_BR_r13!\n", RC.config_file_name, i); } else {*/ - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; - //} + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; + //} - /*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); + /*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); int num_system_info; if (system_info_value_tag_SI_list != NULL) { @@ -3846,7 +3905,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) }*/ -#endif +//#endif //sprintf(brpath,"%s.%s.[%i].%s",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,ENB_CONFIG_STRING_BR_PARAMETERS,j); //config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index ee40c38731..0648ed5054 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -464,7 +464,7 @@ static int DEFENBS[] = {0}; {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, strptr:&rach_numberOfRA_Preambles, defstrval:"n64", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ @@ -475,16 +475,16 @@ static int DEFENBS[] = {0}; {ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, strptr:&pcch_defaultPagingCycle, defstrval:"rf128", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, strptr:&ue_TimersAndConstants_t300, defintval:"ms1000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, strptr:&ue_TimersAndConstants_t301, defintval:"ms1000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, strptr:&ue_TimersAndConstants_t310, defintval:"ms1000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, strptr:&ue_TimersAndConstants_t311, defintval:"ms10000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, strptr:&ue_TimersAndConstants_n310, defintval:"n20", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, strptr:&ue_TimersAndConstants_n311, defintval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, strptr:&ue_TransmissionMode, defintval:"tm1", TYPE_STRING, 0} \ } @@ -580,7 +580,7 @@ static int DEFENBS[] = {0}; {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defstrval:"n4", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ @@ -594,18 +594,18 @@ static int DEFENBS[] = {0}; {ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, strptr:&ue_TimersAndConstants_t300, defstrval:"ms1000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, strptr:&ue_TimersAndConstants_t301, defstrval:"ms1000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, strptr:&ue_TimersAndConstants_t310, defstrval:"ms1000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, strptr:&ue_TimersAndConstants_t311, defstrval:"ms10000", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, strptr:&ue_TimersAndConstants_n310, defstrval:"n20", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, strptr:&ue_TimersAndConstants_n311, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, strptr:&ue_TransmissionMode, defstrval:"tm1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ } #define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 1fccdfe026..351f5ba792 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -364,9 +364,9 @@ eNBs = NETWORK_INTERFACES : { - ENB_INTERFACE_NAME_FOR_S1_MME = "eth0:S1-C-eNB"; + ENB_INTERFACE_NAME_FOR_S1_MME = "enp0s31f6:S1-C"; ENB_IPV4_ADDRESS_FOR_S1_MME = "172.17.0.21/24"; - ENB_INTERFACE_NAME_FOR_S1U = "eth0:S1-U-eNB"; + ENB_INTERFACE_NAME_FOR_S1U = "enp0s31f6:S1-U"; ENB_IPV4_ADDRESS_FOR_S1U = "172.16.0.21/24"; ENB_PORT_FOR_S1U = 2152; # Spec 2152 }; From 78408cc69748a7c4dc1c100f945049af270fe172 Mon Sep 17 00:00:00 2001 From: "mohamed.said" Date: Sun, 15 Oct 2017 22:51:24 +0200 Subject: [PATCH 066/125] added missing definitions in enb_paramdef.h ,, assigned some br values in enb_config.c --- openair2/ENB_APP/enb_config.c | 1112 ++++++++++++----- openair2/ENB_APP/enb_paramdef.h | 59 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 2 +- 3 files changed, 873 insertions(+), 300 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 722e80e4b5..e665d9bc46 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -355,241 +355,236 @@ void RCconfig_macrlc() { int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int num_enbs = 0; - int num_component_carriers = 0; int k = 0; int32_t enb_id = 0; int nb_cc = 0; - - int parse_errors = 0; + int num_mme_address = 0; + int num_otg_elements = 0; - int num_mme_address = 0; - int num_otg_elements = 0; - - int j = 0; - int sched_info_idx = 0; - int sys_info_idx = 0; + int j = 0; + int sched_info_idx = 0; + int sys_info_idx = 0; - char* if_name_s = NULL; - char* ipv4_s = NULL; - char* ipv4_s_remote = NULL; + char* if_name_s = NULL; + char* ipv4_s = NULL; + char* ipv4_s_remote = NULL; - char* tr_s_preference = NULL; - int local_s_portc = 0; - int remote_s_portc = 0; - int local_s_portd = 0; - int remote_s_portd = 0; + char* tr_s_preference = NULL; + int local_s_portc = 0; + int remote_s_portc = 0; + int local_s_portd = 0; + int remote_s_portd = 0; - const char* cell_type = NULL; - const char* tac = 0; - const char* enb_name = NULL; - const char* mcc = 0; - const char* mnc = 0; - char* frame_type = NULL; - int tdd_config = 0; - int tdd_config_s = 0; - const char* prefix_type = NULL; - const char* pbch_repetition = NULL; - int eutra_band = 0; - long long int downlink_frequency = 0; - int uplink_frequency_offset = 0; - int Nid_cell = 0; - int Nid_cell_mbsfn = 0; - int N_RB_DL = 0; - int nb_antenna_ports = 0; - int nb_antennas_tx = 0; - int nb_antennas_rx = 0; - int tx_gain = 0; - int rx_gain = 0; - int prach_root = 0; - int prach_config_index = 0; - const char* prach_high_speed = NULL; - int prach_zero_correlation = 0; - int prach_freq_offset = 0; - int pucch_delta_shift = 0; - int pucch_nRB_CQI = 0; - int pucch_nCS_AN = 0; + const char* cell_type = NULL; + const char* tac = 0; + const char* enb_name = NULL; + const char* mcc = 0; + const char* mnc = 0; + char* frame_type = NULL; + int tdd_config = 0; + int tdd_config_s = 0; + const char* prefix_type = NULL; + const char* pbch_repetition = NULL; + int eutra_band = 0; + long long int downlink_frequency = 0; + int uplink_frequency_offset = 0; + int Nid_cell = 0; + int Nid_cell_mbsfn = 0; + int N_RB_DL = 0; + int nb_antenna_ports = 0; + int nb_antennas_tx = 0; + int nb_antennas_rx = 0; + int tx_gain = 0; + int rx_gain = 0; + int prach_root = 0; + int prach_config_index = 0; + const char* prach_high_speed = NULL; + int prach_zero_correlation = 0; + int prach_freq_offset = 0; + int pucch_delta_shift = 0; + int pucch_nRB_CQI = 0; + int pucch_nCS_AN = 0; + int pucch_n1_AN = 0; - int pucch_n1_AN = 0; + int pdsch_referenceSignalPower = 0; + int pdsch_p_b = 0; + int pusch_n_SB = 0; + const char * pusch_hoppingMode = NULL; + int pusch_hoppingOffset = 0; + const char* pusch_enable64QAM = NULL; + const char* pusch_groupHoppingEnabled = NULL; + int pusch_groupAssignment = 0; + const char* pusch_sequenceHoppingEnabled = NULL; + int pusch_nDMRS1 = 0; + const char* phich_duration = NULL; + const char* phich_resource = NULL; + const char* srs_enable = NULL; + int srs_BandwidthConfig = 0; + int srs_SubframeConfig = 0; + const char* srs_ackNackST = NULL; + const char* srs_MaxUpPts = NULL; + int pusch_p0_Nominal = 0; + const char* pusch_alpha = NULL; + int pucch_p0_Nominal = 0; + int msg3_delta_Preamble = 0; + //int ul_CyclicPrefixLength = 0; + const char* pucch_deltaF_Format1 = NULL; + //const char* pucch_deltaF_Format1a = NULL; + const char* pucch_deltaF_Format1b = NULL; + const char* pucch_deltaF_Format2 = NULL; + const char* pucch_deltaF_Format2a = NULL; + const char* pucch_deltaF_Format2b = NULL; + const char* rach_numberOfRA_Preambles = NULL; + const char* rach_preamblesGroupAConfig = NULL; + int rach_sizeOfRA_PreamblesGroupA = 0; + int rach_messageSizeGroupA = 0; + const char* rach_messagePowerOffsetGroupB = NULL; + int rach_powerRampingStep = 0; + int rach_preambleInitialReceivedTargetPower = 0; + int rach_preambleTransMax = 0; + int rach_raResponseWindowSize = 0; + int rach_macContentionResolutionTimer = 0; + int rach_maxHARQ_Msg3Tx = 0; + const char* pcch_defaultPagingCycle = NULL; - int pdsch_referenceSignalPower = 0; - int pdsch_p_b = 0; - int pusch_n_SB = 0; - const char * pusch_hoppingMode = NULL; - int pusch_hoppingOffset = 0; - const char* pusch_enable64QAM = NULL; - const char* pusch_groupHoppingEnabled = NULL; - int pusch_groupAssignment = 0; - const char* pusch_sequenceHoppingEnabled = NULL; - int pusch_nDMRS1 = 0; - const char* phich_duration = NULL; - const char* phich_resource = NULL; - const char* srs_enable = NULL; - int srs_BandwidthConfig = 0; - int srs_SubframeConfig = 0; - const char* srs_ackNackST = NULL; - const char* srs_MaxUpPts = NULL; - int pusch_p0_Nominal = 0; - const char* pusch_alpha = NULL; - int pucch_p0_Nominal = 0; - int msg3_delta_Preamble = 0; - //int ul_CyclicPrefixLength = 0; - const char* pucch_deltaF_Format1 = NULL; - //const char* pucch_deltaF_Format1a = NULL; - const char* pucch_deltaF_Format1b = NULL; - const char* pucch_deltaF_Format2 = NULL; - const char* pucch_deltaF_Format2a = NULL; - const char* pucch_deltaF_Format2b = NULL; - const char* rach_numberOfRA_Preambles = NULL; - const char* rach_preamblesGroupAConfig = NULL; - int rach_sizeOfRA_PreamblesGroupA = 0; - int rach_messageSizeGroupA = 0; - const char* rach_messagePowerOffsetGroupB = NULL; - int rach_powerRampingStep = 0; - int rach_preambleInitialReceivedTargetPower = 0; - int rach_preambleTransMax = 0; - int rach_raResponseWindowSize = 0; - int rach_macContentionResolutionTimer = 0; - int rach_maxHARQ_Msg3Tx = 0; - const char* pcch_defaultPagingCycle = 0; + const char* pcch_nB = NULL; + int bcch_modificationPeriodCoeff = 0; - const char* pcch_nB = NULL; - int bcch_modificationPeriodCoeff = 0; + const char* ue_TimersAndConstants_t300 = NULL; + const char* ue_TimersAndConstants_t301 = NULL; + const char* ue_TimersAndConstants_t310 = NULL; + const char* ue_TimersAndConstants_t311 = NULL; + const char* ue_TimersAndConstants_n310 = NULL; + const char* ue_TimersAndConstants_n311 = NULL; + const char* ue_TransmissionMode = NULL; - const char* ue_TimersAndConstants_t300 = NULL; - const char* ue_TimersAndConstants_t301 = NULL; - const char* ue_TimersAndConstants_t310 = NULL; - const char* ue_TimersAndConstants_t311 = NULL; - const char* ue_TimersAndConstants_n310 = NULL; - const char* ue_TimersAndConstants_n311 = NULL; - const char* ue_TransmissionMode = NULL; + int si_Narrowband_r13 = 0; + int si_TBS_r13 = 0; - int si_Narrowband_r13 = 0; - int si_TBS_r13 = 0; + int systemInfoValueTagSi_r13 = 0; - int systemInfoValueTagSi_r13 = 0; + int firstPreamble_r13 = 0; + int lastPreamble_r13 = 0; + const char* ra_ResponseWindowSize_r13 = NULL; + const char* mac_ContentionResolutionTimer_r13 = NULL; + const char* rar_HoppingConfig_r13 = NULL; + int rsrp_range_br = 0; + int prach_config_index_br = 0; + int prach_freq_offset_br = 0; + int prach_StartingSubframe_r13 = 0; + const char* maxNumPreambleAttemptCE_r13 = NULL; + const char* numRepetitionPerPreambleAttempt_r13 = NULL; + const char* mpdcch_NumRepetition_RA_r13 = NULL; + const char* prach_HoppingConfig_r13 = NULL; + int maxavailablenarrowband = 0; + int pucch_info_value = 0; - int firstPreamble_r13 = 0; - int lastPreamble_r13 = 0; - const char* ra_ResponseWindowSize_r13 = NULL; - const char* mac_ContentionResolutionTimer_r13 = NULL; - const char* rar_HoppingConfig_r13 = NULL; - int rsrp_range_br = 0; - int prach_config_index_br = 0; - int prach_freq_offset_br = 0; - int prach_StartingSubframe_r13 = 0; - const char* maxNumPreambleAttemptCE_r13 = NULL; - const char* numRepetitionPerPreambleAttempt_r13 = NULL; - const char* mpdcch_NumRepetition_RA_r13 = NULL; - const char* prach_HoppingConfig_r13 = NULL; - int maxavailablenarrowband = 0; - int pucch_info_value = 0; - - int paging_narrowbands_r13 = 0; - const char* mpdcch_numrepetition_paging_r13 = NULL; - const char* nb_v1310 = NULL; + int paging_narrowbands_r13 = 0; + const char* mpdcch_numrepetition_paging_r13 = NULL; + const char* nb_v1310 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + const char* pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; - const char* sib2_mpdcch_pdsch_hoppingNB_r13 = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeA_r13 = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeA_r13_val = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeB_r13 = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeB_r13_val = NULL; + const char* sib2_mpdcch_pdsch_hoppingNB_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeA_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeA_r13_val = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeB_r13 = NULL; + const char* sib2_interval_DLHoppingConfigCommonModeB_r13_val = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeA_r13 = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeA_r13_val = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeB_r13 = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeB_r13_val = NULL; - int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + const char* sib2_interval_ULHoppingConfigCommonModeA_r13 = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeA_r13_val = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeB_r13 = NULL; + const char* sib2_interval_ULHoppingConfigCommonModeB_r13_val = NULL; + int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; - const char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; - const char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + const char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + const char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; - const char* pusch_maxNumRepetitionCEmodeA_r13 = 0; - const char* pusch_maxNumRepetitionCEmodeB_r13 = 0; - int pusch_HoppingOffset_v1310 = 0; + const char* pusch_maxNumRepetitionCEmodeA_r13 = 0; + const char* pusch_maxNumRepetitionCEmodeB_r13 = 0; + int pusch_HoppingOffset_v1310 = 0; - int hyperSFN_r13 = 0; - int eDRX_Allowed_r13 = 0; - int q_RxLevMinCE_r13 = 0; - int q_QualMinRSRQ_CE_r13 = 0; - const char* si_WindowLength_BR_r13 = NULL; - const char* si_RepetitionPattern_r13 = NULL; - int startSymbolBR_r13 = 0; - const char* si_HoppingConfigCommon_r13 = NULL; - const char* si_ValidityTime_r13 = NULL; - const char* mpdcch_pdsch_HoppingNB_r13 = NULL; - int interval_DLHoppingConfigCommonModeA_r13_val = 0; - int interval_DLHoppingConfigCommonModeB_r13_val = 0; - int mpdcch_pdsch_HoppingOffset_r13 = 0; - const char* preambleTransMax_CE_r13 = NULL; - const char* rach_numberOfRA_Preambles_br = NULL; - const char* mpdcch_startSF_CSS_RA_r13_val = NULL; - int prach_HoppingOffset_r13 = 0; - int schedulingInfoSIB1_BR_r13 = 0; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; + int hyperSFN_r13 = 0; + int eDRX_Allowed_r13 = 0; + int q_RxLevMinCE_r13 = 0; + int q_QualMinRSRQ_CE_r13 = 0; + const char* si_WindowLength_BR_r13 = NULL; + const char* si_RepetitionPattern_r13 = NULL; + int startSymbolBR_r13 = 0; + const char* si_HoppingConfigCommon_r13 = NULL; + const char* si_ValidityTime_r13 = NULL; + const char* mpdcch_pdsch_HoppingNB_r13 = NULL; + int interval_DLHoppingConfigCommonModeA_r13_val = 0; + int interval_DLHoppingConfigCommonModeB_r13_val = 0; + int mpdcch_pdsch_HoppingOffset_r13 = 0; + const char* preambleTransMax_CE_r13 = NULL; + const char* rach_numberOfRA_Preambles_br = NULL; + const char* mpdcch_startSF_CSS_RA_r13_val = NULL; + int prach_HoppingOffset_r13 = 0; + int schedulingInfoSIB1_BR_r13 = 0; + uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13 = NULL; + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13 = NULL; - int srb1_timer_poll_retransmit = 0; - int srb1_timer_reordering = 0; - int srb1_timer_status_prohibit = 0; - int srb1_poll_pdu = 0; - int srb1_poll_byte = 0; - int srb1_max_retx_threshold = 0; + int srb1_timer_poll_retransmit = 0; + int srb1_timer_reordering = 0; + int srb1_timer_status_prohibit = 0; + int srb1_poll_pdu = 0; + int srb1_poll_byte = 0; + int srb1_max_retx_threshold = 0; - int my_int; + int my_int; - const char* active_enb[MAX_ENB]; - char* enb_interface_name_for_S1U = NULL; - char* enb_ipv4_address_for_S1U = NULL; - int enb_port_for_S1U = 0; - char* enb_interface_name_for_S1_MME = NULL; - char* enb_ipv4_address_for_S1_MME = NULL; - char *address = NULL; - char *cidr = NULL; - char *astring = NULL; - char* flexran_agent_interface_name = NULL; - char* flexran_agent_ipv4_address = NULL; - int flexran_agent_port = 0; - char* flexran_agent_cache = NULL; - int otg_ue_id = 0; - char* otg_app_type = NULL; - char* otg_bg_traffic = NULL; - char* glog_level = NULL; - char* glog_verbosity = NULL; - char* hw_log_level = NULL; - char* hw_log_verbosity = NULL; - char* phy_log_level = NULL; - char* phy_log_verbosity = NULL; - char* mac_log_level = NULL; - char* mac_log_verbosity = NULL; - char* rlc_log_level = NULL; - char* rlc_log_verbosity = NULL; - char* pdcp_log_level = NULL; - char* pdcp_log_verbosity = NULL; - char* rrc_log_level = NULL; - char* rrc_log_verbosity = NULL; - char* udp_log_verbosity = NULL; - char* osa_log_level = NULL; - char* osa_log_verbosity = NULL; + const char* active_enb[MAX_ENB]; + char* enb_interface_name_for_S1U = NULL; + char* enb_ipv4_address_for_S1U = NULL; + int enb_port_for_S1U = 0; + char* enb_interface_name_for_S1_MME = NULL; + char* enb_ipv4_address_for_S1_MME = NULL; + char *address = NULL; + char *cidr = NULL; + char *astring = NULL; + char* flexran_agent_interface_name = NULL; + char* flexran_agent_ipv4_address = NULL; + int flexran_agent_port = 0; + char* flexran_agent_cache = NULL; + int otg_ue_id = 0; + char* otg_app_type = NULL; + char* otg_bg_traffic = NULL; + char* glog_level = NULL; + char* glog_verbosity = NULL; + char* hw_log_level = NULL; + char* hw_log_verbosity = NULL; + char* phy_log_level = NULL; + char* phy_log_verbosity = NULL; + char* mac_log_level = NULL; + char* mac_log_verbosity = NULL; + char* rlc_log_level = NULL; + char* rlc_log_verbosity = NULL; + char* pdcp_log_level = NULL; + char* pdcp_log_verbosity = NULL; + char* rrc_log_level = NULL; + char* rrc_log_verbosity = NULL; + char* udp_log_verbosity = NULL; + char* osa_log_level = NULL; + char* osa_log_verbosity = NULL; printf("[KOGO][TESTING] Start of RCConfig_RCC"); @@ -604,9 +599,16 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; paramdef_t brParams[] = BRPARAMS_DESC; - //paramdef_t siInfoBRParams[] = SI_INFO_BR_DESC; + + + paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC; + paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; + //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; - //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + + paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; + //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; @@ -699,9 +701,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) - for (k=0; k -90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + + + switch (rach_preambleTransMax) { + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n3; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n4; + break; + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n5; + break; + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n6; + break; + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n7; + break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n8; + break; + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n10; + break; + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n20; + break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n50; + break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n100; + break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n200; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax); + break; + } + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + + if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + + if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_preambleTransMax); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + + if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_preambleTransMax); + + + + char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&rachcelevellist, NULL, 0, brparamspath); + + int rachCEInfoIndex; + for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) { + sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); + config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath); + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex] = lastPreamble_r13; + + printf("DEBUGGING][KOGO]: firstPreamble_r13: %d\n", firstPreamble_r13); + printf("DEBUGGING][KOGO]: lastPreamble_r13: %d\n", lastPreamble_r13); + + + + if (!strcmp(ra_ResponseWindowSize_r13, "sf20")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 0; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf50")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 1; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf80")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 2; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf120")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 3; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf180")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 4; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf240")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 5; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf320")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 6; + } else if (!strcmp(ra_ResponseWindowSize_r13, "sf400")) { + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!\n", + RC.config_file_name); + } + + if (!strcmp(mac_ContentionResolutionTimer_r13, "sf80")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 0; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf100")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 1; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf120")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 2; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf160")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 3; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf200")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 4; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf240")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 5; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf480")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 6; + } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf960")) { + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!\n", + RC.config_file_name); + } + + if (!strcmp(rar_HoppingConfig_r13, "on")) { + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = 0; + } else if (!strcmp(rar_HoppingConfig_r13, "off")) { + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!\n", + RC.config_file_name); + } + + } // end for loop (rach ce level info) + + printf("DEBUGGING][KOGO]: ra_ResponseWindowSize_r13: %s\n", ra_ResponseWindowSize_r13); + printf("DEBUGGING][KOGO]: mac_ContentionResolutionTimer_r13: %s\n", mac_ContentionResolutionTimer_r13); + printf("DEBUGGING][KOGO]: rar_HoppingConfig_r13: %s\n", rar_HoppingConfig_r13); + + + + /** BCCH CONFIG */ + switch (bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; + break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; + break; + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; + break; + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + + break; + } + + /** PCCH CONFIG */ + if (!strcmp(pcch_defaultPagingCycle, "rf32")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; + } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; + } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; + } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + } + + printf("[DEBUGGING][KOGO]: pcch_defaultPagingCycle_br = %d\n", RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle); + + if (strcmp(pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + } + else if (strcmp(pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + } + else if (strcmp(pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + } + else if (strcmp(pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + } + else if (strcmp(pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + } + else if (strcmp(pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + } + else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + } + else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_defaultPagingCycle); + + + /** PRACH CONFIG */ + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; + if ((prach_root <0) || (prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root); + + printf("DEBUGGING][KOGO]: prach_root: %d\n", prach_root); + + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; + if ((prach_config_index <0) || (prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + printf("DEBUGGING][KOGO]: prach_config_index: %d\n", prach_config_index); + + + + if (!prach_high_speed) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + } + else if (strcmp(prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed); + + + printf("DEBUGGING][KOGO]: prach_high_speed: %s\n", prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation = prach_zero_correlation; + if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation); + + printf("DEBUGGING][KOGO]: prach_zero_correlation: %d\n", prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; + if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + printf("DEBUGGING][KOGO]: prach_freq_offset: %d\n", prach_freq_offset); + + + /** PDSCH Config Common */ + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + printf("DEBUGGING][KOGO]: pdsch_referenceSignalPower: %d\n", pdsch_referenceSignalPower); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; + if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b); + + printf("DEBUGGING][KOGO]: pdsch_p_b: %d\n", pdsch_p_b); + + + + + /** PUSCH Config Common */ + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; + if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB); + + printf("DEBUGGING][KOGO]: pusch_n_SB: %d\n", pusch_n_SB); + + + + if (!pusch_hoppingMode) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } + else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode); + + printf("DEBUGGING][KOGO]: pusch_hoppingMode: %s\n", pusch_hoppingMode); + + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; + if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode); + + printf("DEBUGGING][KOGO]: pusch_hoppingOffset: %d\n", pusch_hoppingOffset); + + + if (!pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + } + else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM); + + printf("DEBUGGING][KOGO]: pusch_enable64QAM: %s\n", pusch_enable64QAM); + + + if (!pusch_groupHoppingEnabled) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + } + else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled); + + printf("DEBUGGING][KOGO]: pusch_groupHoppingEnabled: %s\n", pusch_groupHoppingEnabled); + + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; + if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment); + + printf("DEBUGGING][KOGO]: pusch_groupAssignment: %d\n", pusch_groupAssignment); + + + if (!pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + } + else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled); + + printf("DEBUGGING][KOGO]: pusch_sequenceHoppingEnabled: %s\n", pusch_sequenceHoppingEnabled); + + + /** PUCCH Config Common */ + /** TO BE CONTINUED */ + + /*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); int num_system_info; @@ -1862,30 +2472,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_CELLSELECTIONINFOCE, &cellSelectionInfoCE_r13) && !strcmp(cellSelectionInfoCE_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; - if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_RXLEVMINCE, &q_RxLevMinCE_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d q_RxLevMinCE_r13!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_Q_QUALMINRSRQ_CE, &q_QualMinRSRQ_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - - } - else - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= NULL; - - } - else - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { @@ -1904,36 +2490,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) - if (!strcmp(si_WindowLength_BR_r13, "ms20")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; - } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; - } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; - } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; - } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; - } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; - } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; - } else if (!strcmp(si_WindowLength_BR_r13, "spare")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; - } - - - if (!strcmp(si_RepetitionPattern_r13, "everyRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; - } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; - } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; - } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; - } - - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; if (!strcmp(si_HoppingConfigCommon_r13, "off")) { @@ -3403,7 +3959,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep = rach_powerRampingStep / 2; if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) AssertFatal (0, @@ -4791,7 +5347,7 @@ void RCConfig(void) { if (RC.nb_inst > 0) { RC.nb_CC = (int *)malloc((1+RC.nb_inst)*sizeof(int)); for (int i=0;i Date: Mon, 16 Oct 2017 19:44:29 +0200 Subject: [PATCH 067/125] Stable version of configuration --- common/config/config_cmdline.c | 0 common/config/config_load_configmodule.c | 0 common/config/config_load_configmodule.h | 0 common/config/config_paramdesc.h | 0 common/config/config_userapi.c | 0 common/config/config_userapi.h | 0 common/config/libconfig/config_libconfig.c | 0 common/config/libconfig/config_libconfig.h | 0 .../libconfig/config_libconfig_private.h | 0 .../utils/T/tracer/extract_input_subframe.c | 0 common/utils/load_module_shlib.c | 0 common/utils/load_module_shlib.h | 0 common/utils/telnetsrv/CMakeLists.txt | 0 common/utils/telnetsrv/telnetsrv.c | 0 common/utils/telnetsrv/telnetsrv.h | 0 common/utils/telnetsrv/telnetsrv_phycmd.c | 0 common/utils/telnetsrv/telnetsrv_phycmd.h | 0 common/utils/telnetsrv/telnetsrv_proccmd.c | 0 common/utils/telnetsrv/telnetsrv_proccmd.h | 0 open-nfapi.oai.patch | 0 openair1/SCHED/fapi_l1.c | 0 openair1/SCHED/fapi_l1.h | 0 openair2/COMMON/rrc_messages_types.h | 1 - openair2/ENB_APP/enb_config.c | 1758 ++++++++--------- openair2/ENB_APP/enb_paramdef.h | 66 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 0 openair2/RRC/LITE/MESSAGES/asn1_msg.c | 114 +- targets/ARCH/mobipass/interface.c | 0 targets/ARCH/mobipass/mobipass.c | 0 targets/ARCH/mobipass/mobipass.h | 0 targets/ARCH/mobipass/queues.c | 0 targets/ARCH/mobipass/queues.h | 0 .../CONF/enb.band13.tm1.50PRB.emtc.conf | 29 +- ...nb.band40.tm1.TDD3SS5.100PRB.usrpb210.conf | 0 ...enb.band40.tm1.TDD3SS5.25PRB.usrpb210.conf | 0 ...enb.band40.tm1.TDD3SS5.50PRB.usrpb210.conf | 0 .../CONF/mobipass-standalone.conf | 0 .../CONF/oaiL1.nfapi.usrpb210.conf | 0 .../CONF/rcc.band7.tm1.50PRB.nfapi.conf | 0 39 files changed, 912 insertions(+), 1056 deletions(-) mode change 100644 => 100755 common/config/config_cmdline.c mode change 100644 => 100755 common/config/config_load_configmodule.c mode change 100644 => 100755 common/config/config_load_configmodule.h mode change 100644 => 100755 common/config/config_paramdesc.h mode change 100644 => 100755 common/config/config_userapi.c mode change 100644 => 100755 common/config/config_userapi.h mode change 100644 => 100755 common/config/libconfig/config_libconfig.c mode change 100644 => 100755 common/config/libconfig/config_libconfig.h mode change 100644 => 100755 common/config/libconfig/config_libconfig_private.h mode change 100644 => 100755 common/utils/T/tracer/extract_input_subframe.c mode change 100644 => 100755 common/utils/load_module_shlib.c mode change 100644 => 100755 common/utils/load_module_shlib.h mode change 100644 => 100755 common/utils/telnetsrv/CMakeLists.txt mode change 100644 => 100755 common/utils/telnetsrv/telnetsrv.c mode change 100644 => 100755 common/utils/telnetsrv/telnetsrv.h mode change 100644 => 100755 common/utils/telnetsrv/telnetsrv_phycmd.c mode change 100644 => 100755 common/utils/telnetsrv/telnetsrv_phycmd.h mode change 100644 => 100755 common/utils/telnetsrv/telnetsrv_proccmd.c mode change 100644 => 100755 common/utils/telnetsrv/telnetsrv_proccmd.h mode change 100644 => 100755 open-nfapi.oai.patch mode change 100644 => 100755 openair1/SCHED/fapi_l1.c mode change 100644 => 100755 openair1/SCHED/fapi_l1.h mode change 100644 => 100755 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c mode change 100644 => 100755 targets/ARCH/mobipass/interface.c mode change 100644 => 100755 targets/ARCH/mobipass/mobipass.c mode change 100644 => 100755 targets/ARCH/mobipass/mobipass.h mode change 100644 => 100755 targets/ARCH/mobipass/queues.c mode change 100644 => 100755 targets/ARCH/mobipass/queues.h mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.100PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.25PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.50PRB.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/mobipass-standalone.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf mode change 100644 => 100755 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c old mode 100644 new mode 100755 diff --git a/common/config/config_load_configmodule.c b/common/config/config_load_configmodule.c old mode 100644 new mode 100755 diff --git a/common/config/config_load_configmodule.h b/common/config/config_load_configmodule.h old mode 100644 new mode 100755 diff --git a/common/config/config_paramdesc.h b/common/config/config_paramdesc.h old mode 100644 new mode 100755 diff --git a/common/config/config_userapi.c b/common/config/config_userapi.c old mode 100644 new mode 100755 diff --git a/common/config/config_userapi.h b/common/config/config_userapi.h old mode 100644 new mode 100755 diff --git a/common/config/libconfig/config_libconfig.c b/common/config/libconfig/config_libconfig.c old mode 100644 new mode 100755 diff --git a/common/config/libconfig/config_libconfig.h b/common/config/libconfig/config_libconfig.h old mode 100644 new mode 100755 diff --git a/common/config/libconfig/config_libconfig_private.h b/common/config/libconfig/config_libconfig_private.h old mode 100644 new mode 100755 diff --git a/common/utils/T/tracer/extract_input_subframe.c b/common/utils/T/tracer/extract_input_subframe.c old mode 100644 new mode 100755 diff --git a/common/utils/load_module_shlib.c b/common/utils/load_module_shlib.c old mode 100644 new mode 100755 diff --git a/common/utils/load_module_shlib.h b/common/utils/load_module_shlib.h old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/CMakeLists.txt b/common/utils/telnetsrv/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/telnetsrv.c b/common/utils/telnetsrv/telnetsrv.c old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/telnetsrv.h b/common/utils/telnetsrv/telnetsrv.h old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/telnetsrv_phycmd.c b/common/utils/telnetsrv/telnetsrv_phycmd.c old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/telnetsrv_phycmd.h b/common/utils/telnetsrv/telnetsrv_phycmd.h old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.c b/common/utils/telnetsrv/telnetsrv_proccmd.c old mode 100644 new mode 100755 diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.h b/common/utils/telnetsrv/telnetsrv_proccmd.h old mode 100644 new mode 100755 diff --git a/open-nfapi.oai.patch b/open-nfapi.oai.patch old mode 100644 new mode 100755 diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c old mode 100644 new mode 100755 diff --git a/openair1/SCHED/fapi_l1.h b/openair1/SCHED/fapi_l1.h old mode 100644 new mode 100755 diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 77a701d11b..3c97598369 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -197,7 +197,6 @@ typedef struct RrcConfigurationReq_s { long* q_QualMinRSRQ_CE_r13 [MAX_NUM_CCs]; BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13 [MAX_NUM_CCs]; -// +kogo -- FIXME -- size 10 is temporary long si_Narrowband_r13 [MAX_NUM_CCs][32]; long si_TBS_r13 [MAX_NUM_CCs][32]; int scheduling_info_br_size [MAX_NUM_CCs]; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index e665d9bc46..5d5af145b6 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -144,7 +144,7 @@ void RCconfig_RU(void) { RC.ru[j]->num_eNB = RUParamList.paramarray[j][RU_ENB_LIST_IDX].numelt; else RC.ru[j]->num_eNB = 0; - for (i=0;inum_eNB;i++) RC.ru[j]->eNB_list[i] = RC.eNB[RUParamList.paramarray[j][RU_ENB_LIST_IDX].iptr[i]][0]; + for (i=0;inum_eNB;i++) RC.ru[j]->eNB_list[i] = RC.eNB[RUParamList.paramarray[j][RU_ENB_LIST_IDX].iptr[i]] [0]; if (strcmp(*(RUParamList.paramarray[j][RU_LOCAL_RF_IDX].strptr), "yes") == 0) { @@ -479,7 +479,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) const char* numRepetitionPerPreambleAttempt_r13 = NULL; const char* mpdcch_NumRepetition_RA_r13 = NULL; const char* prach_HoppingConfig_r13 = NULL; - int maxavailablenarrowband = 0; + int *maxavailablenarrowband = NULL; int pucch_info_value = 0; int paging_narrowbands_r13 = 0; @@ -526,7 +526,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) int mpdcch_pdsch_HoppingOffset_r13 = 0; const char* preambleTransMax_CE_r13 = NULL; const char* rach_numberOfRA_Preambles_br = NULL; - const char* mpdcch_startSF_CSS_RA_r13_val = NULL; + int prach_HoppingOffset_r13 = 0; int schedulingInfoSIB1_BR_r13 = 0; uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; @@ -538,9 +538,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) char* freqHoppingParametersDL_r13 = NULL; char* interval_DLHoppingConfigCommonModeA_r13 = NULL; char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13 = NULL; - + const char* prach_ConfigCommon_v1310 = NULL; + const char* mpdcch_startSF_CSS_RA_r13 = NULL; + const char* mpdcch_startSF_CSS_RA_r13_val = NULL; int srb1_timer_poll_retransmit = 0; int srb1_timer_reordering = 0; @@ -604,15 +604,23 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC; paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; - //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; - //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; - //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; - //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; - //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; + paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; + paramlist_def_t rsrprangelist = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0}; + + + paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; + paramlist_def_t prachParamslist = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0}; + + paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; + paramlist_def_t n1PUCCHInfoList = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0}; + + paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; + + paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; paramdef_t SRB1Params[] = SRB1PARAMS_DESC; @@ -1839,17 +1847,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) if (!strcmp(cellSelectionInfoCE_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; +// RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); +// *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; } else { RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; } + printf("[DEBUGGING][KOGO]: bandwidthReducedAccessRelatedInfo_r13 = %s\n", bandwidthReducedAccessRelatedInfo_r13); if (!strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + + printf("[DEBUGGING][KOGO][TANY]: bandwidthReducedAccessRelatedInfo_r13 = %s\n", bandwidthReducedAccessRelatedInfo_r13); + if (!strcmp(si_WindowLength_BR_r13, "ms20")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { @@ -1883,10 +1895,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; } - char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2]; config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath); - + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt; int siInfoindex; for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) { sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST, siInfoindex); @@ -1898,14 +1909,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) } + +// RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = 0; + // kogo -- recheck RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } else { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } + printf("[DEBUGGING][KOGO] fdd_DownlinkOrTddSubframeBitmapBR_r13 = %s\n", fdd_DownlinkOrTddSubframeBitmapBR_r13); printf("[DEBUGGING][KOGO] fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = %x\n", fdd_DownlinkOrTddSubframeBitmapBR_val_r13); RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; @@ -1968,6 +1984,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) /** ------------------------------SIB23------------------------------------------ */ + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); if (!strcmp(preambleTransMax_CE_r13, "n3")) { *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 0; @@ -2043,6 +2061,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep = rach_powerRampingStep / 2; + printf("[DEBUGGING][KOGO]: rach_powerRampingStep = %d\n", rach_powerRampingStep); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower = (rach_preambleInitialReceivedTargetPower + 120) / 2; @@ -2052,6 +2072,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + printf("[DEBUGGING][KOGO]: rach_preambleInitialReceivedTargetPower = %d\n", rach_preambleInitialReceivedTargetPower); + switch (rach_preambleTransMax) { case 3: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n3; @@ -2094,6 +2116,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) } + printf("[DEBUGGING][KOGO]: rach_preambleTransMax = %d\n", rach_preambleTransMax); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) @@ -2101,7 +2125,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", RC.config_file_name, i, rach_preambleTransMax); - + printf("[DEBUGGING][KOGO]: rach_raResponseWindowSize = %d\n", rach_raResponseWindowSize); RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; @@ -2110,6 +2134,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", RC.config_file_name, i, rach_preambleTransMax); + printf("[DEBUGGING][KOGO]: rach_macContentionResolutionTimer = %d\n", rach_macContentionResolutionTimer); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) @@ -2117,11 +2143,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", RC.config_file_name, i, rach_preambleTransMax); - + printf("[DEBUGGING][KOGO]: rach_maxHARQ_Msg3Tx = %d\n", rach_maxHARQ_Msg3Tx); char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2]; config_getlist(&rachcelevellist, NULL, 0, brparamspath); - + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = rachcelevellist.numelt; int rachCEInfoIndex; for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) { sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); @@ -2445,9 +2471,748 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) printf("DEBUGGING][KOGO]: pusch_sequenceHoppingEnabled: %s\n", pusch_sequenceHoppingEnabled); + + /** PUCCH Config Common */ /** TO BE CONTINUED */ + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; + + if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift); + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; + + if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; + + if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN); + + + /** + check if pucch_n1_AN is in necessary the BR parameters + */ + + + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; + + if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + + if (strcmp(pusch_alpha, "AL0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; + } else if (strcmp(pusch_alpha, "AL04") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; + } else if (strcmp(pusch_alpha, "AL05") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; + } else if (strcmp(pusch_alpha, "AL06") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; + } else if (strcmp(pusch_alpha, "AL07") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; + } else if (strcmp(pusch_alpha, "AL08") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; + } else if (strcmp(pusch_alpha, "AL09") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; + } else if (strcmp(pusch_alpha, "AL1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; + if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal); + + if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } + else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1); + + if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } + else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b); + + + if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } + else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2); + + if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a); + + if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } + else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b); + + + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; + + if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble); + + + + + if (!strcmp(prach_ConfigCommon_v1310, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + + if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; + } else { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + } + + if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 0; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 1; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 2; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 3; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 4; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 5; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 6; + } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "10")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 7; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n", + RC.config_file_name, i); + } + printf("[DEBUGGING][KOGO] mpdcch_startSF_CSS_RA_r13_val %s\n", mpdcch_startSF_CSS_RA_r13_val); + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + } else { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; + } + + + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO]: pdsch_maxNumRepetitionCEmodeA_r13: %s\n", pdsch_maxNumRepetitionCEmodeA_r13); + + + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO]: pusch_maxNumRepetitionCEmodeA_r13: %s\n", pusch_maxNumRepetitionCEmodeA_r13); + + + char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&rsrprangelist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = rsrprangelist.numelt; + + + int rsrprangeindex; + for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) { + sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex); + config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = rsrp_range_br; + printf("[DEBUGGING][KOGO] : rsrp range br = %d\n", rsrp_range_br); + } + + + char prachparameterscePath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&prachParamslist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = prachParamslist.numelt; + + int prachparamsindex; + for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) { + sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex); + config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath); + + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex] = prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex] = prach_freq_offset_br; + + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = prach_StartingSubframe_r13; + + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long)); + if (!strcmp(maxNumPreambleAttemptCE_r13, "n3")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 0; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 1; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n5")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 2; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n6")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 3; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n7")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 4; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 5; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n10")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 6; + } else if (!strcmp(maxNumPreambleAttemptCE_r13, "spare1")) { + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, maxNumPreambleAttemptCE_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + printf("[DEBUGGING][KOGO]: maxNumPreambleAttemptCE_r13: %s\n", maxNumPreambleAttemptCE_r13); + + + if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 0; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 1; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 2; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 3; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n16")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 4; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n32")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 5; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n64")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 6; + } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n128")) { + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, numRepetitionPerPreambleAttempt_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO]: numRepetitionPerPreambleAttempt_r13: %s\n", numRepetitionPerPreambleAttempt_r13); + + + if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 0; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 1; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r4")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 2; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r8")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 3; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r16")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 4; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r32")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 5; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r64")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 6; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r128")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 7; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r256")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 8; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r512")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 9; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1024")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 10; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2048")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 11; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare4")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 12; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare3")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 13; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare2")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 14; + } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare1")) { + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 15; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, mpdcch_NumRepetition_RA_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO]: mpdcch_NumRepetition_RA_r13: %s\n", mpdcch_NumRepetition_RA_r13); + + if (!strcmp(prach_HoppingConfig_r13, "off")) { + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = 1; + } else if (!strcmp(prach_HoppingConfig_r13, "on")) { + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = 0; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, prach_HoppingConfig_r13 unknown value !! %d!\n", + RC.config_file_name, nb_cc++); + } + + printf("[DEBUGGING][KOGO]: prach_HoppingConfig_r13: %s\n", prach_HoppingConfig_r13); + + + + int maxavailablenarrowband_count = prachParams[7].numelt; + printf("[DEBUGGING][KOGO]: maxavailablenarrowband count = %d\n", prachParams[7].numelt); + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prachparamsindex] = maxavailablenarrowband_count; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++) + { + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prachparamsindex][narrow_band_index] = prachParams[7].iptr[narrow_band_index]; + printf("[DEBUGGING][KOGO]: maxavailablenarrowband[index] = %d\n", prachParams[7].iptr[narrow_band_index]); + } + + + } + + char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = n1PUCCHInfoList.numelt; + + int n1PUCCHinfolistindex; + for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) { + sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex); + config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = pucch_info_value; + printf("[DEBUGGING][KOGO]: pucch_info_value: %d\n", pucch_info_value); + } + + /** UE Timers And Constants */ + + + if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", + RC.config_file_name, i, ue_TimersAndConstants_t300); + } + + printf("[DEBUGGING][KOGO]: ue_TimersAndConstants_t300 : %s\n", ue_TimersAndConstants_t300); + + if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; + } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", + RC.config_file_name, i, ue_TimersAndConstants_t301); + } + + printf("[DEBUGGING][KOGO]: ue_TimersAndConstants_t301 : %s\n", ue_TimersAndConstants_t301); + + if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", + RC.config_file_name, i, ue_TimersAndConstants_t310); + } + + printf("[DEBUGGING][KOGO]: ue_TimersAndConstants_t310 : %s\n", ue_TimersAndConstants_t310); + + if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; + } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", + RC.config_file_name, i, ue_TimersAndConstants_t311); + } + + printf("[DEBUGGING][KOGO]: ue_TimersAndConstants_t311 : %s\n", ue_TimersAndConstants_t311); + + if (!strcmp(ue_TimersAndConstants_n310, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; + } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; + } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; + } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; + } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; + } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; + } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; + } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", + RC.config_file_name, i, ue_TimersAndConstants_n310); + } + + printf("[DEBUGGING][KOGO]: ue_TimersAndConstants_n310 : %s\n", ue_TimersAndConstants_n310); + + if (!strcmp(ue_TimersAndConstants_n311, "n1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; + } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; + } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; + } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; + } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; + } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; + } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; + } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", + RC.config_file_name, i, ue_TimersAndConstants_n311); + } + + printf("[DEBUGGING][KOGO]: ue_TimersAndConstants_n311 : %s\n", ue_TimersAndConstants_n311); + + + if (!strcmp(ue_TransmissionMode, "tm1")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; + } else if (!strcmp(ue_TransmissionMode, "tm2")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; + } else if (!strcmp(ue_TransmissionMode, "tm3")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; + } else if (!strcmp(ue_TransmissionMode, "tm4")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; + } else if (!strcmp(ue_TransmissionMode, "tm5")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; + } else if (!strcmp(ue_TransmissionMode, "tm6")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; + } else if (!strcmp(ue_TransmissionMode, "tm7")) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", + RC.config_file_name, i, ue_TransmissionMode); + } + + printf("[DEBUGGING][KOGO]: ue_TransmissionMode : %s\n", ue_TransmissionMode); + + char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); + config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path); + + + + /** PCCH CONFIG V1310 */ + + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; + printf("[DEBUGGING][KOGO]: paging_narrowbands_r13 = %d\n", paging_narrowbands_r13); + + if (!strcmp(mpdcch_numrepetition_paging_r13, "r1")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 0; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r2")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 1; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r4")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 2; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r8")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 3; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r16")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 4; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r32")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 5; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r64")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 6; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r128")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 7; + } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r256")) { + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 8; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + RC.config_file_name); + } + + printf("[DEBUGGING][KOGO] mpdcch_numrepetition_paging_r13: %s\n", mpdcch_numrepetition_paging_r13); + +// RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); +// if (!strcmp(nb_v1310, "one64thT")) { +// *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; +// } else if (!strcmp(nb_v1310, "one128thT")) { +// *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; +// } else if (!strcmp(nb_v1310, "one256thT")) { +// *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; +// } else { +// AssertFatal(0, +// "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", +// RC.config_file_name); +// } +// printf("[DEBUGGING][KOGO][CHAR*] nb_v1310: %s - %d\n", nb_v1310, *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j]); + + + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); + // ++cnt; // check this ,, the conter is up above + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", + RC.config_file_name); + } + printf("DEBUGGING][KOGO]: pucch_NumRepetitionCE_Msg4_Level0_r13: %s\n", pucch_NumRepetitionCE_Msg4_Level0_r13); + + + + /** SIB2 FREQ HOPPING PARAMETERS R13 */ + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; + + char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13); + config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path); + + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int2")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int4")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int8")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int5")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int10")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int20")) { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + RC.config_file_name); + } + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + + printf("[DEBUGGING][KOGO]: sib2_interval_ULHoppingConfigCommonModeA_r13: %s\n", sib2_interval_ULHoppingConfigCommonModeA_r13); + printf("[DEBUGGING][KOGO]: sib2_interval_ULHoppingConfigCommonModeA_r13_val: %s\n", sib2_interval_ULHoppingConfigCommonModeA_r13_val); + + + + if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! + + printf("[DEBUGGING][KOGO]: pusch_nDMRS1 = %d\n", pusch_nDMRS1); + + if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1); + + + if (strcmp(phich_duration, "NORMAL") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; + } + else if (strcmp(phich_duration, "EXTENDED") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; + } + else + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration); + + + printf("[DEBUGGING][KOGO]: phich_duration = %s\n", phich_duration); + + if (strcmp(phich_resource, "ONESIXTH") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; + } + else if (strcmp(phich_resource, "HALF") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; + } + else if (strcmp(phich_resource, "ONE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; + } + else if (strcmp(phich_resource, "TWO") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource); + } + + printf("[DEBUGGING][KOGO]: phich_resource = %s\n", phich_resource); + + + printf("phich.resource %d (%s), phich.duration %d (%s)\n", + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); + + if (strcmp(srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; + } + else if (strcmp(srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; + } + else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable); + } + + printf("[DEBUGGING][KOGO]: srs_enable = %s\n", srs_enable); + + + + /*system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST); @@ -2472,90 +3237,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_BRAccessRelatedInfo, &bandwidthReducedAccessRelatedInfo_r13) && !strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) - { - printf("Enabling BR access SI scheduling parameters\n"); - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_WINDOWLENGTH_BR, &si_WindowLength_BR_r13) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_REPETITIONPATTERN, &si_RepetitionPattern_r13) || - !config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_STARTSYMBOLBR, &startSymbolBR_r13) || - !config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_HOPPINGCONFIGCOMMON, &si_HoppingConfigCommon_r13)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_WindowLength_BR_r13, si_RepetitionPattern_r13, fdd_DownlinkOrTddSubframeBitmapBR_r13, fdd_UplinkSubframeBitmapBR_r13!\n", - RC.config_file_name, i); - - } - - - - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - - if (!strcmp(si_HoppingConfigCommon_r13, "off")) { - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; - } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) { - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; - } - - - printf("DEBUGGING][KOGO][CHAR*]: window length: %s - %d\n", si_WindowLength_BR_r13, RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j]); - printf("DEBUGGING][KOGO][CHAR*]: repetition pattern: %s - %d\n", si_RepetitionPattern_r13, RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j]); - printf("DEBUGGING][KOGO][CHAR*]: hopping config common: %s - %d\n", si_HoppingConfigCommon_r13, RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j]); - - scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST); - int num_scheduling_info = config_setting_length(scheduling_info_br_list); - RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info; - - for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx) - { - scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx); - if (!( - config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13) - && config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13) - ) - ){ - AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13; - RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13; - } - - bool fdd_downlink_exist = config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDD_SFB_BR, &fdd_DownlinkOrTddSubframeBitmapBR_r13); - if (fdd_downlink_exist) - { - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - else - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - - config_setting_lookup_int64(setting_br13, ENB_CONFIG_STRING_FDD_DLORTDDSFB_BR_VAL, &fdd_DownlinkOrTddSubframeBitmapBR_val_r13); - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - } - else - { - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = NULL; - } - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_SI_VALIDITYTIME, &si_ValidityTime_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(si_ValidityTime_r13, "true")) { - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", - RC.config_file_name, i); - } - printf("DEBUGGING][KOGO][CHAR*]: si_ValidityTime_r13: %s - %d\n", si_ValidityTime_r13, *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j]); - } - else - { - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = NULL; - } - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FREQHOPPINGPARAMETERSDL, &freqHoppingParametersDL_r13) && !strcmp(freqHoppingParametersDL_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; @@ -2571,187 +3252,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) } - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; - - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGNB, &mpdcch_pdsch_HoppingNB_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) { - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; - } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) { - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", - RC.config_file_name, i); - } - } - else { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = NULL; - } - - if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPINGOFFSET, &mpdcch_pdsch_HoppingOffset_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - } - else - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = NULL; - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; - } - // SIB23 parameters --------------------------------------------------------------------------------------------------------------------------- - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PREAMBLETRANSMAX_CE_R13, &preambleTransMax_CE_r13)) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - if (!strcmp(preambleTransMax_CE_r13, "n3")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 0; - } else if (!strcmp(preambleTransMax_CE_r13, "n4")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 1; - } else if (!strcmp(preambleTransMax_CE_r13, "n5")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 2; - } else if (!strcmp(preambleTransMax_CE_r13, "n6")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 3; - } else if (!strcmp(preambleTransMax_CE_r13, "n7")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 4; - } else if (!strcmp(preambleTransMax_CE_r13, "n8")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 5; - } else if (!strcmp(preambleTransMax_CE_r13, "n10")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 6; - } else if (!strcmp(preambleTransMax_CE_r13, "n20")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 7; - } else if (!strcmp(preambleTransMax_CE_r13, "n50")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 8; - } else if (!strcmp(preambleTransMax_CE_r13, "n100")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 9; - } else if (!strcmp(preambleTransMax_CE_r13, "n200")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 10; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d preambleTransMax_CE_r13 unknown value!\n", - RC.config_file_name, i); - } - } - else - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = NULL; - } - printf("DEBUGGING][KOGO][CHAR*]: preambleTransMax_CE_r13: %s - %d\n", preambleTransMax_CE_r13, *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13); - rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST); - int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list); - RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list; - int rach_info_level_idx; - for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx) - { - rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx); - if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13) - && config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13) - && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13) - && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13) - && config_setting_lookup_string(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) ) - ) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n", - RC.config_file_name, nb_cc++); - } - - RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13; - - if (!strcmp(ra_ResponseWindowSize_r13, "sf20")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 0; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf50")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 1; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf80")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 2; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf120")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 3; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf180")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 4; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf240")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 5; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf320")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 6; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf400")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!\n", - RC.config_file_name); - } - - if (!strcmp(mac_ContentionResolutionTimer_r13, "sf80")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 0; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf100")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 1; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf120")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 2; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf160")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 3; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf200")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 4; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf240")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 5; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf480")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 6; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf960")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!\n", - RC.config_file_name); - } - - if (!strcmp(rar_HoppingConfig_r13, "on")) { - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = 0; - } else if (!strcmp(rar_HoppingConfig_r13, "off")) { - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = 1; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!\n", - RC.config_file_name); - } - - } // for - - printf("DEBUGGING][KOGO][CHAR*]: ra_ResponseWindowSize_r13: %s - %d\n", preambleTransMax_CE_r13, RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][0]); - printf("DEBUGGING][KOGO][CHAR*]: mac_ContentionResolutionTimer_r13: %s - %d\n", mac_ContentionResolutionTimer_r13, RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][0]); - printf("DEBUGGING][KOGO][CHAR*]: rar_HoppingConfig_r13: %s - %d\n", rar_HoppingConfig_r13, RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][0]); - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pdsch_maxNumRepetitionCEmodeA_r13)) { - RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { - *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { - *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", - RC.config_file_name); - } - printf("DEBUGGING][KOGO][CHAR*]: pdsch_maxNumRepetitionCEmodeA_r13: %s - %d\n", pdsch_maxNumRepetitionCEmodeA_r13, *RRC_CONFIGURATION_REQ (msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j]); - } if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pdsch_maxNumRepetitionCEmodeB_r13)) { @@ -2781,25 +3289,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) } - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, &pusch_maxNumRepetitionCEmodeA_r13)) { - RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", - RC.config_file_name); - } - printf("DEBUGGING][KOGO][CHAR*]: pusch_maxNumRepetitionCEmodeA_r13: %s - %d\n", pusch_maxNumRepetitionCEmodeA_r13, *RRC_CONFIGURATION_REQ (msg_p).pusch_maxNumRepetitionCEmodeA_r13[j]); - } - - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_B_R13, &pusch_maxNumRepetitionCEmodeB_r13)) { RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeB_r13[j] = CALLOC(1, sizeof(long)); if (!strcmp(pusch_maxNumRepetitionCEmodeB_r13, "r192")) { @@ -2833,30 +3322,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) printf("DEBUGGING][KOGO][CHAR*]: pusch_HoppingOffset_v1310 %d\n", *RRC_CONFIGURATION_REQ (msg_p).pusch_HoppingOffset_v1310[j]); } - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, &pucch_NumRepetitionCE_Msg4_Level0_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); - ++cnt; - if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", - RC.config_file_name); - } - printf("DEBUGGING][KOGO][CHAR*]: pucch_NumRepetitionCE_Msg4_Level0_r13: %s - %d\n", pucch_NumRepetitionCE_Msg4_Level0_r13, *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j]); - } - else - { - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = NULL;; - } - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, &pucch_NumRepetitionCE_Msg4_Level1_r13)) { @@ -2934,23 +3399,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) } - rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST); - int num_rsrp_list = config_setting_length(rsrp_range_list); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list; - int rsrp_range_idx; - for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx) - { - rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx); - if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br))) - { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rsrp_range %d!\n", - RC.config_file_name, nb_cc++); - } - RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br; - printf("[DEBUGGING][KOGO] : rsrp range br = %d\n", rsrp_range_br); - } - prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13); int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list); RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13; @@ -2972,128 +3420,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) printf("[DEBUGGING][KOGO] : prach hopping config = %d\n", prach_HoppingConfig_r13); - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br; - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br; - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - - if (config_setting_lookup_string(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - if (!strcmp(maxNumPreambleAttemptCE_r13, "n3")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 0; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n4")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 1; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n5")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 2; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n6")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 3; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n7")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 4; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n8")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 5; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n10")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 6; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "spare1")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, maxNumPreambleAttemptCE_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); - } - printf("[DEBUGGING][KOGO][CHAR*]: maxNumPreambleAttemptCE_r13: %s - %d\n", maxNumPreambleAttemptCE_r13, *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index]); - } - else - { - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL; - } - - - - if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n1")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 0; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n2")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 1; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n4")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 2; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n8")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 3; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n16")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 4; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n32")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 5; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n64")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 6; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n128")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, numRepetitionPerPreambleAttempt_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); - } - printf("[DEBUGGING][KOGO][CHAR*]: numRepetitionPerPreambleAttempt_r13: %s - %d\n", numRepetitionPerPreambleAttempt_r13, RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index]); - - - if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 0; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 1; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r4")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 2; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r8")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 3; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r16")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 4; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r32")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 5; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r64")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 6; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r128")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 7; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r256")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 8; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r512")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 9; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1024")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 10; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2048")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 11; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare4")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 12; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare3")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 13; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare2")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 14; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare1")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = 15; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, mpdcch_NumRepetition_RA_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); - } - - printf("[DEBUGGING][KOGO][CHAR*]: mpdcch_NumRepetition_RA_r13: %s - %d\n", mpdcch_NumRepetition_RA_r13, RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index]); - - if (!strcmp(prach_HoppingConfig_r13, "off")) { - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = 1; - } else if (!strcmp(prach_HoppingConfig_r13, "on")) { - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = 0; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, prach_HoppingConfig_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); - } - - printf("[DEBUGGING][KOGO][CHAR*]: prach_HoppingConfig_r13: %s - %d\n", prach_HoppingConfig_r13, RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index]); - - if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13)) - { - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13; - } - else - { - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL; - } max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND); @@ -3255,54 +3581,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) - if (config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) - { - - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); - config_setting_lookup_string(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int2")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int4")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int8")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", - RC.config_file_name); - } - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int5")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int10")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int20")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", - RC.config_file_name); - } - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", - RC.config_file_name); - } - - printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeA_r13: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeA_r13, *RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j]); - } - else - { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = NULL; - } - printf("[DEBUGGING][KOGO][CHAR*]: sib2_interval_ULHoppingConfigCommonModeA_r13_val: %s - %d\n", sib2_interval_ULHoppingConfigCommonModeA_r13_val, RRC_CONFIGURATION_REQ (msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j]); @@ -3434,217 +3712,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) continue; // FIXME this prevents segfaults below, not sure what happens after function exit } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; - - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; - - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); - - if (!prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation; - - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; - - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; - - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; - - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; - - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; - - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); - - if (!pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; - - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); - - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); - - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; - - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); - - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); - - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); - - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); - - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); - - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); - if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable == TRUE) { if (!(config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, &srs_BandwidthConfig) && config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, &srs_SubframeConfig) @@ -3691,130 +3758,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) RC.config_file_name, i, srs_MaxUpPts); } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; - - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); - - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; - } - else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; - } - else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; - } - else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; - } - else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; - } - else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; - } - else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; - } - else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; - - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; - - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); - - - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); - - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); - - - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); - - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); - - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); @@ -4282,74 +4225,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) printf("[DEBUGGING][KOGO][CHAR*]: ue_TransmissionMode : %s - %d\n", ue_TransmissionMode, RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode); - setting_pcch_config_v1310 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); - if (setting_pcch_config_v1310 != NULL) - { - RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; - if (!config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, &paging_narrowbands_r13) - || !config_setting_lookup_string(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &mpdcch_numrepetition_paging_r13) - ) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d pcch_config_v1310!\n", - RC.config_file_name, i); - RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; - - - if (!strcmp(mpdcch_numrepetition_paging_r13, "r1")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 0; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r2")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 1; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r4")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 2; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r8")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 3; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r16")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 4; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r32")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 5; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r64")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 6; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r128")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 7; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r256")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 8; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", - RC.config_file_name); - } - - printf("[DEBUGGING][KOGO][CHAR*] mpdcch_numrepetition_paging_r13: %s - %d\n", mpdcch_numrepetition_paging_r13, RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j]); - - if (config_setting_lookup_string(setting_pcch_config_v1310, ENB_CONFIG_STRING_NB_V1310, &nb_v1310)) - { - RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); - if (!strcmp(nb_v1310, "one64thT")) { - *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; - } else if (!strcmp(nb_v1310, "one128thT")) { - *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; - } else if (!strcmp(nb_v1310, "one256thT")) { - *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", - RC.config_file_name); - } - printf("[DEBUGGING][KOGO][CHAR*] nb_v1310: %s - %d\n", nb_v1310, *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j]); - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = NULL; - } - - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = FALSE; - } if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_HYPERSFN, &hyperSFN_r13)) { @@ -4388,72 +4264,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) /////SIB2 Parameters - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIGCOMMON_V1310, &prach_ConfigCommon_v1310) && !strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - - if (config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13, &mpdcch_startSF_CSS_RA_r13)) - { - if (!config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_MPDCCH_STARTSF_CSS_RA_R13_VAL, &mpdcch_startSF_CSS_RA_r13_val)) - { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val!\n", - RC.config_file_name, i); - - } - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); - - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; - } else { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; - } - - if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 0; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 1; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 2; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 3; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v4")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 4; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v5")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 5; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v8")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 6; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "10")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 7; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n", - RC.config_file_name, i); - } - printf("[DEBUGGING][KOGO][CHAR*] mpdcch_startSF_CSS_RA_r13_val %s - %d\n", mpdcch_startSF_CSS_RA_r13_val, RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val); - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = NULL; - } - - //if (config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_HOPPINGOFFSET_R13, &prach_HoppingOffset_r13)) - //{ - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; - - //} - //else - //{ - // RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = NULL; - //} - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; - } } else { diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index e01db7aa5a..019b9a750e 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -383,6 +383,12 @@ static int DEFENBS[] = {0}; #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2 "pucch_deltaF_Format2" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A "pucch_deltaF_Format2a" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B "pucch_deltaF_Format2b" + +#define ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310 "prach_ConfigCommon_v1310" +#define ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13 "mpdcch_startSF_CSS_RA_r13" +#define ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL "mpdcch_startSF_CSS_RA_r13_val" +#define ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13 "prach_HoppingOffset_r13" + #define ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES "rach_numberOfRA_Preambles" #define ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG "rach_preamblesGroupAConfig" #define ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA "rach_sizeOfRA_PreamblesGroupA" @@ -460,12 +466,18 @@ static int DEFENBS[] = {0}; {ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, strptr:&rach_numberOfRA_Preambles, defstrval:"n64", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, strptr:&rach_numberOfRA_Preambles, defstrval:"n64", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ @@ -513,6 +525,10 @@ static int DEFENBS[] = {0}; #define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "mpdcch_pdsch_HoppingOffset_r13" +#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" +#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" + + #define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" #define BRPARAMS_DESC { \ @@ -654,40 +670,42 @@ static int DEFENBS[] = {0}; #define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" #define PRACH_PARAMS_CE_R13_DESC { \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&maxNumPreambleAttemptCE_r13, defintval:"n10", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&numRepetitionPerPreambleAttempt_r13, defintval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&mpdcch_NumRepetition_RA_r13, defintval:"r1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&prach_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}, \ -{ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, iptr:&maxavailablenarrowband, defintval:2, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, strptr:&maxNumPreambleAttemptCE_r13, defstrval:"n10", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, strptr:&numRepetitionPerPreambleAttempt_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, strptr:&mpdcch_NumRepetition_RA_r13, defstrval:"r1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, strptr:&prach_HoppingConfig_r13, defstrval:"off", TYPE_STRING, 0}, \ +{ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_INTARRAY, 0} \ } +#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" + #define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" #define N1PUCCH_AN_INFOLIST_R13_DESC { \ -"pucch_info_value", NULL, 0, iptr:&pucch_info_value, defintval:0, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&pucch_info_value, defintval:0, TYPE_UINT, 0} \ } #define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" #define PCCH_CONFIG_V1310_DESC { \ -"paging_narrowbands_r13", NULL, 0, iptr:&paging_narrowbands_r13, defintval:1, TYPE_UINT, 0} \ -"mpdcch_numrepetition_paging_r13", NULL, 0, iptr:&mpdcch_numrepetition_paging_r13, defintval:"r1", TYPE_STRING, 0} \ -"nb_v1310", NULL, 0, iptr:&nb_v1310, defintval:"one256thT", TYPE_STRING, 0} \ - } +{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&mpdcch_numrepetition_paging_r13, defintval:"r1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&nb_v1310, defintval:"one256thT", TYPE_STRING, 0} \ +} #define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" #define SIB2_FREQ_HOPPING_R13_DESC { \ -"sib2_mpdcch_pdsch_hoppingNB_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingNB_r13, defintval:"", TYPE_STRING, 0} \ -"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13, defintval:"", TYPE_STRING, 0} \ -"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:"", TYPE_STRING, 0} \ -"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0} \ -"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0} \ -"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13, defintval:"FDD", TYPE_STRING, 0} \ -"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:"int4", TYPE_STRING, 0} \ -"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0} \ -"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_UHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0} \ -"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&sib2_mpdcch_pdsch_hoppingNB_r13, defstrval:"", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13, defintval:"", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:"", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defstrval:"int4", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0}, \ +{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ } /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c old mode 100644 new mode 100755 diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index e935c7f1fd..1b2391cfcb 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -558,6 +558,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) { + printf("[DEBUGGING][KOGO][TANY2]: bandwidthReducedAccessRelatedInfo_r13 = %d\n", configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]); sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); @@ -572,6 +573,8 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 = configuration->si_RepetitionPattern_r13[CC_id]; // 0 + printf("[DEBUGGING][KOGO][ASN1]: si_RepetitionPattern_r13 = %d\n", configuration->si_RepetitionPattern_r13[CC_id]); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t)); @@ -584,6 +587,8 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; + printf("[DEBUGGING][ASN1]: si_NarrowBand_r13: %d\n", configuration->si_Narrowband_r13[CC_id][index]); + printf("[DEBUGGING][ASN1]: si_TBS_r13: %d\n", configuration->si_TBS_r13[CC_id][index]); LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",schedulinginfo_br_13->si_Narrowband_r13,schedulinginfo_br_13->si_TBS_r13); ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); } @@ -1276,14 +1281,18 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]) { + puts("[DEBUGGING][KOGO][ASN]: SIB2 Interval UL HOPPING CONFIG COMMON MODE A\n"); (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13)); if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0) { + printf("[DEBUGGING][KOGO][ASN]: FDD UL HOPPING CONFIG COMMON MODE A\n"); + printf("[DEBUGGING][KOGO][ASN]: interval UL hopping config common: %d\n", configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]); (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 = configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]; + } else { @@ -1296,6 +1305,7 @@ uint8_t do_SIB23(uint8_t Mod_id, } else { + printf("[DEBUGGING][KOGO][ALLOC ERROR] interval ul hopping: %d\n", configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]); (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL; } @@ -1419,7 +1429,6 @@ uint8_t do_SIB23(uint8_t Mod_id, ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, rsrp_range); } - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL; if (rrconfig->mpdcch_startSF_CSS_RA_r13) @@ -1437,6 +1446,8 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; } + printf("[DEBUGGING][KOGO][SIB23]: mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = %d\n", + (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13); } if (rrconfig->prach_HoppingOffset_r13) @@ -1448,6 +1459,8 @@ uint8_t do_SIB23(uint8_t Mod_id, { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; } + printf("[DEBUGGING][KOGO][SIB23]: prach_HoppingOffset_r13 = %d\n", + *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13); PRACH_ParametersCE_r13_t *prach_parametersce_r13; @@ -1457,53 +1470,68 @@ uint8_t do_SIB23(uint8_t Mod_id, for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index) { - prach_parametersce_r13 = CALLOC(1, sizeof(PRACH_ParametersCE_r13_t)); - - prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; - prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index]; - - AssertFatal(configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]!=NULL, - "configuration->prach_StartingSubframe_r13[%d][%d] is null", - (int)CC_id,(int)prach_parameters_index); - if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) - { - prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); - *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; - } - else - { - prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; - } + prach_parametersce_r13 = CALLOC(1, sizeof(PRACH_ParametersCE_r13_t)); + prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index]; - if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); - *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; - } - else - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; - } + AssertFatal(configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]!=NULL, + "configuration->prach_StartingSubframe_r13[%d][%d] is null", + (int)CC_id,(int)prach_parameters_index); + if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) + { + prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); + *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + } - prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; - prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; - printf("[DEBUGGING][KOGO][SIB23] : prach hopping config = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); + if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); + *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; + } + else + { + prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; + } + + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; + prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; - long *maxavailablenarrowband; - int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; - int narrow_band_index; - for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) - { - maxavailablenarrowband = CALLOC(1, sizeof(long)); - *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; - ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); - } + printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_ConfigIndex_r13 = %d\n", prach_parametersce_r13->prach_ConfigIndex_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_FreqOffset_r13 = %d\n", prach_parametersce_r13->prach_FreqOffset_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_StartingSubframe_r13 = %d\n", *prach_parametersce_r13->prach_StartingSubframe_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : maxNumPreambleAttemptCE_r13 = %d\n", *prach_parametersce_r13->maxNumPreambleAttemptCE_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : numRepetitionPerPreambleAttempt_r13 = %d\n", prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : mpdcch_NumRepetition_RA_r13 = %d\n", prach_parametersce_r13->mpdcch_NumRepetition_RA_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_HoppingConfig_r13 = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; - prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); + long *maxavailablenarrowband; + int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++) + { + maxavailablenarrowband = CALLOC(1, sizeof(long)); + *maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index]; + ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, maxavailablenarrowband); + } + + + printf("[DEBUGGING][KOGO][SIB23][WTF] : maxavailablenarrowband = %d\n", *maxavailablenarrowband); + + + prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; + + printf("[DEBUGGING][KOGO][SIB23][WTF] : mpdcch_NumRepetition_RA_r13 = %d\n", prach_parametersce_r13->mpdcch_NumRepetition_RA_r13); + printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_HoppingConfig_r13 = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); + + + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); } } else diff --git a/targets/ARCH/mobipass/interface.c b/targets/ARCH/mobipass/interface.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/mobipass/mobipass.c b/targets/ARCH/mobipass/mobipass.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/mobipass/mobipass.h b/targets/ARCH/mobipass/mobipass.h old mode 100644 new mode 100755 diff --git a/targets/ARCH/mobipass/queues.c b/targets/ARCH/mobipass/queues.c old mode 100644 new mode 100755 diff --git a/targets/ARCH/mobipass/queues.h b/targets/ARCH/mobipass/queues.h old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 9af3fd412e..25fbfc78e5 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -133,14 +133,14 @@ eNBs = scheduling_info_br = ( { - si_Narrowband_r13 = 5; + si_Narrowband_r13 = 8; si_TBS_r13 = 5; } ); fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern40-r13"; fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0xFFFFFFFFFF; - startSymbolBR_r13 = 3; + startSymbolBR_r13 = 2; si_HoppingConfigCommon_r13 = "off"; #1; # Note: 1==OFF ! si_ValidityTime_r13 = "true"; #0 @@ -159,10 +159,10 @@ eNBs = rach_numberOfRA_Preambles = "n60"; #14 rach_powerRampingStep = 4; - rach_preambleInitialReceivedTargetPower = -108; + rach_preambleInitialReceivedTargetPower = -110; rach_preambleTransMax = 10; rach_raResponseWindowSize = 10; - rach_macContentionResolutionTimer = 48; + rach_macContentionResolutionTimer = 64; rach_maxHARQ_Msg3Tx = 4; # max size for this array is 4 @@ -188,11 +188,11 @@ eNBs = prach_root = 89; prach_config_index = 3; prach_high_speed = "DISABLE"; - prach_zero_correlation = 1; - prach_freq_offset = 1; + prach_zero_correlation = 12; + prach_freq_offset = 2; #PDSCH Config Common - pdsch_referenceSignalPower = -27; + pdsch_referenceSignalPower = 12; # was -27 pdsch_p_b = 0; @@ -214,7 +214,7 @@ eNBs = pusch_p0_Nominal = -96; pusch_alpha = "AL1"; pucch_p0_Nominal = -104; - pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1 = "deltaF0"; pucch_deltaF_Format1b = "deltaF3"; pucch_deltaF_Format2 = "deltaF0"; pucch_deltaF_Format2a = "deltaF0"; @@ -224,7 +224,12 @@ eNBs = prach_ConfigCommon_v1310 = "ENABLE"; - + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13"; + mpdcch_startSF_CSS_RA_r13_val = "v1"; #0 + prach_HoppingOffset_r13 = 0; + + pdsch_maxNumRepetitionCEmodeA_r13 = "r16"; #0 #pdsch_maxNumRepetitionCEmodeB_r13 = "r384"; # NULL - 2 @@ -240,16 +245,12 @@ eNBs = } ); - mpdcch_startSF_CSS_RA_r13 = "fdd-r13"; - mpdcch_startSF_CSS_RA_r13_val = "v1"; #0 - prach_HoppingOffset_r13 = 0; - # max size for this array is 4 prach_parameters_ce_r13 = ( { prach_config_index_br = 3; - prach_freq_offset_br = 1; + prach_freq_offset_br = 2; prach_StartingSubframe_r13 = 0; maxNumPreambleAttemptCE_r13 = "n10"; #6 numRepetitionPerPreambleAttempt_r13 = "n1"; #0 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.100PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.100PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.25PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.25PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band40.tm1.TDD3SS5.50PRB.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/mobipass-standalone.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/mobipass-standalone.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf old mode 100644 new mode 100755 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf old mode 100644 new mode 100755 From e42505648ce012a66e05654b8e1a42d174c889aa Mon Sep 17 00:00:00 2001 From: Ahmed Elias Date: Tue, 17 Oct 2017 13:05:04 +0200 Subject: [PATCH 068/125] Solving minor issue in configuration --- openair2/ENB_APP/enb_config.c | 8 ++++---- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 15 --------------- 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 5d5af145b6..6604166b8b 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -1833,7 +1833,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) -//#ifdef Rel14 +#ifdef Rel14 char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS); config_get( brParams, sizeof(brParams)/sizeof(paramdef_t), brparamspath); @@ -1915,10 +1915,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) // kogo -- recheck RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } else { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } printf("[DEBUGGING][KOGO] fdd_DownlinkOrTddSubframeBitmapBR_r13 = %s\n", fdd_DownlinkOrTddSubframeBitmapBR_r13); @@ -4271,7 +4271,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) }*/ -//#endif +#endif //sprintf(brpath,"%s.%s.[%i].%s",enbpath,ENB_CONFIG_STRING_COMPONENT_CARRIERS,ENB_CONFIG_STRING_BR_PARAMETERS,j); //config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 1b2391cfcb..c765a62bb8 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1501,15 +1501,6 @@ uint8_t do_SIB23(uint8_t Mod_id, prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; - - printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_ConfigIndex_r13 = %d\n", prach_parametersce_r13->prach_ConfigIndex_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_FreqOffset_r13 = %d\n", prach_parametersce_r13->prach_FreqOffset_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_StartingSubframe_r13 = %d\n", *prach_parametersce_r13->prach_StartingSubframe_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : maxNumPreambleAttemptCE_r13 = %d\n", *prach_parametersce_r13->maxNumPreambleAttemptCE_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : numRepetitionPerPreambleAttempt_r13 = %d\n", prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : mpdcch_NumRepetition_RA_r13 = %d\n", prach_parametersce_r13->mpdcch_NumRepetition_RA_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_HoppingConfig_r13 = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); - long *maxavailablenarrowband; int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index]; int narrow_band_index; @@ -1521,15 +1512,9 @@ uint8_t do_SIB23(uint8_t Mod_id, } - printf("[DEBUGGING][KOGO][SIB23][WTF] : maxavailablenarrowband = %d\n", *maxavailablenarrowband); - - prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off; - printf("[DEBUGGING][KOGO][SIB23][WTF] : mpdcch_NumRepetition_RA_r13 = %d\n", prach_parametersce_r13->mpdcch_NumRepetition_RA_r13); - printf("[DEBUGGING][KOGO][SIB23][WTF] : prach_HoppingConfig_r13 = %d\n", prach_parametersce_r13->prach_HoppingConfig_r13); - ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); } From 56e74b7886a0e84e6aedf64016b6dd6e07041044 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 23 Oct 2017 19:24:53 +0200 Subject: [PATCH 069/125] noise measurements used for PUCCH/PUSCH --- openair1/PHY/LTE_TRANSPORT/pucch.c | 5 +++-- openair1/SCHED/phy_procedures_lte_eNb.c | 17 ++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c index 05355c9992..c36959b1c4 100644 --- a/openair1/PHY/LTE_TRANSPORT/pucch.c +++ b/openair1/PHY/LTE_TRANSPORT/pucch.c @@ -1802,7 +1802,8 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; // PUCCH_CONFIG_DEDICATED *pucch_config_dedicated = &eNB->pucch_config_dedicated[UE_id]; - int8_t sigma2_dB = 20;//eNB->measurements.n0_subband_power_tot_dB[0]-10; + int8_t sigma2_dB = max(eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); uint32_t u,v,n,aa; uint32_t z[12*14]; @@ -2153,7 +2154,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, // stat_max *= nsymb; // normalize to energy per symbol // stat_max /= (frame_parms->N_RB_UL*12); // - stat_max /= (nsymb*12); + stat_max /= 12; #ifdef DEBUG_PUCCH_RX printf("[eNB] PUCCH: stat %d, stat_max %d, phase_max %d\n", stat,stat_max,phase_max); #endif diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 05a6dca09b..4ae2164344 100644 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -634,7 +634,7 @@ void prach_procedures(PHY_VARS_eNB *eNB, */ if (eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0]==1){ if ((eNB->prach_energy_counter == 100) && - (max_preamble_energy[0] > eNB->measurements.prach_I0 + 100)) { + (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { eNB->UL_INFO.rach_ind_br.number_of_preambles++; eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind];// @@ -663,7 +663,7 @@ void prach_procedures(PHY_VARS_eNB *eNB, { if ((eNB->prach_energy_counter == 100) && - (max_preamble_energy[0] > eNB->measurements.prach_I0+100)) { + (max_preamble_energy[0] > eNB->measurements.prach_I0+200)) { LOG_D(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", eNB->Mod_id, @@ -748,8 +748,8 @@ void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,u // pdu->rx_ue_information.handle = handle; pdu->rx_ue_information.rnti = rnti; - int SNRtimes10 = dB_fixed_times10(stat) - 200;//(10*eNB->measurements.n0_power_dB[0]); - + int SNRtimes10 = dB_fixed_times10(stat) - 10*max(eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); if (SNRtimes10 < -640) pdu->ul_cqi_information.ul_cqi=0; else if (SNRtimes10 > 635) pdu->ul_cqi_information.ul_cqi=255; @@ -1544,7 +1544,9 @@ void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe) pdu->rx_indication_rel8.timing_advance = timing_advance_update; // estimate UL_CQI for MAC (from antenna port 0 only) - int SNRtimes10 = dB_fixed_times10(eNB->pusch_vars[UE_id]->ulsch_power[0]) - 200;//(10*eNB->measurements.n0_power_dB[0]); + int SNRtimes10 = dB_fixed_times10(eNB->pusch_vars[UE_id]->ulsch_power[0]) - + 10*max(eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); if (SNRtimes10 < -640) pdu->rx_indication_rel8.ul_cqi=0; else if (SNRtimes10 > 635) pdu->rx_indication_rel8.ul_cqi=255; @@ -1755,7 +1757,8 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB, pdu->rx_ue_information.rnti = uci->rnti; // estimate UL_CQI for MAC (from antenna port 0 only) - int SNRtimes10 = dB_fixed_times10(uci->stat) - 200;//(10*eNB->measurements.n0_power_dB[0]); + int SNRtimes10 = dB_fixed_times10(uci->stat) - 10*max(eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); if (SNRtimes10 < -100) LOG_I(PHY,"uci->stat %d \n",uci->stat); @@ -1957,7 +1960,7 @@ void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const eNB->first_run_I0_measurements); int min_I0=1000,max_I0=0; - if ((frame==0) && (subframe==6)) { + if ((frame==0) && (subframe==2)) { for (int i=0;iframe_parms.N_RB_UL;i++) { if (i==(eNB->frame_parms.N_RB_UL>>1) - 1) i+=2; From 5d5efb7b745fe4cb3f1d7846b34183cb9d48f2c8 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 23 Oct 2017 19:48:13 +0200 Subject: [PATCH 070/125] IF4p5 optimizations for RRU and more inline performance statistics for RRU --- openair1/PHY/LTE_TRANSPORT/if4_tools.c | 52 +++++++++++++++++++------- openair1/PHY/defs.h | 4 ++ targets/RT/USER/lte-ru.c | 11 +++++- 3 files changed, 52 insertions(+), 15 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index 4528766676..c671d78aba 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c @@ -58,7 +58,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { uint16_t db_fulllength, db_halflength; int slotoffsetF=0, blockoffsetF=0; - uint16_t *data_block=NULL, *i=NULL; + uint16_t *data_block=NULL, *i=NULL, *d=NULL; IF4p5_header_t *packet_header=NULL; eth_state_t *eth = (eth_state_t*) (ru->ifdevice.priv); @@ -138,23 +138,48 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { if (packet_type == IF4p5_PULFFT) { + uint16_t *rx0 = (uint16_t*) &rxdataF[0][blockoffsetF]; + uint16_t *rx1 = (uint16_t*) &rxdataF[0][slotoffsetF]; + + for (symbol_id=fp->symbols_per_tti-nsym; symbol_idsymbols_per_tti; symbol_id++) { VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_SEND_IF4_SYMBOL, symbol_id ); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF, 1 ); - for (element_id=0; element_idframe_status &= ~(0x000f<<26); - packet_header->frame_status |= (symbol_id&0x000f)<<26; + + start_meas(&ru->compression); + + for (element_id=0; element_idcompression); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_COMPR_IF, 0 ); + packet_header->frame_status &= ~(0x000f<<26); + packet_header->frame_status |= (symbol_id&0x000f)<<26; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF, 1 ); + start_meas(&ru->transport); if ((ru->ifdevice.trx_write_func(&ru->ifdevice, symbol_id, &tx_buffer, @@ -163,6 +188,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { IF4p5_PULFFT)) < 0) { perror("ETHERNET write for IF4p5_PULFFT\n"); } + stop_meas(&ru->transport); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF, 0 ); slotoffsetF += fp->ofdm_symbol_size; blockoffsetF += fp->ofdm_symbol_size; diff --git a/openair1/PHY/defs.h b/openair1/PHY/defs.h index 24ea961b0e..0e44a7f8bd 100644 --- a/openair1/PHY/defs.h +++ b/openair1/PHY/defs.h @@ -756,6 +756,10 @@ typedef struct RU_t_s{ time_stats_t rx_fhaul; /// Timing statistics (TX Fronthaul + Compression) time_stats_t tx_fhaul; + /// Timong statistics (Compression) + time_stats_t compression; + /// Timing statistics (Fronthaul transport) + time_stats_t transport; /// RX and TX buffers for precoder output RU_COMMON common; /// beamforming weight vectors per eNB diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index 45f69ca414..752e221ac5 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -1322,8 +1322,11 @@ static void* ru_stats_thread(void* param) { if (ru->feprx) print_meas(&ru->ofdm_demod_stats,"feprx",NULL,NULL); if (ru->feptx_ofdm) print_meas(&ru->ofdm_mod_stats,"feptx_ofdm",NULL,NULL); if (ru->fh_north_asynch_in) print_meas(&ru->rx_fhaul,"rx_fhaul",NULL,NULL); - if (ru->fh_north_out) print_meas(&ru->tx_fhaul,"tx_fhaul",NULL,NULL); - + if (ru->fh_north_out) { + print_meas(&ru->tx_fhaul,"tx_fhaul",NULL,NULL); + print_meas(&ru->compression,"compression",NULL,NULL); + print_meas(&ru->transport,"transport",NULL,NULL); + } } } return(NULL); @@ -1911,6 +1914,8 @@ void init_RU(char *rf_config_file) { ru->ifdevice.eth_params = &ru->eth_params; reset_meas(&ru->rx_fhaul); reset_meas(&ru->tx_fhaul); + reset_meas(&ru->compression); + reset_meas(&ru->transport); ret = openair0_transport_load(&ru->ifdevice,&ru->openair0_cfg,&ru->eth_params); printf("openair0_transport_init returns %d for ru_id %d\n",ret,ru_id); @@ -1934,6 +1939,8 @@ void init_RU(char *rf_config_file) { ru->ifdevice.eth_params = &ru->eth_params; reset_meas(&ru->rx_fhaul); reset_meas(&ru->tx_fhaul); + reset_meas(&ru->compression); + reset_meas(&ru->transport); ret = openair0_transport_load(&ru->ifdevice,&ru->openair0_cfg,&ru->eth_params); printf("openair0_transport_init returns %d for ru_id %d\n",ret,ru_id); From ab058059ac388e7f8858ea7d8fe999df406f5b5e Mon Sep 17 00:00:00 2001 From: Eurecom Date: Tue, 24 Oct 2017 00:54:45 +0200 Subject: [PATCH 071/125] minor changes for IF4p5 in RAU. --- openair1/PHY/LTE_TRANSPORT/if4_tools.c | 7 +++---- openair1/PHY/LTE_TRANSPORT/if4_tools.h | 10 +++++----- targets/RT/USER/lte-enb.c | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index c671d78aba..a2b72371b4 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c @@ -309,7 +309,7 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint *subframe = ((packet_header->frame_status)>>22)&0x000f; *packet_type = packet_header->sub_type; - + LOG_D(PHY,"recv_IF4p5: Frame %d, Subframe %d: packet_type %x\n",*frame,*subframe,*packet_type); if (*packet_type == IF4p5_PDLFFT) { *symbol_number = ((packet_header->frame_status)>>26)&0x000f; VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_RECV_IF4_SYMBOL, *symbol_number ); @@ -339,7 +339,6 @@ void recv_IF4p5(RU_t *ru, int *frame, int *subframe, uint16_t *packet_type, uint slotoffsetF = (*symbol_number)*(fp->ofdm_symbol_size); blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_DECOMPR_IF, 1 ); - if (ru->idx==0) LOG_D(PHY,"UL_IF4p5: CC_id %d : frame %d, subframe %d, symbol %d\n",ru->idx,*frame,*subframe,*symbol_number); for (element_id=0; element_id %d dB\n",ru->idx,*frame,*subframe, - // dB_fixed(signal_energy((int*)&prach_rxsigF[0][0],839))); + LOG_D(PHY,"PRACH_IF4p5: CC_id %d : frame %d, subframe %d => %d dB\n",ru->idx,*frame,*subframe, + dB_fixed(signal_energy((int*)&prach_rxsigF[0][0],839))); for (idx=0;idxnum_eNB;idx++) ru->wakeup_prach_eNB(ru->eNB_list[idx],ru,*frame,*subframe); } else if (*packet_type == IF4p5_PULTICK) { diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.h b/openair1/PHY/LTE_TRANSPORT/if4_tools.h index a251c62d0d..0a95e60ead 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.h +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.h @@ -39,11 +39,11 @@ #define IF4p5_PULFFT 0x0019 #define IF4p5_PDLFFT 0x0020 #define IF4p5_PRACH 0x0021 -#define IF4p5_PRACH_BR_CE0 0x0021 -#define IF4p5_PRACH_BR_CE1 0x0022 -#define IF4p5_PRACH_BR_CE2 0x0023 -#define IF4p5_PRACH_BR_CE3 0x0024 -#define IF4p5_PULTICK 0x0025 +#define IF4p5_PRACH_BR_CE0 0x0022 +#define IF4p5_PRACH_BR_CE1 0x0023 +#define IF4p5_PRACH_BR_CE2 0x0024 +#define IF4p5_PRACH_BR_CE3 0x0025 +#define IF4p5_PULTICK 0x0026 struct IF4p5_header { /// Type diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c index 33e6b0684b..fe532d8c62 100644 --- a/targets/RT/USER/lte-enb.c +++ b/targets/RT/USER/lte-enb.c @@ -386,7 +386,7 @@ void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { pthread_mutex_lock(&proc->mutex_RU_PRACH); for (i=0;inum_RU;i++) { if (ru == eNB->RU_list[i]) { - LOG_D(PHY,"frame %d, subframe %d: RU %d for eNB %d signals PRACH (mask %x, num_RU %d)\n",frame,subframe,i,eNB->Mod_id,proc->RU_mask_prach,eNB->num_RU); + LOG_I(PHY,"frame %d, subframe %d (%d): RU %d for eNB %d signals PRACH (mask %x, num_RU %d)\n",frame,subframe,is_prach_subframe(fp,frame,subframe),i,eNB->Mod_id,proc->RU_mask_prach,eNB->num_RU); if ((proc->RU_mask_prach&(1< 0) LOG_E(PHY,"eNB %d frame %d, subframe %d : previous information (PRACH) from RU %d (num_RU %d, mask %x) has not been served yet!\n", eNB->Mod_id,frame,subframe,ru->idx,eNB->num_RU,proc->RU_mask_prach); @@ -405,7 +405,7 @@ void wakeup_prach_eNB(PHY_VARS_eNB *eNB,RU_t *ru,int frame,int subframe) { // check if we have to detect PRACH first if (is_prach_subframe(fp,frame,subframe)>0) { - LOG_D(PHY,"Triggering prach processing, frame %d, subframe %d\n",frame,subframe); + LOG_I(PHY,"Triggering prach processing, frame %d, subframe %d\n",frame,subframe); if (proc->instance_cnt_prach == 0) { LOG_W(PHY,"[eNB] Frame %d Subframe %d, dropping PRACH\n", frame,subframe); return; From b18f9d6a76ffc49584b3fd4e1be50f5d095109fe Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 24 Oct 2017 00:55:24 +0200 Subject: [PATCH 072/125] minor chanels for IF4p5 in RRU --- openair1/PHY/LTE_TRANSPORT/if4_tools.c | 3 ++- openair1/PHY/LTE_TRANSPORT/if4_tools.h | 10 +++++----- openair1/PHY/LTE_TRANSPORT/prach.c | 2 +- targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c | 4 ++-- targets/RT/USER/lte-ru.c | 10 +++++++--- 5 files changed, 17 insertions(+), 12 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c index c671d78aba..a906b6df31 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.c @@ -207,7 +207,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { } else if (packet_type >= IF4p5_PRACH && packet_type <= IF4p5_PRACH+4) { // FIX: hard coded prach samples length - LOG_D(PHY,"IF4p5_PRACH: frame %d, subframe %d\n",frame,subframe); + LOG_D(PHY,"IF4p5_PRACH: frame %d, subframe %d,packet type %x\n",frame,subframe,packet_type); db_fulllength = PRACH_NUM_SAMPLES; if (eth->flags == ETH_RAW_IF4p5_MODE) { @@ -248,6 +248,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { packet_type)) < 0) { perror("ETHERNET write for IF4p5_PRACH\n"); } + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF, 0 ); } else { AssertFatal(1==0, "send_IF4p5 - Unknown packet_type %x", packet_type); diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.h b/openair1/PHY/LTE_TRANSPORT/if4_tools.h index a251c62d0d..0a95e60ead 100644 --- a/openair1/PHY/LTE_TRANSPORT/if4_tools.h +++ b/openair1/PHY/LTE_TRANSPORT/if4_tools.h @@ -39,11 +39,11 @@ #define IF4p5_PULFFT 0x0019 #define IF4p5_PDLFFT 0x0020 #define IF4p5_PRACH 0x0021 -#define IF4p5_PRACH_BR_CE0 0x0021 -#define IF4p5_PRACH_BR_CE1 0x0022 -#define IF4p5_PRACH_BR_CE2 0x0023 -#define IF4p5_PRACH_BR_CE3 0x0024 -#define IF4p5_PULTICK 0x0025 +#define IF4p5_PRACH_BR_CE0 0x0022 +#define IF4p5_PRACH_BR_CE1 0x0023 +#define IF4p5_PRACH_BR_CE2 0x0024 +#define IF4p5_PRACH_BR_CE3 0x0025 +#define IF4p5_PULTICK 0x0026 struct IF4p5_header { /// Type diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index 606900677e..c4e4461a58 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -640,7 +640,7 @@ int32_t generate_prach( PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe, uint1 #if defined(EXMIMO) || defined(OAI_USRP) prach_start = (ue->rx_offset+subframe*ue->frame_parms.samples_per_tti-ue->hw_timing_advance-ue->N_TA_offset); #ifdef PRACH_DEBUG - LOG_I(PHY,"[UE %d] prach_start %d, rx_offset %d, hw_timing_advance %d, N_TA_offset %d\n", ue->Mod_id, + LOG_D(PHY,"[UE %d] prach_start %d, rx_offset %d, hw_timing_advance %d, N_TA_offset %d\n", ue->Mod_id, prach_start, ue->rx_offset, ue->hw_timing_advance, diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c index e323a9d5bc..9dbd29afdb 100644 --- a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c +++ b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c @@ -235,7 +235,8 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam packet_size = UDP_IF4p5_PULFFT_SIZE_BYTES(nblocks); } else if (flags == IF4p5_PULTICK) { packet_size = UDP_IF4p5_PULTICK_SIZE_BYTES; - } else if (flags == IF4p5_PRACH) { + } else if ((flags >= IF4p5_PRACH)&& + (flags <= (IF4p5_PRACH+4))) { packet_size = UDP_IF4p5_PRACH_SIZE_BYTES; } else { printf("trx_eth_write_udp_IF4p5: unknown flags %d\n",flags); @@ -243,7 +244,6 @@ int trx_eth_write_udp_IF4p5(openair0_device *device, openair0_timestamp timestam } eth->tx_nsamps = nblocks; - // printf("Sending %d bytes to %s:%d\n",packet_size,str,ntohs(eth->local_addrd.sin_port)); bytes_sent = sendto(eth->sockfdd, buff[0], diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index 752e221ac5..54693f43c8 100644 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -596,13 +596,14 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) { symbol_mask_full = ((subframe_select(fp,*subframe) == SF_S) ? (1<dl_symbols_in_S_subframe) : (1<symbols_per_tti))-1; do { recv_IF4p5(ru, &frame_tx, &subframe_tx, &packet_type, &symbol_number); - if ((subframe_select(fp,*subframe) == SF_DL) && (symbol_number == 0)) start_meas(&ru->rx_fhaul); + if ((subframe_select(fp,subframe_tx) == SF_DL) && (symbol_number == 0)) start_meas(&ru->rx_fhaul); LOG_D(PHY,"subframe %d (%d): frame %d, subframe %d, symbol %d\n", *subframe,subframe_select(fp,*subframe),frame_tx,subframe_tx,symbol_number); if (proc->first_tx != 0) { *frame = frame_tx; *subframe = subframe_tx; proc->first_tx = 0; + symbol_mask_full = ((subframe_select(fp,*subframe) == SF_S) ? (1<dl_symbols_in_S_subframe) : (1<symbols_per_tti))-1; } else { AssertFatal(frame_tx == *frame, @@ -616,7 +617,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) { else AssertFatal(1==0,"Illegal IF4p5 packet type (should only be IF4p5_PDLFFT%d\n",packet_type); } while (symbol_mask != symbol_mask_full); - if (subframe_select(fp,*subframe) == SF_DL) stop_meas(&ru->rx_fhaul); + if (subframe_select(fp,subframe_tx) == SF_DL) stop_meas(&ru->rx_fhaul); proc->subframe_tx = subframe_tx; proc->frame_tx = frame_tx; @@ -871,7 +872,10 @@ static void* ru_thread_asynch_rxtx( void* param ) { // asynchronous receive from south (Mobipass) if (ru->fh_south_asynch_in) ru->fh_south_asynch_in(ru,&frame,&subframe); // asynchronous receive from north (RRU IF4/IF5) - else if (ru->fh_north_asynch_in) ru->fh_north_asynch_in(ru,&frame,&subframe); + else if (ru->fh_north_asynch_in) { + if (subframe_select(&ru->frame_parms,subframe)!=SF_UL) + ru->fh_north_asynch_in(ru,&frame,&subframe); + } else AssertFatal(1==0,"Unknown function in ru_thread_asynch_rxtx\n"); } From 1c33d18df1eb63b4c7ab958c4409fa8f266ec999 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 24 Oct 2017 19:26:25 +0200 Subject: [PATCH 073/125] logging --- openair1/PHY/LTE_TRANSPORT/print_stats.c | 4 +-- openair1/SCHED/fapi_l1.c | 2 ++ openair1/SCHED/phy_procedures_lte_eNb.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 5 ++-- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 29 +++++++++++++++---- 5 files changed, 32 insertions(+), 10 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/print_stats.c b/openair1/PHY/LTE_TRANSPORT/print_stats.c index d4ed922274..5add20af13 100755 --- a/openair1/PHY/LTE_TRANSPORT/print_stats.c +++ b/openair1/PHY/LTE_TRANSPORT/print_stats.c @@ -37,8 +37,8 @@ #include "SCHED/extern.h" #ifdef OPENAIR2 -#include "../openair2/LAYER2/MAC/proto.h" -#include "../openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h" +#include "openair2/LAYER2/MAC/proto.h" +#include "openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h" #endif extern int mac_get_rrc_status(uint8_t Mod_id,uint8_t eNB_flag,uint8_t index); diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index ed0ccf3480..1b68b9268b 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -189,6 +189,8 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0->sib1_br_flag=0; if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR + LOG_I(PHY,"NFAPI: frame %d, subframe %d: Programming SI-BR \n",proc->frame_tx,proc->subframe_tx); + dlsch0->rnti = 0xFFFF; dlsch0->Kmimo = 1; dlsch0->Mdlharq = 4; diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index eea1aca581..2d86bfb16e 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -272,7 +272,7 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, if (frame < 200) { - LOG_D(PHY, + LOG_I(PHY, "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", eNB->Mod_id, dlsch->rnti,harq_pid, frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 3aa2ce38fe..16c25b17b1 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -196,7 +196,7 @@ schedule_SIB1_BR( AssertFatal(bcch_sdu_length <= TBS, "length returned by RRC %d is not compatible with the TBS %d from MIB\n",bcch_sdu_length,TBS); - if ((frameP&1023) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx); + if ((frameP&1023) < 200) LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n",module_idP,frameP,subframeP,CC_id,bcch_sdu_length,n_NB,i,m,N_S_NB,rvidx); // allocate all 6 PRBs in narrowband for SIB1_BR @@ -315,6 +315,7 @@ schedule_SI_BR( int rvidx; int absSF = (frameP*10)+subframeP; + return; for (CC_id=0; CC_idDLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", + if ((frameP&1023) < 200) LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", module_idP,frameP,subframeP,CC_id,(int)si_Narrowband_r13-1,rvidx, sf_mod_period,(int)si_WindowLength_BR_r13,(int)si_RepetitionPattern_r13, bcch_sdu_length); diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 25fbfc78e5..475ad3af6d 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -355,7 +355,7 @@ eNBs = ////////// MME parameters: - mme_ip_address = ( { ipv4 = "172.17.0.10"; + mme_ip_address = ( { ipv4 = "192.168.12.26"; ipv6 = "192:168:30::17"; active = "yes"; preference = "ipv4"; @@ -365,10 +365,10 @@ eNBs = NETWORK_INTERFACES : { - ENB_INTERFACE_NAME_FOR_S1_MME = "enp0s31f6:S1-C"; - ENB_IPV4_ADDRESS_FOR_S1_MME = "172.17.0.21/24"; - ENB_INTERFACE_NAME_FOR_S1U = "enp0s31f6:S1-U"; - ENB_IPV4_ADDRESS_FOR_S1U = "172.16.0.21/24"; + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.150/24"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.150/24"; ENB_PORT_FOR_S1U = 2152; # Spec 2152 }; @@ -420,3 +420,22 @@ RUs = ( eNB_instances = [0]; } ); + +log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + From c8070607a9a3d46186299d2f399b1088c7b9755f Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sat, 28 Oct 2017 21:17:30 -0700 Subject: [PATCH 074/125] small fix on MPDCCH repetition handling and logging --- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index dda56b513e..a876dfe3eb 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -323,7 +323,12 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t AssertFatal(1==0,"TDD case not done yet\n"); } }// mpdcch_repetition_count == reps - RA_template->msg2_mpdcch_repetition_cnt++; + else { + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", + module_idP,frameP,subframeP,RA_template->msg2_mpdcch_repetition_cnt); + RA_template->msg2_mpdcch_repetition_cnt++; + } + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { // Program PDSCH From 3a4343708b74e0f2d9691990e49830f2ca12b812 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 5 Nov 2017 14:18:19 +0100 Subject: [PATCH 075/125] modifications for MPDCCH --- openair1/PHY/INIT/lte_init.c | 1796 ++-- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 10828 +++++++++++----------- openair1/PHY/LTE_TRANSPORT/edci.c | 169 +- openair1/PHY/LTE_TRANSPORT/proto.h | 4 + openair1/SCHED/fapi_l1.c | 6 +- openair1/SCHED/phy_procedures_lte_eNb.c | 2563 +++-- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 1960 ++-- 7 files changed, 8250 insertions(+), 9076 deletions(-) diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c index 7bb653c30d..1108bdc1ff 100755 --- a/openair1/PHY/INIT/lte_init.c +++ b/openair1/PHY/INIT/lte_init.c @@ -34,286 +34,273 @@ extern uint16_t prach_root_sequence_map0_3[838]; extern uint16_t prach_root_sequence_map4[138]; -uint8_t dmrs1_tab[8] = {0,2,3,4,6,8,9,10}; +uint8_t dmrs1_tab[8] = { 0, 2, 3, 4, 6, 8, 9, 10 }; -int N_RB_DL_array[6] = {6,15,25,50,75,100}; +int N_RB_DL_array[6] = { 6, 15, 25, 50, 75, 100 }; -int l1_north_init_eNB() { +int +l1_north_init_eNB () +{ - int i,j; - AssertFatal(RC.nb_L1_inst>0,"nb_L1_inst=%d\n",RC.nb_L1_inst); - AssertFatal(RC.nb_L1_CC!=NULL,"nb_L1_CC is null\n"); - AssertFatal(RC.eNB!=NULL,"RC.eNB is null\n"); - for (i=0;i0,"RC.nb_L1_CC[%d]=%d\n",i,RC.nb_L1_CC[i]); - for (j=0;jif_inst = IF_Module_init(i))<0) return(-1); + int i, j; + AssertFatal (RC.nb_L1_inst > 0, "nb_L1_inst=%d\n", RC.nb_L1_inst); + AssertFatal (RC.nb_L1_CC != NULL, "nb_L1_CC is null\n"); + AssertFatal (RC.eNB != NULL, "RC.eNB is null\n"); + for (i = 0; i < RC.nb_L1_inst; i++) { + AssertFatal (RC.eNB[i] != NULL, "RC.eNB[%d] is null\n", i); + AssertFatal (RC.nb_L1_CC[i] > 0, "RC.nb_L1_CC[%d]=%d\n", i, RC.nb_L1_CC[i]); + for (j = 0; j < RC.nb_L1_CC[i]; j++) { + AssertFatal (RC.eNB[i][j] != NULL, "RC.eNB[%d][%d] is null\n", i, j); + if ((RC.eNB[i][j]->if_inst = IF_Module_init (i)) < 0) + return (-1); RC.eNB[i][j]->if_inst->PHY_config_req = phy_config_request; RC.eNB[i][j]->if_inst->schedule_response = schedule_response; } } - return(0); + return (0); } -void phy_config_request(PHY_Config_t *phy_config) { +void +phy_config_request (PHY_Config_t * phy_config) +{ - uint8_t Mod_id = phy_config->Mod_id; - int CC_id = phy_config->CC_id; + uint8_t Mod_id = phy_config->Mod_id; + int CC_id = phy_config->CC_id; nfapi_config_request_t *cfg = phy_config->cfg; LTE_DL_FRAME_PARMS *fp; - PHICH_RESOURCE_t phich_resource_table[4]={oneSixth,half,one,two}; - int eutra_band = cfg->nfapi_config.rf_bands.rf_band[0]; - int dl_Bandwidth = cfg->rf_config.dl_channel_bandwidth.value; - int Nid_cell = cfg->sch_config.physical_cell_id.value; - int Ncp = cfg->subframe_config.dl_cyclic_prefix_type.value; - int p_eNB = cfg->rf_config.tx_antenna_ports.value; - uint32_t dl_CarrierFreq = cfg->nfapi_config.earfcn.value; + PHICH_RESOURCE_t phich_resource_table[4] = { oneSixth, half, one, two }; + int eutra_band = cfg->nfapi_config.rf_bands.rf_band[0]; + int dl_Bandwidth = cfg->rf_config.dl_channel_bandwidth.value; + int Nid_cell = cfg->sch_config.physical_cell_id.value; + int Ncp = cfg->subframe_config.dl_cyclic_prefix_type.value; + int p_eNB = cfg->rf_config.tx_antenna_ports.value; + uint32_t dl_CarrierFreq = cfg->nfapi_config.earfcn.value; - LOG_I(PHY,"Configuring MIB for instance %d, CCid %d : (band %d,N_RB_DL %d,Nid_cell %d,p %d,Ncp %d,DL freq %u,phich_config.resource %d, phich_config.duration %d)\n", - Mod_id, CC_id, eutra_band, N_RB_DL_array[dl_Bandwidth], Nid_cell, p_eNB,Ncp,dl_CarrierFreq, - cfg->phich_config.phich_resource.value, - cfg->phich_config.phich_duration.value); + LOG_I (PHY, "Configuring MIB for instance %d, CCid %d : (band %d,N_RB_DL %d,Nid_cell %d,p %d,Ncp %d,DL freq %u,phich_config.resource %d, phich_config.duration %d)\n", + Mod_id, CC_id, eutra_band, N_RB_DL_array[dl_Bandwidth], Nid_cell, p_eNB, Ncp, dl_CarrierFreq, cfg->phich_config.phich_resource.value, cfg->phich_config.phich_duration.value); - AssertFatal(RC.eNB != NULL, "PHY instance pointer doesn't exist\n"); - AssertFatal(RC.eNB[Mod_id] != NULL, "PHY instance %d doesn't exist\n",Mod_id); - AssertFatal(RC.eNB[Mod_id][CC_id] != NULL, "PHY instance %d, CCid %d doesn't exist\n",Mod_id,CC_id); + AssertFatal (RC.eNB != NULL, "PHY instance pointer doesn't exist\n"); + AssertFatal (RC.eNB[Mod_id] != NULL, "PHY instance %d doesn't exist\n", Mod_id); + AssertFatal (RC.eNB[Mod_id][CC_id] != NULL, "PHY instance %d, CCid %d doesn't exist\n", Mod_id, CC_id); - RC.eNB[Mod_id][CC_id]->mac_enabled = 1; + RC.eNB[Mod_id][CC_id]->mac_enabled = 1; fp = &RC.eNB[Mod_id][CC_id]->frame_parms; - fp->N_RB_DL = N_RB_DL_array[dl_Bandwidth]; - fp->N_RB_UL = N_RB_DL_array[dl_Bandwidth]; - fp->Nid_cell = Nid_cell; - fp->nushift = fp->Nid_cell%6; - fp->eutra_band = eutra_band; - fp->Ncp = Ncp; - fp->Ncp_UL = Ncp; - fp->nb_antenna_ports_eNB = p_eNB; + fp->N_RB_DL = N_RB_DL_array[dl_Bandwidth]; + fp->N_RB_UL = N_RB_DL_array[dl_Bandwidth]; + fp->Nid_cell = Nid_cell; + fp->nushift = fp->Nid_cell % 6; + fp->eutra_band = eutra_band; + fp->Ncp = Ncp; + fp->Ncp_UL = Ncp; + fp->nb_antenna_ports_eNB = p_eNB; - fp->threequarter_fs = 0; + fp->threequarter_fs = 0; - AssertFatal(cfg->phich_config.phich_resource.value<4, "Illegal phich_Resource\n"); + AssertFatal (cfg->phich_config.phich_resource.value < 4, "Illegal phich_Resource\n"); fp->phich_config_common.phich_resource = phich_resource_table[cfg->phich_config.phich_resource.value]; fp->phich_config_common.phich_duration = cfg->phich_config.phich_duration.value; // Note: "from_earfcn" has to be in a common library with MACRLC - fp->dl_CarrierFreq = from_earfcn(eutra_band,dl_CarrierFreq); - fp->ul_CarrierFreq = fp->dl_CarrierFreq - (get_uldl_offset(eutra_band)*100000); + fp->dl_CarrierFreq = from_earfcn (eutra_band, dl_CarrierFreq); + fp->ul_CarrierFreq = fp->dl_CarrierFreq - (get_uldl_offset (eutra_band) * 100000); - fp->tdd_config = 0; - fp->tdd_config_S = 0; + fp->tdd_config = 0; + fp->tdd_config_S = 0; - if (fp->dl_CarrierFreq==fp->ul_CarrierFreq) + if (fp->dl_CarrierFreq == fp->ul_CarrierFreq) fp->frame_type = TDD; else fp->frame_type = FDD; - init_frame_parms(fp,1); - init_lte_top(fp); + init_frame_parms (fp, 1); + init_lte_top (fp); if (cfg->subframe_config.duplex_mode.value == 0) { - fp->tdd_config = cfg->tdd_frame_structure_config.subframe_assignment.value; - fp->tdd_config_S = cfg->tdd_frame_structure_config.special_subframe_patterns.value; - fp->frame_type = TDD; - } - else { - fp->frame_type = FDD; + fp->tdd_config = cfg->tdd_frame_structure_config.subframe_assignment.value; + fp->tdd_config_S = cfg->tdd_frame_structure_config.special_subframe_patterns.value; + fp->frame_type = TDD; + } else { + fp->frame_type = FDD; } - fp->prach_config_common.rootSequenceIndex = cfg->prach_config.root_sequence_index.value; - LOG_I(PHY,"prach_config_common.rootSequenceIndex = %d\n",cfg->prach_config.root_sequence_index.value); + fp->prach_config_common.rootSequenceIndex = cfg->prach_config.root_sequence_index.value; + LOG_I (PHY, "prach_config_common.rootSequenceIndex = %d\n", cfg->prach_config.root_sequence_index.value); - fp->prach_config_common.prach_Config_enabled=1; + fp->prach_config_common.prach_Config_enabled = 1; - fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex =cfg->prach_config.configuration_index.value; - LOG_I(PHY,"prach_config_common.prach_ConfigInfo.prach_ConfigIndex = %d\n",cfg->prach_config.configuration_index.value); + fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex = cfg->prach_config.configuration_index.value; + LOG_I (PHY, "prach_config_common.prach_ConfigInfo.prach_ConfigIndex = %d\n", cfg->prach_config.configuration_index.value); - fp->prach_config_common.prach_ConfigInfo.highSpeedFlag =cfg->prach_config.high_speed_flag.value; - LOG_I(PHY,"prach_config_common.prach_ConfigInfo.highSpeedFlag = %d\n",cfg->prach_config.high_speed_flag.value); - fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig =cfg->prach_config.zero_correlation_zone_configuration.value; - LOG_I(PHY,"prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = %d\n",cfg->prach_config.zero_correlation_zone_configuration.value); - fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset =cfg->prach_config.frequency_offset.value; - LOG_I(PHY,"prach_config_common.prach_ConfigInfo.prach_FreqOffset = %d\n",cfg->prach_config.frequency_offset.value); + fp->prach_config_common.prach_ConfigInfo.highSpeedFlag = cfg->prach_config.high_speed_flag.value; + LOG_I (PHY, "prach_config_common.prach_ConfigInfo.highSpeedFlag = %d\n", cfg->prach_config.high_speed_flag.value); + fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = cfg->prach_config.zero_correlation_zone_configuration.value; + LOG_I (PHY, "prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = %d\n", cfg->prach_config.zero_correlation_zone_configuration.value); + fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset = cfg->prach_config.frequency_offset.value; + LOG_I (PHY, "prach_config_common.prach_ConfigInfo.prach_FreqOffset = %d\n", cfg->prach_config.frequency_offset.value); - init_prach_tables(839); - compute_prach_seq(fp->prach_config_common.rootSequenceIndex, - fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex, - fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - fp->prach_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type, - RC.eNB[Mod_id][CC_id]->X_u); + init_prach_tables (839); + compute_prach_seq (fp->prach_config_common.rootSequenceIndex, + fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex, + fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, fp->prach_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u); #ifdef Rel14 if (cfg->emtc_config.prach_ce_level_0_enable.value == 1) { - fp->prach_emtc_config_common.prach_Config_enabled=1; + fp->prach_emtc_config_common.prach_Config_enabled = 1; - fp->prach_emtc_config_common.rootSequenceIndex = cfg->emtc_config.prach_catm_root_sequence_index.value; + fp->prach_emtc_config_common.rootSequenceIndex = cfg->emtc_config.prach_catm_root_sequence_index.value; - fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag = cfg->emtc_config.prach_catm_high_speed_flag.value; - fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = cfg->emtc_config.prach_catm_zero_correlation_zone_configuration.value; + fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag = cfg->emtc_config.prach_catm_high_speed_flag.value; + fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = cfg->emtc_config.prach_catm_zero_correlation_zone_configuration.value; // CE Level 3 parameters - fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[3] = cfg->emtc_config.prach_ce_level_3_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[3] = cfg->emtc_config.prach_ce_level_3_starting_subframe_periodicity.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[3] = cfg->emtc_config.prach_ce_level_3_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[3] = cfg->emtc_config.prach_ce_level_3_starting_subframe_periodicity.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[3] = cfg->emtc_config.prach_ce_level_3_number_of_repetitions_per_attempt.value; - AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[3]>=fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[3], - "prach_starting_subframe_periodicity[3] < prach_numPetitionPerPreambleAttempt[3]\n"); + AssertFatal (fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[3] >= fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[3], + "prach_starting_subframe_periodicity[3] < prach_numPetitionPerPreambleAttempt[3]\n"); - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3] = cfg->emtc_config.prach_ce_level_3_configuration_index.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[3] = cfg->emtc_config.prach_ce_level_3_frequency_offset.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[3] = cfg->emtc_config.prach_ce_level_3_hopping_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[3] = cfg->emtc_config.prach_ce_level_3_hopping_offset.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3] = cfg->emtc_config.prach_ce_level_3_configuration_index.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[3] = cfg->emtc_config.prach_ce_level_3_frequency_offset.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[3] = cfg->emtc_config.prach_ce_level_3_hopping_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[3] = cfg->emtc_config.prach_ce_level_3_hopping_offset.value; if (fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[3] == 1) - compute_prach_seq(fp->prach_emtc_config_common.rootSequenceIndex, - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], - fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type, - RC.eNB[Mod_id][CC_id]->X_u_br[3]); + compute_prach_seq (fp->prach_emtc_config_common.rootSequenceIndex, + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], + fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, + fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u_br[3]); // CE Level 2 parameters - fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[2] = cfg->emtc_config.prach_ce_level_2_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[2] = cfg->emtc_config.prach_ce_level_2_starting_subframe_periodicity.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[2] = cfg->emtc_config.prach_ce_level_2_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[2] = cfg->emtc_config.prach_ce_level_2_starting_subframe_periodicity.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[2] = cfg->emtc_config.prach_ce_level_2_number_of_repetitions_per_attempt.value; - AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[2]>=fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[2], - "prach_starting_subframe_periodicity[2] < prach_numPetitionPerPreambleAttempt[2]\n"); - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[2] = cfg->emtc_config.prach_ce_level_2_configuration_index.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[2] = cfg->emtc_config.prach_ce_level_2_frequency_offset.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[2] = cfg->emtc_config.prach_ce_level_2_hopping_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[2] = cfg->emtc_config.prach_ce_level_2_hopping_offset.value; + AssertFatal (fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[2] >= fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[2], + "prach_starting_subframe_periodicity[2] < prach_numPetitionPerPreambleAttempt[2]\n"); + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[2] = cfg->emtc_config.prach_ce_level_2_configuration_index.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[2] = cfg->emtc_config.prach_ce_level_2_frequency_offset.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[2] = cfg->emtc_config.prach_ce_level_2_hopping_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[2] = cfg->emtc_config.prach_ce_level_2_hopping_offset.value; if (fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[2] == 1) - compute_prach_seq(fp->prach_emtc_config_common.rootSequenceIndex, - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], - fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type, - RC.eNB[Mod_id][CC_id]->X_u_br[2]); + compute_prach_seq (fp->prach_emtc_config_common.rootSequenceIndex, + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], + fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, + fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u_br[2]); // CE Level 1 parameters - fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[1] = cfg->emtc_config.prach_ce_level_1_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[1] = cfg->emtc_config.prach_ce_level_1_starting_subframe_periodicity.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[1] = cfg->emtc_config.prach_ce_level_1_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[1] = cfg->emtc_config.prach_ce_level_1_starting_subframe_periodicity.value; fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[1] = cfg->emtc_config.prach_ce_level_1_number_of_repetitions_per_attempt.value; - AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[1]>=fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[1], - "prach_starting_subframe_periodicity[1] < prach_numPetitionPerPreambleAttempt[1]\n"); + AssertFatal (fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[1] >= fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[1], + "prach_starting_subframe_periodicity[1] < prach_numPetitionPerPreambleAttempt[1]\n"); - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[1] = cfg->emtc_config.prach_ce_level_1_configuration_index.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[1] = cfg->emtc_config.prach_ce_level_1_frequency_offset.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[1] = cfg->emtc_config.prach_ce_level_1_hopping_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[1] = cfg->emtc_config.prach_ce_level_1_hopping_offset.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[1] = cfg->emtc_config.prach_ce_level_1_configuration_index.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[1] = cfg->emtc_config.prach_ce_level_1_frequency_offset.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[1] = cfg->emtc_config.prach_ce_level_1_hopping_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[1] = cfg->emtc_config.prach_ce_level_1_hopping_offset.value; if (fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[1] == 1) - compute_prach_seq(fp->prach_emtc_config_common.rootSequenceIndex, - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], - fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type, - RC.eNB[Mod_id][CC_id]->X_u_br[1]); - - // CE Level 0 parameters - fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] = cfg->emtc_config.prach_ce_level_0_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0] = cfg->emtc_config.prach_ce_level_0_starting_subframe_periodicity.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] = cfg->emtc_config.prach_ce_level_0_number_of_repetitions_per_attempt.value; - AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0]>=fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0], - "prach_starting_subframe_periodicity[0] %d < prach_numPetitionPerPreambleAttempt[0] %d\n", - fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0], - fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]); - AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] > 0, - "prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]==0\n"); - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[0] = cfg->emtc_config.prach_ce_level_0_configuration_index.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[0] = cfg->emtc_config.prach_ce_level_0_frequency_offset.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[0] = cfg->emtc_config.prach_ce_level_0_hopping_enable.value; - fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[0] = cfg->emtc_config.prach_ce_level_0_hopping_offset.value; - if (fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] == 1) - compute_prach_seq(fp->prach_emtc_config_common.rootSequenceIndex, - fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], - fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type, - RC.eNB[Mod_id][CC_id]->X_u_br[0]); - } + compute_prach_seq (fp->prach_emtc_config_common.rootSequenceIndex, + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], + fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, + fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u_br[1]); + // CE Level 0 parameters + fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] = cfg->emtc_config.prach_ce_level_0_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0] = cfg->emtc_config.prach_ce_level_0_starting_subframe_periodicity.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] = cfg->emtc_config.prach_ce_level_0_number_of_repetitions_per_attempt.value; + AssertFatal (fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0] >= fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0], + "prach_starting_subframe_periodicity[0] %d < prach_numPetitionPerPreambleAttempt[0] %d\n", + fp->prach_emtc_config_common.prach_ConfigInfo.prach_starting_subframe_periodicity[0], fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]); + AssertFatal (fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0] > 0, "prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[0]==0\n"); + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[0] = cfg->emtc_config.prach_ce_level_0_configuration_index.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[0] = cfg->emtc_config.prach_ce_level_0_frequency_offset.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_enable[0] = cfg->emtc_config.prach_ce_level_0_hopping_enable.value; + fp->prach_emtc_config_common.prach_ConfigInfo.prach_hopping_offset[0] = cfg->emtc_config.prach_ce_level_0_hopping_offset.value; + if (fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] == 1) { + compute_prach_seq (fp->prach_emtc_config_common.rootSequenceIndex, + fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], + fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, + fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u_br[0]); + init_mpdcch5tab_normal_regular_subframe_evenNRBDL (RC.eNB[Mod_id][CC_id],3); + } + } #endif - fp->pucch_config_common.deltaPUCCH_Shift = 1+cfg->pucch_config.delta_pucch_shift.value; - fp->pucch_config_common.nRB_CQI = cfg->pucch_config.n_cqi_rb.value; - fp->pucch_config_common.nCS_AN = cfg->pucch_config.n_an_cs.value; - fp->pucch_config_common.n1PUCCH_AN = cfg->pucch_config.n1_pucch_an.value; + fp->pucch_config_common.deltaPUCCH_Shift = 1 + cfg->pucch_config.delta_pucch_shift.value; + fp->pucch_config_common.nRB_CQI = cfg->pucch_config.n_cqi_rb.value; + fp->pucch_config_common.nCS_AN = cfg->pucch_config.n_an_cs.value; + fp->pucch_config_common.n1PUCCH_AN = cfg->pucch_config.n1_pucch_an.value; - fp->pdsch_config_common.referenceSignalPower = cfg->rf_config.reference_signal_power.value; - fp->pdsch_config_common.p_b = cfg->subframe_config.pb.value; + fp->pdsch_config_common.referenceSignalPower = cfg->rf_config.reference_signal_power.value; + fp->pdsch_config_common.p_b = cfg->subframe_config.pb.value; - fp->pusch_config_common.n_SB = cfg->pusch_config.number_of_subbands.value; - LOG_I(PHY,"pusch_config_common.n_SB = %d\n",fp->pusch_config_common.n_SB ); + fp->pusch_config_common.n_SB = cfg->pusch_config.number_of_subbands.value; + LOG_I (PHY, "pusch_config_common.n_SB = %d\n", fp->pusch_config_common.n_SB); - fp->pusch_config_common.hoppingMode = cfg->pusch_config.hopping_mode.value; - LOG_I(PHY,"pusch_config_common.hoppingMode = %d\n",fp->pusch_config_common.hoppingMode); + fp->pusch_config_common.hoppingMode = cfg->pusch_config.hopping_mode.value; + LOG_I (PHY, "pusch_config_common.hoppingMode = %d\n", fp->pusch_config_common.hoppingMode); - fp->pusch_config_common.pusch_HoppingOffset = cfg->pusch_config.hopping_offset.value; - LOG_I(PHY,"pusch_config_common.pusch_HoppingOffset = %d\n",fp->pusch_config_common.pusch_HoppingOffset); + fp->pusch_config_common.pusch_HoppingOffset = cfg->pusch_config.hopping_offset.value; + LOG_I (PHY, "pusch_config_common.pusch_HoppingOffset = %d\n", fp->pusch_config_common.pusch_HoppingOffset); - fp->pusch_config_common.enable64QAM = 0;//radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM; - LOG_I(PHY,"pusch_config_common.enable64QAM = %d\n",fp->pusch_config_common.enable64QAM ); - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 0; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0; - if (cfg->uplink_reference_signal_config.uplink_rs_hopping.value == 1) + fp->pusch_config_common.enable64QAM = 0; //radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM; + LOG_I (PHY, "pusch_config_common.enable64QAM = %d\n", fp->pusch_config_common.enable64QAM); + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 0; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 0; + if (cfg->uplink_reference_signal_config.uplink_rs_hopping.value == 1) fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = 1; - if (cfg->uplink_reference_signal_config.uplink_rs_hopping.value == 2) + if (cfg->uplink_reference_signal_config.uplink_rs_hopping.value == 2) fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = 1; - LOG_I(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled); - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = cfg->uplink_reference_signal_config.group_assignment.value; - LOG_I(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH); + LOG_I (PHY, "pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = %d\n", fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled); + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = cfg->uplink_reference_signal_config.group_assignment.value; + LOG_I (PHY, "pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = %d\n", fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH); - LOG_I(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled); + LOG_I (PHY, "pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = %d\n", fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled); - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = dmrs1_tab[cfg->uplink_reference_signal_config.cyclic_shift_1_for_drms.value]; - LOG_I(PHY,"pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = %d\n",fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift); + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = dmrs1_tab[cfg->uplink_reference_signal_config.cyclic_shift_1_for_drms.value]; + LOG_I (PHY, "pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = %d\n", fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift); - init_ul_hopping(fp); + init_ul_hopping (fp); - fp->soundingrs_ul_config_common.enabled_flag = 0;// 1; Don't know how to turn this off in NFAPI - fp->soundingrs_ul_config_common.srs_BandwidthConfig = cfg->srs_config.bandwidth_configuration.value; - fp->soundingrs_ul_config_common.srs_SubframeConfig = cfg->srs_config.srs_subframe_configuration.value; + fp->soundingrs_ul_config_common.enabled_flag = 0; // 1; Don't know how to turn this off in NFAPI + fp->soundingrs_ul_config_common.srs_BandwidthConfig = cfg->srs_config.bandwidth_configuration.value; + fp->soundingrs_ul_config_common.srs_SubframeConfig = cfg->srs_config.srs_subframe_configuration.value; fp->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission = cfg->srs_config.srs_acknack_srs_simultaneous_transmission.value; - fp->soundingrs_ul_config_common.srs_MaxUpPts = cfg->srs_config.max_up_pts.value; + fp->soundingrs_ul_config_common.srs_MaxUpPts = cfg->srs_config.max_up_pts.value; fp->num_MBSFN_config = 0; - init_ncs_cell(fp,RC.eNB[Mod_id][CC_id]->ncs_cell); + init_ncs_cell (fp, RC.eNB[Mod_id][CC_id]->ncs_cell); - init_ul_hopping(fp); - RC.eNB[Mod_id][CC_id]->configured = 1; - LOG_I(PHY,"eNB %d/%d configured\n",Mod_id,CC_id); + init_ul_hopping (fp); + RC.eNB[Mod_id][CC_id]->configured = 1; + LOG_I (PHY, "eNB %d/%d configured\n", Mod_id, CC_id); } -void phy_config_sib1_ue(uint8_t Mod_id,int CC_id, - uint8_t eNB_id, - TDD_Config_t *tdd_Config, - uint8_t SIwindowsize, - uint16_t SIperiod) +void +phy_config_sib1_ue (uint8_t Mod_id, int CC_id, uint8_t eNB_id, TDD_Config_t * tdd_Config, uint8_t SIwindowsize, uint16_t SIperiod) { LTE_DL_FRAME_PARMS *fp = &PHY_vars_UE_g[Mod_id][CC_id]->frame_parms; if (tdd_Config) { - fp->tdd_config = tdd_Config->subframeAssignment; - fp->tdd_config_S = tdd_Config->specialSubframePatterns; + fp->tdd_config = tdd_Config->subframeAssignment; + fp->tdd_config_S = tdd_Config->specialSubframePatterns; } - fp->SIwindowsize = SIwindowsize; - fp->SIPeriod = SIperiod; + fp->SIwindowsize = SIwindowsize; + fp->SIPeriod = SIperiod; } /* @@ -459,192 +446,186 @@ void phy_config_sib1_ue(uint8_t Mod_id,int CC_id, } */ -void phy_config_sib2_ue(uint8_t Mod_id,int CC_id, - uint8_t eNB_id, - RadioResourceConfigCommonSIB_t *radioResourceConfigCommon, - ARFCN_ValueEUTRA_t *ul_CarrierFreq, - long *ul_Bandwidth, - AdditionalSpectrumEmission_t *additionalSpectrumEmission, - struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList) +void +phy_config_sib2_ue (uint8_t Mod_id, int CC_id, + uint8_t eNB_id, + RadioResourceConfigCommonSIB_t * radioResourceConfigCommon, + ARFCN_ValueEUTRA_t * ul_CarrierFreq, long *ul_Bandwidth, AdditionalSpectrumEmission_t * additionalSpectrumEmission, struct MBSFN_SubframeConfigList *mbsfn_SubframeConfigList) { - PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; + PHY_VARS_UE *ue = PHY_vars_UE_g[Mod_id][CC_id]; LTE_DL_FRAME_PARMS *fp = &ue->frame_parms; - int i; + int i; - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2, VCD_FUNCTION_IN); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2, VCD_FUNCTION_IN); - LOG_I(PHY,"[UE%d] Applying radioResourceConfigCommon from eNB%d\n",Mod_id,eNB_id); + LOG_I (PHY, "[UE%d] Applying radioResourceConfigCommon from eNB%d\n", Mod_id, eNB_id); - fp->prach_config_common.rootSequenceIndex =radioResourceConfigCommon->prach_Config.rootSequenceIndex; + fp->prach_config_common.rootSequenceIndex = radioResourceConfigCommon->prach_Config.rootSequenceIndex; - fp->prach_config_common.prach_Config_enabled=1; - fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_ConfigIndex; - fp->prach_config_common.prach_ConfigInfo.highSpeedFlag =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.highSpeedFlag; - fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig; - fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset =radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_FreqOffset; + fp->prach_config_common.prach_Config_enabled = 1; + fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex = radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_ConfigIndex; + fp->prach_config_common.prach_ConfigInfo.highSpeedFlag = radioResourceConfigCommon->prach_Config.prach_ConfigInfo.highSpeedFlag; + fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = radioResourceConfigCommon->prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig; + fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset = radioResourceConfigCommon->prach_Config.prach_ConfigInfo.prach_FreqOffset; - compute_prach_seq(fp->prach_config_common.rootSequenceIndex, - fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex, - fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - fp->prach_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type,ue->X_u); + compute_prach_seq (fp->prach_config_common.rootSequenceIndex, + fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex, + fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, fp->prach_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, ue->X_u); - fp->pucch_config_common.deltaPUCCH_Shift = 1+radioResourceConfigCommon->pucch_ConfigCommon.deltaPUCCH_Shift; - fp->pucch_config_common.nRB_CQI = radioResourceConfigCommon->pucch_ConfigCommon.nRB_CQI; - fp->pucch_config_common.nCS_AN = radioResourceConfigCommon->pucch_ConfigCommon.nCS_AN; - fp->pucch_config_common.n1PUCCH_AN = radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN; + fp->pucch_config_common.deltaPUCCH_Shift = 1 + radioResourceConfigCommon->pucch_ConfigCommon.deltaPUCCH_Shift; + fp->pucch_config_common.nRB_CQI = radioResourceConfigCommon->pucch_ConfigCommon.nRB_CQI; + fp->pucch_config_common.nCS_AN = radioResourceConfigCommon->pucch_ConfigCommon.nCS_AN; + fp->pucch_config_common.n1PUCCH_AN = radioResourceConfigCommon->pucch_ConfigCommon.n1PUCCH_AN; fp->pdsch_config_common.referenceSignalPower = radioResourceConfigCommon->pdsch_ConfigCommon.referenceSignalPower; - fp->pdsch_config_common.p_b = radioResourceConfigCommon->pdsch_ConfigCommon.p_b; + fp->pdsch_config_common.p_b = radioResourceConfigCommon->pdsch_ConfigCommon.p_b; - fp->pusch_config_common.n_SB = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.n_SB; - fp->pusch_config_common.hoppingMode = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode; - fp->pusch_config_common.pusch_HoppingOffset = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset; - fp->pusch_config_common.enable64QAM = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH; + fp->pusch_config_common.n_SB = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.n_SB; + fp->pusch_config_common.hoppingMode = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode; + fp->pusch_config_common.pusch_HoppingOffset = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset; + fp->pusch_config_common.enable64QAM = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH; fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = dmrs1_tab[radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift]; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = dmrs1_tab[radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift]; - init_ul_hopping(fp); - fp->soundingrs_ul_config_common.enabled_flag = 0; + init_ul_hopping (fp); + fp->soundingrs_ul_config_common.enabled_flag = 0; - if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.present==SoundingRS_UL_ConfigCommon_PR_setup) { - fp->soundingrs_ul_config_common.enabled_flag = 1; - fp->soundingrs_ul_config_common.srs_BandwidthConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig; - fp->soundingrs_ul_config_common.srs_SubframeConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig; + if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.present == SoundingRS_UL_ConfigCommon_PR_setup) { + fp->soundingrs_ul_config_common.enabled_flag = 1; + fp->soundingrs_ul_config_common.srs_BandwidthConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_BandwidthConfig; + fp->soundingrs_ul_config_common.srs_SubframeConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig; fp->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission = radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission; if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts) - fp->soundingrs_ul_config_common.srs_MaxUpPts = 1; + fp->soundingrs_ul_config_common.srs_MaxUpPts = 1; else - fp->soundingrs_ul_config_common.srs_MaxUpPts = 0; + fp->soundingrs_ul_config_common.srs_MaxUpPts = 0; } - fp->ul_power_control_config_common.p0_NominalPUSCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUSCH; - fp->ul_power_control_config_common.alpha = radioResourceConfigCommon->uplinkPowerControlCommon.alpha; - fp->ul_power_control_config_common.p0_NominalPUCCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUCCH; + fp->ul_power_control_config_common.p0_NominalPUSCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUSCH; + fp->ul_power_control_config_common.alpha = radioResourceConfigCommon->uplinkPowerControlCommon.alpha; + fp->ul_power_control_config_common.p0_NominalPUCCH = radioResourceConfigCommon->uplinkPowerControlCommon.p0_NominalPUCCH; fp->ul_power_control_config_common.deltaPreambleMsg3 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaPreambleMsg3; - fp->ul_power_control_config_common.deltaF_PUCCH_Format1 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1; - fp->ul_power_control_config_common.deltaF_PUCCH_Format1b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b; - fp->ul_power_control_config_common.deltaF_PUCCH_Format2 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2; - fp->ul_power_control_config_common.deltaF_PUCCH_Format2a = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a; - fp->ul_power_control_config_common.deltaF_PUCCH_Format2b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b; + fp->ul_power_control_config_common.deltaF_PUCCH_Format1 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1; + fp->ul_power_control_config_common.deltaF_PUCCH_Format1b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format1b; + fp->ul_power_control_config_common.deltaF_PUCCH_Format2 = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2; + fp->ul_power_control_config_common.deltaF_PUCCH_Format2a = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2a; + fp->ul_power_control_config_common.deltaF_PUCCH_Format2b = radioResourceConfigCommon->uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b; fp->maxHARQ_Msg3Tx = radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx; // Now configure some of the Physical Channels // PUCCH - init_ncs_cell(fp,ue->ncs_cell); + init_ncs_cell (fp, ue->ncs_cell); - init_ul_hopping(fp); + init_ul_hopping (fp); // PCH - init_ue_paging_info(ue,radioResourceConfigCommon->pcch_Config.defaultPagingCycle,radioResourceConfigCommon->pcch_Config.nB); + init_ue_paging_info (ue, radioResourceConfigCommon->pcch_Config.defaultPagingCycle, radioResourceConfigCommon->pcch_Config.nB); // MBSFN if (mbsfn_SubframeConfigList != NULL) { fp->num_MBSFN_config = mbsfn_SubframeConfigList->list.count; - for (i=0; ilist.count; i++) { + for (i = 0; i < mbsfn_SubframeConfigList->list.count; i++) { fp->MBSFN_config[i].radioframeAllocationPeriod = mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationPeriod; fp->MBSFN_config[i].radioframeAllocationOffset = mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationOffset; if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_oneFrame) { fp->MBSFN_config[i].fourFrames_flag = 0; - fp->MBSFN_config[i].mbsfn_SubframeConfig = mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]; // 6-bit subframe configuration - LOG_I(PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %d\n", i, - fp->MBSFN_config[i].mbsfn_SubframeConfig); - } else if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_fourFrames) { // 24-bit subframe configuration + fp->MBSFN_config[i].mbsfn_SubframeConfig = mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]; // 6-bit subframe configuration + LOG_I (PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %d\n", i, fp->MBSFN_config[i].mbsfn_SubframeConfig); + } else if (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.present == MBSFN_SubframeConfig__subframeAllocation_PR_fourFrames) { // 24-bit subframe configuration fp->MBSFN_config[i].fourFrames_flag = 1; fp->MBSFN_config[i].mbsfn_SubframeConfig = - mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0]| - (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[1]<<8)| - (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[2]<<16); + mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[0] | + (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[1] << 8) | (mbsfn_SubframeConfigList->list.array[i]->subframeAllocation.choice.oneFrame.buf[2] << 16); - LOG_I(PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %d\n", i, - fp->MBSFN_config[i].mbsfn_SubframeConfig); + LOG_I (PHY, "[CONFIG] MBSFN_SubframeConfig[%d] pattern is %d\n", i, fp->MBSFN_config[i].mbsfn_SubframeConfig); } } } - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2, VCD_FUNCTION_OUT); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_UE_CONFIG_SIB2, VCD_FUNCTION_OUT); } -void phy_config_sib13_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id,int mbsfn_Area_idx, - long mbsfn_AreaId_r9) +void +phy_config_sib13_ue (uint8_t Mod_id, int CC_id, uint8_t eNB_id, int mbsfn_Area_idx, long mbsfn_AreaId_r9) { LTE_DL_FRAME_PARMS *fp = &PHY_vars_UE_g[Mod_id][CC_id]->frame_parms; - LOG_I(PHY,"[UE%d] Applying MBSFN_Area_id %ld for index %d\n",Mod_id,mbsfn_AreaId_r9,mbsfn_Area_idx); + LOG_I (PHY, "[UE%d] Applying MBSFN_Area_id %ld for index %d\n", Mod_id, mbsfn_AreaId_r9, mbsfn_Area_idx); if (mbsfn_Area_idx == 0) { - fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9; - LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); + fp->Nid_cell_mbsfn = (uint16_t) mbsfn_AreaId_r9; + LOG_N (PHY, "Fix me: only called when mbsfn_Area_idx == 0)\n"); } - lte_gold_mbsfn(fp,PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn); + lte_gold_mbsfn (fp, PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_mbsfn_table, fp->Nid_cell_mbsfn); } -void phy_config_sib13_eNB(uint8_t Mod_id,int CC_id,int mbsfn_Area_idx, - long mbsfn_AreaId_r9) +void +phy_config_sib13_eNB (uint8_t Mod_id, int CC_id, int mbsfn_Area_idx, long mbsfn_AreaId_r9) { LTE_DL_FRAME_PARMS *fp = &RC.eNB[Mod_id][CC_id]->frame_parms; - LOG_I(PHY,"[eNB%d] Applying MBSFN_Area_id %ld for index %d\n",Mod_id,mbsfn_AreaId_r9,mbsfn_Area_idx); + LOG_I (PHY, "[eNB%d] Applying MBSFN_Area_id %ld for index %d\n", Mod_id, mbsfn_AreaId_r9, mbsfn_Area_idx); if (mbsfn_Area_idx == 0) { - fp->Nid_cell_mbsfn = (uint16_t)mbsfn_AreaId_r9; - LOG_N(PHY,"Fix me: only called when mbsfn_Area_idx == 0)\n"); + fp->Nid_cell_mbsfn = (uint16_t) mbsfn_AreaId_r9; + LOG_N (PHY, "Fix me: only called when mbsfn_Area_idx == 0)\n"); } - lte_gold_mbsfn(fp,RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table,fp->Nid_cell_mbsfn); + lte_gold_mbsfn (fp, RC.eNB[Mod_id][CC_id]->lte_gold_mbsfn_table, fp->Nid_cell_mbsfn); } -void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB) +void +phy_config_dedicated_eNB_step2 (PHY_VARS_eNB * eNB) { - uint8_t UE_id; + uint8_t UE_id; struct PhysicalConfigDedicated *physicalConfigDedicated; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - for (UE_id=0; UE_idphysicalConfigDedicated[UE_id]; if (physicalConfigDedicated != NULL) { - LOG_I(PHY,"[eNB %d] Sent physicalConfigDedicated=%p for UE %d\n",eNB->Mod_id,physicalConfigDedicated,UE_id); - LOG_D(PHY,"------------------------------------------------------------------------\n"); + LOG_I (PHY, "[eNB %d] Sent physicalConfigDedicated=%p for UE %d\n", eNB->Mod_id, physicalConfigDedicated, UE_id); + LOG_D (PHY, "------------------------------------------------------------------------\n"); if (physicalConfigDedicated->pdsch_ConfigDedicated) { - eNB->pdsch_config_dedicated[UE_id].p_a=physicalConfigDedicated->pdsch_ConfigDedicated->p_a; - LOG_D(PHY,"pdsch_config_dedicated.p_a %d\n",eNB->pdsch_config_dedicated[UE_id].p_a); - LOG_D(PHY,"\n"); + eNB->pdsch_config_dedicated[UE_id].p_a = physicalConfigDedicated->pdsch_ConfigDedicated->p_a; + LOG_D (PHY, "pdsch_config_dedicated.p_a %d\n", eNB->pdsch_config_dedicated[UE_id].p_a); + LOG_D (PHY, "\n"); } if (physicalConfigDedicated->pucch_ConfigDedicated) { - if (physicalConfigDedicated->pucch_ConfigDedicated->ackNackRepetition.present==PUCCH_ConfigDedicated__ackNackRepetition_PR_release) - eNB->pucch_config_dedicated[UE_id].ackNackRepetition=0; + if (physicalConfigDedicated->pucch_ConfigDedicated->ackNackRepetition.present == PUCCH_ConfigDedicated__ackNackRepetition_PR_release) + eNB->pucch_config_dedicated[UE_id].ackNackRepetition = 0; else { - eNB->pucch_config_dedicated[UE_id].ackNackRepetition=1; + eNB->pucch_config_dedicated[UE_id].ackNackRepetition = 1; } if (fp->frame_type == FDD) { @@ -656,10 +637,10 @@ void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB) eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode = bundling; } - if ( eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode == multiplexing) - LOG_D(PHY,"pucch_config_dedicated.tdd_AckNackFeedbackMode = multiplexing\n"); + if (eNB->pucch_config_dedicated[UE_id].tdd_AckNackFeedbackMode == multiplexing) + LOG_D (PHY, "pucch_config_dedicated.tdd_AckNackFeedbackMode = multiplexing\n"); else - LOG_D(PHY,"pucch_config_dedicated.tdd_AckNackFeedbackMode = bundling\n"); + LOG_D (PHY, "pucch_config_dedicated.tdd_AckNackFeedbackMode = bundling\n"); } @@ -668,10 +649,10 @@ void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB) eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_RI_Index; eNB->pusch_config_dedicated[UE_id].betaOffset_CQI_Index = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_CQI_Index; - LOG_D(PHY,"pusch_config_dedicated.betaOffset_ACK_Index %d\n",eNB->pusch_config_dedicated[UE_id].betaOffset_ACK_Index); - LOG_D(PHY,"pusch_config_dedicated.betaOffset_RI_Index %d\n",eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index); - LOG_D(PHY,"pusch_config_dedicated.betaOffset_CQI_Index %d\n",eNB->pusch_config_dedicated[UE_id].betaOffset_CQI_Index); - LOG_D(PHY,"\n"); + LOG_D (PHY, "pusch_config_dedicated.betaOffset_ACK_Index %d\n", eNB->pusch_config_dedicated[UE_id].betaOffset_ACK_Index); + LOG_D (PHY, "pusch_config_dedicated.betaOffset_RI_Index %d\n", eNB->pusch_config_dedicated[UE_id].betaOffset_RI_Index); + LOG_D (PHY, "pusch_config_dedicated.betaOffset_CQI_Index %d\n", eNB->pusch_config_dedicated[UE_id].betaOffset_CQI_Index); + LOG_D (PHY, "\n"); } @@ -679,59 +660,59 @@ void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB) if (physicalConfigDedicated->uplinkPowerControlDedicated) { eNB->ul_power_control_dedicated[UE_id].p0_UE_PUSCH = physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUSCH; - eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled= physicalConfigDedicated->uplinkPowerControlDedicated->deltaMCS_Enabled; - eNB->ul_power_control_dedicated[UE_id].accumulationEnabled= physicalConfigDedicated->uplinkPowerControlDedicated->accumulationEnabled; - eNB->ul_power_control_dedicated[UE_id].p0_UE_PUCCH= physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUCCH; - eNB->ul_power_control_dedicated[UE_id].pSRS_Offset= physicalConfigDedicated->uplinkPowerControlDedicated->pSRS_Offset; - eNB->ul_power_control_dedicated[UE_id].filterCoefficient= *physicalConfigDedicated->uplinkPowerControlDedicated->filterCoefficient; - LOG_D(PHY,"ul_power_control_dedicated.p0_UE_PUSCH %d\n",eNB->ul_power_control_dedicated[UE_id].p0_UE_PUSCH); - LOG_D(PHY,"ul_power_control_dedicated.deltaMCS_Enabled %d\n",eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled); - LOG_D(PHY,"ul_power_control_dedicated.accumulationEnabled %d\n",eNB->ul_power_control_dedicated[UE_id].accumulationEnabled); - LOG_D(PHY,"ul_power_control_dedicated.p0_UE_PUCCH %d\n",eNB->ul_power_control_dedicated[UE_id].p0_UE_PUCCH); - LOG_D(PHY,"ul_power_control_dedicated.pSRS_Offset %d\n",eNB->ul_power_control_dedicated[UE_id].pSRS_Offset); - LOG_D(PHY,"ul_power_control_dedicated.filterCoefficient %d\n",eNB->ul_power_control_dedicated[UE_id].filterCoefficient); - LOG_D(PHY,"\n"); + eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled = physicalConfigDedicated->uplinkPowerControlDedicated->deltaMCS_Enabled; + eNB->ul_power_control_dedicated[UE_id].accumulationEnabled = physicalConfigDedicated->uplinkPowerControlDedicated->accumulationEnabled; + eNB->ul_power_control_dedicated[UE_id].p0_UE_PUCCH = physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUCCH; + eNB->ul_power_control_dedicated[UE_id].pSRS_Offset = physicalConfigDedicated->uplinkPowerControlDedicated->pSRS_Offset; + eNB->ul_power_control_dedicated[UE_id].filterCoefficient = *physicalConfigDedicated->uplinkPowerControlDedicated->filterCoefficient; + LOG_D (PHY, "ul_power_control_dedicated.p0_UE_PUSCH %d\n", eNB->ul_power_control_dedicated[UE_id].p0_UE_PUSCH); + LOG_D (PHY, "ul_power_control_dedicated.deltaMCS_Enabled %d\n", eNB->ul_power_control_dedicated[UE_id].deltaMCS_Enabled); + LOG_D (PHY, "ul_power_control_dedicated.accumulationEnabled %d\n", eNB->ul_power_control_dedicated[UE_id].accumulationEnabled); + LOG_D (PHY, "ul_power_control_dedicated.p0_UE_PUCCH %d\n", eNB->ul_power_control_dedicated[UE_id].p0_UE_PUCCH); + LOG_D (PHY, "ul_power_control_dedicated.pSRS_Offset %d\n", eNB->ul_power_control_dedicated[UE_id].pSRS_Offset); + LOG_D (PHY, "ul_power_control_dedicated.filterCoefficient %d\n", eNB->ul_power_control_dedicated[UE_id].filterCoefficient); + LOG_D (PHY, "\n"); } if (physicalConfigDedicated->antennaInfo) { - eNB->transmission_mode[UE_id] = 1+(physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode); - LOG_D(PHY,"Transmission Mode (phy_config_dedicated_eNB_step2) %d\n",eNB->transmission_mode[UE_id]); - LOG_D(PHY,"\n"); + eNB->transmission_mode[UE_id] = 1 + (physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode); + LOG_D (PHY, "Transmission Mode (phy_config_dedicated_eNB_step2) %d\n", eNB->transmission_mode[UE_id]); + LOG_D (PHY, "\n"); } if (physicalConfigDedicated->schedulingRequestConfig) { if (physicalConfigDedicated->schedulingRequestConfig->present == SchedulingRequestConfig_PR_setup) { eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex = physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex; - eNB->scheduling_request_config[UE_id].sr_ConfigIndex=physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_ConfigIndex; - eNB->scheduling_request_config[UE_id].dsr_TransMax=physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax; + eNB->scheduling_request_config[UE_id].sr_ConfigIndex = physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_ConfigIndex; + eNB->scheduling_request_config[UE_id].dsr_TransMax = physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax; - LOG_D(PHY,"scheduling_request_config.sr_PUCCH_ResourceIndex %d\n",eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex); - LOG_D(PHY,"scheduling_request_config.sr_ConfigIndex %d\n",eNB->scheduling_request_config[UE_id].sr_ConfigIndex); - LOG_D(PHY,"scheduling_request_config.dsr_TransMax %d\n",eNB->scheduling_request_config[UE_id].dsr_TransMax); + LOG_D (PHY, "scheduling_request_config.sr_PUCCH_ResourceIndex %d\n", eNB->scheduling_request_config[UE_id].sr_PUCCH_ResourceIndex); + LOG_D (PHY, "scheduling_request_config.sr_ConfigIndex %d\n", eNB->scheduling_request_config[UE_id].sr_ConfigIndex); + LOG_D (PHY, "scheduling_request_config.dsr_TransMax %d\n", eNB->scheduling_request_config[UE_id].dsr_TransMax); } - LOG_D(PHY,"------------------------------------------------------------\n"); + LOG_D (PHY, "------------------------------------------------------------\n"); } if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated) { if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated->present == SoundingRS_UL_ConfigDedicated_PR_setup) { - - eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup = 1; - eNB->soundingrs_ul_config_dedicated[UE_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration; - eNB->soundingrs_ul_config_dedicated[UE_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift; - eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition; - eNB->soundingrs_ul_config_dedicated[UE_id].srs_Bandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth; - eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex; + + eNB->soundingrs_ul_config_dedicated[UE_id].srsConfigDedicatedSetup = 1; + eNB->soundingrs_ul_config_dedicated[UE_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration; + eNB->soundingrs_ul_config_dedicated[UE_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift; + eNB->soundingrs_ul_config_dedicated[UE_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition; + eNB->soundingrs_ul_config_dedicated[UE_id].srs_Bandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth; + eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex; eNB->soundingrs_ul_config_dedicated[UE_id].srs_HoppingBandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth; - eNB->soundingrs_ul_config_dedicated[UE_id].transmissionComb = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb; + eNB->soundingrs_ul_config_dedicated[UE_id].transmissionComb = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb; - LOG_D(PHY,"soundingrs_ul_config_dedicated.srs_ConfigIndex %d\n",eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex); + LOG_D (PHY, "soundingrs_ul_config_dedicated.srs_ConfigIndex %d\n", eNB->soundingrs_ul_config_dedicated[UE_id].srs_ConfigIndex); } - LOG_D(PHY,"------------------------------------------------------------\n"); + LOG_D (PHY, "------------------------------------------------------------\n"); } @@ -743,15 +724,14 @@ void phy_config_dedicated_eNB_step2(PHY_VARS_eNB *eNB) /* * Configures UE MAC and PHY with radioResourceCommon received in mobilityControlInfo IE during Handover */ -void phy_config_afterHO_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_id, MobilityControlInfo_t *mobilityControlInfo, uint8_t ho_failed) +void +phy_config_afterHO_ue (uint8_t Mod_id, uint8_t CC_id, uint8_t eNB_id, MobilityControlInfo_t * mobilityControlInfo, uint8_t ho_failed) { - if(mobilityControlInfo!=NULL) { + if (mobilityControlInfo != NULL) { RadioResourceConfigCommon_t *radioResourceConfigCommon = &mobilityControlInfo->radioResourceConfigCommon; - LOG_I(PHY,"radioResourceConfigCommon %p\n", radioResourceConfigCommon); - memcpy((void *)&PHY_vars_UE_g[Mod_id][CC_id]->frame_parms_before_ho, - (void *)&PHY_vars_UE_g[Mod_id][CC_id]->frame_parms, - sizeof(LTE_DL_FRAME_PARMS)); + LOG_I (PHY, "radioResourceConfigCommon %p\n", radioResourceConfigCommon); + memcpy ((void *) &PHY_vars_UE_g[Mod_id][CC_id]->frame_parms_before_ho, (void *) &PHY_vars_UE_g[Mod_id][CC_id]->frame_parms, sizeof (LTE_DL_FRAME_PARMS)); PHY_vars_UE_g[Mod_id][CC_id]->ho_triggered = 1; //PHY_vars_UE_g[UE_id]->UE_mode[0] = PRACH; @@ -760,15 +740,14 @@ void phy_config_afterHO_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_id, Mobility // uint8_t prach_fmt; // int u; - LOG_I(PHY,"[UE%d] Handover triggered: Applying radioResourceConfigCommon from eNB %d\n", - Mod_id,eNB_id); + LOG_I (PHY, "[UE%d] Handover triggered: Applying radioResourceConfigCommon from eNB %d\n", Mod_id, eNB_id); - fp->prach_config_common.rootSequenceIndex =radioResourceConfigCommon->prach_Config.rootSequenceIndex; - fp->prach_config_common.prach_Config_enabled=1; - fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex =radioResourceConfigCommon->prach_Config.prach_ConfigInfo->prach_ConfigIndex; - fp->prach_config_common.prach_ConfigInfo.highSpeedFlag =radioResourceConfigCommon->prach_Config.prach_ConfigInfo->highSpeedFlag; - fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig =radioResourceConfigCommon->prach_Config.prach_ConfigInfo->zeroCorrelationZoneConfig; - fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset =radioResourceConfigCommon->prach_Config.prach_ConfigInfo->prach_FreqOffset; + fp->prach_config_common.rootSequenceIndex = radioResourceConfigCommon->prach_Config.rootSequenceIndex; + fp->prach_config_common.prach_Config_enabled = 1; + fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex = radioResourceConfigCommon->prach_Config.prach_ConfigInfo->prach_ConfigIndex; + fp->prach_config_common.prach_ConfigInfo.highSpeedFlag = radioResourceConfigCommon->prach_Config.prach_ConfigInfo->highSpeedFlag; + fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig = radioResourceConfigCommon->prach_Config.prach_ConfigInfo->zeroCorrelationZoneConfig; + fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset = radioResourceConfigCommon->prach_Config.prach_ConfigInfo->prach_FreqOffset; // prach_fmt = get_prach_fmt(radioResourceConfigCommon->prach_Config.prach_ConfigInfo->prach_ConfigIndex,fp->frame_type); // N_ZC = (prach_fmt <4)?839:139; @@ -776,111 +755,108 @@ void phy_config_afterHO_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_id, Mobility // prach_root_sequence_map4[fp->prach_config_common.rootSequenceIndex]; //compute_prach_seq(u,N_ZC, PHY_vars_UE_g[Mod_id]->X_u); - compute_prach_seq(PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.rootSequenceIndex, - PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.prach_ConfigInfo.prach_ConfigIndex, - PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, - PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.prach_ConfigInfo.highSpeedFlag, - fp->frame_type, - PHY_vars_UE_g[Mod_id][CC_id]->X_u); + compute_prach_seq (PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.rootSequenceIndex, + PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.prach_ConfigInfo.prach_ConfigIndex, + PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, + PHY_vars_UE_g[Mod_id][CC_id]->frame_parms.prach_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, PHY_vars_UE_g[Mod_id][CC_id]->X_u); - fp->pucch_config_common.deltaPUCCH_Shift = 1+radioResourceConfigCommon->pucch_ConfigCommon->deltaPUCCH_Shift; - fp->pucch_config_common.nRB_CQI = radioResourceConfigCommon->pucch_ConfigCommon->nRB_CQI; - fp->pucch_config_common.nCS_AN = radioResourceConfigCommon->pucch_ConfigCommon->nCS_AN; - fp->pucch_config_common.n1PUCCH_AN = radioResourceConfigCommon->pucch_ConfigCommon->n1PUCCH_AN; + fp->pucch_config_common.deltaPUCCH_Shift = 1 + radioResourceConfigCommon->pucch_ConfigCommon->deltaPUCCH_Shift; + fp->pucch_config_common.nRB_CQI = radioResourceConfigCommon->pucch_ConfigCommon->nRB_CQI; + fp->pucch_config_common.nCS_AN = radioResourceConfigCommon->pucch_ConfigCommon->nCS_AN; + fp->pucch_config_common.n1PUCCH_AN = radioResourceConfigCommon->pucch_ConfigCommon->n1PUCCH_AN; fp->pdsch_config_common.referenceSignalPower = radioResourceConfigCommon->pdsch_ConfigCommon->referenceSignalPower; - fp->pdsch_config_common.p_b = radioResourceConfigCommon->pdsch_ConfigCommon->p_b; + fp->pdsch_config_common.p_b = radioResourceConfigCommon->pdsch_ConfigCommon->p_b; - fp->pusch_config_common.n_SB = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.n_SB; - fp->pusch_config_common.hoppingMode = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode; - fp->pusch_config_common.pusch_HoppingOffset = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset; - fp->pusch_config_common.enable64QAM = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH; + fp->pusch_config_common.n_SB = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.n_SB; + fp->pusch_config_common.hoppingMode = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.hoppingMode; + fp->pusch_config_common.pusch_HoppingOffset = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.pusch_HoppingOffset; + fp->pusch_config_common.enable64QAM = radioResourceConfigCommon->pusch_ConfigCommon.pusch_ConfigBasic.enable64QAM; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupHoppingEnabled; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.groupAssignmentPUSCH; fp->pusch_config_common.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled; - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift; + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift = radioResourceConfigCommon->pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift; - init_ul_hopping(fp); - fp->soundingrs_ul_config_common.enabled_flag = 0; + init_ul_hopping (fp); + fp->soundingrs_ul_config_common.enabled_flag = 0; - if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon->present==SoundingRS_UL_ConfigCommon_PR_setup) { - fp->soundingrs_ul_config_common.enabled_flag = 1; - fp->soundingrs_ul_config_common.srs_BandwidthConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon->choice.setup.srs_BandwidthConfig; - fp->soundingrs_ul_config_common.srs_SubframeConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon->choice.setup.srs_SubframeConfig; + if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon->present == SoundingRS_UL_ConfigCommon_PR_setup) { + fp->soundingrs_ul_config_common.enabled_flag = 1; + fp->soundingrs_ul_config_common.srs_BandwidthConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon->choice.setup.srs_BandwidthConfig; + fp->soundingrs_ul_config_common.srs_SubframeConfig = radioResourceConfigCommon->soundingRS_UL_ConfigCommon->choice.setup.srs_SubframeConfig; fp->soundingrs_ul_config_common.ackNackSRS_SimultaneousTransmission = radioResourceConfigCommon->soundingRS_UL_ConfigCommon->choice.setup.ackNackSRS_SimultaneousTransmission; if (radioResourceConfigCommon->soundingRS_UL_ConfigCommon->choice.setup.srs_MaxUpPts) - fp->soundingrs_ul_config_common.srs_MaxUpPts = 1; + fp->soundingrs_ul_config_common.srs_MaxUpPts = 1; else - fp->soundingrs_ul_config_common.srs_MaxUpPts = 0; + fp->soundingrs_ul_config_common.srs_MaxUpPts = 0; } - fp->ul_power_control_config_common.p0_NominalPUSCH = radioResourceConfigCommon->uplinkPowerControlCommon->p0_NominalPUSCH; - fp->ul_power_control_config_common.alpha = radioResourceConfigCommon->uplinkPowerControlCommon->alpha; - fp->ul_power_control_config_common.p0_NominalPUCCH = radioResourceConfigCommon->uplinkPowerControlCommon->p0_NominalPUCCH; + fp->ul_power_control_config_common.p0_NominalPUSCH = radioResourceConfigCommon->uplinkPowerControlCommon->p0_NominalPUSCH; + fp->ul_power_control_config_common.alpha = radioResourceConfigCommon->uplinkPowerControlCommon->alpha; + fp->ul_power_control_config_common.p0_NominalPUCCH = radioResourceConfigCommon->uplinkPowerControlCommon->p0_NominalPUCCH; fp->ul_power_control_config_common.deltaPreambleMsg3 = radioResourceConfigCommon->uplinkPowerControlCommon->deltaPreambleMsg3; - fp->ul_power_control_config_common.deltaF_PUCCH_Format1 = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format1; - fp->ul_power_control_config_common.deltaF_PUCCH_Format1b = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format1b; - fp->ul_power_control_config_common.deltaF_PUCCH_Format2 = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format2; - fp->ul_power_control_config_common.deltaF_PUCCH_Format2a = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format2a; - fp->ul_power_control_config_common.deltaF_PUCCH_Format2b = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format2b; + fp->ul_power_control_config_common.deltaF_PUCCH_Format1 = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format1; + fp->ul_power_control_config_common.deltaF_PUCCH_Format1b = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format1b; + fp->ul_power_control_config_common.deltaF_PUCCH_Format2 = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format2; + fp->ul_power_control_config_common.deltaF_PUCCH_Format2a = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format2a; + fp->ul_power_control_config_common.deltaF_PUCCH_Format2b = radioResourceConfigCommon->uplinkPowerControlCommon->deltaFList_PUCCH.deltaF_PUCCH_Format2b; fp->maxHARQ_Msg3Tx = radioResourceConfigCommon->rach_ConfigCommon->maxHARQ_Msg3Tx; // Now configure some of the Physical Channels if (radioResourceConfigCommon->antennaInfoCommon) - fp->nb_antennas_tx = (1<antennaInfoCommon->antennaPortsCount); + fp->nb_antennas_tx = (1 << radioResourceConfigCommon->antennaInfoCommon->antennaPortsCount); else - fp->nb_antennas_tx = 1; + fp->nb_antennas_tx = 1; //PHICH if (radioResourceConfigCommon->antennaInfoCommon) { fp->phich_config_common.phich_resource = radioResourceConfigCommon->phich_Config->phich_Resource; fp->phich_config_common.phich_duration = radioResourceConfigCommon->phich_Config->phich_Duration; } - //Target CellId fp->Nid_cell = mobilityControlInfo->targetPhysCellId; - fp->nushift = fp->Nid_cell%6; + fp->nushift = fp->Nid_cell % 6; // PUCCH - init_ncs_cell(fp,PHY_vars_UE_g[Mod_id][CC_id]->ncs_cell); + init_ncs_cell (fp, PHY_vars_UE_g[Mod_id][CC_id]->ncs_cell); - init_ul_hopping(fp); + init_ul_hopping (fp); // RNTI - PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[0][eNB_id]->crnti = mobilityControlInfo->newUE_Identity.buf[0]|(mobilityControlInfo->newUE_Identity.buf[1]<<8); - PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[1][eNB_id]->crnti = mobilityControlInfo->newUE_Identity.buf[0]|(mobilityControlInfo->newUE_Identity.buf[1]<<8); + PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[0][eNB_id]->crnti = mobilityControlInfo->newUE_Identity.buf[0] | (mobilityControlInfo->newUE_Identity.buf[1] << 8); + PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[1][eNB_id]->crnti = mobilityControlInfo->newUE_Identity.buf[0] | (mobilityControlInfo->newUE_Identity.buf[1] << 8); - LOG_I(PHY,"SET C-RNTI %x %x\n",PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[0][eNB_id]->crnti, - PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[1][eNB_id]->crnti); + LOG_I (PHY, "SET C-RNTI %x %x\n", PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[0][eNB_id]->crnti, PHY_vars_UE_g[Mod_id][CC_id]->pdcch_vars[1][eNB_id]->crnti); } - if(ho_failed) { - LOG_D(PHY,"[UE%d] Handover failed, triggering RACH procedure\n",Mod_id); - memcpy((void *)&PHY_vars_UE_g[Mod_id][CC_id]->frame_parms,(void *)&PHY_vars_UE_g[Mod_id][CC_id]->frame_parms_before_ho, sizeof(LTE_DL_FRAME_PARMS)); + if (ho_failed) { + LOG_D (PHY, "[UE%d] Handover failed, triggering RACH procedure\n", Mod_id); + memcpy ((void *) &PHY_vars_UE_g[Mod_id][CC_id]->frame_parms, (void *) &PHY_vars_UE_g[Mod_id][CC_id]->frame_parms_before_ho, sizeof (LTE_DL_FRAME_PARMS)); PHY_vars_UE_g[Mod_id][CC_id]->UE_mode[eNB_id] = PRACH; } } -void phy_config_meas_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,uint8_t n_adj_cells,unsigned int *adj_cell_id) +void +phy_config_meas_ue (uint8_t Mod_id, uint8_t CC_id, uint8_t eNB_index, uint8_t n_adj_cells, unsigned int *adj_cell_id) { PHY_MEASUREMENTS *phy_meas = &PHY_vars_UE_g[Mod_id][CC_id]->measurements; - int i; + int i; - LOG_I(PHY,"Configuring inter-cell measurements for %d cells, ids: \n",n_adj_cells); + LOG_I (PHY, "Configuring inter-cell measurements for %d cells, ids: \n", n_adj_cells); - for (i=0; iframe_parms,PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_table[i+1],adj_cell_id[i]); + for (i = 0; i < n_adj_cells; i++) { + LOG_I (PHY, "%d\n", adj_cell_id[i]); + lte_gold (&PHY_vars_UE_g[Mod_id][CC_id]->frame_parms, PHY_vars_UE_g[Mod_id][CC_id]->lte_gold_table[i + 1], adj_cell_id[i]); } phy_meas->n_adj_cells = n_adj_cells; - memcpy((void*)phy_meas->adj_cell_id,(void *)adj_cell_id,n_adj_cells*sizeof(unsigned int)); + memcpy ((void *) phy_meas->adj_cell_id, (void *) adj_cell_id, n_adj_cells * sizeof (unsigned int)); } @@ -949,13 +925,12 @@ void phy_config_meas_ue(uint8_t Mod_id,uint8_t CC_id,uint8_t eNB_index,uint8_t n */ #if defined(Rel10) || defined(Rel14) -void phy_config_dedicated_scell_ue(uint8_t Mod_id, - uint8_t eNB_index, - SCellToAddMod_r10_t *sCellToAddMod_r10, - int CC_id) +void +phy_config_dedicated_scell_ue (uint8_t Mod_id, uint8_t eNB_index, SCellToAddMod_r10_t * sCellToAddMod_r10, int CC_id) { } + /* void phy_config_dedicated_scell_eNB(uint8_t Mod_id, uint16_t rnti, @@ -1008,51 +983,51 @@ void phy_config_dedicated_scell_ue(uint8_t Mod_id, #endif -void phy_config_harq_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, - uint16_t max_harq_tx ) +void +phy_config_harq_ue (uint8_t Mod_id, int CC_id, uint8_t eNB_id, uint16_t max_harq_tx) { - PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id]; + PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id]; phy_vars_ue->ulsch[eNB_id]->Mlimit = max_harq_tx; } extern uint16_t beta_cqi[16]; -void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, - struct PhysicalConfigDedicated *physicalConfigDedicated ) +void +phy_config_dedicated_ue (uint8_t Mod_id, int CC_id, uint8_t eNB_id, struct PhysicalConfigDedicated *physicalConfigDedicated) { - static uint8_t first_dedicated_configuration = 0; - PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id]; + static uint8_t first_dedicated_configuration = 0; + PHY_VARS_UE *phy_vars_ue = PHY_vars_UE_g[Mod_id][CC_id]; - phy_vars_ue->total_TBS[eNB_id]=0; - phy_vars_ue->total_TBS_last[eNB_id]=0; - phy_vars_ue->bitrate[eNB_id]=0; - phy_vars_ue->total_received_bits[eNB_id]=0; - phy_vars_ue->dlsch_errors[eNB_id]=0; - phy_vars_ue->dlsch_errors_last[eNB_id]=0; - phy_vars_ue->dlsch_received[eNB_id]=0; - phy_vars_ue->dlsch_received_last[eNB_id]=0; - phy_vars_ue->dlsch_fer[eNB_id]=0; + phy_vars_ue->total_TBS[eNB_id] = 0; + phy_vars_ue->total_TBS_last[eNB_id] = 0; + phy_vars_ue->bitrate[eNB_id] = 0; + phy_vars_ue->total_received_bits[eNB_id] = 0; + phy_vars_ue->dlsch_errors[eNB_id] = 0; + phy_vars_ue->dlsch_errors_last[eNB_id] = 0; + phy_vars_ue->dlsch_received[eNB_id] = 0; + phy_vars_ue->dlsch_received_last[eNB_id] = 0; + phy_vars_ue->dlsch_fer[eNB_id] = 0; phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex = -1; phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = -1; if (physicalConfigDedicated) { - LOG_D(PHY,"[UE %d] Received physicalConfigDedicated from eNB %d\n",Mod_id, eNB_id); - LOG_D(PHY,"------------------------------------------------------------------------\n"); + LOG_D (PHY, "[UE %d] Received physicalConfigDedicated from eNB %d\n", Mod_id, eNB_id); + LOG_D (PHY, "------------------------------------------------------------------------\n"); if (physicalConfigDedicated->pdsch_ConfigDedicated) { - phy_vars_ue->pdsch_config_dedicated[eNB_id].p_a=physicalConfigDedicated->pdsch_ConfigDedicated->p_a; - LOG_D(PHY,"pdsch_config_dedicated.p_a %d\n",phy_vars_ue->pdsch_config_dedicated[eNB_id].p_a); - LOG_D(PHY,"\n"); + phy_vars_ue->pdsch_config_dedicated[eNB_id].p_a = physicalConfigDedicated->pdsch_ConfigDedicated->p_a; + LOG_D (PHY, "pdsch_config_dedicated.p_a %d\n", phy_vars_ue->pdsch_config_dedicated[eNB_id].p_a); + LOG_D (PHY, "\n"); } if (physicalConfigDedicated->pucch_ConfigDedicated) { - if (physicalConfigDedicated->pucch_ConfigDedicated->ackNackRepetition.present==PUCCH_ConfigDedicated__ackNackRepetition_PR_release) - phy_vars_ue->pucch_config_dedicated[eNB_id].ackNackRepetition=0; + if (physicalConfigDedicated->pucch_ConfigDedicated->ackNackRepetition.present == PUCCH_ConfigDedicated__ackNackRepetition_PR_release) + phy_vars_ue->pucch_config_dedicated[eNB_id].ackNackRepetition = 0; else { - phy_vars_ue->pucch_config_dedicated[eNB_id].ackNackRepetition=1; + phy_vars_ue->pucch_config_dedicated[eNB_id].ackNackRepetition = 1; } if (physicalConfigDedicated->pucch_ConfigDedicated->tdd_AckNackFeedbackMode) @@ -1060,10 +1035,10 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, else phy_vars_ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode = bundling; - if ( phy_vars_ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode == multiplexing) - LOG_D(PHY,"pucch_config_dedicated.tdd_AckNackFeedbackMode = multiplexing\n"); + if (phy_vars_ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode == multiplexing) + LOG_D (PHY, "pucch_config_dedicated.tdd_AckNackFeedbackMode = multiplexing\n"); else - LOG_D(PHY,"pucch_config_dedicated.tdd_AckNackFeedbackMode = bundling\n"); + LOG_D (PHY, "pucch_config_dedicated.tdd_AckNackFeedbackMode = bundling\n"); } if (physicalConfigDedicated->pusch_ConfigDedicated) { @@ -1072,10 +1047,11 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index = physicalConfigDedicated->pusch_ConfigDedicated->betaOffset_CQI_Index; - LOG_D(PHY,"pusch_config_dedicated.betaOffset_ACK_Index %d\n",phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index); - LOG_D(PHY,"pusch_config_dedicated.betaOffset_RI_Index %d\n",phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_RI_Index); - LOG_D(PHY,"pusch_config_dedicated.betaOffset_CQI_Index %d => %d)\n",phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index,beta_cqi[phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index]); - LOG_D(PHY,"\n"); + LOG_D (PHY, "pusch_config_dedicated.betaOffset_ACK_Index %d\n", phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index); + LOG_D (PHY, "pusch_config_dedicated.betaOffset_RI_Index %d\n", phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_RI_Index); + LOG_D (PHY, "pusch_config_dedicated.betaOffset_CQI_Index %d => %d)\n", phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index, + beta_cqi[phy_vars_ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index]); + LOG_D (PHY, "\n"); } @@ -1083,24 +1059,24 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, if (physicalConfigDedicated->uplinkPowerControlDedicated) { phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUSCH = physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUSCH; - phy_vars_ue->ul_power_control_dedicated[eNB_id].deltaMCS_Enabled= physicalConfigDedicated->uplinkPowerControlDedicated->deltaMCS_Enabled; - phy_vars_ue->ul_power_control_dedicated[eNB_id].accumulationEnabled= physicalConfigDedicated->uplinkPowerControlDedicated->accumulationEnabled; - phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUCCH= physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUCCH; - phy_vars_ue->ul_power_control_dedicated[eNB_id].pSRS_Offset= physicalConfigDedicated->uplinkPowerControlDedicated->pSRS_Offset; - phy_vars_ue->ul_power_control_dedicated[eNB_id].filterCoefficient= *physicalConfigDedicated->uplinkPowerControlDedicated->filterCoefficient; - LOG_D(PHY,"ul_power_control_dedicated.p0_UE_PUSCH %d\n",phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUSCH); - LOG_D(PHY,"ul_power_control_dedicated.deltaMCS_Enabled %d\n",phy_vars_ue->ul_power_control_dedicated[eNB_id].deltaMCS_Enabled); - LOG_D(PHY,"ul_power_control_dedicated.accumulationEnabled %d\n",phy_vars_ue->ul_power_control_dedicated[eNB_id].accumulationEnabled); - LOG_D(PHY,"ul_power_control_dedicated.p0_UE_PUCCH %d\n",phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUCCH); - LOG_D(PHY,"ul_power_control_dedicated.pSRS_Offset %d\n",phy_vars_ue->ul_power_control_dedicated[eNB_id].pSRS_Offset); - LOG_D(PHY,"ul_power_control_dedicated.filterCoefficient %d\n",phy_vars_ue->ul_power_control_dedicated[eNB_id].filterCoefficient); - LOG_D(PHY,"\n"); + phy_vars_ue->ul_power_control_dedicated[eNB_id].deltaMCS_Enabled = physicalConfigDedicated->uplinkPowerControlDedicated->deltaMCS_Enabled; + phy_vars_ue->ul_power_control_dedicated[eNB_id].accumulationEnabled = physicalConfigDedicated->uplinkPowerControlDedicated->accumulationEnabled; + phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUCCH = physicalConfigDedicated->uplinkPowerControlDedicated->p0_UE_PUCCH; + phy_vars_ue->ul_power_control_dedicated[eNB_id].pSRS_Offset = physicalConfigDedicated->uplinkPowerControlDedicated->pSRS_Offset; + phy_vars_ue->ul_power_control_dedicated[eNB_id].filterCoefficient = *physicalConfigDedicated->uplinkPowerControlDedicated->filterCoefficient; + LOG_D (PHY, "ul_power_control_dedicated.p0_UE_PUSCH %d\n", phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUSCH); + LOG_D (PHY, "ul_power_control_dedicated.deltaMCS_Enabled %d\n", phy_vars_ue->ul_power_control_dedicated[eNB_id].deltaMCS_Enabled); + LOG_D (PHY, "ul_power_control_dedicated.accumulationEnabled %d\n", phy_vars_ue->ul_power_control_dedicated[eNB_id].accumulationEnabled); + LOG_D (PHY, "ul_power_control_dedicated.p0_UE_PUCCH %d\n", phy_vars_ue->ul_power_control_dedicated[eNB_id].p0_UE_PUCCH); + LOG_D (PHY, "ul_power_control_dedicated.pSRS_Offset %d\n", phy_vars_ue->ul_power_control_dedicated[eNB_id].pSRS_Offset); + LOG_D (PHY, "ul_power_control_dedicated.filterCoefficient %d\n", phy_vars_ue->ul_power_control_dedicated[eNB_id].filterCoefficient); + LOG_D (PHY, "\n"); } if (physicalConfigDedicated->antennaInfo) { - phy_vars_ue->transmission_mode[eNB_id] = 1+(physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode); - LOG_I(PHY,"Transmission Mode %d\n",phy_vars_ue->transmission_mode[eNB_id]); - switch(physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode) { + phy_vars_ue->transmission_mode[eNB_id] = 1 + (physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode); + LOG_I (PHY, "Transmission Mode %d\n", phy_vars_ue->transmission_mode[eNB_id]); + switch (physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode) { case AntennaInfoDedicated__transmissionMode_tm1: phy_vars_ue->transmission_mode[eNB_id] = 1; break; @@ -1120,29 +1096,29 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, phy_vars_ue->transmission_mode[eNB_id] = 6; break; case AntennaInfoDedicated__transmissionMode_tm7: - lte_gold_ue_spec_port5(phy_vars_ue->lte_gold_uespec_port5_table, phy_vars_ue->frame_parms.Nid_cell, phy_vars_ue->pdcch_vars[0][eNB_id]->crnti); + lte_gold_ue_spec_port5 (phy_vars_ue->lte_gold_uespec_port5_table, phy_vars_ue->frame_parms.Nid_cell, phy_vars_ue->pdcch_vars[0][eNB_id]->crnti); phy_vars_ue->transmission_mode[eNB_id] = 7; break; default: - LOG_E(PHY,"Unknown transmission mode!\n"); + LOG_E (PHY, "Unknown transmission mode!\n"); break; } } else { - LOG_D(PHY,"[UE %d] Received NULL physicalConfigDedicated->antennaInfo from eNB %d\n",Mod_id, eNB_id); + LOG_D (PHY, "[UE %d] Received NULL physicalConfigDedicated->antennaInfo from eNB %d\n", Mod_id, eNB_id); } if (physicalConfigDedicated->schedulingRequestConfig) { if (physicalConfigDedicated->schedulingRequestConfig->present == SchedulingRequestConfig_PR_setup) { phy_vars_ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex = physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex; - phy_vars_ue->scheduling_request_config[eNB_id].sr_ConfigIndex=physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_ConfigIndex; - phy_vars_ue->scheduling_request_config[eNB_id].dsr_TransMax=physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax; + phy_vars_ue->scheduling_request_config[eNB_id].sr_ConfigIndex = physicalConfigDedicated->schedulingRequestConfig->choice.setup.sr_ConfigIndex; + phy_vars_ue->scheduling_request_config[eNB_id].dsr_TransMax = physicalConfigDedicated->schedulingRequestConfig->choice.setup.dsr_TransMax; - LOG_D(PHY,"scheduling_request_config.sr_PUCCH_ResourceIndex %d\n",phy_vars_ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex); - LOG_D(PHY,"scheduling_request_config.sr_ConfigIndex %d\n",phy_vars_ue->scheduling_request_config[eNB_id].sr_ConfigIndex); - LOG_D(PHY,"scheduling_request_config.dsr_TransMax %d\n",phy_vars_ue->scheduling_request_config[eNB_id].dsr_TransMax); + LOG_D (PHY, "scheduling_request_config.sr_PUCCH_ResourceIndex %d\n", phy_vars_ue->scheduling_request_config[eNB_id].sr_PUCCH_ResourceIndex); + LOG_D (PHY, "scheduling_request_config.sr_ConfigIndex %d\n", phy_vars_ue->scheduling_request_config[eNB_id].sr_ConfigIndex); + LOG_D (PHY, "scheduling_request_config.dsr_TransMax %d\n", phy_vars_ue->scheduling_request_config[eNB_id].dsr_TransMax); } - LOG_D(PHY,"------------------------------------------------------------\n"); + LOG_D (PHY, "------------------------------------------------------------\n"); } @@ -1151,19 +1127,19 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srsConfigDedicatedSetup = 0; if (physicalConfigDedicated->soundingRS_UL_ConfigDedicated->present == SoundingRS_UL_ConfigDedicated_PR_setup) { phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srsConfigDedicatedSetup = 1; - phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration; - phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift; - phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition; - phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_Bandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth; - phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_ConfigIndex = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex; + phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].duration = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.duration; + phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].cyclicShift = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift; + phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].freqDomainPosition = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.freqDomainPosition; + phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_Bandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_Bandwidth; + phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_ConfigIndex = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex; phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_HoppingBandwidth = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.srs_HoppingBandwidth; - phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].transmissionComb = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb; + phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].transmissionComb = physicalConfigDedicated->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb; - LOG_D(PHY,"soundingrs_ul_config_dedicated.srs_ConfigIndex %d\n",phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_ConfigIndex); + LOG_D (PHY, "soundingrs_ul_config_dedicated.srs_ConfigIndex %d\n", phy_vars_ue->soundingrs_ul_config_dedicated[eNB_id].srs_ConfigIndex); } - LOG_D(PHY,"------------------------------------------------------------\n"); + LOG_D (PHY, "------------------------------------------------------------\n"); } @@ -1173,112 +1149,107 @@ void phy_config_dedicated_ue(uint8_t Mod_id,int CC_id,uint8_t eNB_id, // configure PUSCH CQI reporting phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic = *physicalConfigDedicated->cqi_ReportConfig->cqi_ReportModeAperiodic; if ((phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic != rm12) && - (phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic != rm30) && - (phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic != rm31)) - LOG_E(PHY,"Unsupported Aperiodic CQI Feedback Mode : %d\n",phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic); + (phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic != rm30) && (phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic != rm31)) + LOG_E (PHY, "Unsupported Aperiodic CQI Feedback Mode : %d\n", phy_vars_ue->cqi_report_config[eNB_id].cqi_ReportModeAperiodic); } if (physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic) { if (physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->present == CQI_ReportPeriodic_PR_setup) { - // configure PUCCH CQI reporting + // configure PUCCH CQI reporting phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PUCCH_ResourceIndex = physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_PUCCH_ResourceIndex; - phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_pmi_ConfigIndex; + phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.cqi_pmi_ConfigIndex; if (physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.ri_ConfigIndex) phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex = *physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->choice.setup.ri_ConfigIndex; - } - else if (physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->present == CQI_ReportPeriodic_PR_release) { + } else if (physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic->present == CQI_ReportPeriodic_PR_release) { // handle release phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.ri_ConfigIndex = -1; phy_vars_ue->cqi_report_config[eNB_id].CQI_ReportPeriodic.cqi_PMI_ConfigIndex = -1; } } } - #ifdef CBA if (physicalConfigDedicated->pusch_CBAConfigDedicated_vlola) { - phy_vars_ue->pusch_ca_config_dedicated[eNB_id].betaOffset_CA_Index = (uint16_t) *physicalConfigDedicated->pusch_CBAConfigDedicated_vlola->betaOffset_CBA_Index; - phy_vars_ue->pusch_ca_config_dedicated[eNB_id].cShift = (uint16_t) *physicalConfigDedicated->pusch_CBAConfigDedicated_vlola->cShift_CBA; - LOG_D(PHY,"[UE %d ] physicalConfigDedicated pusch CBA config dedicated: beta offset %d cshift %d \n",Mod_id, - phy_vars_ue->pusch_ca_config_dedicated[eNB_id].betaOffset_CA_Index, - phy_vars_ue->pusch_ca_config_dedicated[eNB_id].cShift); + phy_vars_ue->pusch_ca_config_dedicated[eNB_id].betaOffset_CA_Index = (uint16_t) * physicalConfigDedicated->pusch_CBAConfigDedicated_vlola->betaOffset_CBA_Index; + phy_vars_ue->pusch_ca_config_dedicated[eNB_id].cShift = (uint16_t) * physicalConfigDedicated->pusch_CBAConfigDedicated_vlola->cShift_CBA; + LOG_D (PHY, "[UE %d ] physicalConfigDedicated pusch CBA config dedicated: beta offset %d cshift %d \n", Mod_id, + phy_vars_ue->pusch_ca_config_dedicated[eNB_id].betaOffset_CA_Index, phy_vars_ue->pusch_ca_config_dedicated[eNB_id].cShift); } - #endif } else { - LOG_D(PHY,"[PHY][UE %d] Received NULL radioResourceConfigDedicated from eNB %d\n",Mod_id,eNB_id); + LOG_D (PHY, "[PHY][UE %d] Received NULL radioResourceConfigDedicated from eNB %d\n", Mod_id, eNB_id); return; } // fill cqi parameters for periodic CQI reporting - get_cqipmiri_params(phy_vars_ue,eNB_id); + get_cqipmiri_params (phy_vars_ue, eNB_id); // disable MIB SIB decoding once we are on connected mode - first_dedicated_configuration ++; - if(first_dedicated_configuration > 1) - { - LOG_I(PHY,"Disable SIB MIB decoding \n"); - phy_vars_ue->decode_SIB = 0; - phy_vars_ue->decode_MIB = 0; + first_dedicated_configuration++; + if (first_dedicated_configuration > 1) { + LOG_I (PHY, "Disable SIB MIB decoding \n"); + phy_vars_ue->decode_SIB = 0; + phy_vars_ue->decode_MIB = 0; } //phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti; - if(phy_vars_ue->pdcch_vars[0][eNB_id]->crnti == 0x1234) + if (phy_vars_ue->pdcch_vars[0][eNB_id]->crnti == 0x1234) phy_vars_ue->pdcch_vars[0][eNB_id]->crnti = phy_vars_ue->pdcch_vars[1][eNB_id]->crnti; else phy_vars_ue->pdcch_vars[1][eNB_id]->crnti = phy_vars_ue->pdcch_vars[0][eNB_id]->crnti; - LOG_I(PHY,"C-RNTI %x %x \n", phy_vars_ue->pdcch_vars[0][eNB_id]->crnti, - phy_vars_ue->pdcch_vars[1][eNB_id]->crnti); + LOG_I (PHY, "C-RNTI %x %x \n", phy_vars_ue->pdcch_vars[0][eNB_id]->crnti, phy_vars_ue->pdcch_vars[1][eNB_id]->crnti); } -void phy_config_cba_rnti (module_id_t Mod_id,int CC_id,eNB_flag_t eNB_flag, uint8_t index, rnti_t cba_rnti, uint8_t cba_group_id, uint8_t num_active_cba_groups) +void +phy_config_cba_rnti (module_id_t Mod_id, int CC_id, eNB_flag_t eNB_flag, uint8_t index, rnti_t cba_rnti, uint8_t cba_group_id, uint8_t num_active_cba_groups) { // uint8_t i; - if (eNB_flag == 0 ) { + if (eNB_flag == 0) { //LOG_D(PHY,"[UE %d] configure cba group %d with rnti %x, num active cba grp %d\n", index, index, cba_rnti, num_active_cba_groups); - PHY_vars_UE_g[Mod_id][CC_id]->ulsch[index]->num_active_cba_groups=num_active_cba_groups; - PHY_vars_UE_g[Mod_id][CC_id]->ulsch[index]->cba_rnti[cba_group_id]=cba_rnti; + PHY_vars_UE_g[Mod_id][CC_id]->ulsch[index]->num_active_cba_groups = num_active_cba_groups; + PHY_vars_UE_g[Mod_id][CC_id]->ulsch[index]->cba_rnti[cba_group_id] = cba_rnti; } else { //for (i=index; i < NUMBER_OF_UE_MAX; i+=num_active_cba_groups){ // LOG_D(PHY,"[eNB %d] configure cba group %d with rnti %x for UE %d, num active cba grp %d\n",Mod_id, i%num_active_cba_groups, cba_rnti, i, num_active_cba_groups); - RC.eNB[Mod_id][CC_id]->ulsch[index]->num_active_cba_groups=num_active_cba_groups; + RC.eNB[Mod_id][CC_id]->ulsch[index]->num_active_cba_groups = num_active_cba_groups; RC.eNB[Mod_id][CC_id]->ulsch[index]->cba_rnti[cba_group_id] = cba_rnti; //} } } -void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) +void +init_lte_top (LTE_DL_FRAME_PARMS * frame_parms) { - crcTableInit(); + crcTableInit (); - ccodedot11_init(); - ccodedot11_init_inv(); + ccodedot11_init (); + ccodedot11_init_inv (); - ccodelte_init(); - ccodelte_init_inv(); + ccodelte_init (); + ccodelte_init_inv (); - treillis_table_init(); + treillis_table_init (); - phy_generate_viterbi_tables(); - phy_generate_viterbi_tables_lte(); - init_td8(); - init_td16(); + phy_generate_viterbi_tables (); + phy_generate_viterbi_tables_lte (); + init_td8 (); + init_td16 (); #ifdef __AVX2__ - init_td16avx2(); + init_td16avx2 (); #endif - lte_sync_time_init(frame_parms); + lte_sync_time_init (frame_parms); - generate_ul_ref_sigs(); - generate_ul_ref_sigs_rx(); + generate_ul_ref_sigs (); + generate_ul_ref_sigs_rx (); - generate_64qam_table(); - generate_16qam_table(); - generate_RIV_tables(); + generate_64qam_table (); + generate_16qam_table (); + generate_RIV_tables (); - init_unscrambling_lut(); - init_scrambling_lut(); + init_unscrambling_lut (); + init_scrambling_lut (); //set_taus_seed(1328); @@ -1289,92 +1260,92 @@ void init_lte_top(LTE_DL_FRAME_PARMS *frame_parms) * \param[in] frame_parms LTE_DL_FRAME_PARMS structure. * \note This function is optimistic in that it expects malloc() to succeed. */ -void phy_init_lte_ue__PDSCH( LTE_UE_PDSCH* const pdsch, const LTE_DL_FRAME_PARMS* const fp ) +void +phy_init_lte_ue__PDSCH (LTE_UE_PDSCH * const pdsch, const LTE_DL_FRAME_PARMS * const fp) { - AssertFatal( pdsch, "pdsch==0" ); + AssertFatal (pdsch, "pdsch==0"); - pdsch->pmi_ext = (uint8_t*)malloc16_clear( fp->N_RB_DL ); - pdsch->llr[0] = (int16_t*)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); - pdsch->llr128 = (int16_t**)malloc16_clear( sizeof(int16_t*) ); + pdsch->pmi_ext = (uint8_t *) malloc16_clear (fp->N_RB_DL); + pdsch->llr[0] = (int16_t *) malloc16_clear ((8 * ((3 * 8 * 6144) + 12)) * sizeof (int16_t)); + pdsch->llr128 = (int16_t **) malloc16_clear (sizeof (int16_t *)); // FIXME! no further allocation for (int16_t*)pdsch->llr128 !!! expect SIGSEGV // FK, 11-3-2015: this is only as a temporary pointer, no memory is stored there - pdsch->rxdataF_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->rxdataF_uespec_pilots = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->rxdataF_comp0 = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->rho = (int32_t**)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t*) ); - pdsch->dl_ch_estimates_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->dl_bf_ch_estimates = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->dl_bf_ch_estimates_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); + pdsch->rxdataF_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pdsch->rxdataF_uespec_pilots = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pdsch->rxdataF_comp0 = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pdsch->rho = (int32_t **) malloc16_clear (fp->nb_antennas_rx * sizeof (int32_t *)); + pdsch->dl_ch_estimates_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pdsch->dl_bf_ch_estimates = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pdsch->dl_bf_ch_estimates_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); //pdsch->dl_ch_rho_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); //pdsch->dl_ch_rho2_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->dl_ch_mag0 = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pdsch->dl_ch_magb0 = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); + pdsch->dl_ch_mag0 = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pdsch->dl_ch_magb0 = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); // the allocated memory size is fixed: - AssertFatal( fp->nb_antennas_rx <= 2, "nb_antennas_rx > 2" ); + AssertFatal (fp->nb_antennas_rx <= 2, "nb_antennas_rx > 2"); - for (int i=0; inb_antennas_rx; i++) { - pdsch->rho[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->N_RB_DL*12*7*2) ); + for (int i = 0; i < fp->nb_antennas_rx; i++) { + pdsch->rho[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * (fp->N_RB_DL * 12 * 7 * 2)); - for (int j=0; j<4; j++) { //fp->nb_antennas_tx; j++) - const int idx = (j<<1)+i; - const size_t num = 7*2*fp->N_RB_DL*12; - pdsch->rxdataF_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - pdsch->rxdataF_uespec_pilots[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * fp->N_RB_DL*12); - pdsch->rxdataF_comp0[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - pdsch->dl_ch_estimates_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - pdsch->dl_bf_ch_estimates[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * fp->ofdm_symbol_size*7*2); - pdsch->dl_bf_ch_estimates_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); + for (int j = 0; j < 4; j++) { //fp->nb_antennas_tx; j++) + const int idx = (j << 1) + i; + const size_t num = 7 * 2 * fp->N_RB_DL * 12; + pdsch->rxdataF_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + pdsch->rxdataF_uespec_pilots[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->N_RB_DL * 12); + pdsch->rxdataF_comp0[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + pdsch->dl_ch_estimates_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + pdsch->dl_bf_ch_estimates[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->ofdm_symbol_size * 7 * 2); + pdsch->dl_bf_ch_estimates_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); //pdsch->dl_ch_rho_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); //pdsch->dl_ch_rho2_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - pdsch->dl_ch_mag0[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - pdsch->dl_ch_magb0[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); + pdsch->dl_ch_mag0[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + pdsch->dl_ch_magb0[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); } } } -int init_lte_ue_signal(PHY_VARS_UE *ue, - int nb_connected_eNB, - uint8_t abstraction_flag) +int +init_lte_ue_signal (PHY_VARS_UE * ue, int nb_connected_eNB, uint8_t abstraction_flag) { // create shortcuts - LTE_DL_FRAME_PARMS* const fp = &ue->frame_parms; - LTE_UE_COMMON* const common_vars = &ue->common_vars; - LTE_UE_PDSCH** const pdsch_vars_SI = ue->pdsch_vars_SI; - LTE_UE_PDSCH** const pdsch_vars_ra = ue->pdsch_vars_ra; - LTE_UE_PDSCH** const pdsch_vars_p = ue->pdsch_vars_p; - LTE_UE_PDSCH** const pdsch_vars_mch = ue->pdsch_vars_MCH; - LTE_UE_PDSCH* (*pdsch_vars_th)[][NUMBER_OF_CONNECTED_eNB_MAX+1] = &ue->pdsch_vars; - LTE_UE_PDCCH* (*pdcch_vars_th)[][NUMBER_OF_CONNECTED_eNB_MAX] = &ue->pdcch_vars; - LTE_UE_PBCH** const pbch_vars = ue->pbch_vars; - LTE_UE_PRACH** const prach_vars = ue->prach_vars; + LTE_DL_FRAME_PARMS *const fp = &ue->frame_parms; + LTE_UE_COMMON *const common_vars = &ue->common_vars; + LTE_UE_PDSCH **const pdsch_vars_SI = ue->pdsch_vars_SI; + LTE_UE_PDSCH **const pdsch_vars_ra = ue->pdsch_vars_ra; + LTE_UE_PDSCH **const pdsch_vars_p = ue->pdsch_vars_p; + LTE_UE_PDSCH **const pdsch_vars_mch = ue->pdsch_vars_MCH; + LTE_UE_PDSCH *(*pdsch_vars_th)[][NUMBER_OF_CONNECTED_eNB_MAX + 1] = &ue->pdsch_vars; + LTE_UE_PDCCH *(*pdcch_vars_th)[][NUMBER_OF_CONNECTED_eNB_MAX] = &ue->pdcch_vars; + LTE_UE_PBCH **const pbch_vars = ue->pbch_vars; + LTE_UE_PRACH **const prach_vars = ue->prach_vars; - int i,j,k,l; - int eNB_id; - int th_id; + int i, j, k, l; + int eNB_id; + int th_id; - LOG_D(PHY,"Initializing UE vars (abstraction %"PRIu8") for eNB TXant %"PRIu8", UE RXant %"PRIu8"\n",abstraction_flag,fp->nb_antennas_tx,fp->nb_antennas_rx); - LOG_D(PHY,"[MSC_NEW][FRAME 00000][PHY_UE][MOD %02u][]\n", ue->Mod_id+NB_eNB_INST); + LOG_D (PHY, "Initializing UE vars (abstraction %" PRIu8 ") for eNB TXant %" PRIu8 ", UE RXant %" PRIu8 "\n", abstraction_flag, fp->nb_antennas_tx, fp->nb_antennas_rx); + LOG_D (PHY, "[MSC_NEW][FRAME 00000][PHY_UE][MOD %02u][]\n", ue->Mod_id + NB_eNB_INST); - init_frame_parms(&ue->frame_parms,1); - init_lte_top(&ue->frame_parms); - init_ul_hopping(&ue->frame_parms); + init_frame_parms (&ue->frame_parms, 1); + init_lte_top (&ue->frame_parms); + init_ul_hopping (&ue->frame_parms); // many memory allocation sizes are hard coded - AssertFatal( fp->nb_antennas_rx <= 2, "hard coded allocation for ue_common_vars->dl_ch_estimates[eNB_id]" ); - AssertFatal( ue->n_connected_eNB <= NUMBER_OF_CONNECTED_eNB_MAX, "n_connected_eNB is too large" ); + AssertFatal (fp->nb_antennas_rx <= 2, "hard coded allocation for ue_common_vars->dl_ch_estimates[eNB_id]"); + AssertFatal (ue->n_connected_eNB <= NUMBER_OF_CONNECTED_eNB_MAX, "n_connected_eNB is too large"); // init phy_vars_ue - for (i=0; i<4; i++) { + for (i = 0; i < 4; i++) { ue->rx_gain_max[i] = 135; ue->rx_gain_med[i] = 128; ue->rx_gain_byp[i] = 120; @@ -1382,555 +1353,552 @@ int init_lte_ue_signal(PHY_VARS_UE *ue, ue->n_connected_eNB = nb_connected_eNB; - for(eNB_id = 0; eNB_id < ue->n_connected_eNB; eNB_id++) { + for (eNB_id = 0; eNB_id < ue->n_connected_eNB; eNB_id++) { ue->total_TBS[eNB_id] = 0; ue->total_TBS_last[eNB_id] = 0; ue->bitrate[eNB_id] = 0; ue->total_received_bits[eNB_id] = 0; } - for (i=0;i<10;i++) - ue->tx_power_dBm[i]=-127; + for (i = 0; i < 10; i++) + ue->tx_power_dBm[i] = -127; // init TX buffers - - common_vars->txdata = (int32_t**)malloc16( fp->nb_antennas_tx*sizeof(int32_t*) ); - common_vars->txdataF = (int32_t **)malloc16( fp->nb_antennas_tx*sizeof(int32_t*) ); - - for (i=0; inb_antennas_tx; i++) { - - common_vars->txdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) ); - common_vars->txdataF[i] = (int32_t *)malloc16_clear( fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t) ); + + common_vars->txdata = (int32_t **) malloc16 (fp->nb_antennas_tx * sizeof (int32_t *)); + common_vars->txdataF = (int32_t **) malloc16 (fp->nb_antennas_tx * sizeof (int32_t *)); + + for (i = 0; i < fp->nb_antennas_tx; i++) { + + common_vars->txdata[i] = (int32_t *) malloc16_clear (fp->samples_per_tti * 10 * sizeof (int32_t)); + common_vars->txdataF[i] = (int32_t *) malloc16_clear (fp->ofdm_symbol_size * fp->symbols_per_tti * 10 * sizeof (int32_t)); } - + // init RX buffers - - common_vars->rxdata = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); - common_vars->common_vars_rx_data_per_thread[0].rxdataF = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); - common_vars->common_vars_rx_data_per_thread[1].rxdataF = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); - - for (i=0; inb_antennas_rx; i++) { - common_vars->rxdata[i] = (int32_t*) malloc16_clear( (fp->samples_per_tti*10+2048)*sizeof(int32_t) ); - common_vars->common_vars_rx_data_per_thread[0].rxdataF[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->ofdm_symbol_size*14) ); - common_vars->common_vars_rx_data_per_thread[1].rxdataF[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->ofdm_symbol_size*14) ); + + common_vars->rxdata = (int32_t **) malloc16 (fp->nb_antennas_rx * sizeof (int32_t *)); + common_vars->common_vars_rx_data_per_thread[0].rxdataF = (int32_t **) malloc16 (fp->nb_antennas_rx * sizeof (int32_t *)); + common_vars->common_vars_rx_data_per_thread[1].rxdataF = (int32_t **) malloc16 (fp->nb_antennas_rx * sizeof (int32_t *)); + + for (i = 0; i < fp->nb_antennas_rx; i++) { + common_vars->rxdata[i] = (int32_t *) malloc16_clear ((fp->samples_per_tti * 10 + 2048) * sizeof (int32_t)); + common_vars->common_vars_rx_data_per_thread[0].rxdataF[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * (fp->ofdm_symbol_size * 14)); + common_vars->common_vars_rx_data_per_thread[1].rxdataF[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * (fp->ofdm_symbol_size * 14)); } // Channel estimates - for (eNB_id=0; eNB_id<7; eNB_id++) { - for (th_id=0; th_idcommon_vars_rx_data_per_thread[th_id].dl_ch_estimates[eNB_id] = (int32_t**)malloc16_clear(8*sizeof(int32_t*)); - common_vars->common_vars_rx_data_per_thread[th_id].dl_ch_estimates_time[eNB_id] = (int32_t**)malloc16_clear(8*sizeof(int32_t*)); + for (eNB_id = 0; eNB_id < 7; eNB_id++) { + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + common_vars->common_vars_rx_data_per_thread[th_id].dl_ch_estimates[eNB_id] = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + common_vars->common_vars_rx_data_per_thread[th_id].dl_ch_estimates_time[eNB_id] = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); } - for (i=0; inb_antennas_rx; i++) - for (j=0; j<4; j++) { - int idx = (j<<1) + i; - for (th_id=0; th_idcommon_vars_rx_data_per_thread[th_id].dl_ch_estimates[eNB_id][idx] = (int32_t*)malloc16_clear( sizeof(int32_t)*fp->symbols_per_tti*(fp->ofdm_symbol_size+LTE_CE_FILTER_LENGTH) ); - common_vars->common_vars_rx_data_per_thread[th_id].dl_ch_estimates_time[eNB_id][idx] = (int32_t*)malloc16_clear( sizeof(int32_t)*fp->ofdm_symbol_size*2 ); + for (i = 0; i < fp->nb_antennas_rx; i++) + for (j = 0; j < 4; j++) { + int idx = (j << 1) + i; + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + common_vars->common_vars_rx_data_per_thread[th_id].dl_ch_estimates[eNB_id][idx] = + (int32_t *) malloc16_clear (sizeof (int32_t) * fp->symbols_per_tti * (fp->ofdm_symbol_size + LTE_CE_FILTER_LENGTH)); + common_vars->common_vars_rx_data_per_thread[th_id].dl_ch_estimates_time[eNB_id][idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->ofdm_symbol_size * 2); } } } // DLSCH - for (eNB_id=0; eNB_idn_connected_eNB; eNB_id++) { - for (th_id=0; th_idn_connected_eNB; eNB_id++) { + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id] = (LTE_UE_PDSCH *) malloc16_clear (sizeof (LTE_UE_PDSCH)); } - for (th_id=0; th_idllr_shifts = (uint8_t*)malloc16_clear(7*2*fp->N_RB_DL*12); - (*pdsch_vars_th)[th_id][eNB_id]->llr_shifts_p = (*pdsch_vars_th)[0][eNB_id]->llr_shifts; - (*pdsch_vars_th)[th_id][eNB_id]->llr[1] = (int16_t*)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); - (*pdsch_vars_th)[th_id][eNB_id]->llr128_2ndstream = (int16_t**)malloc16_clear( sizeof(int16_t*) ); - (*pdsch_vars_th)[th_id][eNB_id]->rho = (int32_t**)malloc16_clear( fp->nb_antennas_rx*sizeof(int32_t*) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id]->llr_shifts = (uint8_t *) malloc16_clear (7 * 2 * fp->N_RB_DL * 12); + (*pdsch_vars_th)[th_id][eNB_id]->llr_shifts_p = (*pdsch_vars_th)[0][eNB_id]->llr_shifts; + (*pdsch_vars_th)[th_id][eNB_id]->llr[1] = (int16_t *) malloc16_clear ((8 * ((3 * 8 * 6144) + 12)) * sizeof (int16_t)); + (*pdsch_vars_th)[th_id][eNB_id]->llr128_2ndstream = (int16_t **) malloc16_clear (sizeof (int16_t *)); + (*pdsch_vars_th)[th_id][eNB_id]->rho = (int32_t **) malloc16_clear (fp->nb_antennas_rx * sizeof (int32_t *)); } - - for (int i=0; inb_antennas_rx; i++){ - for (th_id=0; th_idrho[i] = (int32_t*)malloc16_clear( 7*2*sizeof(int32_t)*(fp->N_RB_DL*12) ); + + for (int i = 0; i < fp->nb_antennas_rx; i++) { + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id]->rho[i] = (int32_t *) malloc16_clear (7 * 2 * sizeof (int32_t) * (fp->N_RB_DL * 12)); } - + } - for (th_id=0; th_iddl_ch_rho2_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_rho2_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); } - - for (i=0; inb_antennas_rx; i++) - for (j=0; j<4; j++) { - const int idx = (j<<1)+i; - const size_t num = 7*2*fp->N_RB_DL*12+4; - for (th_id=0; th_iddl_ch_rho2_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - } - + + for (i = 0; i < fp->nb_antennas_rx; i++) + for (j = 0; j < 4; j++) { + const int idx = (j << 1) + i; + const size_t num = 7 * 2 * fp->N_RB_DL * 12 + 4; + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_rho2_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + } + } - + //const size_t num = 7*2*fp->N_RB_DL*12+4; - for (k=0;k<8;k++) { //harq_pid - for (l=0;l<8;l++) { //round - for (th_id=0; th_idrxdataF_comp1[k][l] = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[k][l] = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_mag1[k][l] = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_magb1[k][l] = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - } - - - for (int i=0; inb_antennas_rx; i++) - for (int j=0; j<4; j++) { //frame_parms->nb_antennas_tx; j++) - const int idx = (j<<1)+i; - for (th_id=0; th_iddl_ch_rho_ext[k][l][idx] = (int32_t*)malloc16_clear( 7*2*sizeof(int32_t)*(fp->N_RB_DL*12) ); - (*pdsch_vars_th)[th_id][eNB_id]->rxdataF_comp1[k][l][idx] = (int32_t*)malloc16_clear( 7*2*sizeof(int32_t)*(fp->N_RB_DL*12) ); - (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_mag1[k][l][idx] = (int32_t*)malloc16_clear( 7*2*sizeof(int32_t)*(fp->N_RB_DL*12) ); - (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_magb1[k][l][idx] = (int32_t*)malloc16_clear( 7*2*sizeof(int32_t)*(fp->N_RB_DL*12) ); - } - - } + for (k = 0; k < 8; k++) { //harq_pid + for (l = 0; l < 8; l++) { //round + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id]->rxdataF_comp1[k][l] = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[k][l] = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_mag1[k][l] = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_magb1[k][l] = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + } + + + for (int i = 0; i < fp->nb_antennas_rx; i++) + for (int j = 0; j < 4; j++) { //frame_parms->nb_antennas_tx; j++) + const int idx = (j << 1) + i; + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[k][l][idx] = (int32_t *) malloc16_clear (7 * 2 * sizeof (int32_t) * (fp->N_RB_DL * 12)); + (*pdsch_vars_th)[th_id][eNB_id]->rxdataF_comp1[k][l][idx] = (int32_t *) malloc16_clear (7 * 2 * sizeof (int32_t) * (fp->N_RB_DL * 12)); + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_mag1[k][l][idx] = (int32_t *) malloc16_clear (7 * 2 * sizeof (int32_t) * (fp->N_RB_DL * 12)); + (*pdsch_vars_th)[th_id][eNB_id]->dl_ch_magb1[k][l][idx] = (int32_t *) malloc16_clear (7 * 2 * sizeof (int32_t) * (fp->N_RB_DL * 12)); + } + + } } } - phy_init_lte_ue__PDSCH( pdsch_vars_SI[eNB_id], fp ); - phy_init_lte_ue__PDSCH( pdsch_vars_ra[eNB_id], fp ); - phy_init_lte_ue__PDSCH( pdsch_vars_p[eNB_id], fp ); - phy_init_lte_ue__PDSCH( pdsch_vars_mch[eNB_id], fp ); - + phy_init_lte_ue__PDSCH (pdsch_vars_SI[eNB_id], fp); + phy_init_lte_ue__PDSCH (pdsch_vars_ra[eNB_id], fp); + phy_init_lte_ue__PDSCH (pdsch_vars_p[eNB_id], fp); + phy_init_lte_ue__PDSCH (pdsch_vars_mch[eNB_id], fp); + // 100 PRBs * 12 REs/PRB * 4 PDCCH SYMBOLS * 2 LLRs/RE - for (th_id=0; th_idllr = (uint16_t*)malloc16_clear( 2*4*100*12*sizeof(uint16_t) ); - (*pdcch_vars_th)[th_id][eNB_id]->llr16 = (uint16_t*)malloc16_clear( 2*4*100*12*sizeof(uint16_t) ); - (*pdcch_vars_th)[th_id][eNB_id]->wbar = (uint16_t*)malloc16_clear( 2*4*100*12*sizeof(uint16_t) ); - (*pdcch_vars_th)[th_id][eNB_id]->e_rx = (int8_t*)malloc16_clear( 4*2*100*12 ); - - (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_comp = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->rho = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdcch_vars_th)[th_id][eNB_id]->llr = (uint16_t *) malloc16_clear (2 * 4 * 100 * 12 * sizeof (uint16_t)); + (*pdcch_vars_th)[th_id][eNB_id]->llr16 = (uint16_t *) malloc16_clear (2 * 4 * 100 * 12 * sizeof (uint16_t)); + (*pdcch_vars_th)[th_id][eNB_id]->wbar = (uint16_t *) malloc16_clear (2 * 4 * 100 * 12 * sizeof (uint16_t)); + (*pdcch_vars_th)[th_id][eNB_id]->e_rx = (int8_t *) malloc16_clear (4 * 2 * 100 * 12); + + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_comp = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->rho = (int32_t **) malloc16 (fp->nb_antennas_rx * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); } - - for (i=0; inb_antennas_rx; i++) { + + for (i = 0; i < fp->nb_antennas_rx; i++) { //ue_pdcch_vars[eNB_id]->rho[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->N_RB_DL*12*7*2) ); - for (th_id=0; th_idrho[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(100*12*4) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdcch_vars_th)[th_id][eNB_id]->rho[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * (100 * 12 * 4)); } - - for (j=0; j<4; j++) { //fp->nb_antennas_tx; j++) - int idx = (j<<1)+i; - // size_t num = 7*2*fp->N_RB_DL*12; - size_t num = 4*100*12; // 4 symbols, 100 PRBs, 12 REs per PRB - for (th_id=0; th_idrxdataF_comp[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - } + + for (j = 0; j < 4; j++) { //fp->nb_antennas_tx; j++) + int idx = (j << 1) + i; + // size_t num = 7*2*fp->N_RB_DL*12; + size_t num = 4 * 100 * 12; // 4 symbols, 100 PRBs, 12 REs per PRB + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_comp[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + } } } - phy_init_lte_ue__PDSCH( pdsch_vars_SI[eNB_id], fp ); - phy_init_lte_ue__PDSCH( pdsch_vars_ra[eNB_id], fp ); - phy_init_lte_ue__PDSCH( pdsch_vars_p[eNB_id], fp ); - phy_init_lte_ue__PDSCH( pdsch_vars_mch[eNB_id], fp ); - + phy_init_lte_ue__PDSCH (pdsch_vars_SI[eNB_id], fp); + phy_init_lte_ue__PDSCH (pdsch_vars_ra[eNB_id], fp); + phy_init_lte_ue__PDSCH (pdsch_vars_p[eNB_id], fp); + phy_init_lte_ue__PDSCH (pdsch_vars_mch[eNB_id], fp); + // 100 PRBs * 12 REs/PRB * 4 PDCCH SYMBOLS * 2 LLRs/RE - for (th_id=0; th_idllr = (uint16_t*)malloc16_clear( 2*4*100*12*sizeof(uint16_t) ); - (*pdcch_vars_th)[th_id][eNB_id]->llr16 = (uint16_t*)malloc16_clear( 2*4*100*12*sizeof(uint16_t) ); - (*pdcch_vars_th)[th_id][eNB_id]->wbar = (uint16_t*)malloc16_clear( 2*4*100*12*sizeof(uint16_t) ); - (*pdcch_vars_th)[th_id][eNB_id]->e_rx = (int8_t*)malloc16_clear( 4*2*100*12 ); - - (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_comp = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->rho = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdcch_vars_th)[th_id][eNB_id]->llr = (uint16_t *) malloc16_clear (2 * 4 * 100 * 12 * sizeof (uint16_t)); + (*pdcch_vars_th)[th_id][eNB_id]->llr16 = (uint16_t *) malloc16_clear (2 * 4 * 100 * 12 * sizeof (uint16_t)); + (*pdcch_vars_th)[th_id][eNB_id]->wbar = (uint16_t *) malloc16_clear (2 * 4 * 100 * 12 * sizeof (uint16_t)); + (*pdcch_vars_th)[th_id][eNB_id]->e_rx = (int8_t *) malloc16_clear (4 * 2 * 100 * 12); + + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_comp = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->rho = (int32_t **) malloc16 (fp->nb_antennas_rx * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); } - - for (i=0; inb_antennas_rx; i++) { + + for (i = 0; i < fp->nb_antennas_rx; i++) { //ue_pdcch_vars[eNB_id]->rho[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(fp->N_RB_DL*12*7*2) ); - for (th_id=0; th_idrho[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*(100*12*4) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdcch_vars_th)[th_id][eNB_id]->rho[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * (100 * 12 * 4)); } - - for (j=0; j<4; j++) { //fp->nb_antennas_tx; j++) - int idx = (j<<1)+i; - // size_t num = 7*2*fp->N_RB_DL*12; - size_t num = 4*100*12; // 4 symbols, 100 PRBs, 12 REs per PRB - for (th_id=0; th_idrxdataF_comp[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t) * num ); - } + + for (j = 0; j < 4; j++) { //fp->nb_antennas_tx; j++) + int idx = (j << 1) + i; + // size_t num = 7*2*fp->N_RB_DL*12; + size_t num = 4 * 100 * 12; // 4 symbols, 100 PRBs, 12 REs per PRB + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_comp[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_rho_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + (*pdcch_vars_th)[th_id][eNB_id]->rxdataF_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + (*pdcch_vars_th)[th_id][eNB_id]->dl_ch_estimates_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * num); + } } } - + // PBCH - pbch_vars[eNB_id]->rxdataF_ext = (int32_t**)malloc16( fp->nb_antennas_rx*sizeof(int32_t*) ); - pbch_vars[eNB_id]->rxdataF_comp = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pbch_vars[eNB_id]->dl_ch_estimates_ext = (int32_t**)malloc16_clear( 8*sizeof(int32_t*) ); - pbch_vars[eNB_id]->llr = (int8_t*)malloc16_clear( 1920 ); - prach_vars[eNB_id]->prachF = (int16_t*)malloc16_clear( sizeof(int)*(7*2*sizeof(int)*(fp->ofdm_symbol_size*12)) ); - prach_vars[eNB_id]->prach = (int16_t*)malloc16_clear( sizeof(int)*(7*2*sizeof(int)*(fp->ofdm_symbol_size*12)) ); - - for (i=0; inb_antennas_rx; i++) { - pbch_vars[eNB_id]->rxdataF_ext[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*6*12*4 ); - - for (j=0; j<4; j++) {//fp->nb_antennas_tx;j++) { - int idx = (j<<1)+i; - pbch_vars[eNB_id]->rxdataF_comp[idx] = (int32_t*)malloc16_clear( sizeof(int32_t)*6*12*4 ); - pbch_vars[eNB_id]->dl_ch_estimates_ext[idx] = (int32_t*)malloc16_clear( sizeof(int32_t)*6*12*4 ); + pbch_vars[eNB_id]->rxdataF_ext = (int32_t **) malloc16 (fp->nb_antennas_rx * sizeof (int32_t *)); + pbch_vars[eNB_id]->rxdataF_comp = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pbch_vars[eNB_id]->dl_ch_estimates_ext = (int32_t **) malloc16_clear (8 * sizeof (int32_t *)); + pbch_vars[eNB_id]->llr = (int8_t *) malloc16_clear (1920); + prach_vars[eNB_id]->prachF = (int16_t *) malloc16_clear (sizeof (int) * (7 * 2 * sizeof (int) * (fp->ofdm_symbol_size * 12))); + prach_vars[eNB_id]->prach = (int16_t *) malloc16_clear (sizeof (int) * (7 * 2 * sizeof (int) * (fp->ofdm_symbol_size * 12))); + + for (i = 0; i < fp->nb_antennas_rx; i++) { + pbch_vars[eNB_id]->rxdataF_ext[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * 6 * 12 * 4); + + for (j = 0; j < 4; j++) { //fp->nb_antennas_tx;j++) { + int idx = (j << 1) + i; + pbch_vars[eNB_id]->rxdataF_comp[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * 6 * 12 * 4); + pbch_vars[eNB_id]->dl_ch_estimates_ext[idx] = (int32_t *) malloc16_clear (sizeof (int32_t) * 6 * 12 * 4); } } - - - pbch_vars[eNB_id]->decoded_output = (uint8_t*)malloc16_clear( 64 ); + + + pbch_vars[eNB_id]->decoded_output = (uint8_t *) malloc16_clear (64); } // initialization for the last instance of pdsch_vars (used for MU-MIMO) - for (th_id=0; th_idllr[1] = (int16_t*)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); + for (th_id = 0; th_id < RX_NB_TH_MAX; th_id++) { + phy_init_lte_ue__PDSCH ((*pdsch_vars_th)[th_id][eNB_id], fp); + (*pdsch_vars_th)[th_id][eNB_id]->llr[1] = (int16_t *) malloc16_clear ((8 * ((3 * 8 * 6144) + 12)) * sizeof (int16_t)); } - ue->sinr_CQI_dB = (double*) malloc16_clear( fp->N_RB_DL*12*sizeof(double) ); + ue->sinr_CQI_dB = (double *) malloc16_clear (fp->N_RB_DL * 12 * sizeof (double)); ue->init_averaging = 1; // default value until overwritten by RRCConnectionReconfiguration - if (fp->nb_antenna_ports_eNB==2) + if (fp->nb_antenna_ports_eNB == 2) ue->pdsch_config_dedicated->p_a = dBm3; else ue->pdsch_config_dedicated->p_a = dB0; // set channel estimation to do linear interpolation in time ue->high_speed_flag = 1; - ue->ch_est_alpha = 24576; + ue->ch_est_alpha = 24576; // enable MIB/SIB decoding by default ue->decode_MIB = 1; ue->decode_SIB = 1; - init_prach_tables(839); + init_prach_tables (839); return 0; } -void init_lte_ue_transport(PHY_VARS_UE *ue,int abstraction_flag) { +void +init_lte_ue_transport (PHY_VARS_UE * ue, int abstraction_flag) +{ - int i,j,k; + int i, j, k; - for (i=0; idlsch[k][i][j] = new_ue_dlsch(1,NUMBER_OF_HARQ_PID_MAX,NSOFT,MAX_TURBO_ITERATIONS,ue->frame_parms.N_RB_DL, abstraction_flag))!=NULL,"Can't get ue dlsch structures\n"); + for (i = 0; i < NUMBER_OF_CONNECTED_eNB_MAX; i++) { + for (j = 0; j < 2; j++) { + for (k = 0; k < 2; k++) { + AssertFatal ((ue->dlsch[k][i][j] = + new_ue_dlsch (1, NUMBER_OF_HARQ_PID_MAX, NSOFT, MAX_TURBO_ITERATIONS, ue->frame_parms.N_RB_DL, abstraction_flag)) != NULL, "Can't get ue dlsch structures\n"); - LOG_D(PHY,"dlsch[%d][%d][%d] => %p\n",k,i,j,ue->dlsch[i][j]); + LOG_D (PHY, "dlsch[%d][%d][%d] => %p\n", k, i, j, ue->dlsch[i][j]); } } - AssertFatal((ue->ulsch[i] = new_ue_ulsch(ue->frame_parms.N_RB_UL, abstraction_flag))!=NULL,"Can't get ue ulsch structures\n"); + AssertFatal ((ue->ulsch[i] = new_ue_ulsch (ue->frame_parms.N_RB_UL, abstraction_flag)) != NULL, "Can't get ue ulsch structures\n"); - ue->dlsch_SI[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,ue->frame_parms.N_RB_DL, abstraction_flag); - ue->dlsch_ra[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,ue->frame_parms.N_RB_DL, abstraction_flag); + ue->dlsch_SI[i] = new_ue_dlsch (1, 1, NSOFT, MAX_TURBO_ITERATIONS, ue->frame_parms.N_RB_DL, abstraction_flag); + ue->dlsch_ra[i] = new_ue_dlsch (1, 1, NSOFT, MAX_TURBO_ITERATIONS, ue->frame_parms.N_RB_DL, abstraction_flag); - ue->transmission_mode[i] = ue->frame_parms.nb_antenna_ports_eNB==1 ? 1 : 2; + ue->transmission_mode[i] = ue->frame_parms.nb_antenna_ports_eNB == 1 ? 1 : 2; } ue->frame_parms.pucch_config_common.deltaPUCCH_Shift = 1; - ue->dlsch_MCH[0] = new_ue_dlsch(1,NUMBER_OF_HARQ_PID_MAX,NSOFT,MAX_TURBO_ITERATIONS_MBSFN,ue->frame_parms.N_RB_DL,0); + ue->dlsch_MCH[0] = new_ue_dlsch (1, NUMBER_OF_HARQ_PID_MAX, NSOFT, MAX_TURBO_ITERATIONS_MBSFN, ue->frame_parms.N_RB_DL, 0); } -int phy_init_RU(RU_t *ru) { +int +phy_init_RU (RU_t * ru) +{ LTE_DL_FRAME_PARMS *fp = &ru->frame_parms; - int i,j; - int p; - int re; + int i, j; + int p; + int re; - LOG_I(PHY,"Initializing RU signal buffers (if_south %s) nb_tx %d\n",ru_if_types[ru->if_south],ru->nb_tx); + LOG_I (PHY, "Initializing RU signal buffers (if_south %s) nb_tx %d\n", ru_if_types[ru->if_south], ru->nb_tx); - if (ru->if_south <= REMOTE_IF5) { // this means REMOTE_IF5 or LOCAL_RF, so allocate memory for time-domain signals + if (ru->if_south <= REMOTE_IF5) { // this means REMOTE_IF5 or LOCAL_RF, so allocate memory for time-domain signals // Time-domain signals - ru->common.txdata = (int32_t**)malloc16(ru->nb_tx*sizeof(int32_t*)); - ru->common.rxdata = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) ); + ru->common.txdata = (int32_t **) malloc16 (ru->nb_tx * sizeof (int32_t *)); + ru->common.rxdata = (int32_t **) malloc16 (ru->nb_rx * sizeof (int32_t *)); - for (i=0; inb_tx; i++) { + for (i = 0; i < ru->nb_tx; i++) { // Allocate 10 subframes of I/Q TX signal data (time) if not - ru->common.txdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) ); + ru->common.txdata[i] = (int32_t *) malloc16_clear (fp->samples_per_tti * 10 * sizeof (int32_t)); - LOG_I(PHY,"[INIT] common.txdata[%d] = %p (%lu bytes)\n",i,ru->common.txdata[i], - fp->samples_per_tti*10*sizeof(int32_t)); + LOG_I (PHY, "[INIT] common.txdata[%d] = %p (%lu bytes)\n", i, ru->common.txdata[i], fp->samples_per_tti * 10 * sizeof (int32_t)); } - for (i=0;inb_rx;i++) { - ru->common.rxdata[i] = (int32_t*)malloc16_clear( fp->samples_per_tti*10*sizeof(int32_t) ); + for (i = 0; i < ru->nb_rx; i++) { + ru->common.rxdata[i] = (int32_t *) malloc16_clear (fp->samples_per_tti * 10 * sizeof (int32_t)); } - } // IF5 or local RF + } // IF5 or local RF else { - LOG_I(PHY,"No rxdata/txdata for RU\n"); - ru->common.txdata = (int32_t**)NULL; - ru->common.rxdata = (int32_t**)NULL; + LOG_I (PHY, "No rxdata/txdata for RU\n"); + ru->common.txdata = (int32_t **) NULL; + ru->common.rxdata = (int32_t **) NULL; } - if (ru->function != NGFI_RRU_IF5) { // we need to do RX/TX RU processing - LOG_I(PHY,"nb_tx %d\n",ru->nb_tx); - ru->common.rxdata_7_5kHz = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) ); - for (i=0;inb_rx;i++) { - ru->common.rxdata_7_5kHz[i] = (int32_t*)malloc16_clear( 2*fp->samples_per_tti*2*sizeof(int32_t) ); - LOG_I(PHY,"rxdata_7_5kHz[%d] %p for RU %d\n",i,ru->common.rxdata_7_5kHz[i],ru->idx); + if (ru->function != NGFI_RRU_IF5) { // we need to do RX/TX RU processing + LOG_I (PHY, "nb_tx %d\n", ru->nb_tx); + ru->common.rxdata_7_5kHz = (int32_t **) malloc16 (ru->nb_rx * sizeof (int32_t *)); + for (i = 0; i < ru->nb_rx; i++) { + ru->common.rxdata_7_5kHz[i] = (int32_t *) malloc16_clear (2 * fp->samples_per_tti * 2 * sizeof (int32_t)); + LOG_I (PHY, "rxdata_7_5kHz[%d] %p for RU %d\n", i, ru->common.rxdata_7_5kHz[i], ru->idx); } - + // allocate IFFT input buffers (TX) - ru->common.txdataF_BF = (int32_t **)malloc16(ru->nb_tx*sizeof(int32_t*)); - LOG_I(PHY,"[INIT] common.txdata_BF= %p (%lu bytes)\n",ru->common.txdataF_BF, - ru->nb_tx*sizeof(int32_t*)); - for (i=0; inb_tx; i++) { - ru->common.txdataF_BF[i] = (int32_t*)malloc16_clear(fp->symbols_per_tti*fp->ofdm_symbol_size*sizeof(int32_t) ); - LOG_I(PHY,"txdataF_BF[%d] %p for RU %d\n",i,ru->common.txdataF_BF[i],ru->idx); + ru->common.txdataF_BF = (int32_t **) malloc16 (ru->nb_tx * sizeof (int32_t *)); + LOG_I (PHY, "[INIT] common.txdata_BF= %p (%lu bytes)\n", ru->common.txdataF_BF, ru->nb_tx * sizeof (int32_t *)); + for (i = 0; i < ru->nb_tx; i++) { + ru->common.txdataF_BF[i] = (int32_t *) malloc16_clear (fp->symbols_per_tti * fp->ofdm_symbol_size * sizeof (int32_t)); + LOG_I (PHY, "txdataF_BF[%d] %p for RU %d\n", i, ru->common.txdataF_BF[i], ru->idx); } // allocate FFT output buffers (RX) - ru->common.rxdataF = (int32_t**)malloc16(ru->nb_rx*sizeof(int32_t*) ); - for (i=0; inb_rx; i++) { + ru->common.rxdataF = (int32_t **) malloc16 (ru->nb_rx * sizeof (int32_t *)); + for (i = 0; i < ru->nb_rx; i++) { // allocate 2 subframes of I/Q signal data (frequency) - ru->common.rxdataF[i] = (int32_t*)malloc16_clear(sizeof(int32_t)*(2*fp->ofdm_symbol_size*fp->symbols_per_tti) ); - LOG_I(PHY,"rxdataF[%d] %p for RU %d\n",i,ru->common.rxdataF[i],ru->idx); + ru->common.rxdataF[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * (2 * fp->ofdm_symbol_size * fp->symbols_per_tti)); + LOG_I (PHY, "rxdataF[%d] %p for RU %d\n", i, ru->common.rxdataF[i], ru->idx); } /* number of elements of an array X is computed as sizeof(X) / sizeof(X[0]) */ - AssertFatal(ru->nb_rx <= sizeof(ru->prach_rxsigF) / sizeof(ru->prach_rxsigF[0]), - "nb_antennas_rx too large"); - ru->prach_rxsigF = (int16_t**)malloc(ru->nb_rx * sizeof(int16_t*)); - for (j=0;j<4;j++) ru->prach_rxsigF_br[j] = (int16_t**)malloc(ru->nb_rx * sizeof(int16_t*)); + AssertFatal (ru->nb_rx <= sizeof (ru->prach_rxsigF) / sizeof (ru->prach_rxsigF[0]), "nb_antennas_rx too large"); + ru->prach_rxsigF = (int16_t **) malloc (ru->nb_rx * sizeof (int16_t *)); + for (j = 0; j < 4; j++) + ru->prach_rxsigF_br[j] = (int16_t **) malloc (ru->nb_rx * sizeof (int16_t *)); - for (i=0; inb_rx; i++) { - ru->prach_rxsigF[i] = (int16_t*)malloc16_clear( fp->ofdm_symbol_size*12*2*sizeof(int16_t) ); - LOG_D(PHY,"[INIT] prach_vars->rxsigF[%d] = %p\n",i,ru->prach_rxsigF[i]); + for (i = 0; i < ru->nb_rx; i++) { + ru->prach_rxsigF[i] = (int16_t *) malloc16_clear (fp->ofdm_symbol_size * 12 * 2 * sizeof (int16_t)); + LOG_D (PHY, "[INIT] prach_vars->rxsigF[%d] = %p\n", i, ru->prach_rxsigF[i]); #ifdef Rel14 - for (j=0;j<4;j++) { - ru->prach_rxsigF_br[j][i] = (int16_t*)malloc16_clear( fp->ofdm_symbol_size*12*2*sizeof(int16_t) ); - LOG_D(PHY,"[INIT] prach_vars_br->rxsigF[%d] = %p\n",i,ru->prach_rxsigF_br[j][i]); + for (j = 0; j < 4; j++) { + ru->prach_rxsigF_br[j][i] = (int16_t *) malloc16_clear (fp->ofdm_symbol_size * 12 * 2 * sizeof (int16_t)); + LOG_D (PHY, "[INIT] prach_vars_br->rxsigF[%d] = %p\n", i, ru->prach_rxsigF_br[j][i]); } #endif } - - AssertFatal(RC.nb_L1_inst <= NUMBER_OF_eNB_MAX,"eNB instances %d > %d\n", - RC.nb_L1_inst,NUMBER_OF_eNB_MAX); - for (i=0; ieNB_list[i]->frame_parms.nb_antenna_ports_eNB || p==5) { - ru->beam_weights[i][p] = (int32_t **)malloc16_clear(ru->nb_tx*sizeof(int32_t*)); - for (j=0; jnb_tx; j++) { - ru->beam_weights[i][p][j] = (int32_t *)malloc16_clear(fp->ofdm_symbol_size*sizeof(int32_t)); - // antenna ports 0-3 are mapped on antennas 0-3 - // antenna port 4 is mapped on antenna 0 - // antenna ports 5-14 are mapped on all antennas - if (((p<4) && (p==j)) || ((p==4) && (j==0))) { - for (re=0; reofdm_symbol_size; re++) - ru->beam_weights[i][p][j][re] = 0x00007fff; - } - else if (p>4) { - for (re=0; reofdm_symbol_size; re++) - ru->beam_weights[i][p][j][re] = 0x00007fff/ru->nb_tx; - } - LOG_D(PHY,"[INIT] lte_common_vars->beam_weights[%d][%d] = %p (%lu bytes)\n", - i,j,ru->beam_weights[i][p][j], - fp->ofdm_symbol_size*sizeof(int32_t)); - } - } + AssertFatal (RC.nb_L1_inst <= NUMBER_OF_eNB_MAX, "eNB instances %d > %d\n", RC.nb_L1_inst, NUMBER_OF_eNB_MAX); + + for (i = 0; i < RC.nb_L1_inst; i++) { + for (p = 0; p < 15; p++) { + if (p < ru->eNB_list[i]->frame_parms.nb_antenna_ports_eNB || p == 5) { + ru->beam_weights[i][p] = (int32_t **) malloc16_clear (ru->nb_tx * sizeof (int32_t *)); + for (j = 0; j < ru->nb_tx; j++) { + ru->beam_weights[i][p][j] = (int32_t *) malloc16_clear (fp->ofdm_symbol_size * sizeof (int32_t)); + // antenna ports 0-3 are mapped on antennas 0-3 + // antenna port 4 is mapped on antenna 0 + // antenna ports 5-14 are mapped on all antennas + if (((p < 4) && (p == j)) || ((p == 4) && (j == 0))) { + for (re = 0; re < fp->ofdm_symbol_size; re++) + ru->beam_weights[i][p][j][re] = 0x00007fff; + } else if (p > 4) { + for (re = 0; re < fp->ofdm_symbol_size; re++) + ru->beam_weights[i][p][j][re] = 0x00007fff / ru->nb_tx; + } + LOG_D (PHY, "[INIT] lte_common_vars->beam_weights[%d][%d] = %p (%lu bytes)\n", i, j, ru->beam_weights[i][p][j], fp->ofdm_symbol_size * sizeof (int32_t)); + } + } } } } - ru->common.sync_corr = (uint32_t*)malloc16_clear( LTE_NUMBER_OF_SUBFRAMES_PER_FRAME*sizeof(uint32_t)*fp->samples_per_tti ); + ru->common.sync_corr = (uint32_t *) malloc16_clear (LTE_NUMBER_OF_SUBFRAMES_PER_FRAME * sizeof (uint32_t) * fp->samples_per_tti); - return(0); + return (0); } - -int phy_init_lte_eNB(PHY_VARS_eNB *eNB, - unsigned char is_secondary_eNB, - unsigned char abstraction_flag) + +int +phy_init_lte_eNB (PHY_VARS_eNB * eNB, unsigned char is_secondary_eNB, unsigned char abstraction_flag) { // shortcuts - LTE_DL_FRAME_PARMS* const fp = &eNB->frame_parms; - LTE_eNB_COMMON* const common_vars = &eNB->common_vars; - LTE_eNB_PUSCH** const pusch_vars = eNB->pusch_vars; - LTE_eNB_SRS* const srs_vars = eNB->srs_vars; - LTE_eNB_PRACH* const prach_vars = &eNB->prach_vars; + LTE_DL_FRAME_PARMS *const fp = &eNB->frame_parms; + LTE_eNB_COMMON *const common_vars = &eNB->common_vars; + LTE_eNB_PUSCH **const pusch_vars = eNB->pusch_vars; + LTE_eNB_SRS *const srs_vars = eNB->srs_vars; + LTE_eNB_PRACH *const prach_vars = &eNB->prach_vars; #ifdef Rel14 - LTE_eNB_PRACH* const prach_vars_br = &eNB->prach_vars_br; + LTE_eNB_PRACH *const prach_vars_br = &eNB->prach_vars_br; #endif - int i, UE_id; + int i, UE_id; eNB->total_dlsch_bitrate = 0; eNB->total_transmitted_bits = 0; eNB->total_system_throughput = 0; - eNB->check_for_MUMIMO_transmissions=0; - - while(eNB->configured == 0) usleep(10000); + eNB->check_for_MUMIMO_transmissions = 0; - LOG_I(PHY,"[eNB %"PRIu8"] Initializing DL_FRAME_PARMS : N_RB_DL %"PRIu8", PHICH Resource %d, PHICH Duration %d\n", - eNB->Mod_id, - fp->N_RB_DL,fp->phich_config_common.phich_resource, - fp->phich_config_common.phich_duration); - LOG_D(PHY,"[MSC_NEW][FRAME 00000][PHY_eNB][MOD %02"PRIu8"][]\n", eNB->Mod_id); + while (eNB->configured == 0) + usleep (10000); + + LOG_I (PHY, "[eNB %" PRIu8 "] Initializing DL_FRAME_PARMS : N_RB_DL %" PRIu8 ", PHICH Resource %d, PHICH Duration %d\n", + eNB->Mod_id, fp->N_RB_DL, fp->phich_config_common.phich_resource, fp->phich_config_common.phich_duration); + LOG_D (PHY, "[MSC_NEW][FRAME 00000][PHY_eNB][MOD %02" PRIu8 "][]\n", eNB->Mod_id); - lte_gold(fp,eNB->lte_gold_table,fp->Nid_cell); - generate_pcfich_reg_mapping(fp); - generate_phich_reg_mapping(fp); + lte_gold (fp, eNB->lte_gold_table, fp->Nid_cell); + generate_pcfich_reg_mapping (fp); + generate_phich_reg_mapping (fp); + + for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { + eNB->first_run_timing_advance[UE_id] = 1; ///This flag used to be static. With multiple eNBs this does no longer work, hence we put it in the structure. However it has to be initialized with 1, which is performed here. - for (UE_id=0; UE_idfirst_run_timing_advance[UE_id] = - 1; ///This flag used to be static. With multiple eNBs this does no longer work, hence we put it in the structure. However it has to be initialized with 1, which is performed here. - // clear whole structure - bzero( &eNB->UE_stats[UE_id], sizeof(LTE_eNB_UE_stats) ); - + bzero (&eNB->UE_stats[UE_id], sizeof (LTE_eNB_UE_stats)); + eNB->physicalConfigDedicated[UE_id] = NULL; } - - eNB->first_run_I0_measurements = 1; ///This flag used to be static. With multiple eNBs this does no longer work, hence we put it in the structure. However it has to be initialized with 1, which is performed here. - + + eNB->first_run_I0_measurements = 1; ///This flag used to be static. With multiple eNBs this does no longer work, hence we put it in the structure. However it has to be initialized with 1, which is performed here. - - common_vars->rxdata = (int32_t **)NULL; - common_vars->txdataF = (int32_t **)malloc16(NB_ANTENNA_PORTS_ENB*sizeof(int32_t*)); - common_vars->rxdataF = (int32_t **)malloc16(64*sizeof(int32_t*)); - - for (i=0; inb_antenna_ports_eNB || i==5) { - common_vars->txdataF[i] = (int32_t*)malloc16_clear(fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t) ); - - LOG_D(PHY,"[INIT] common_vars->txdataF[%d] = %p (%lu bytes)\n", - i,common_vars->txdataF[i], - fp->ofdm_symbol_size*fp->symbols_per_tti*10*sizeof(int32_t)); + + + common_vars->rxdata = (int32_t **) NULL; + common_vars->txdataF = (int32_t **) malloc16 (NB_ANTENNA_PORTS_ENB * sizeof (int32_t *)); + common_vars->rxdataF = (int32_t **) malloc16 (64 * sizeof (int32_t *)); + + for (i = 0; i < NB_ANTENNA_PORTS_ENB; i++) { + if (i < fp->nb_antenna_ports_eNB || i == 5) { + common_vars->txdataF[i] = (int32_t *) malloc16_clear (fp->ofdm_symbol_size * fp->symbols_per_tti * 10 * sizeof (int32_t)); + + LOG_D (PHY, "[INIT] common_vars->txdataF[%d] = %p (%lu bytes)\n", i, common_vars->txdataF[i], fp->ofdm_symbol_size * fp->symbols_per_tti * 10 * sizeof (int32_t)); } - } - - + } + + // Channel estimates for SRS - for (UE_id=0; UE_idofdm_symbol_size ); - srs_vars[UE_id].srs_ch_estimates_time[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*fp->ofdm_symbol_size*2 ); + for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { + + srs_vars[UE_id].srs_ch_estimates = (int32_t **) malloc16 (64 * sizeof (int32_t *)); + srs_vars[UE_id].srs_ch_estimates_time = (int32_t **) malloc16 (64 * sizeof (int32_t *)); + + for (i = 0; i < 64; i++) { + srs_vars[UE_id].srs_ch_estimates[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->ofdm_symbol_size); + srs_vars[UE_id].srs_ch_estimates_time[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->ofdm_symbol_size * 2); } - } //UE_id + } //UE_id - generate_ul_ref_sigs_rx(); - - init_ulsch_power_LUT(); + generate_ul_ref_sigs_rx (); + + init_ulsch_power_LUT (); // SRS - for (UE_id=0; UE_idofdm_symbol_size*sizeof(int32_t)); + for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { + srs_vars[UE_id].srs = (int32_t *) malloc16_clear (2 * fp->ofdm_symbol_size * sizeof (int32_t)); } // PRACH - prach_vars->prachF = (int16_t*)malloc16_clear( 1024*2*sizeof(int16_t) ); + prach_vars->prachF = (int16_t *) malloc16_clear (1024 * 2 * sizeof (int16_t)); // assume maximum of 64 RX antennas for PRACH receiver - prach_vars->prach_ifft[0] = (int32_t**)malloc16_clear(64*sizeof(int32_t*)); - for (i=0;i<64;i++) prach_vars->prach_ifft[0][i] = (int32_t*)malloc16_clear(1024*2*sizeof(int32_t)); + prach_vars->prach_ifft[0] = (int32_t **) malloc16_clear (64 * sizeof (int32_t *)); + for (i = 0; i < 64; i++) + prach_vars->prach_ifft[0][i] = (int32_t *) malloc16_clear (1024 * 2 * sizeof (int32_t)); - prach_vars->rxsigF[0] = (int16_t**)malloc16_clear(64*sizeof(int16_t*)); + prach_vars->rxsigF[0] = (int16_t **) malloc16_clear (64 * sizeof (int16_t *)); // PRACH BR #ifdef Rel14 - prach_vars_br->prachF = (int16_t*)malloc16_clear( 1024*2*sizeof(int32_t) ); + prach_vars_br->prachF = (int16_t *) malloc16_clear (1024 * 2 * sizeof (int32_t)); // assume maximum of 64 RX antennas for PRACH receiver - for (int ce_level=0;ce_level<4;ce_level++) { - prach_vars_br->prach_ifft[ce_level] = (int32_t**)malloc16_clear(64*sizeof(int32_t*)); - for (i=0;i<64;i++) prach_vars_br->prach_ifft[ce_level][i] = (int32_t*)malloc16_clear(1024*2*sizeof(int32_t)); - prach_vars->rxsigF[ce_level] = (int16_t**)malloc16_clear(64*sizeof(int16_t*)); + for (int ce_level = 0; ce_level < 4; ce_level++) { + prach_vars_br->prach_ifft[ce_level] = (int32_t **) malloc16_clear (64 * sizeof (int32_t *)); + for (i = 0; i < 64; i++) + prach_vars_br->prach_ifft[ce_level][i] = (int32_t *) malloc16_clear (1024 * 2 * sizeof (int32_t)); + prach_vars->rxsigF[ce_level] = (int16_t **) malloc16_clear (64 * sizeof (int16_t *)); } #endif - + /* number of elements of an array X is computed as sizeof(X) / sizeof(X[0]) AssertFatal(fp->nb_antennas_rx <= sizeof(prach_vars->rxsigF) / sizeof(prach_vars->rxsigF[0]), "nb_antennas_rx too large"); for (i=0; inb_antennas_rx; i++) { prach_vars->rxsigF[i] = (int16_t*)malloc16_clear( fp->ofdm_symbol_size*12*2*sizeof(int16_t) ); LOG_D(PHY,"[INIT] prach_vars->rxsigF[%d] = %p\n",i,prach_vars->rxsigF[i]); - }*/ - - for (UE_id=0; UE_idrxdataF_ext = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - pusch_vars[UE_id]->rxdataF_ext2 = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - pusch_vars[UE_id]->drs_ch_estimates = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - pusch_vars[UE_id]->drs_ch_estimates_time = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - pusch_vars[UE_id]->rxdataF_comp = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - pusch_vars[UE_id]->ul_ch_mag = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - pusch_vars[UE_id]->ul_ch_magb = (int32_t**)malloc16( 2*sizeof(int32_t*) ); - - AssertFatal(fp->ofdm_symbol_size > 127, "fp->ofdm_symbol_size %d<128\n",fp->ofdm_symbol_size); - AssertFatal(fp->symbols_per_tti > 11, "fp->symbols_per_tti %d < 12\n",fp->symbols_per_tti); - AssertFatal(fp->N_RB_UL > 5, "fp->N_RB_UL %d < 6\n",fp->N_RB_UL); - for (i=0; i<2; i++) { + pusch_vars[UE_id] = (LTE_eNB_PUSCH *) malloc16_clear (NUMBER_OF_UE_MAX * sizeof (LTE_eNB_PUSCH)); + + pusch_vars[UE_id]->rxdataF_ext = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + pusch_vars[UE_id]->rxdataF_ext2 = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + pusch_vars[UE_id]->drs_ch_estimates = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + pusch_vars[UE_id]->drs_ch_estimates_time = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + pusch_vars[UE_id]->rxdataF_comp = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + pusch_vars[UE_id]->ul_ch_mag = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + pusch_vars[UE_id]->ul_ch_magb = (int32_t **) malloc16 (2 * sizeof (int32_t *)); + + AssertFatal (fp->ofdm_symbol_size > 127, "fp->ofdm_symbol_size %d<128\n", fp->ofdm_symbol_size); + AssertFatal (fp->symbols_per_tti > 11, "fp->symbols_per_tti %d < 12\n", fp->symbols_per_tti); + AssertFatal (fp->N_RB_UL > 5, "fp->N_RB_UL %d < 6\n", fp->N_RB_UL); + for (i = 0; i < 2; i++) { // RK 2 times because of output format of FFT! // FIXME We should get rid of this - pusch_vars[UE_id]->rxdataF_ext[i] = (int32_t*)malloc16_clear( 2*sizeof(int32_t)*fp->N_RB_UL*12*fp->symbols_per_tti ); - pusch_vars[UE_id]->rxdataF_ext2[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*fp->N_RB_UL*12*fp->symbols_per_tti ); - pusch_vars[UE_id]->drs_ch_estimates[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*fp->N_RB_UL*12*fp->symbols_per_tti ); - pusch_vars[UE_id]->drs_ch_estimates_time[i] = (int32_t*)malloc16_clear( 2*2*sizeof(int32_t)*fp->ofdm_symbol_size ); - pusch_vars[UE_id]->rxdataF_comp[i] = (int32_t*)malloc16_clear( sizeof(int32_t)*fp->N_RB_UL*12*fp->symbols_per_tti ); - pusch_vars[UE_id]->ul_ch_mag[i] = (int32_t*)malloc16_clear( fp->symbols_per_tti*sizeof(int32_t)*fp->N_RB_UL*12 ); - pusch_vars[UE_id]->ul_ch_magb[i] = (int32_t*)malloc16_clear( fp->symbols_per_tti*sizeof(int32_t)*fp->N_RB_UL*12 ); + pusch_vars[UE_id]->rxdataF_ext[i] = (int32_t *) malloc16_clear (2 * sizeof (int32_t) * fp->N_RB_UL * 12 * fp->symbols_per_tti); + pusch_vars[UE_id]->rxdataF_ext2[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->N_RB_UL * 12 * fp->symbols_per_tti); + pusch_vars[UE_id]->drs_ch_estimates[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->N_RB_UL * 12 * fp->symbols_per_tti); + pusch_vars[UE_id]->drs_ch_estimates_time[i] = (int32_t *) malloc16_clear (2 * 2 * sizeof (int32_t) * fp->ofdm_symbol_size); + pusch_vars[UE_id]->rxdataF_comp[i] = (int32_t *) malloc16_clear (sizeof (int32_t) * fp->N_RB_UL * 12 * fp->symbols_per_tti); + pusch_vars[UE_id]->ul_ch_mag[i] = (int32_t *) malloc16_clear (fp->symbols_per_tti * sizeof (int32_t) * fp->N_RB_UL * 12); + pusch_vars[UE_id]->ul_ch_magb[i] = (int32_t *) malloc16_clear (fp->symbols_per_tti * sizeof (int32_t) * fp->N_RB_UL * 12); } - - pusch_vars[UE_id]->llr = (int16_t*)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); - } //UE_id - - for (UE_id=0; UE_idllr = (int16_t *) malloc16_clear ((8 * ((3 * 8 * 6144) + 12)) * sizeof (int16_t)); + } //UE_id + + + for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) eNB->UE_stats_ptr[UE_id] = &eNB->UE_stats[UE_id]; - - eNB->pdsch_config_dedicated->p_a = dB0; //defaul value until overwritten by RRCConnectionReconfiguration - + + eNB->pdsch_config_dedicated->p_a = dB0; //defaul value until overwritten by RRCConnectionReconfiguration + return (0); diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 6b9dde3778..08f090a60c 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -46,150 +46,153 @@ //#define DEBUG_DCI -uint32_t localRIV2alloc_LUT6[32]; -uint32_t distRIV2alloc_even_LUT6[32]; -uint32_t distRIV2alloc_odd_LUT6[32]; -uint16_t RIV2nb_rb_LUT6[32]; -uint16_t RIV2first_rb_LUT6[32]; -uint16_t RIV_max6=0; +uint32_t localRIV2alloc_LUT6[32]; +uint32_t distRIV2alloc_even_LUT6[32]; +uint32_t distRIV2alloc_odd_LUT6[32]; +uint16_t RIV2nb_rb_LUT6[32]; +uint16_t RIV2first_rb_LUT6[32]; +uint16_t RIV_max6 = 0; -uint32_t localRIV2alloc_LUT25[512]; -uint32_t distRIV2alloc_even_LUT25[512]; -uint32_t distRIV2alloc_odd_LUT25[512]; -uint16_t RIV2nb_rb_LUT25[512]; -uint16_t RIV2first_rb_LUT25[512]; -uint16_t RIV_max25=0; +uint32_t localRIV2alloc_LUT25[512]; +uint32_t distRIV2alloc_even_LUT25[512]; +uint32_t distRIV2alloc_odd_LUT25[512]; +uint16_t RIV2nb_rb_LUT25[512]; +uint16_t RIV2first_rb_LUT25[512]; +uint16_t RIV_max25 = 0; -uint32_t localRIV2alloc_LUT50_0[1600]; -uint32_t localRIV2alloc_LUT50_1[1600]; -uint32_t distRIV2alloc_gap0_even_LUT50_0[1600]; -uint32_t distRIV2alloc_gap0_odd_LUT50_0[1600]; -uint32_t distRIV2alloc_gap0_even_LUT50_1[1600]; -uint32_t distRIV2alloc_gap0_odd_LUT50_1[1600]; -uint32_t distRIV2alloc_gap1_even_LUT50_0[1600]; -uint32_t distRIV2alloc_gap1_odd_LUT50_0[1600]; -uint32_t distRIV2alloc_gap1_even_LUT50_1[1600]; -uint32_t distRIV2alloc_gap1_odd_LUT50_1[1600]; -uint16_t RIV2nb_rb_LUT50[1600]; -uint16_t RIV2first_rb_LUT50[1600]; -uint16_t RIV_max50=0; +uint32_t localRIV2alloc_LUT50_0[1600]; +uint32_t localRIV2alloc_LUT50_1[1600]; +uint32_t distRIV2alloc_gap0_even_LUT50_0[1600]; +uint32_t distRIV2alloc_gap0_odd_LUT50_0[1600]; +uint32_t distRIV2alloc_gap0_even_LUT50_1[1600]; +uint32_t distRIV2alloc_gap0_odd_LUT50_1[1600]; +uint32_t distRIV2alloc_gap1_even_LUT50_0[1600]; +uint32_t distRIV2alloc_gap1_odd_LUT50_0[1600]; +uint32_t distRIV2alloc_gap1_even_LUT50_1[1600]; +uint32_t distRIV2alloc_gap1_odd_LUT50_1[1600]; +uint16_t RIV2nb_rb_LUT50[1600]; +uint16_t RIV2first_rb_LUT50[1600]; +uint16_t RIV_max50 = 0; -uint32_t localRIV2alloc_LUT100_0[6000]; -uint32_t localRIV2alloc_LUT100_1[6000]; -uint32_t localRIV2alloc_LUT100_2[6000]; -uint32_t localRIV2alloc_LUT100_3[6000]; -uint32_t distRIV2alloc_gap0_even_LUT100_0[6000]; -uint32_t distRIV2alloc_gap0_odd_LUT100_0[6000]; -uint32_t distRIV2alloc_gap0_even_LUT100_1[6000]; -uint32_t distRIV2alloc_gap0_odd_LUT100_1[6000]; -uint32_t distRIV2alloc_gap0_even_LUT100_2[6000]; -uint32_t distRIV2alloc_gap0_odd_LUT100_2[6000]; -uint32_t distRIV2alloc_gap0_even_LUT100_3[6000]; -uint32_t distRIV2alloc_gap0_odd_LUT100_3[6000]; -uint32_t distRIV2alloc_gap1_even_LUT100_0[6000]; -uint32_t distRIV2alloc_gap1_odd_LUT100_0[6000]; -uint32_t distRIV2alloc_gap1_even_LUT100_1[6000]; -uint32_t distRIV2alloc_gap1_odd_LUT100_1[6000]; -uint32_t distRIV2alloc_gap1_even_LUT100_2[6000]; -uint32_t distRIV2alloc_gap1_odd_LUT100_2[6000]; -uint32_t distRIV2alloc_gap1_even_LUT100_3[6000]; -uint32_t distRIV2alloc_gap1_odd_LUT100_3[6000]; -uint16_t RIV2nb_rb_LUT100[6000]; -uint16_t RIV2first_rb_LUT100[6000]; -uint16_t RIV_max100=0; +uint32_t localRIV2alloc_LUT100_0[6000]; +uint32_t localRIV2alloc_LUT100_1[6000]; +uint32_t localRIV2alloc_LUT100_2[6000]; +uint32_t localRIV2alloc_LUT100_3[6000]; +uint32_t distRIV2alloc_gap0_even_LUT100_0[6000]; +uint32_t distRIV2alloc_gap0_odd_LUT100_0[6000]; +uint32_t distRIV2alloc_gap0_even_LUT100_1[6000]; +uint32_t distRIV2alloc_gap0_odd_LUT100_1[6000]; +uint32_t distRIV2alloc_gap0_even_LUT100_2[6000]; +uint32_t distRIV2alloc_gap0_odd_LUT100_2[6000]; +uint32_t distRIV2alloc_gap0_even_LUT100_3[6000]; +uint32_t distRIV2alloc_gap0_odd_LUT100_3[6000]; +uint32_t distRIV2alloc_gap1_even_LUT100_0[6000]; +uint32_t distRIV2alloc_gap1_odd_LUT100_0[6000]; +uint32_t distRIV2alloc_gap1_even_LUT100_1[6000]; +uint32_t distRIV2alloc_gap1_odd_LUT100_1[6000]; +uint32_t distRIV2alloc_gap1_even_LUT100_2[6000]; +uint32_t distRIV2alloc_gap1_odd_LUT100_2[6000]; +uint32_t distRIV2alloc_gap1_even_LUT100_3[6000]; +uint32_t distRIV2alloc_gap1_odd_LUT100_3[6000]; +uint16_t RIV2nb_rb_LUT100[6000]; +uint16_t RIV2first_rb_LUT100[6000]; +uint16_t RIV_max100 = 0; extern uint32_t current_dlsch_cqi; // Table 8.6.3-3 36.213 -uint16_t beta_cqi[16] = {0, //reserved - 0, //reserved - 9, //1.125 - 10, //1.250 - 11, //1.375 - 13, //1.625 - 14, //1.750 - 16, //2.000 - 18, //2.250 - 20, //2.500 - 23, //2.875 - 25, //3.125 - 28, //3.500 - 32, //4.000 - 40, //5.000 - 50 - }; //6.250 +uint16_t beta_cqi[16] = { 0, //reserved + 0, //reserved + 9, //1.125 + 10, //1.250 + 11, //1.375 + 13, //1.625 + 14, //1.750 + 16, //2.000 + 18, //2.250 + 20, //2.500 + 23, //2.875 + 25, //3.125 + 28, //3.500 + 32, //4.000 + 40, //5.000 + 50 +}; //6.250 // Table 8.6.3-2 36.213 -uint16_t beta_ri[16] = {10, //1.250 - 13, //1.625 - 16, //2.000 - 20, //2.500 - 25, //3.125 - 32, //4.000 - 40, //5.000 - 50, //6.250 - 64, //8.000 - 80, //10.000 - 101, //12.625 - 127, //15.875 - 160, //20.000 - 0, //reserved - 0, //reserved - 0 - }; //reserved +uint16_t beta_ri[16] = { 10, //1.250 + 13, //1.625 + 16, //2.000 + 20, //2.500 + 25, //3.125 + 32, //4.000 + 40, //5.000 + 50, //6.250 + 64, //8.000 + 80, //10.000 + 101, //12.625 + 127, //15.875 + 160, //20.000 + 0, //reserved + 0, //reserved + 0 +}; //reserved // Table 8.6.3-2 36.213 -uint16_t beta_ack[16] = {16, //2.000 - 20, //2.500 - 25, //3.125 - 32, //4.000 - 40, //5.000 - 50, //6.250 - 64, //8.000 - 80, //10.000 - 101, //12.625 - 127, //15.875 - 160, //20.000 - 248, //31.000 - 400, //50.000 - 640, //80.000 - 808 - };//126.00 +uint16_t beta_ack[16] = { 16, //2.000 + 20, //2.500 + 25, //3.125 + 32, //4.000 + 40, //5.000 + 50, //6.250 + 64, //8.000 + 80, //10.000 + 101, //12.625 + 127, //15.875 + 160, //20.000 + 248, //31.000 + 400, //50.000 + 640, //80.000 + 808 +}; //126.00 -int8_t delta_PUSCH_abs[4] = {-4,-1,1,4}; -int8_t delta_PUSCH_acc[4] = {-1,0,1,3}; +int8_t delta_PUSCH_abs[4] = { -4, -1, 1, 4 }; +int8_t delta_PUSCH_acc[4] = { -1, 0, 1, 3 }; -int8_t *delta_PUCCH_lut = delta_PUSCH_acc; +int8_t *delta_PUCCH_lut = delta_PUSCH_acc; -void conv_eMTC_rballoc(uint16_t resource_block_coding, - uint32_t N_RB_DL, - uint32_t *rb_alloc) { - - - int narrowband = resource_block_coding>>5; - int RIV = resource_block_coding&31; - int N_NB_DL = N_RB_DL/6; - int i0 = (N_RB_DL>>1) - (3*N_NB_DL); - int first_rb = (6*narrowband)+i0; - int alloc = localRIV2alloc_LUT6[RIV]; - int ind = first_rb>>5; - int ind_mod = first_rb&31; - - if (((N_RB_DL&1) > 0) && (narrowband>=(N_NB_DL>>1))) first_rb++; - rb_alloc[0] = 0; - rb_alloc[1] = 0; - rb_alloc[2] = 0; - rb_alloc[3] = 0; - rb_alloc[ind] = alloc< 26) rb_alloc[ind+1] = alloc>>(6-(ind_mod-26)); -} - -void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t *rb_alloc2) +void +conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) { - uint32_t i,shift,subset; + + int narrowband = resource_block_coding >> 5; + int RIV = resource_block_coding & 31; + int N_NB_DL = N_RB_DL / 6; + int i0 = (N_RB_DL >> 1) - (3 * N_NB_DL); + int first_rb = (6 * narrowband) + i0; + int alloc = localRIV2alloc_LUT6[RIV]; + int ind = first_rb >> 5; + int ind_mod = first_rb & 31; + + if (((N_RB_DL & 1) > 0) && (narrowband >= (N_NB_DL >> 1))) + first_rb++; + rb_alloc[0] = 0; + rb_alloc[1] = 0; + rb_alloc[2] = 0; + rb_alloc[3] = 0; + rb_alloc[ind] = alloc << ind_mod; + if (ind_mod > 26) + rb_alloc[ind + 1] = alloc >> (6 - (ind_mod - 26)); +} + +void +conv_rballoc (uint8_t ra_header, uint32_t rb_alloc, uint32_t N_RB_DL, uint32_t * rb_alloc2) +{ + + uint32_t i, shift, subset; rb_alloc2[0] = 0; rb_alloc2[1] = 0; rb_alloc2[2] = 0; @@ -200,71 +203,71 @@ void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t switch (N_RB_DL) { case 6: - rb_alloc2[0] = rb_alloc&0x3f; + rb_alloc2[0] = rb_alloc & 0x3f; break; case 25: - if (ra_header == 0) {// Type 0 Allocation + if (ra_header == 0) { // Type 0 Allocation - for (i=12; i>0; i--) { - if ((rb_alloc&(1< 0; i--) { + if ((rb_alloc & (1 << i)) != 0) + rb_alloc2[0] |= (3 << ((2 * (12 - i)))); // printf("rb_alloc2 (type 0) %x\n",rb_alloc2); } - if ((rb_alloc&1) != 0) - rb_alloc2[0] |= (1<<24); + if ((rb_alloc & 1) != 0) + rb_alloc2[0] |= (1 << 24); } else { - subset = rb_alloc&1; - shift = (rb_alloc>>1)&1; + subset = rb_alloc & 1; + shift = (rb_alloc >> 1) & 1; - for (i=0; i<11; i++) { - if ((rb_alloc&(1<<(i+2))) != 0) - rb_alloc2[0] |= (1<<(2*i)); + for (i = 0; i < 11; i++) { + if ((rb_alloc & (1 << (i + 2))) != 0) + rb_alloc2[0] |= (1 << (2 * i)); //printf("rb_alloc2 (type 1) %x\n",rb_alloc2); } if ((shift == 0) && (subset == 1)) - rb_alloc2[0]<<=1; + rb_alloc2[0] <<= 1; else if ((shift == 1) && (subset == 0)) - rb_alloc2[0]<<=4; + rb_alloc2[0] <<= 4; else if ((shift == 1) && (subset == 1)) - rb_alloc2[0]<<=3; + rb_alloc2[0] <<= 3; } break; case 50: - AssertFatal(ra_header==0,"resource type 1 not supported for N_RB_DL=50\n"); + AssertFatal (ra_header == 0, "resource type 1 not supported for N_RB_DL=50\n"); - for (i=16; i>0; i--) { - if ((rb_alloc&(1<>5] |= (7<<((3*(16-i))%32)); + for (i = 16; i > 0; i--) { + if ((rb_alloc & (1 << i)) != 0) + rb_alloc2[(3 * (16 - i)) >> 5] |= (7 << ((3 * (16 - i)) % 32)); } // bit mask across - if ((rb_alloc2[0]>>31)==1) + if ((rb_alloc2[0] >> 31) == 1) rb_alloc2[1] |= 1; - - if ((rb_alloc&1) != 0) - rb_alloc2[1] |= (3<<16); + + if ((rb_alloc & 1) != 0) + rb_alloc2[1] |= (3 << 16); break; case 100: - AssertFatal(ra_header==0,"resource type 1 not supported for N_RB_DL=100\n"); - for (i=0; i<25; i++) { - if ((rb_alloc&(1<<(24-i))) != 0) - rb_alloc2[(4*i)>>5] |= (0xf<<((4*i)%32)); - + AssertFatal (ra_header == 0, "resource type 1 not supported for N_RB_DL=100\n"); + for (i = 0; i < 25; i++) { + if ((rb_alloc & (1 << (24 - i))) != 0) + rb_alloc2[(4 * i) >> 5] |= (0xf << ((4 * i) % 32)); + // printf("rb_alloc2[%d] (type 0) %x (%d)\n",(4*i)>>5,rb_alloc2[(4*i)>>5],rb_alloc&(1<0; i--) { - if ((rb_alloc&(1< 0; i--) { + if ((rb_alloc & (1 << i)) != 0) nprb += 2; } - if ((rb_alloc&1) != 0) + if ((rb_alloc & 1) != 0) nprb += 1; } else { - for (i=0; i<11; i++) { - if ((rb_alloc&(1<<(i+2))) != 0) + for (i = 0; i < 11; i++) { + if ((rb_alloc & (1 << (i + 2))) != 0) nprb += 1; } } @@ -307,19 +311,19 @@ uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL) break; case 50: - if (ra_header == 0) {// Type 0 Allocation + if (ra_header == 0) { // Type 0 Allocation - for (i=0; i<16; i++) { - if ((rb_alloc&(1<<(16-i))) != 0) + for (i = 0; i < 16; i++) { + if ((rb_alloc & (1 << (16 - i))) != 0) nprb += 3; } - if ((rb_alloc&1) != 0) + if ((rb_alloc & 1) != 0) nprb += 2; } else { - for (i=0; i<17; i++) { - if ((rb_alloc&(1<<(i+2))) != 0) + for (i = 0; i < 17; i++) { + if ((rb_alloc & (1 << (i + 2))) != 0) nprb += 1; } } @@ -327,15 +331,15 @@ uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL) break; case 100: - if (ra_header == 0) {// Type 0 Allocation + if (ra_header == 0) { // Type 0 Allocation - for (i=0; i<25; i++) { - if ((rb_alloc&(1<<(24-i))) != 0) + for (i = 0; i < 25; i++) { + if ((rb_alloc & (1 << (24 - i))) != 0) nprb += 4; } } else { - for (i=0; i<25; i++) { - if ((rb_alloc&(1<<(i+2))) != 0) + for (i = 0; i < 25; i++) { + if ((rb_alloc & (1 << (i + 2))) != 0) nprb += 1; } } @@ -343,184 +347,186 @@ uint32_t conv_nprb(uint8_t ra_header,uint32_t rb_alloc,int N_RB_DL) break; default: - LOG_E(PHY,"Invalide N_RB_DL %d\n", N_RB_DL); + LOG_E (PHY, "Invalide N_RB_DL %d\n", N_RB_DL); DevParam (N_RB_DL, 0, 0); break; } - return(nprb); + return (nprb); } -uint16_t computeRIV(uint16_t N_RB_DL,uint16_t RBstart,uint16_t Lcrbs) +uint16_t +computeRIV (uint16_t N_RB_DL, uint16_t RBstart, uint16_t Lcrbs) { - uint16_t RIV; + uint16_t RIV; - if (Lcrbs<=(1+(N_RB_DL>>1))) - RIV = (N_RB_DL*(Lcrbs-1)) + RBstart; + if (Lcrbs <= (1 + (N_RB_DL >> 1))) + RIV = (N_RB_DL * (Lcrbs - 1)) + RBstart; else - RIV = (N_RB_DL*(N_RB_DL+1-Lcrbs)) + (N_RB_DL-1-RBstart); + RIV = (N_RB_DL * (N_RB_DL + 1 - Lcrbs)) + (N_RB_DL - 1 - RBstart); - return(RIV); + return (RIV); } // Convert a DCI Format 1C RIV to a Format 1A RIV // This extracts the start and length in PRBs from the 1C rballoc and // recomputes the RIV as if it were the 1A rballoc -uint32_t conv_1C_RIV(int32_t rballoc,uint32_t N_RB_DL) { +uint32_t +conv_1C_RIV (int32_t rballoc, uint32_t N_RB_DL) +{ - int NpDLVRB,N_RB_step,LpCRBsm1,RBpstart; + int NpDLVRB, N_RB_step, LpCRBsm1, RBpstart; switch (N_RB_DL) { - case 6: // N_RB_step = 2, NDLVRB = 6, NpDLVRB = 3 - NpDLVRB = 3; + case 6: // N_RB_step = 2, NDLVRB = 6, NpDLVRB = 3 + NpDLVRB = 3; N_RB_step = 2; break; - case 25: // N_RB_step = 2, NDLVRB = 24, NpDLVRB = 12 - NpDLVRB = 12; + case 25: // N_RB_step = 2, NDLVRB = 24, NpDLVRB = 12 + NpDLVRB = 12; N_RB_step = 2; break; - case 50: // N_RB_step = 4, NDLVRB = 46, NpDLVRB = 11 - NpDLVRB = 11; + case 50: // N_RB_step = 4, NDLVRB = 46, NpDLVRB = 11 + NpDLVRB = 11; N_RB_step = 4; break; - case 100: // N_RB_step = 4, NDLVRB = 96, NpDLVRB = 24 - NpDLVRB = 24; + case 100: // N_RB_step = 4, NDLVRB = 96, NpDLVRB = 24 + NpDLVRB = 24; N_RB_step = 4; break; default: - NpDLVRB = 24; + NpDLVRB = 24; N_RB_step = 4; break; } // This is the 1C part from 7.1.6.3 in 36.213 - LpCRBsm1 = rballoc/NpDLVRB; + LpCRBsm1 = rballoc / NpDLVRB; // printf("LpCRBs = %d\n",LpCRBsm1+1); - if (LpCRBsm1 <= (NpDLVRB/2)) { + if (LpCRBsm1 <= (NpDLVRB / 2)) { RBpstart = rballoc % NpDLVRB; - } - else { - LpCRBsm1 = NpDLVRB-LpCRBsm1; - RBpstart = NpDLVRB-(rballoc%NpDLVRB); + } else { + LpCRBsm1 = NpDLVRB - LpCRBsm1; + RBpstart = NpDLVRB - (rballoc % NpDLVRB); } // printf("RBpstart %d\n",RBpstart); - return(computeRIV(N_RB_DL,N_RB_step*RBpstart,N_RB_step*(LpCRBsm1+1))); + return (computeRIV (N_RB_DL, N_RB_step * RBpstart, N_RB_step * (LpCRBsm1 + 1))); } -uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap) { +uint32_t +get_prb (int N_RB_DL, int odd_slot, int vrb, int Ngap) +{ - int offset; + int offset; switch (N_RB_DL) { case 6: - // N_RB_DL = tildeN_RB_DL = 6 - // Ngap = 4 , P=1, Nrow = 2, Nnull = 2 + // N_RB_DL = tildeN_RB_DL = 6 + // Ngap = 4 , P=1, Nrow = 2, Nnull = 2 switch (vrb) { - case 0: // even: 0->0, 1->2, odd: 0->3, 1->5 + case 0: // even: 0->0, 1->2, odd: 0->3, 1->5 case 1: - return ((3*odd_slot) + 2*(vrb&3))%6; + return ((3 * odd_slot) + 2 * (vrb & 3)) % 6; break; - case 2: // even: 2->3, 3->5, odd: 2->0, 3->2 + case 2: // even: 2->3, 3->5, odd: 2->0, 3->2 case 3: - return ((3*odd_slot) + 2*(vrb&3) + 5)%6; + return ((3 * odd_slot) + 2 * (vrb & 3) + 5) % 6; break; - case 4: // even: 4->1, odd: 4->4 - return ((3*odd_slot) + 1)%6; - case 5: // even: 5->4, odd: 5->1 - return ((3*odd_slot) + 4)%6; + case 4: // even: 4->1, odd: 4->4 + return ((3 * odd_slot) + 1) % 6; + case 5: // even: 5->4, odd: 5->1 + return ((3 * odd_slot) + 4) % 6; break; } break; case 15: - if (vrb<12) { - if ((vrb&3) < 2) // even: 0->0, 1->4, 4->1, 5->5, 8->2, 9->6 odd: 0->7, 1->11 - return(((7*odd_slot) + 4*(vrb&3) + (vrb>>2))%14) + 14*(vrb/14); - else if (vrb < 12) // even: 2->7, 3->11, 6->8, 7->12, 10->9, 11->13 - return (((7*odd_slot) + 4*(vrb&3) + (vrb>>2) +13 )%14) + 14*(vrb/14); + if (vrb < 12) { + if ((vrb & 3) < 2) // even: 0->0, 1->4, 4->1, 5->5, 8->2, 9->6 odd: 0->7, 1->11 + return (((7 * odd_slot) + 4 * (vrb & 3) + (vrb >> 2)) % 14) + 14 * (vrb / 14); + else if (vrb < 12) // even: 2->7, 3->11, 6->8, 7->12, 10->9, 11->13 + return (((7 * odd_slot) + 4 * (vrb & 3) + (vrb >> 2) + 13) % 14) + 14 * (vrb / 14); } - if (vrb==12) - return (3+(7*odd_slot)) % 14; - if (vrb==13) - return (10+(7*odd_slot)) % 14; + if (vrb == 12) + return (3 + (7 * odd_slot)) % 14; + if (vrb == 13) + return (10 + (7 * odd_slot)) % 14; return 14; break; case 25: - return (((12*odd_slot) + 6*(vrb&3) + (vrb>>2))%24) + 24*(vrb/24); + return (((12 * odd_slot) + 6 * (vrb & 3) + (vrb >> 2)) % 24) + 24 * (vrb / 24); break; - case 50: // P=3 - if (Ngap==0) { + case 50: // P=3 + if (Ngap == 0) { // Nrow=12,Nnull=2,NVRBDL=46,Ngap1= 27 - if (vrb>=23) - offset=4; + if (vrb >= 23) + offset = 4; else - offset=0; - if (vrb<44) { - if ((vrb&3)>=2) - return offset+((23*odd_slot) + 12*(vrb&3) + (vrb>>2) + 45)%46; - else - return offset+((23*odd_slot) + 12*(vrb&3) + (vrb>>2))%46; + offset = 0; + if (vrb < 44) { + if ((vrb & 3) >= 2) + return offset + ((23 * odd_slot) + 12 * (vrb & 3) + (vrb >> 2) + 45) % 46; + else + return offset + ((23 * odd_slot) + 12 * (vrb & 3) + (vrb >> 2)) % 46; } - if (vrb==44) // even: 44->11, odd: 45->34 - return offset+((23*odd_slot) + 22-12+1); - if (vrb==45) // even: 45->10, odd: 45->33 - return offset+((23*odd_slot) + 22+12); - if (vrb==46) - return offset+46+((23*odd_slot) + 23-12+1) % 46; - if (vrb==47) - return offset+46+((23*odd_slot) + 23+12) % 46; - if (vrb==48) - return offset+46+((23*odd_slot) + 23-12+1) % 46; - if (vrb==49) - return offset+46+((23*odd_slot) + 23+12) % 46; - } - else { + if (vrb == 44) // even: 44->11, odd: 45->34 + return offset + ((23 * odd_slot) + 22 - 12 + 1); + if (vrb == 45) // even: 45->10, odd: 45->33 + return offset + ((23 * odd_slot) + 22 + 12); + if (vrb == 46) + return offset + 46 + ((23 * odd_slot) + 23 - 12 + 1) % 46; + if (vrb == 47) + return offset + 46 + ((23 * odd_slot) + 23 + 12) % 46; + if (vrb == 48) + return offset + 46 + ((23 * odd_slot) + 23 - 12 + 1) % 46; + if (vrb == 49) + return offset + 46 + ((23 * odd_slot) + 23 + 12) % 46; + } else { // Nrow=6,Nnull=6,NVRBDL=18,Ngap1= 27 - if (vrb>=9) - offset=18; + if (vrb >= 9) + offset = 18; else - offset=0; + offset = 0; - if (vrb<12) { - if ((vrb&3)>=2) - return offset+((9*odd_slot) + 6*(vrb&3) + (vrb>>2) + 17)%18; - else - return offset+((9*odd_slot) + 6*(vrb&3) + (vrb>>2))%18; - } - else { - return offset+((9*odd_slot) + 12*(vrb&1)+(vrb>>1) )%18 + 18*(vrb/18); + if (vrb < 12) { + if ((vrb & 3) >= 2) + return offset + ((9 * odd_slot) + 6 * (vrb & 3) + (vrb >> 2) + 17) % 18; + else + return offset + ((9 * odd_slot) + 6 * (vrb & 3) + (vrb >> 2)) % 18; + } else { + return offset + ((9 * odd_slot) + 12 * (vrb & 1) + (vrb >> 1)) % 18 + 18 * (vrb / 18); } } break; case 75: // Ngap1 = 32, NVRBRL=64, P=4, Nrow= 16, Nnull=0 - if (Ngap ==0) { - return ((32*odd_slot) + 16*(vrb&3) + (vrb>>2))%64 + (vrb/64); + if (Ngap == 0) { + return ((32 * odd_slot) + 16 * (vrb & 3) + (vrb >> 2)) % 64 + (vrb / 64); } else { // Ngap2 = 16, NVRBDL=32, Nrow=8, Nnull=0 - return ((16*odd_slot) + 8*(vrb&3) + (vrb>>2))%32 + (vrb/32); + return ((16 * odd_slot) + 8 * (vrb & 3) + (vrb >> 2)) % 32 + (vrb / 32); } break; case 100: // Ngap1 = 48, NVRBDL=96, Nrow=24, Nnull=0 - if (Ngap ==0) { - return ((48*odd_slot) + 24*(vrb&3) + (vrb>>2))%96 + (vrb/96); + if (Ngap == 0) { + return ((48 * odd_slot) + 24 * (vrb & 3) + (vrb >> 2)) % 96 + (vrb / 96); } else { // Ngap2 = 16, NVRBDL=32, Nrow=8, Nnull=0 - return ((16*odd_slot) + 8*(vrb&3) + (vrb>>2))%32 + (vrb/32); + return ((16 * odd_slot) + 8 * (vrb & 3) + (vrb >> 2)) % 32 + (vrb / 32); } break; default: - LOG_E(PHY,"Unknown N_RB_DL %d\n",N_RB_DL); + LOG_E (PHY, "Unknown N_RB_DL %d\n", N_RB_DL); return 0; } return 0; @@ -528,192 +534,193 @@ uint32_t get_prb(int N_RB_DL,int odd_slot,int vrb,int Ngap) { } -void generate_RIV_tables() +void +generate_RIV_tables () { // 6RBs localized RIV - uint8_t Lcrbs,RBstart; - uint16_t RIV; - uint32_t alloc0,allocdist0_0_even,allocdist0_0_odd,allocdist0_1_even,allocdist0_1_odd; - uint32_t alloc1,allocdist1_0_even,allocdist1_0_odd,allocdist1_1_even,allocdist1_1_odd; - uint32_t alloc2,allocdist2_0_even,allocdist2_0_odd,allocdist2_1_even,allocdist2_1_odd; - uint32_t alloc3,allocdist3_0_even,allocdist3_0_odd,allocdist3_1_even,allocdist3_1_odd; - uint32_t nVRB,nVRB_even_dist,nVRB_odd_dist; + uint8_t Lcrbs, RBstart; + uint16_t RIV; + uint32_t alloc0, allocdist0_0_even, allocdist0_0_odd, allocdist0_1_even, allocdist0_1_odd; + uint32_t alloc1, allocdist1_0_even, allocdist1_0_odd, allocdist1_1_even, allocdist1_1_odd; + uint32_t alloc2, allocdist2_0_even, allocdist2_0_odd, allocdist2_1_even, allocdist2_1_odd; + uint32_t alloc3, allocdist3_0_even, allocdist3_0_odd, allocdist3_1_even, allocdist3_1_odd; + uint32_t nVRB, nVRB_even_dist, nVRB_odd_dist; - for (RBstart=0; RBstart<6; RBstart++) { + for (RBstart = 0; RBstart < 6; RBstart++) { alloc0 = 0; allocdist0_0_even = 0; - allocdist0_0_odd = 0; - for (Lcrbs=1; Lcrbs<=(6-RBstart); Lcrbs++) { + allocdist0_0_odd = 0; + for (Lcrbs = 1; Lcrbs <= (6 - RBstart); Lcrbs++) { //printf("RBstart %d, len %d --> ",RBstart,Lcrbs); - nVRB = Lcrbs-1+RBstart; - alloc0 |= (1<RIV_max6) + if (RIV > RIV_max6) RIV_max6 = RIV; // printf("RIV %d (%d) : first_rb %d NBRB %d\n",RIV,localRIV2alloc_LUT25[RIV],RBstart,Lcrbs); localRIV2alloc_LUT6[RIV] = alloc0; - distRIV2alloc_even_LUT6[RIV] = allocdist0_0_even; - distRIV2alloc_odd_LUT6[RIV] = allocdist0_0_odd; - RIV2nb_rb_LUT6[RIV] = Lcrbs; - RIV2first_rb_LUT6[RIV] = RBstart; + distRIV2alloc_even_LUT6[RIV] = allocdist0_0_even; + distRIV2alloc_odd_LUT6[RIV] = allocdist0_0_odd; + RIV2nb_rb_LUT6[RIV] = Lcrbs; + RIV2first_rb_LUT6[RIV] = RBstart; } } - for (RBstart=0; RBstart<25; RBstart++) { + for (RBstart = 0; RBstart < 25; RBstart++) { alloc0 = 0; allocdist0_0_even = 0; - allocdist0_0_odd = 0; - for (Lcrbs=1; Lcrbs<=(25-RBstart); Lcrbs++) { - nVRB = Lcrbs-1+RBstart; + allocdist0_0_odd = 0; + for (Lcrbs = 1; Lcrbs <= (25 - RBstart); Lcrbs++) { + nVRB = Lcrbs - 1 + RBstart; //printf("RBstart %d, len %d --> ",RBstart,Lcrbs); - alloc0 |= (1<RIV_max25) + if (RIV > RIV_max25) RIV_max25 = RIV;; - localRIV2alloc_LUT25[RIV] = alloc0; - distRIV2alloc_even_LUT25[RIV] = allocdist0_0_even; - distRIV2alloc_odd_LUT25[RIV] = allocdist0_0_odd; - RIV2nb_rb_LUT25[RIV] = Lcrbs; - RIV2first_rb_LUT25[RIV] = RBstart; + localRIV2alloc_LUT25[RIV] = alloc0; + distRIV2alloc_even_LUT25[RIV] = allocdist0_0_even; + distRIV2alloc_odd_LUT25[RIV] = allocdist0_0_odd; + RIV2nb_rb_LUT25[RIV] = Lcrbs; + RIV2first_rb_LUT25[RIV] = RBstart; } } - for (RBstart=0; RBstart<50; RBstart++) { + for (RBstart = 0; RBstart < 50; RBstart++) { alloc0 = 0; alloc1 = 0; - allocdist0_0_even=0; - allocdist1_0_even=0; - allocdist0_0_odd=0; - allocdist1_0_odd=0; - allocdist0_1_even=0; - allocdist1_1_even=0; - allocdist0_1_odd=0; - allocdist1_1_odd=0; + allocdist0_0_even = 0; + allocdist1_0_even = 0; + allocdist0_0_odd = 0; + allocdist1_0_odd = 0; + allocdist0_1_even = 0; + allocdist1_1_even = 0; + allocdist0_1_odd = 0; + allocdist1_1_odd = 0; - for (Lcrbs=1; Lcrbs<=(50-RBstart); Lcrbs++) { + for (Lcrbs = 1; Lcrbs <= (50 - RBstart); Lcrbs++) { - nVRB = Lcrbs-1+RBstart; + nVRB = Lcrbs - 1 + RBstart; - if (nVRB<32) - alloc0 |= (1<RIV_max50) + if (RIV > RIV_max50) RIV_max50 = RIV; // printf("RIV %d : first_rb %d NBRB %d\n",RIV,RBstart,Lcrbs); - localRIV2alloc_LUT50_0[RIV] = alloc0; - localRIV2alloc_LUT50_1[RIV] = alloc1; - distRIV2alloc_gap0_even_LUT50_0[RIV] = allocdist0_0_even; - distRIV2alloc_gap0_even_LUT50_1[RIV] = allocdist1_0_even; - distRIV2alloc_gap0_odd_LUT50_0[RIV] = allocdist0_0_odd; - distRIV2alloc_gap0_odd_LUT50_1[RIV] = allocdist1_0_odd; - distRIV2alloc_gap1_even_LUT50_0[RIV] = allocdist0_1_even; - distRIV2alloc_gap1_even_LUT50_1[RIV] = allocdist1_1_even; - distRIV2alloc_gap1_odd_LUT50_0[RIV] = allocdist0_1_odd; - distRIV2alloc_gap1_odd_LUT50_1[RIV] = allocdist1_1_odd; - RIV2nb_rb_LUT50[RIV] = Lcrbs; - RIV2first_rb_LUT50[RIV] = RBstart; + localRIV2alloc_LUT50_0[RIV] = alloc0; + localRIV2alloc_LUT50_1[RIV] = alloc1; + distRIV2alloc_gap0_even_LUT50_0[RIV] = allocdist0_0_even; + distRIV2alloc_gap0_even_LUT50_1[RIV] = allocdist1_0_even; + distRIV2alloc_gap0_odd_LUT50_0[RIV] = allocdist0_0_odd; + distRIV2alloc_gap0_odd_LUT50_1[RIV] = allocdist1_0_odd; + distRIV2alloc_gap1_even_LUT50_0[RIV] = allocdist0_1_even; + distRIV2alloc_gap1_even_LUT50_1[RIV] = allocdist1_1_even; + distRIV2alloc_gap1_odd_LUT50_0[RIV] = allocdist0_1_odd; + distRIV2alloc_gap1_odd_LUT50_1[RIV] = allocdist1_1_odd; + RIV2nb_rb_LUT50[RIV] = Lcrbs; + RIV2first_rb_LUT50[RIV] = RBstart; } } - for (RBstart=0; RBstart<100; RBstart++) { + for (RBstart = 0; RBstart < 100; RBstart++) { alloc0 = 0; alloc1 = 0; alloc2 = 0; alloc3 = 0; - allocdist0_0_even=0; - allocdist1_0_even=0; - allocdist2_0_even=0; - allocdist3_0_even=0; - allocdist0_0_odd=0; - allocdist1_0_odd=0; - allocdist2_0_odd=0; - allocdist3_0_odd=0; - allocdist0_1_even=0; - allocdist1_1_even=0; - allocdist2_1_even=0; - allocdist3_1_even=0; - allocdist0_1_odd=0; - allocdist1_1_odd=0; - allocdist2_1_odd=0; - allocdist3_1_odd=0; + allocdist0_0_even = 0; + allocdist1_0_even = 0; + allocdist2_0_even = 0; + allocdist3_0_even = 0; + allocdist0_0_odd = 0; + allocdist1_0_odd = 0; + allocdist2_0_odd = 0; + allocdist3_0_odd = 0; + allocdist0_1_even = 0; + allocdist1_1_even = 0; + allocdist2_1_even = 0; + allocdist3_1_even = 0; + allocdist0_1_odd = 0; + allocdist1_1_odd = 0; + allocdist2_1_odd = 0; + allocdist3_1_odd = 0; - for (Lcrbs=1; Lcrbs<=(100-RBstart); Lcrbs++) { + for (Lcrbs = 1; Lcrbs <= (100 - RBstart); Lcrbs++) { - nVRB = Lcrbs-1+RBstart; + nVRB = Lcrbs - 1 + RBstart; - if (nVRB<32) - alloc0 |= (1< nVRB_even_dist %d\n",nVRB,nVRB_even_dist); - if (nVRB_even_dist<32) - allocdist0_0_even |= (1<(%08x.%08x.%08x.%08x)\n", allocdist0_0_even, @@ -723,44 +730,44 @@ void generate_RIV_tables() ); */ // Distributed Gap1, odd slot - nVRB_odd_dist = get_prb(100,1,nVRB,0); - if (nVRB_odd_dist<32) - allocdist0_0_odd |= (1<RIV_max100) + if (RIV > RIV_max100) RIV_max100 = RIV; // printf("RIV %d : first_rb %d NBRB %d\n",RIV,RBstart,Lcrbs); @@ -768,25 +775,25 @@ void generate_RIV_tables() localRIV2alloc_LUT100_1[RIV] = alloc1; localRIV2alloc_LUT100_2[RIV] = alloc2; localRIV2alloc_LUT100_3[RIV] = alloc3; - distRIV2alloc_gap0_even_LUT100_0[RIV] = allocdist0_0_even; - distRIV2alloc_gap0_even_LUT100_1[RIV] = allocdist1_0_even; - distRIV2alloc_gap0_even_LUT100_2[RIV] = allocdist2_0_even; - distRIV2alloc_gap0_even_LUT100_3[RIV] = allocdist3_0_even; - distRIV2alloc_gap0_odd_LUT100_0[RIV] = allocdist0_0_odd; - distRIV2alloc_gap0_odd_LUT100_1[RIV] = allocdist1_0_odd; - distRIV2alloc_gap0_odd_LUT100_2[RIV] = allocdist2_0_odd; - distRIV2alloc_gap0_odd_LUT100_3[RIV] = allocdist3_0_odd; - distRIV2alloc_gap1_even_LUT100_0[RIV] = allocdist0_1_even; - distRIV2alloc_gap1_even_LUT100_1[RIV] = allocdist1_1_even; - distRIV2alloc_gap1_even_LUT100_2[RIV] = allocdist2_1_even; - distRIV2alloc_gap1_even_LUT100_3[RIV] = allocdist3_1_even; - distRIV2alloc_gap1_odd_LUT100_0[RIV] = allocdist0_1_odd; - distRIV2alloc_gap1_odd_LUT100_1[RIV] = allocdist1_1_odd; - distRIV2alloc_gap1_odd_LUT100_2[RIV] = allocdist2_1_odd; - distRIV2alloc_gap1_odd_LUT100_3[RIV] = allocdist3_1_odd; + distRIV2alloc_gap0_even_LUT100_0[RIV] = allocdist0_0_even; + distRIV2alloc_gap0_even_LUT100_1[RIV] = allocdist1_0_even; + distRIV2alloc_gap0_even_LUT100_2[RIV] = allocdist2_0_even; + distRIV2alloc_gap0_even_LUT100_3[RIV] = allocdist3_0_even; + distRIV2alloc_gap0_odd_LUT100_0[RIV] = allocdist0_0_odd; + distRIV2alloc_gap0_odd_LUT100_1[RIV] = allocdist1_0_odd; + distRIV2alloc_gap0_odd_LUT100_2[RIV] = allocdist2_0_odd; + distRIV2alloc_gap0_odd_LUT100_3[RIV] = allocdist3_0_odd; + distRIV2alloc_gap1_even_LUT100_0[RIV] = allocdist0_1_even; + distRIV2alloc_gap1_even_LUT100_1[RIV] = allocdist1_1_even; + distRIV2alloc_gap1_even_LUT100_2[RIV] = allocdist2_1_even; + distRIV2alloc_gap1_even_LUT100_3[RIV] = allocdist3_1_even; + distRIV2alloc_gap1_odd_LUT100_0[RIV] = allocdist0_1_odd; + distRIV2alloc_gap1_odd_LUT100_1[RIV] = allocdist1_1_odd; + distRIV2alloc_gap1_odd_LUT100_2[RIV] = allocdist2_1_odd; + distRIV2alloc_gap1_odd_LUT100_3[RIV] = allocdist3_1_odd; - RIV2nb_rb_LUT100[RIV] = Lcrbs; - RIV2first_rb_LUT100[RIV] = RBstart; + RIV2nb_rb_LUT100[RIV] = Lcrbs; + RIV2first_rb_LUT100[RIV] = RBstart; } } } @@ -801,51 +808,56 @@ void generate_RIV_tables() // n_tilde_PRB(0,1) = (0,2) -int8_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) +int8_t +find_dlsch (uint16_t rnti, PHY_VARS_eNB * eNB, find_type_t type) { - uint8_t i; - int8_t first_free_index=-1; + uint8_t i; + int8_t first_free_index = -1; - AssertFatal(eNB!=NULL,"eNB is null\n"); - for (i=0; idlsch[i]!=NULL,"eNB->dlsch[%d] is null\n",i); - AssertFatal(eNB->dlsch[i]!=NULL,"eNB->dlsch[%d][0] is null\n",i); - LOG_D(PHY,"searching for rnti %x : UE index %d=> harq_mask %x, rnti %x, first_free_index %d\n", - rnti,i,eNB->dlsch[i][0]->harq_mask,eNB->dlsch[i][0]->rnti,first_free_index); - if ((eNB->dlsch[i][0]->harq_mask >0) && - (eNB->dlsch[i][0]->rnti==rnti) && - (type!=SEARCH_FREE)) return i; - else if ((eNB->dlsch[i][0]->harq_mask == 0) && (first_free_index==-1)) first_free_index=i; + AssertFatal (eNB != NULL, "eNB is null\n"); + for (i = 0; i < NUMBER_OF_UE_MAX; i++) { + AssertFatal (eNB->dlsch[i] != NULL, "eNB->dlsch[%d] is null\n", i); + AssertFatal (eNB->dlsch[i] != NULL, "eNB->dlsch[%d][0] is null\n", i); + LOG_D (PHY, "searching for rnti %x : UE index %d=> harq_mask %x, rnti %x, first_free_index %d\n", rnti, i, eNB->dlsch[i][0]->harq_mask, eNB->dlsch[i][0]->rnti, first_free_index); + if ((eNB->dlsch[i][0]->harq_mask > 0) && (eNB->dlsch[i][0]->rnti == rnti) && (type != SEARCH_FREE)) + return i; + else if ((eNB->dlsch[i][0]->harq_mask == 0) && (first_free_index == -1)) + first_free_index = i; } - if (type == SEARCH_EXIST) return -1; + if (type == SEARCH_EXIST) + return -1; if (first_free_index != -1) eNB->dlsch[first_free_index][0]->rnti = 0; return first_free_index; } -int8_t find_ulsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) +int8_t +find_ulsch (uint16_t rnti, PHY_VARS_eNB * eNB, find_type_t type) { - uint8_t i; - int8_t first_free_index=-1; + uint8_t i; + int8_t first_free_index = -1; - AssertFatal(eNB!=NULL,"eNB is null\n"); - for (i=0; iulsch[i]!=NULL,"eNB->ulsch[%d] is null\n",i); - if ((eNB->ulsch[i]->harq_mask >0) && - (eNB->ulsch[i]->rnti==rnti)) return i; - else if ((eNB->ulsch[i]->harq_mask == 0) && (first_free_index==-1)) first_free_index=i; + AssertFatal (eNB != NULL, "eNB is null\n"); + for (i = 0; i < NUMBER_OF_UE_MAX; i++) { + AssertFatal (eNB->ulsch[i] != NULL, "eNB->ulsch[%d] is null\n", i); + if ((eNB->ulsch[i]->harq_mask > 0) && (eNB->ulsch[i]->rnti == rnti)) + return i; + else if ((eNB->ulsch[i]->harq_mask == 0) && (first_free_index == -1)) + first_free_index = i; } - if (type == SEARCH_EXIST) return -1; + if (type == SEARCH_EXIST) + return -1; if (first_free_index != -1) eNB->ulsch[first_free_index]->rnti = 0; return first_free_index; } -uint32_t get_rballoc(vrb_t vrb_type,uint16_t rb_alloc_dci) +uint32_t +get_rballoc (vrb_t vrb_type, uint16_t rb_alloc_dci) { - return(localRIV2alloc_LUT25[rb_alloc_dci]); + return (localRIV2alloc_LUT25[rb_alloc_dci]); } @@ -862,514 +874,517 @@ uint8_t get_transmission_mode(module_id_t Mod_id, uint8_t CC_id, rnti_t rnti) } */ -void fill_pdcch_order(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,nfapi_dl_config_dci_dl_pdu *pdu) +void +fill_pdcch_order (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, DCI_ALLOC_t * dci_alloc, nfapi_dl_config_dci_dl_pdu * pdu) { - LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; - nfapi_dl_config_dci_dl_pdu_rel8_t *rel8 = &pdu->dci_dl_pdu_rel8; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; + nfapi_dl_config_dci_dl_pdu_rel8_t *rel8 = &pdu->dci_dl_pdu_rel8; dci_alloc->firstCCE = rel8->cce_idx; - dci_alloc->L = rel8->aggregation_level; - dci_alloc->rnti = rel8->rnti; + dci_alloc->L = rel8->aggregation_level; + dci_alloc->rnti = rel8->rnti; dci_alloc->harq_pid = rel8->harq_process; - dci_alloc->ra_flag = 0; - dci_alloc->format = format1A; + dci_alloc->ra_flag = 0; + dci_alloc->format = format1A; - LOG_D(PHY,"NFAPI: DCI format %d, nCCE %d, L %d, rnti %x,harq_pid %d\n", - rel8->dci_format,rel8->cce_idx,rel8->aggregation_level,rel8->rnti,rel8->harq_process); + LOG_D (PHY, "NFAPI: DCI format %d, nCCE %d, L %d, rnti %x,harq_pid %d\n", rel8->dci_format, rel8->cce_idx, rel8->aggregation_level, rel8->rnti, rel8->harq_process); switch (fp->N_RB_DL) { case 6: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; } else { - dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_FDD_t; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_FDD_t; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 25: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_5MHz_TDD_1_6_t; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); + dci_alloc->dci_length = sizeof_DCI1A_5MHz_TDD_1_6_t; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1A_5MHz_FDD_t; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1A_5MHz_FDD_t; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 50: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_10MHz_TDD_1_6_t; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1A_10MHz_TDD_1_6_t; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1A_10MHz_FDD_t; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1A_10MHz_FDD_t; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 100: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1A_20MHz_FDD_t; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1A_20MHz_FDD_t; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; } - LOG_I(PHY,"%d.%d: DCI 1A: rnti %x, PDCCH order to do PRACH\n", - proc->frame_tx, proc->subframe_tx, rel8->rnti); + LOG_I (PHY, "%d.%d: DCI 1A: rnti %x, PDCCH order to do PRACH\n", proc->frame_tx, proc->subframe_tx, rel8->rnti); } -void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc,nfapi_dl_config_dci_dl_pdu *pdu) +void +fill_dci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, DCI_ALLOC_t * dci_alloc, nfapi_dl_config_dci_dl_pdu * pdu) { LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; + uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; nfapi_dl_config_dci_dl_pdu_rel8_t *rel8 = &pdu->dci_dl_pdu_rel8; /* check if this is a DCI 1A PDCCH order for RAPROC */ if (rel8->dci_format == NFAPI_DL_DCI_FORMAT_1A && rel8->rnti_type == 1) { - int full_rb; + int full_rb; switch (fp->N_RB_DL) { - case 6: full_rb = 63; break; - case 25: full_rb = 511; break; - case 50: full_rb = 2047; break; - case 100: full_rb = 8191; break; - default: abort(); + case 6: + full_rb = 63; + break; + case 25: + full_rb = 511; + break; + case 50: + full_rb = 2047; + break; + case 100: + full_rb = 8191; + break; + default: + abort (); } if (rel8->resource_block_coding == full_rb) - return fill_pdcch_order(eNB, proc, dci_alloc, pdu); + return fill_pdcch_order (eNB, proc, dci_alloc, pdu); } - LTE_eNB_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; - LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; - int beamforming_mode = 0; - int UE_id=-1; - int subframe = proc->subframe_tx; - int NPRB; - int TB0_active; - int TB1_active; - uint16_t DL_pmi_single=0; // This should be taken from DLSCH parameters for PUSCH precoding - uint8_t I_mcs = 0; - + LTE_eNB_DLSCH_t *dlsch0 = NULL, *dlsch1 = NULL; + LTE_DL_eNB_HARQ_t *dlsch0_harq = NULL, *dlsch1_harq = NULL; + int beamforming_mode = 0; + int UE_id = -1; + int subframe = proc->subframe_tx; + int frame = proc->frame_tx; + int NPRB; + int TB0_active; + int TB1_active; + uint16_t DL_pmi_single = 0; // This should be taken from DLSCH parameters for PUSCH precoding + uint8_t I_mcs = 0; + dci_alloc->firstCCE = rel8->cce_idx; - dci_alloc->L = rel8->aggregation_level; - dci_alloc->rnti = rel8->rnti; + dci_alloc->L = rel8->aggregation_level; + dci_alloc->rnti = rel8->rnti; dci_alloc->harq_pid = rel8->harq_process; - dci_alloc->ra_flag = 0; + dci_alloc->ra_flag = 0; - LOG_D(PHY,"NFAPI: DCI format %d, nCCE %d, L %d, rnti %x,harq_pid %d\n", - rel8->dci_format,rel8->cce_idx,rel8->aggregation_level,rel8->rnti,rel8->harq_process); - if ((rel8->rnti_type == 2 ) && (rel8->rnti != SI_RNTI) && (rel8->rnti != P_RNTI)) dci_alloc->ra_flag = 1; + LOG_D (PHY, "NFAPI: DCI format %d, nCCE %d, L %d, rnti %x,harq_pid %d\n", rel8->dci_format, rel8->cce_idx, rel8->aggregation_level, rel8->rnti, rel8->harq_process); + if ((rel8->rnti_type == 2) && (rel8->rnti != SI_RNTI) && (rel8->rnti != P_RNTI)) + dci_alloc->ra_flag = 1; - UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE); - AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); - AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); + UE_id = find_dlsch (rel8->rnti, eNB, SEARCH_EXIST_OR_FREE); + AssertFatal (UE_id != -1, "no free or exiting dlsch_context\n"); + AssertFatal (UE_id < NUMBER_OF_UE_MAX, "returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n", UE_id, NUMBER_OF_UE_MAX); dlsch0 = eNB->dlsch[UE_id][0]; dlsch1 = eNB->dlsch[UE_id][1]; - - beamforming_mode = eNB->transmission_mode[(uint8_t)UE_id]<7?0:eNB->transmission_mode[(uint8_t)UE_id]; - dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; - dlsch0_harq->codeword = 0; - dlsch1_harq = dlsch1->harq_processes[rel8->harq_process]; - dlsch1_harq->codeword = 1; - dlsch0->subframe_tx[subframe] = 1; - if (dlsch0->rnti != rel8->rnti) { // if rnti of dlsch is not the same as in the config, this is a new entry - dlsch0_harq->round=0; - dlsch0->harq_mask=0; + beamforming_mode = eNB->transmission_mode[(uint8_t) UE_id] < 7 ? 0 : eNB->transmission_mode[(uint8_t) UE_id]; + dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; + dlsch0_harq->codeword = 0; + dlsch1_harq = dlsch1->harq_processes[rel8->harq_process]; + dlsch1_harq->codeword = 1; + dlsch0->subframe_tx[subframe] = 1; + if (dlsch0->rnti != rel8->rnti) { // if rnti of dlsch is not the same as in the config, this is a new entry + dlsch0_harq->round = 0; + dlsch0->harq_mask = 0; } - if ((dlsch0->harq_mask & (1<harq_process)) > 0 ) { + if ((dlsch0->harq_mask & (1 << rel8->harq_process)) > 0) { if (rel8->new_data_indicator_1 != dlsch0_harq->ndi) - dlsch0_harq->round=0; - } - else { // process is inactive, so activate and set round to 0 - dlsch0_harq->round=0; + dlsch0_harq->round = 0; + } else { // process is inactive, so activate and set round to 0 + dlsch0_harq->round = 0; } dlsch0_harq->ndi = rel8->new_data_indicator_1; - dlsch0->active = 1; + dlsch0->active = 1; if (rel8->rnti_type == 2) - dlsch0_harq->round = 0; -LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n",rel8->harq_process,dlsch0->harq_mask,dlsch0_harq->round, - dlsch0_harq->ndi,rel8->new_data_indicator_1, rel8->rnti_type); + dlsch0_harq->round = 0; + LOG_D (PHY, "NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n", rel8->harq_process, dlsch0->harq_mask, dlsch0_harq->round, + dlsch0_harq->ndi, rel8->new_data_indicator_1, rel8->rnti_type); switch (rel8->dci_format) { case NFAPI_DL_DCI_FORMAT_1A: - AssertFatal(rel8->resource_block_coding < 8192, "Frame %d, Subframe %d: rel8->resource_block_coding (%p) %u >= 8192 (rnti %x, rnti_type %d, format %d, harq_id %d\n", - proc->frame_tx,subframe, - &rel8->resource_block_coding,rel8->resource_block_coding,rel8->rnti,rel8->rnti_type,rel8->dci_format,rel8->harq_process); - + AssertFatal (rel8->resource_block_coding < 8192, "Frame %d, Subframe %d: rel8->resource_block_coding (%p) %u >= 8192 (rnti %x, rnti_type %d, format %d, harq_id %d\n", + proc->frame_tx, subframe, &rel8->resource_block_coding, rel8->resource_block_coding, rel8->rnti, rel8->rnti_type, rel8->dci_format, rel8->harq_process); - dci_alloc->format = format1A; + + dci_alloc->format = format1A; switch (fp->N_RB_DL) { case 6: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - + dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_TDD_1_6_t; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + } else { - dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_FDD_t; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1A_1_5MHz_FDD_t; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } - AssertFatal(rel8->virtual_resource_block_assignment_flag==LOCALIZED,"Distributed RB allocation not done yet\n"); - dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT6[rel8->resource_block_coding]; - dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; - dlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rel8->resource_block_coding];//NPRB; + AssertFatal (rel8->virtual_resource_block_assignment_flag == LOCALIZED, "Distributed RB allocation not done yet\n"); + dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT6[rel8->resource_block_coding]; + dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; + dlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rel8->resource_block_coding]; //NPRB; break; case 25: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_5MHz_TDD_1_6_t; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); + dci_alloc->dci_length = sizeof_DCI1A_5MHz_TDD_1_6_t; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1A_5MHz_FDD_t; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_5MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1A_5MHz_FDD_t; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_5MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } - AssertFatal(rel8->virtual_resource_block_assignment_flag==LOCALIZED,"Distributed RB allocation not done yet\n"); - dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT25[rel8->resource_block_coding]; - dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; - dlsch0_harq->nb_rb = RIV2nb_rb_LUT25[rel8->resource_block_coding];//NPRB; + AssertFatal (rel8->virtual_resource_block_assignment_flag == LOCALIZED, "Distributed RB allocation not done yet\n"); + dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT25[rel8->resource_block_coding]; + dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; + dlsch0_harq->nb_rb = RIV2nb_rb_LUT25[rel8->resource_block_coding]; //NPRB; break; case 50: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_10MHz_TDD_1_6_t; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1A_10MHz_TDD_1_6_t; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1A_10MHz_FDD_t; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_10MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); + dci_alloc->dci_length = sizeof_DCI1A_10MHz_FDD_t; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_10MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } - AssertFatal(rel8->virtual_resource_block_assignment_flag==LOCALIZED,"Distributed RB allocation not done yet\n"); - dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT50_0[rel8->resource_block_coding]; - dlsch0_harq->rb_alloc[1] = localRIV2alloc_LUT50_1[rel8->resource_block_coding]; - dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; - dlsch0_harq->nb_rb = RIV2nb_rb_LUT50[rel8->resource_block_coding];//NPRB; + AssertFatal (rel8->virtual_resource_block_assignment_flag == LOCALIZED, "Distributed RB allocation not done yet\n"); + dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT50_0[rel8->resource_block_coding]; + dlsch0_harq->rb_alloc[1] = localRIV2alloc_LUT50_1[rel8->resource_block_coding]; + dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; + dlsch0_harq->nb_rb = RIV2nb_rb_LUT50[rel8->resource_block_coding]; //NPRB; break; case 100: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->type = 1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1A_20MHz_TDD_1_6_t; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->type = 1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1A_20MHz_FDD_t; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->type = 1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1A_20MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); + dci_alloc->dci_length = sizeof_DCI1A_20MHz_FDD_t; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->type = 1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->vrb_type = rel8->virtual_resource_block_assignment_flag; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1A_20MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + // printf("FDD 1A: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } - AssertFatal(rel8->virtual_resource_block_assignment_flag==LOCALIZED,"Distributed RB allocation not done yet\n"); - dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT100_0[rel8->resource_block_coding]; - dlsch0_harq->rb_alloc[1] = localRIV2alloc_LUT100_1[rel8->resource_block_coding]; - dlsch0_harq->rb_alloc[2] = localRIV2alloc_LUT100_2[rel8->resource_block_coding]; - dlsch0_harq->rb_alloc[3] = localRIV2alloc_LUT100_3[rel8->resource_block_coding]; - dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; - dlsch0_harq->nb_rb = RIV2nb_rb_LUT100[rel8->resource_block_coding];//NPRB; + AssertFatal (rel8->virtual_resource_block_assignment_flag == LOCALIZED, "Distributed RB allocation not done yet\n"); + dlsch0_harq->rb_alloc[0] = localRIV2alloc_LUT100_0[rel8->resource_block_coding]; + dlsch0_harq->rb_alloc[1] = localRIV2alloc_LUT100_1[rel8->resource_block_coding]; + dlsch0_harq->rb_alloc[2] = localRIV2alloc_LUT100_2[rel8->resource_block_coding]; + dlsch0_harq->rb_alloc[3] = localRIV2alloc_LUT100_3[rel8->resource_block_coding]; + dlsch0_harq->vrb_type = rel8->virtual_resource_block_assignment_flag; + dlsch0_harq->nb_rb = RIV2nb_rb_LUT100[rel8->resource_block_coding]; //NPRB; break; } - if (rel8->rnti_type == 2 ) { + if (rel8->rnti_type == 2) { // see 36-212 V8.6.0 p. 45 - NPRB = (rel8->tpc&1)+2; + NPRB = (rel8->tpc & 1) + 2; // 36-213 sec.7.1.7.2 p.26 - I_mcs = rel8->mcs_1; + I_mcs = rel8->mcs_1; + } else { + NPRB = dlsch0_harq->nb_rb; + I_mcs = get_I_TBS (rel8->mcs_1); } - else { - NPRB = dlsch0_harq->nb_rb; - I_mcs = get_I_TBS(rel8->mcs_1); - } - AssertFatal(NPRB>0,"DCI 1A: NPRB = 0 (rnti %x, rnti type %d, tpc %d, round %d, resource_block_coding %d)\n",rel8->rnti,rel8->rnti_type,rel8->tpc,dlsch0_harq->round,rel8->resource_block_coding); - dlsch0_harq->rvidx = rel8->redundancy_version_1; - dlsch0_harq->Nl = 1; - dlsch0_harq->mimo_mode = (fp->nb_antenna_ports_eNB == 1) ? SISO : ALAMOUTI; - dlsch0_harq->dl_power_off = 1; - - + AssertFatal (NPRB > 0, "DCI 1A: NPRB = 0 (rnti %x, rnti type %d, tpc %d, round %d, resource_block_coding %d)\n", rel8->rnti, rel8->rnti_type, rel8->tpc, dlsch0_harq->round, + rel8->resource_block_coding); + dlsch0_harq->rvidx = rel8->redundancy_version_1; + dlsch0_harq->Nl = 1; + dlsch0_harq->mimo_mode = (fp->nb_antenna_ports_eNB == 1) ? SISO : ALAMOUTI; + dlsch0_harq->dl_power_off = 1; - dlsch0_harq->mcs = rel8->mcs_1; - dlsch0_harq->Qm = 2; - dlsch0_harq->TBS = TBStable[I_mcs][NPRB-1]; - LOG_D(PHY,"DCI_1A: I_mcs %d, NPRB %d, TBS %d\n",I_mcs,NPRB,dlsch0_harq->TBS); - dlsch0->harq_ids[subframe] = rel8->harq_process; - dlsch0->active = 1; - dlsch0->rnti = rel8->rnti; - dlsch0->harq_ids[subframe] = rel8->harq_process; + + + dlsch0_harq->mcs = rel8->mcs_1; + dlsch0_harq->Qm = 2; + dlsch0_harq->TBS = TBStable[I_mcs][NPRB - 1]; + LOG_D (PHY, "DCI_1A: I_mcs %d, NPRB %d, TBS %d\n", I_mcs, NPRB, dlsch0_harq->TBS); + dlsch0->harq_ids[subframe] = rel8->harq_process; + dlsch0->active = 1; + dlsch0->rnti = rel8->rnti; + dlsch0->harq_ids[subframe] = rel8->harq_process; if (dlsch0_harq->round == 0) dlsch0_harq->status = ACTIVE; - dlsch0->harq_mask |= (1<harq_process); + dlsch0->harq_mask |= (1 << rel8->harq_process); - if (rel8->rnti_type == 1) LOG_D(PHY,"DCI 1A: round %d, mcs %d, rballoc %x,rv %d, rnti %x\n",dlsch0_harq->round,rel8->mcs_1,rel8->resource_block_coding,rel8->redundancy_version_1,rel8->rnti); + if (rel8->rnti_type == 1) + LOG_D (PHY, "DCI 1A: round %d, mcs %d, rballoc %x,rv %d, rnti %x\n", dlsch0_harq->round, rel8->mcs_1, rel8->resource_block_coding, rel8->redundancy_version_1, rel8->rnti); break; case NFAPI_DL_DCI_FORMAT_1: - dci_alloc->format = format1; - dlsch0->active = 1; + dci_alloc->format = format1; + dlsch0->active = 1; - LOG_D(PHY,"Frame %d, Subframe %d: Programming DLSCH for Format 1 DCI, harq_pid %d\n",proc->frame_tx,subframe,rel8->harq_process); + LOG_D (PHY, "Frame %d, Subframe %d: Programming DLSCH for Format 1 DCI, harq_pid %d\n", proc->frame_tx, subframe, rel8->harq_process); switch (fp->N_RB_DL) { case 6: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1_1_5MHz_TDD_t; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1_1_5MHz_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1_1_5MHz_TDD_t; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1_1_5MHz_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1_1_5MHz_FDD_t; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_1_5MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1_1_5MHz_FDD_t; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_1_5MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 25: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1_5MHz_TDD_t; - ((DCI1_5MHz_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_5MHz_TDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_5MHz_TDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_5MHz_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_5MHz_TDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_5MHz_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_5MHz_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1_5MHz_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1_5MHz_TDD_t; + ((DCI1_5MHz_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_5MHz_TDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_5MHz_TDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_5MHz_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_5MHz_TDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_5MHz_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_5MHz_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1_5MHz_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1_5MHz_FDD_t; - ((DCI1_5MHz_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_5MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_5MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_5MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_5MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_5MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_5MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1_5MHz_FDD_t; + ((DCI1_5MHz_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_5MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_5MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_5MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_5MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_5MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_5MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; // printf("FDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 50: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1_10MHz_TDD_t; - ((DCI1_10MHz_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_10MHz_TDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_10MHz_TDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_10MHz_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_10MHz_TDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_10MHz_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_10MHz_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1_10MHz_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1_10MHz_TDD_t; + ((DCI1_10MHz_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_10MHz_TDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_10MHz_TDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_10MHz_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_10MHz_TDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_10MHz_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_10MHz_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1_10MHz_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1_10MHz_FDD_t; - ((DCI1_10MHz_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_10MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_10MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_10MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_10MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_10MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_10MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1_10MHz_FDD_t; + ((DCI1_10MHz_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_10MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_10MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_10MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_10MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_10MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_10MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; } break; case 100: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI1_20MHz_TDD_t; - ((DCI1_20MHz_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_20MHz_TDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_20MHz_TDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_20MHz_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_20MHz_TDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_20MHz_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_20MHz_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI1_20MHz_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI1_20MHz_TDD_t; + ((DCI1_20MHz_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_20MHz_TDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_20MHz_TDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_20MHz_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_20MHz_TDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_20MHz_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_20MHz_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI1_20MHz_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI1_20MHz_FDD_t; - ((DCI1_20MHz_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI1_20MHz_FDD_t *)dci_pdu)->mcs = rel8->mcs_1; - ((DCI1_20MHz_FDD_t *)dci_pdu)->ndi = rel8->new_data_indicator_1; - ((DCI1_20MHz_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI1_20MHz_FDD_t *)dci_pdu)->rv = rel8->redundancy_version_1; - ((DCI1_20MHz_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI1_20MHz_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; + dci_alloc->dci_length = sizeof_DCI1_20MHz_FDD_t; + ((DCI1_20MHz_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI1_20MHz_FDD_t *) dci_pdu)->mcs = rel8->mcs_1; + ((DCI1_20MHz_FDD_t *) dci_pdu)->ndi = rel8->new_data_indicator_1; + ((DCI1_20MHz_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI1_20MHz_FDD_t *) dci_pdu)->rv = rel8->redundancy_version_1; + ((DCI1_20MHz_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI1_20MHz_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; } break; } - AssertFatal(rel8->harq_process<8,"Format 1: harq_pid=%d >= 8\n", rel8->harq_process); + AssertFatal (rel8->harq_process < 8, "Format 1: harq_pid=%d >= 8\n", rel8->harq_process); dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; - dlsch0_harq->codeword=0; + dlsch0_harq->codeword = 0; // printf("DCI: Setting subframe_tx for subframe %d\n",subframe); dlsch0->subframe_tx[subframe] = 1; - conv_rballoc(rel8->resource_allocation_type, - rel8->resource_block_coding, - fp->N_RB_DL, - dlsch0_harq->rb_alloc); + conv_rballoc (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); - dlsch0_harq->nb_rb = conv_nprb(rel8->resource_allocation_type, - rel8->resource_block_coding, - fp->N_RB_DL); + dlsch0_harq->nb_rb = conv_nprb (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL); - NPRB = dlsch0_harq->nb_rb; + NPRB = dlsch0_harq->nb_rb; - AssertFatal(NPRB>0,"NPRB == 0\n"); + AssertFatal (NPRB > 0, "NPRB == 0\n"); - dlsch0_harq->rvidx = rel8->redundancy_version_1; + dlsch0_harq->rvidx = rel8->redundancy_version_1; - dlsch0_harq->Nl = 1; + dlsch0_harq->Nl = 1; // dlsch[0]->layer_index = 0; if (beamforming_mode == 0) dlsch0_harq->mimo_mode = (fp->nb_antenna_ports_eNB == 1) ? SISO : ALAMOUTI; else if (beamforming_mode == 7) dlsch0_harq->mimo_mode = TM7; else - LOG_E(PHY,"Invalid beamforming mode %dL\n", beamforming_mode); + LOG_E (PHY, "Invalid beamforming mode %dL\n", beamforming_mode); dlsch0_harq->dl_power_off = 1; @@ -1382,16 +1397,16 @@ LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n" // printf("Setting DLSCH process %d to ACTIVE\n",rel8->harq_process); // MCS and TBS don't change across HARQ rounds - dlsch0_harq->mcs = rel8->mcs_1; - dlsch0_harq->Qm = get_Qm(rel8->mcs_1); - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][NPRB-1]; + dlsch0_harq->mcs = rel8->mcs_1; + dlsch0_harq->Qm = get_Qm (rel8->mcs_1); + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][NPRB - 1]; } - LOG_D(PHY,"DCI: Set harq_ids[%d] to %d (%p)\n",subframe,rel8->harq_process,dlsch0); + LOG_D (PHY, "DCI: Set harq_ids[%d] to %d (%p)\n", subframe, rel8->harq_process, dlsch0); dlsch0->harq_ids[subframe] = rel8->harq_process; - dlsch0->harq_mask |= (1<harq_process); + dlsch0->harq_mask |= (1 << rel8->harq_process); dlsch0->rnti = rel8->rnti; @@ -1400,138 +1415,138 @@ LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n" break; case NFAPI_DL_DCI_FORMAT_2A: - dci_alloc->format = format2A; + dci_alloc->format = format2A; switch (fp->N_RB_DL) { case 6: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2A_1_5MHz_2A_TDD_t; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI2A_1_5MHz_2A_TDD_t; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2A_1_5MHz_2A_FDD_t; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + dci_alloc->dci_length = sizeof_DCI2A_1_5MHz_2A_FDD_t; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; // printf("FDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 25: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2A_5MHz_2A_TDD_t; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI2A_5MHz_2A_TDD_t; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2A_5MHz_2A_FDD_t; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + dci_alloc->dci_length = sizeof_DCI2A_5MHz_2A_FDD_t; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; // printf("FDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 50: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2A_10MHz_2A_TDD_t; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI2A_10MHz_2A_TDD_t; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2A_10MHz_2A_FDD_t; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + dci_alloc->dci_length = sizeof_DCI2A_10MHz_2A_FDD_t; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; } break; case 100: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2A_20MHz_2A_TDD_t; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; + dci_alloc->dci_length = sizeof_DCI2A_20MHz_2A_TDD_t; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2A_20MHz_2A_FDD_t; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + dci_alloc->dci_length = sizeof_DCI2A_20MHz_2A_FDD_t; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; } break; } - AssertFatal(rel8->harq_process<8,"Format 2_2A: harq_pid=%d >= 8\n", rel8->harq_process); + AssertFatal (rel8->harq_process < 8, "Format 2_2A: harq_pid=%d >= 8\n", rel8->harq_process); // Flip the TB to codeword mapping as described in 5.3.3.1.5 of 36-212 V11.3.0 @@ -1553,154 +1568,148 @@ LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n" // printf("Setting DLSCH harq id %d to subframe %d\n",harq_pid,subframe); - conv_rballoc(rel8->resource_allocation_type, - rel8->resource_block_coding, - fp->N_RB_DL, - dlsch0_harq->rb_alloc); + conv_rballoc (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); - dlsch1_harq->rb_alloc[0] = dlsch0_harq->rb_alloc[0]; - dlsch0_harq->nb_rb = conv_nprb(rel8->resource_allocation_type, - rel8->resource_block_coding, - fp->N_RB_DL); - dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; + dlsch1_harq->rb_alloc[0] = dlsch0_harq->rb_alloc[0]; + dlsch0_harq->nb_rb = conv_nprb (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL); + dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; - AssertFatal(dlsch0_harq->nb_rb > 0,"nb_rb=0\n"); + AssertFatal (dlsch0_harq->nb_rb > 0, "nb_rb=0\n"); - dlsch0_harq->mcs = rel8->mcs_1; - dlsch1_harq->mcs = rel8->mcs_2; - dlsch0_harq->Qm = get_Qm(rel8->mcs_1); - dlsch1_harq->Qm = get_Qm(rel8->mcs_2); - dlsch0_harq->rvidx = rel8->redundancy_version_1; - dlsch1_harq->rvidx = rel8->redundancy_version_2; + dlsch0_harq->mcs = rel8->mcs_1; + dlsch1_harq->mcs = rel8->mcs_2; + dlsch0_harq->Qm = get_Qm (rel8->mcs_1); + dlsch1_harq->Qm = get_Qm (rel8->mcs_2); + dlsch0_harq->rvidx = rel8->redundancy_version_1; + dlsch1_harq->rvidx = rel8->redundancy_version_2; // assume both TBs are active - dlsch0_harq->Nl = 1; - dlsch1_harq->Nl = 1; + dlsch0_harq->Nl = 1; + dlsch1_harq->Nl = 1; dlsch0->active = 1; dlsch1->active = 1; - dlsch0->harq_mask |= (1<harq_process); - dlsch1->harq_mask |= (1<harq_process); + dlsch0->harq_mask |= (1 << rel8->harq_process); + dlsch1->harq_mask |= (1 << rel8->harq_process); // check if either TB is disabled (see 36-213 V11.3 Section ) if ((dlsch0_harq->rvidx == 1) && (dlsch0_harq->mcs == 0)) { dlsch0->active = 0; - dlsch0->harq_mask &= ~(1<harq_process); + dlsch0->harq_mask &= ~(1 << rel8->harq_process); } if ((dlsch1_harq->rvidx == 1) && (dlsch1_harq->mcs == 0)) { dlsch1->active = 0; - dlsch1->harq_mask &= ~(1<harq_process); + dlsch1->harq_mask &= ~(1 << rel8->harq_process); } - - // dlsch0_harq->dl_power_off = 0; - // dlsch1_harq->dl_power_off = 0; + // dlsch0_harq->dl_power_off = 0; + // dlsch1_harq->dl_power_off = 0; if (fp->nb_antenna_ports_eNB == 2) { - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch0_harq->nb_rb-1]; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][dlsch0_harq->nb_rb - 1]; - if ((dlsch0->active==1) && (dlsch1->active==1)) { + if ((dlsch0->active == 1) && (dlsch1->active == 1)) { dlsch0_harq->mimo_mode = LARGE_CDD; dlsch1_harq->mimo_mode = LARGE_CDD; dlsch0_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1; } else { - dlsch0_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->mimo_mode = ALAMOUTI; + dlsch0_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->mimo_mode = ALAMOUTI; } } else if (fp->nb_antenna_ports_eNB == 4) { // 4 antenna case - if ((dlsch0->active==1) && (dlsch1->active==1)) { + if ((dlsch0->active == 1) && (dlsch1->active == 1)) { switch (rel8->precoding_information) { - case 0: // one layer per transport block - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; + case 0: // one layer per transport block + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; dlsch0_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1; break; - case 1: // one-layers on TB 0, two on TB 1 - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->Nl = 2; - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][(dlsch1_harq->nb_rb<<1)-1]; + case 1: // one-layers on TB 0, two on TB 1 + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->Nl = 2; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][(dlsch1_harq->nb_rb << 1) - 1]; dlsch0_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1; break; - case 2: // two-layers on TB 0, two on TB 1 - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->Nl = 2; + case 2: // two-layers on TB 0, two on TB 1 + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch0_harq->Nl = 2; dlsch0_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1; if (fp->N_RB_DL <= 56) { - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1]; - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][(dlsch1_harq->nb_rb<<1)-1]; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][(dlsch0_harq->nb_rb << 1) - 1]; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][(dlsch1_harq->nb_rb << 1) - 1]; } else { - LOG_E(PHY,"Add implementation of Table 7.1.7.2.2-1 for two-layer TBS conversion with N_RB_DL > 56\n"); + LOG_E (PHY, "Add implementation of Table 7.1.7.2.2-1 for two-layer TBS conversion with N_RB_DL > 56\n"); } break; - case 3: // - LOG_E(PHY,"Illegal value (3) for TPMI in Format 2A DCI\n"); + case 3: // + LOG_E (PHY, "Illegal value (3) for TPMI in Format 2A DCI\n"); break; } } else if (dlsch0->active == 1) { switch (rel8->precoding_information) { - case 0: // one layer per transport block - dlsch0_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->mimo_mode = ALAMOUTI; - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; + case 0: // one layer per transport block + dlsch0_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->mimo_mode = ALAMOUTI; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; break; - case 1: // two-layers on TB 0 - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->Nl = 2; + case 1: // two-layers on TB 0 + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch0_harq->Nl = 2; dlsch0_harq->dl_power_off = 1; - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1]; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][(dlsch0_harq->nb_rb << 1) - 1]; break; - case 2: // two-layers on TB 0, two on TB 1 - case 3: // - LOG_E(PHY,"Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n",rel8->precoding_information); + case 2: // two-layers on TB 0, two on TB 1 + case 3: // + LOG_E (PHY, "Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n", rel8->precoding_information); break; } } else if (dlsch1->active == 1) { switch (rel8->precoding_information) { - case 0: // one layer per transport block - dlsch0_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch1_harq->nb_rb-1]; + case 0: // one layer per transport block + dlsch0_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][dlsch1_harq->nb_rb - 1]; break; - case 1: // two-layers on TB 0 - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->Nl = 2; + case 1: // two-layers on TB 0 + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->Nl = 2; dlsch1_harq->dl_power_off = 1; - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][(dlsch1_harq->nb_rb<<1)-1]; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][(dlsch1_harq->nb_rb << 1) - 1]; break; - case 2: // two-layers on TB 0, two on TB 1 - case 3: // - LOG_E(PHY,"Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n",rel8->precoding_information); + case 2: // two-layers on TB 0, two on TB 1 + case 3: // + LOG_E (PHY, "Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n", rel8->precoding_information); break; } } } else { - LOG_E(PHY,"Illegal number of antennas for eNB %d\n",fp->nb_antenna_ports_eNB); + LOG_E (PHY, "Illegal number of antennas for eNB %d\n", fp->nb_antenna_ports_eNB); } // reset HARQ process if this is the first transmission - if ((dlsch0->active==1) && (dlsch0_harq->round == 0)) + if ((dlsch0->active == 1) && (dlsch0_harq->round == 0)) dlsch0_harq->status = ACTIVE; - if ((dlsch1->active==1) && (dlsch1_harq->round == 0)) + if ((dlsch1->active == 1) && (dlsch1_harq->round == 0)) dlsch1_harq->status = ACTIVE; dlsch0->rnti = rel8->rnti; @@ -1708,147 +1717,147 @@ LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n" break; - + case NFAPI_DL_DCI_FORMAT_2: - dci_alloc->format = format2; + dci_alloc->format = format2; switch (fp->N_RB_DL) { case 6: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2_1_5MHz_2A_TDD_t; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - ((DCI2_1_5MHz_2A_TDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_1_5MHz_2A_TDD_t; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + ((DCI2_1_5MHz_2A_TDD_t *) dci_pdu)->tpmi = rel8->precoding_information; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2_1_5MHz_2A_FDD_t; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_1_5MHz_2A_FDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_1_5MHz_2A_FDD_t; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_1_5MHz_2A_FDD_t *) dci_pdu)->tpmi = rel8->precoding_information; // printf("FDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 25: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2_5MHz_2A_TDD_t; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_5MHz_2A_TDD_t; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->tpmi = rel8->precoding_information; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2_5MHz_2A_FDD_t; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_5MHz_2A_FDD_t; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->tpmi = rel8->precoding_information; // printf("FDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } break; case 50: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2_10MHz_2A_TDD_t; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_10MHz_2A_TDD_t; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->tpmi = rel8->precoding_information; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2_10MHz_2A_FDD_t; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_10MHz_2A_FDD_t; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->tpmi = rel8->precoding_information; } break; case 100: if (fp->frame_type == TDD) { - dci_alloc->dci_length = sizeof_DCI2_20MHz_2A_TDD_t; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->dai = rel8->downlink_assignment_index; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_20MHz_2A_TDD_t; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->dai = rel8->downlink_assignment_index; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->tpmi = rel8->precoding_information; // printf("TDD 1: mcs %d, rballoc %x,rv %d, NPRB %d\n",mcs,rballoc,rv,NPRB); } else { - dci_alloc->dci_length = sizeof_DCI2_20MHz_2A_FDD_t; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rah = rel8->resource_allocation_type; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->mcs1 = rel8->mcs_1; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->mcs2 = rel8->mcs_2; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->ndi1 = rel8->new_data_indicator_1; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->ndi2 = rel8->new_data_indicator_2; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rballoc = rel8->resource_block_coding; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rv1 = rel8->redundancy_version_1; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rv2 = rel8->redundancy_version_2; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->TPC = rel8->tpc; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->harq_pid = rel8->harq_process; - ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; - ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->tpmi = rel8->precoding_information; + dci_alloc->dci_length = sizeof_DCI2_20MHz_2A_FDD_t; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rah = rel8->resource_allocation_type; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->mcs1 = rel8->mcs_1; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->mcs2 = rel8->mcs_2; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->ndi1 = rel8->new_data_indicator_1; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->ndi2 = rel8->new_data_indicator_2; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rballoc = rel8->resource_block_coding; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rv1 = rel8->redundancy_version_1; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rv2 = rel8->redundancy_version_2; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->TPC = rel8->tpc; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->harq_pid = rel8->harq_process; + ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->tb_swap = rel8->transport_block_to_codeword_swap_flag; + ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->tpmi = rel8->precoding_information; } break; } - AssertFatal(rel8->harq_process>=8, "Format 2_2A: harq_pid=%d >= 8\n", rel8->harq_process); + AssertFatal (rel8->harq_process >= 8, "Format 2_2A: harq_pid=%d >= 8\n", rel8->harq_process); // Flip the TB to codeword mapping as described in 5.3.3.1.5 of 36-212 V11.3.0 @@ -1857,235 +1866,224 @@ LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n" TB1_active = 1; if ((rel8->redundancy_version_1 == 1) && (rel8->mcs_1 == 0)) { - TB0_active=0; + TB0_active = 0; } if ((rel8->redundancy_version_2 == 1) && (rel8->mcs_2 == 0)) { - TB1_active=0; + TB1_active = 0; } #ifdef DEBUG_HARQ - printf("RV0 = %d, RV1 = %d. MCS0 = %d, MCS1=%d\n", rel8->redundancy_version_1, rel8->redundancy_version_2, rel8->mcs_1, rel8->mcs_2); + printf ("RV0 = %d, RV1 = %d. MCS0 = %d, MCS1=%d\n", rel8->redundancy_version_1, rel8->redundancy_version_2, rel8->mcs_1, rel8->mcs_2); #endif - if (TB0_active && TB1_active && rel8->transport_block_to_codeword_swap_flag==0) { + if (TB0_active && TB1_active && rel8->transport_block_to_codeword_swap_flag == 0) { dlsch0->active = 1; dlsch1->active = 1; - dlsch0->harq_mask |= (1<harq_process); - dlsch1->harq_mask |= (1<harq_process); + dlsch0->harq_mask |= (1 << rel8->harq_process); + dlsch1->harq_mask |= (1 << rel8->harq_process); dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; dlsch1_harq = dlsch1->harq_processes[rel8->harq_process]; dlsch0_harq->mcs = rel8->mcs_1; dlsch1_harq->mcs = rel8->mcs_2; - dlsch0_harq->Qm = get_Qm(rel8->mcs_1); - dlsch1_harq->Qm = get_Qm(rel8->mcs_2); + dlsch0_harq->Qm = get_Qm (rel8->mcs_1); + dlsch1_harq->Qm = get_Qm (rel8->mcs_2); dlsch0_harq->rvidx = rel8->redundancy_version_1; dlsch1_harq->rvidx = rel8->redundancy_version_2; dlsch0_harq->status = ACTIVE; dlsch1_harq->status = ACTIVE; - dlsch0_harq->codeword=0; - dlsch1_harq->codeword=1; + dlsch0_harq->codeword = 0; + dlsch1_harq->codeword = 1; #ifdef DEBUG_HARQ - printf("\n ENB: BOTH ACTIVE\n"); + printf ("\n ENB: BOTH ACTIVE\n"); #endif - } - else if (TB0_active && TB1_active && rel8->transport_block_to_codeword_swap_flag==1) { + } else if (TB0_active && TB1_active && rel8->transport_block_to_codeword_swap_flag == 1) { dlsch0 = eNB->dlsch[UE_id][1]; dlsch1 = eNB->dlsch[UE_id][0]; dlsch0->active = 1; dlsch1->active = 1; - dlsch0->harq_mask |= (1<harq_process); - dlsch1->harq_mask |= (1<harq_process); + dlsch0->harq_mask |= (1 << rel8->harq_process); + dlsch1->harq_mask |= (1 << rel8->harq_process); dlsch1_harq = dlsch1->harq_processes[rel8->harq_process]; dlsch0_harq->mcs = rel8->mcs_1; dlsch1_harq->mcs = rel8->mcs_2; - dlsch0_harq->Qm = get_Qm(rel8->mcs_1); - dlsch1_harq->Qm = get_Qm(rel8->mcs_2); + dlsch0_harq->Qm = get_Qm (rel8->mcs_1); + dlsch1_harq->Qm = get_Qm (rel8->mcs_2); dlsch0_harq->rvidx = rel8->redundancy_version_1; dlsch1_harq->rvidx = rel8->redundancy_version_2; dlsch0_harq->status = ACTIVE; dlsch1_harq->status = ACTIVE; - dlsch0_harq->codeword=1; - dlsch1_harq->codeword=0; - } - else if (TB0_active && (TB1_active==0)) { + dlsch0_harq->codeword = 1; + dlsch1_harq->codeword = 0; + } else if (TB0_active && (TB1_active == 0)) { dlsch0->active = 1; - dlsch0->harq_mask |= (1<harq_process); + dlsch0->harq_mask |= (1 << rel8->harq_process); dlsch0_harq = dlsch0->harq_processes[rel8->harq_process]; dlsch0_harq->mcs = rel8->mcs_1; - dlsch0_harq->Qm = get_Qm(rel8->mcs_1); + dlsch0_harq->Qm = get_Qm (rel8->mcs_1); dlsch0_harq->rvidx = rel8->redundancy_version_1; dlsch0_harq->status = ACTIVE; dlsch0_harq->codeword = 0; - dlsch1=NULL; + dlsch1 = NULL; dlsch1_harq = NULL; #ifdef DEBUG_HARQ - printf("\n ENB: TB1 is deactivated, retransmit TB0 transmit in TM6\n"); + printf ("\n ENB: TB1 is deactivated, retransmit TB0 transmit in TM6\n"); #endif - } - else if ((TB0_active==0) && TB1_active) { + } else if ((TB0_active == 0) && TB1_active) { dlsch1->active = 1; - dlsch1->harq_mask |= (1<harq_process); + dlsch1->harq_mask |= (1 << rel8->harq_process); dlsch1_harq = dlsch1->harq_processes[rel8->harq_process]; dlsch1_harq->mcs = rel8->mcs_2; - dlsch1_harq->Qm = get_Qm(rel8->mcs_2); + dlsch1_harq->Qm = get_Qm (rel8->mcs_2); dlsch1_harq->rvidx = rel8->redundancy_version_2; dlsch1_harq->status = ACTIVE; dlsch1_harq->codeword = 0; - dlsch0=NULL; + dlsch0 = NULL; dlsch0_harq = NULL; #ifdef DEBUG_HARQ - printf("\n ENB: TB0 is deactivated, retransmit TB1 transmit in TM6\n"); + printf ("\n ENB: TB0 is deactivated, retransmit TB1 transmit in TM6\n"); #endif } - if (dlsch0 != NULL){ + if (dlsch0 != NULL) { dlsch0->subframe_tx[subframe] = 1; dlsch0->harq_ids[subframe] = rel8->harq_process; } - if (dlsch1_harq != NULL){ + if (dlsch1_harq != NULL) { dlsch1->harq_ids[subframe] = rel8->harq_process; } - if (dlsch0 != NULL ){ - conv_rballoc(rel8->resource_allocation_type, - rel8->resource_block_coding, - fp->N_RB_DL, - dlsch0_harq->rb_alloc); + if (dlsch0 != NULL) { + conv_rballoc (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); - dlsch0_harq->nb_rb = conv_nprb(rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL); + dlsch0_harq->nb_rb = conv_nprb (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL); - if (dlsch1 != NULL){ + if (dlsch1 != NULL) { dlsch1_harq->rb_alloc[0] = dlsch0_harq->rb_alloc[0]; dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; } - } else if ((dlsch0 == NULL ) && (dlsch1 != NULL )){ - conv_rballoc(rel8->resource_allocation_type, - rel8->resource_block_coding, - fp->N_RB_DL, - dlsch1_harq->rb_alloc); + } else if ((dlsch0 == NULL) && (dlsch1 != NULL)) { + conv_rballoc (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL, dlsch1_harq->rb_alloc); - dlsch1_harq->nb_rb = conv_nprb(rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL); + dlsch1_harq->nb_rb = conv_nprb (rel8->resource_allocation_type, rel8->resource_block_coding, fp->N_RB_DL); } - // assume both TBs are active if (dlsch0_harq != NULL) - dlsch0_harq->Nl = 1; + dlsch0_harq->Nl = 1; if (dlsch1_harq != NULL) - dlsch1_harq->Nl = 1; + dlsch1_harq->Nl = 1; // check if either TB is disabled (see 36-213 V11.3 Section ) if (fp->nb_antenna_ports_eNB == 2) { - if ((dlsch0 != NULL) && (dlsch1 != NULL)) { //two CW active + if ((dlsch0 != NULL) && (dlsch1 != NULL)) { //two CW active dlsch0_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1; - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch1_harq->nb_rb-1]; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][dlsch1_harq->nb_rb - 1]; switch (rel8->precoding_information) { case 0: - dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; - dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; - dlsch0_harq->pmi_alloc = pmi_extend(fp,0,1); - dlsch1_harq->pmi_alloc = pmi_extend(fp,0,1); + dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; + dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; + dlsch0_harq->pmi_alloc = pmi_extend (fp, 0, 1); + dlsch1_harq->pmi_alloc = pmi_extend (fp, 0, 1); break; case 1: - dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; - dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; - dlsch0_harq->pmi_alloc = pmi_extend(fp,1,1); - dlsch0_harq->pmi_alloc = pmi_extend(fp,1,1); + dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; + dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; + dlsch0_harq->pmi_alloc = pmi_extend (fp, 1, 1); + dlsch0_harq->pmi_alloc = pmi_extend (fp, 1, 1); break; - case 2: // PUSCH precoding - dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; - dlsch0_harq->pmi_alloc = DL_pmi_single; - dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; - dlsch1_harq->pmi_alloc = DL_pmi_single; + case 2: // PUSCH precoding + dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; + dlsch0_harq->pmi_alloc = DL_pmi_single; + dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; + dlsch1_harq->pmi_alloc = DL_pmi_single; break; default: break; } - } else if ((dlsch0 != NULL) && (dlsch1 == NULL)) { // only CW 0 active + } else if ((dlsch0 != NULL) && (dlsch1 == NULL)) { // only CW 0 active dlsch0_harq->dl_power_off = 1; - dlsch0_harq->TBS= TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; switch (rel8->precoding_information) { - case 0 : - dlsch0_harq->mimo_mode = ALAMOUTI; + case 0: + dlsch0_harq->mimo_mode = ALAMOUTI; break; case 1: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING11; - dlsch0_harq->pmi_alloc = pmi_extend(fp,0,0); + dlsch0_harq->mimo_mode = UNIFORM_PRECODING11; + dlsch0_harq->pmi_alloc = pmi_extend (fp, 0, 0); break; case 2: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING1m1; - dlsch0_harq->pmi_alloc = pmi_extend(fp,1,0); + dlsch0_harq->mimo_mode = UNIFORM_PRECODING1m1; + dlsch0_harq->pmi_alloc = pmi_extend (fp, 1, 0); break; case 3: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING1j; - dlsch0_harq->pmi_alloc = pmi_extend(fp,2,0); + dlsch0_harq->mimo_mode = UNIFORM_PRECODING1j; + dlsch0_harq->pmi_alloc = pmi_extend (fp, 2, 0); break; case 4: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING1mj; - dlsch0_harq->pmi_alloc = pmi_extend(fp,3,0); + dlsch0_harq->mimo_mode = UNIFORM_PRECODING1mj; + dlsch0_harq->pmi_alloc = pmi_extend (fp, 3, 0); break; case 5: - dlsch0_harq->mimo_mode = PUSCH_PRECODING0; - dlsch0_harq->pmi_alloc = DL_pmi_single; + dlsch0_harq->mimo_mode = PUSCH_PRECODING0; + dlsch0_harq->pmi_alloc = DL_pmi_single; break; case 6: - dlsch0_harq->mimo_mode = PUSCH_PRECODING1; - dlsch0_harq->pmi_alloc = DL_pmi_single; + dlsch0_harq->mimo_mode = PUSCH_PRECODING1; + dlsch0_harq->pmi_alloc = DL_pmi_single; break; } - } else if ((dlsch0 == NULL) && (dlsch1 != NULL)) { - dlsch1_harq->dl_power_off = 1; - dlsch1_harq->TBS= TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch1_harq->nb_rb-1]; - switch (rel8->precoding_information) { - case 0 : - dlsch1_harq->mimo_mode = ALAMOUTI; - break; - case 1: - dlsch1_harq->mimo_mode = UNIFORM_PRECODING11; - dlsch1_harq->pmi_alloc = pmi_extend(fp,0,0); - break; - case 2: - dlsch1_harq->mimo_mode = UNIFORM_PRECODING1m1; - dlsch1_harq->pmi_alloc = pmi_extend(fp,1,0); - break; - case 3: - dlsch1_harq->mimo_mode = UNIFORM_PRECODING1j; - dlsch1_harq->pmi_alloc = pmi_extend(fp,2,0); - break; - case 4: - dlsch1_harq->mimo_mode = UNIFORM_PRECODING1mj; - dlsch1_harq->pmi_alloc = pmi_extend(fp,3,0); - break; - case 5: - dlsch1_harq->mimo_mode = PUSCH_PRECODING0; - dlsch1_harq->pmi_alloc = DL_pmi_single; - break; - case 6: - dlsch1_harq->mimo_mode = PUSCH_PRECODING1; - dlsch1_harq->pmi_alloc = DL_pmi_single; - break; - } + } else if ((dlsch0 == NULL) && (dlsch1 != NULL)) { + dlsch1_harq->dl_power_off = 1; + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][dlsch1_harq->nb_rb - 1]; + switch (rel8->precoding_information) { + case 0: + dlsch1_harq->mimo_mode = ALAMOUTI; + break; + case 1: + dlsch1_harq->mimo_mode = UNIFORM_PRECODING11; + dlsch1_harq->pmi_alloc = pmi_extend (fp, 0, 0); + break; + case 2: + dlsch1_harq->mimo_mode = UNIFORM_PRECODING1m1; + dlsch1_harq->pmi_alloc = pmi_extend (fp, 1, 0); + break; + case 3: + dlsch1_harq->mimo_mode = UNIFORM_PRECODING1j; + dlsch1_harq->pmi_alloc = pmi_extend (fp, 2, 0); + break; + case 4: + dlsch1_harq->mimo_mode = UNIFORM_PRECODING1mj; + dlsch1_harq->pmi_alloc = pmi_extend (fp, 3, 0); + break; + case 5: + dlsch1_harq->mimo_mode = PUSCH_PRECODING0; + dlsch1_harq->pmi_alloc = DL_pmi_single; + break; + case 6: + dlsch1_harq->mimo_mode = PUSCH_PRECODING1; + dlsch1_harq->pmi_alloc = DL_pmi_single; + break; } + } } else if (fp->nb_antenna_ports_eNB == 4) { // fill in later } - // reset HARQ process if this is the first transmission - /* if (dlsch0_harq->round == 0) - dlsch0_harq->status = ACTIVE; + /* if (dlsch0_harq->round == 0) + dlsch0_harq->status = ACTIVE; - if (dlsch1_harq->round == 0) - dlsch1_harq->status = ACTIVE;*/ + if (dlsch1_harq->round == 0) + dlsch1_harq->status = ACTIVE; */ if (dlsch0_harq != NULL) dlsch0->rnti = rel8->rnti; if (dlsch1 != NULL) @@ -2095,285 +2093,281 @@ LOG_D(PHY,"NFAPI: harq_pid %d harq_mask %x, round %d ndi (%d,%d) rnti type %d\n" } if (dlsch0_harq) { - dlsch0_harq->frame = proc->frame_tx; + dlsch0_harq->frame = proc->frame_tx; dlsch0_harq->subframe = subframe; } if (dlsch1_harq) { - dlsch1_harq->frame = proc->frame_tx; + dlsch1_harq->frame = proc->frame_tx; dlsch1_harq->subframe = subframe; } - #ifdef DEBUG_DCI if (dlsch0) { - printf("dlsch0 eNB: dlsch0 %p\n",dlsch0); - printf("dlsch0 eNB: rnti %x\n",dlsch0->rnti); - printf("dlsch0 eNB: NBRB %d\n",dlsch0_harq->nb_rb); - printf("dlsch0 eNB: rballoc %x\n",dlsch0_harq->rb_alloc[0]); - printf("dlsch0 eNB: harq_pid %d\n",harq_pid); - printf("dlsch0 eNB: round %d\n",dlsch0_harq->round); - printf("dlsch0 eNB: rvidx %d\n",dlsch0_harq->rvidx); - printf("dlsch0 eNB: TBS %d (NPRB %d)\n",dlsch0_harq->TBS,NPRB); - printf("dlsch0 eNB: mcs %d\n",dlsch0_harq->mcs); - printf("dlsch0 eNB: tpmi %d\n",rel8->precoding_information); - printf("dlsch0 eNB: mimo_mode %d\n",dlsch0_harq->mimo_mode); + printf ("dlsch0 eNB: dlsch0 %p\n", dlsch0); + printf ("dlsch0 eNB: rnti %x\n", dlsch0->rnti); + printf ("dlsch0 eNB: NBRB %d\n", dlsch0_harq->nb_rb); + printf ("dlsch0 eNB: rballoc %x\n", dlsch0_harq->rb_alloc[0]); + printf ("dlsch0 eNB: harq_pid %d\n", harq_pid); + printf ("dlsch0 eNB: round %d\n", dlsch0_harq->round); + printf ("dlsch0 eNB: rvidx %d\n", dlsch0_harq->rvidx); + printf ("dlsch0 eNB: TBS %d (NPRB %d)\n", dlsch0_harq->TBS, NPRB); + printf ("dlsch0 eNB: mcs %d\n", dlsch0_harq->mcs); + printf ("dlsch0 eNB: tpmi %d\n", rel8->precoding_information); + printf ("dlsch0 eNB: mimo_mode %d\n", dlsch0_harq->mimo_mode); } - if (dlsch1) { - printf("dlsch1 eNB: dlsch1 %p\n",dlsch1); - printf("dlsch1 eNB: rnti %x\n",dlsch1->rnti); - printf("dlsch1 eNB: NBRB %d\n",dlsch1_harq->nb_rb); - printf("dlsch1 eNB: rballoc %x\n",dlsch1_harq->rb_alloc[0]); - printf("dlsch1 eNB: harq_pid %d\n",harq_pid); - printf("dlsch1 eNB: round %d\n",dlsch1_harq->round); - printf("dlsch1 eNB: rvidx %d\n",dlsch1_harq->rvidx); - printf("dlsch1 eNB: TBS %d (NPRB %d)\n",dlsch1_harq->TBS,NPRB); - printf("dlsch1 eNB: mcs %d\n",dlsch1_harq->mcs); - printf("dlsch1 eNB: tpmi %d\n",rel8->precoding_information); - printf("dlsch1 eNB: mimo_mode %d\n",dlsch1_harq->mimo_mode); + if (dlsch1) { + printf ("dlsch1 eNB: dlsch1 %p\n", dlsch1); + printf ("dlsch1 eNB: rnti %x\n", dlsch1->rnti); + printf ("dlsch1 eNB: NBRB %d\n", dlsch1_harq->nb_rb); + printf ("dlsch1 eNB: rballoc %x\n", dlsch1_harq->rb_alloc[0]); + printf ("dlsch1 eNB: harq_pid %d\n", harq_pid); + printf ("dlsch1 eNB: round %d\n", dlsch1_harq->round); + printf ("dlsch1 eNB: rvidx %d\n", dlsch1_harq->rvidx); + printf ("dlsch1 eNB: TBS %d (NPRB %d)\n", dlsch1_harq->TBS, NPRB); + printf ("dlsch1 eNB: mcs %d\n", dlsch1_harq->mcs); + printf ("dlsch1 eNB: tpmi %d\n", rel8->precoding_information); + printf ("dlsch1 eNB: mimo_mode %d\n", dlsch1_harq->mimo_mode); } - #endif - + #if T_TRACER if (dlsch0->active) - T(T_ENB_PHY_DLSCH_UE_DCI, T_INT(0), T_INT(proc->frame_tx), T_INT(proc->subframe_tx), - T_INT(rel8->rnti), T_INT(rel8->dci_format), T_INT(rel8->harq_process), - T_INT(rel8->mcs_1), T_INT(dlsch0_harq->TBS)); + T (T_ENB_PHY_DLSCH_UE_DCI, T_INT (0), T_INT (proc->frame_tx), T_INT (proc->subframe_tx), + T_INT (rel8->rnti), T_INT (rel8->dci_format), T_INT (rel8->harq_process), T_INT (rel8->mcs_1), T_INT (dlsch0_harq->TBS)); #endif } -void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *dci_alloc,nfapi_dl_config_mpdcch_pdu *pdu) { +void +fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci_alloc, nfapi_dl_config_mpdcch_pdu * pdu) +{ LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; + uint8_t *dci_pdu = &dci_alloc->dci_pdu[0]; nfapi_dl_config_mpdcch_pdu_rel13_t *rel13 = &pdu->mpdcch_pdu_rel13; - LTE_eNB_DLSCH_t *dlsch0=NULL; - LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL; - int UE_id; - int subframe = proc->subframe_tx; + LTE_eNB_DLSCH_t *dlsch0 = NULL; + LTE_DL_eNB_HARQ_t *dlsch0_harq = NULL; + int UE_id; + int subframe = proc->subframe_tx; + int frame = proc->frame_tx; - dci_alloc->firstCCE = rel13->ecce_index; - dci_alloc->L = rel13->aggregation_level; - dci_alloc->rnti = rel13->rnti; - dci_alloc->harq_pid = rel13->harq_process; - dci_alloc->narrowband = rel13->mpdcch_narrow_band; - dci_alloc->number_of_prb_pairs = rel13->number_of_prb_pairs; - dci_alloc->resource_block_assignment = rel13->resource_block_assignment; - dci_alloc->transmission_type = rel13->mpdcch_tansmission_type; - dci_alloc->start_symbol = rel13->start_symbol; - dci_alloc->ce_mode = rel13->ce_mode; - dci_alloc->dmrs_scrambling_init = rel13->drms_scrambling_init; - dci_alloc->i0 = rel13->initial_transmission_sf_io; + dci_alloc->firstCCE = rel13->ecce_index; + dci_alloc->L = rel13->aggregation_level; + dci_alloc->rnti = rel13->rnti; + dci_alloc->harq_pid = rel13->harq_process; + dci_alloc->narrowband = rel13->mpdcch_narrow_band; + dci_alloc->number_of_prb_pairs = rel13->number_of_prb_pairs; + dci_alloc->resource_block_assignment = rel13->resource_block_assignment; + dci_alloc->transmission_type = rel13->mpdcch_tansmission_type; + dci_alloc->start_symbol = rel13->start_symbol; + dci_alloc->ce_mode = rel13->ce_mode; + dci_alloc->dmrs_scrambling_init = rel13->drms_scrambling_init; + dci_alloc->i0 = rel13->initial_transmission_sf_io; - dci_alloc->ra_flag = 0; - if (rel13->rnti_type == 2 ) dci_alloc->ra_flag = 1; + dci_alloc->ra_flag = 0; + if (rel13->rnti_type == 2) + dci_alloc->ra_flag = 1; - UE_id = find_dlsch(rel13->rnti,eNB,SEARCH_EXIST_OR_FREE); - AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); - AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); + UE_id = find_dlsch (rel13->rnti, eNB, SEARCH_EXIST_OR_FREE); + AssertFatal (UE_id != -1, "no free or exiting dlsch_context\n"); + AssertFatal (UE_id < NUMBER_OF_UE_MAX, "returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n", UE_id, NUMBER_OF_UE_MAX); dlsch0 = eNB->dlsch[UE_id][0]; - dlsch0_harq = dlsch0->harq_processes[rel13->harq_process]; + dlsch0_harq = dlsch0->harq_processes[rel13->harq_process]; - AssertFatal(fp->frame_type==FDD,"TDD is not supported yet for eMTC\n"); - AssertFatal(fp->N_RB_DL==25 || fp->N_RB_DL==50 ||fp->N_RB_DL==100, - "eMTC only with N_RB_DL = 25,50,100\n"); + AssertFatal (fp->frame_type == FDD, "TDD is not supported yet for eMTC\n"); + AssertFatal (fp->N_RB_DL == 25 || fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "eMTC only with N_RB_DL = 25,50,100\n"); switch (rel13->dci_format) { - case 10: // Format 6-1A - dci_alloc->format = format6_1A; - dlsch0->active = 1; + case 10: // Format 6-1A + dci_alloc->format = format6_1A; + dlsch0->active = 1; switch (fp->N_RB_DL) { case 25: - dci_alloc->dci_length = sizeof_DCI6_1A_5MHz_t; - ((DCI6_1A_5MHz_t *)dci_pdu)->type = 1; - ((DCI6_1A_5MHz_t *)dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; - ((DCI6_1A_5MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1A_5MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_1A_5MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_1A_5MHz_t *)dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_1A_5MHz_t *)dci_pdu)->ndi = rel13->new_data_indicator; - ((DCI6_1A_5MHz_t *)dci_pdu)->rv = rel13->redundancy_version; - ((DCI6_1A_5MHz_t *)dci_pdu)->TPC = rel13->tpc; - ((DCI6_1A_5MHz_t *)dci_pdu)->srs_req = rel13->srs_request; - ((DCI6_1A_5MHz_t *)dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1A_5MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; - + dci_alloc->dci_length = sizeof_DCI6_1A_5MHz_t; + ((DCI6_1A_5MHz_t *) dci_pdu)->type = 1; + ((DCI6_1A_5MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; + ((DCI6_1A_5MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1A_5MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_1A_5MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1A_5MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_1A_5MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; + ((DCI6_1A_5MHz_t *) dci_pdu)->rv = rel13->redundancy_version; + ((DCI6_1A_5MHz_t *) dci_pdu)->TPC = rel13->tpc; + ((DCI6_1A_5MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_1A_5MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; + ((DCI6_1A_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + break; case 50: - dci_alloc->dci_length = sizeof_DCI6_1A_10MHz_t; - ((DCI6_1A_10MHz_t *)dci_pdu)->type = 1; - ((DCI6_1A_10MHz_t *)dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; - ((DCI6_1A_10MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1A_10MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_1A_10MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_1A_10MHz_t *)dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_1A_10MHz_t *)dci_pdu)->ndi = rel13->new_data_indicator; - ((DCI6_1A_10MHz_t *)dci_pdu)->rv = rel13->redundancy_version; - ((DCI6_1A_10MHz_t *)dci_pdu)->TPC = rel13->tpc; - ((DCI6_1A_10MHz_t *)dci_pdu)->srs_req = rel13->srs_request; - ((DCI6_1A_10MHz_t *)dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1A_10MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_1A_10MHz_t; + ((DCI6_1A_10MHz_t *) dci_pdu)->type = 1; + ((DCI6_1A_10MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; + ((DCI6_1A_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1A_10MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_1A_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_1A_10MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; + ((DCI6_1A_10MHz_t *) dci_pdu)->rv = rel13->redundancy_version; + ((DCI6_1A_10MHz_t *) dci_pdu)->TPC = rel13->tpc; + ((DCI6_1A_10MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_1A_10MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; + ((DCI6_1A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; break; case 100: - dci_alloc->dci_length = sizeof_DCI6_1A_20MHz_t; - ((DCI6_1A_20MHz_t *)dci_pdu)->type = 1; - ((DCI6_1A_20MHz_t *)dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; - ((DCI6_1A_20MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1A_20MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_1A_20MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_1A_20MHz_t *)dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_1A_20MHz_t *)dci_pdu)->ndi = rel13->new_data_indicator; - ((DCI6_1A_20MHz_t *)dci_pdu)->rv = rel13->redundancy_version; - ((DCI6_1A_20MHz_t *)dci_pdu)->TPC = rel13->tpc; - ((DCI6_1A_20MHz_t *)dci_pdu)->srs_req = rel13->srs_request; - ((DCI6_1A_20MHz_t *)dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1A_20MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_1A_20MHz_t; + ((DCI6_1A_20MHz_t *) dci_pdu)->type = 1; + ((DCI6_1A_20MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; + ((DCI6_1A_20MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1A_20MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_1A_20MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1A_20MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_1A_20MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; + ((DCI6_1A_20MHz_t *) dci_pdu)->rv = rel13->redundancy_version; + ((DCI6_1A_20MHz_t *) dci_pdu)->TPC = rel13->tpc; + ((DCI6_1A_20MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_1A_20MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; + ((DCI6_1A_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; break; } break; - case 11: // Format 6-1B - dci_alloc->format = format6_1B; - dlsch0->active = 1; + case 11: // Format 6-1B + dci_alloc->format = format6_1B; + dlsch0->active = 1; switch (fp->N_RB_DL) { case 25: - dci_alloc->dci_length = sizeof_DCI6_1B_5MHz_t; - ((DCI6_1B_5MHz_t *)dci_pdu)->type = 1; - ((DCI6_1B_5MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1B_5MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_1B_5MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_1B_5MHz_t *)dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_1B_5MHz_t *)dci_pdu)->ndi = rel13->new_data_indicator; - ((DCI6_1B_5MHz_t *)dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1B_5MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; - + dci_alloc->dci_length = sizeof_DCI6_1B_5MHz_t; + ((DCI6_1B_5MHz_t *) dci_pdu)->type = 1; + ((DCI6_1B_5MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1B_5MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_1B_5MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1B_5MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_1B_5MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; + ((DCI6_1B_5MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; + ((DCI6_1B_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + break; case 50: - dci_alloc->dci_length = sizeof_DCI6_1B_10MHz_t; - ((DCI6_1B_10MHz_t *)dci_pdu)->type = 1; - ((DCI6_1B_10MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1B_10MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_1B_10MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_1B_10MHz_t *)dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_1B_10MHz_t *)dci_pdu)->ndi = rel13->new_data_indicator; - ((DCI6_1B_10MHz_t *)dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1B_10MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_1B_10MHz_t; + ((DCI6_1B_10MHz_t *) dci_pdu)->type = 1; + ((DCI6_1B_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1B_10MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_1B_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1B_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_1B_10MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; + ((DCI6_1B_10MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; + ((DCI6_1B_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; break; case 100: - dci_alloc->dci_length = sizeof_DCI6_1B_20MHz_t; - ((DCI6_1B_20MHz_t *)dci_pdu)->type = 1; - ((DCI6_1B_20MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1B_20MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_1B_20MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_1B_20MHz_t *)dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_1B_20MHz_t *)dci_pdu)->ndi = rel13->new_data_indicator; - ((DCI6_1B_20MHz_t *)dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1B_20MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_1B_20MHz_t; + ((DCI6_1B_20MHz_t *) dci_pdu)->type = 1; + ((DCI6_1B_20MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1B_20MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_1B_20MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1B_20MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_1B_20MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; + ((DCI6_1B_20MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; + ((DCI6_1B_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; break; } - case 12: // Format 6-2 - dci_alloc->format = format6_2; - dlsch0->active = 1; + case 12: // Format 6-2 + dci_alloc->format = format6_2; + dlsch0->active = 1; switch (fp->N_RB_DL) { case 25: - dci_alloc->dci_length = sizeof_DCI6_2_5MHz_t; - if (rel13->paging_direct_indication_differentiation_flag==0) { - ((DCI6_2_di_5MHz_t *)dci_pdu)->type = 0; - ((DCI6_2_di_5MHz_t *)dci_pdu)->di_info = rel13->direct_indication; - } - else { - ((DCI6_2_paging_5MHz_t *)dci_pdu)->type = 1; - ((DCI6_2_paging_5MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_2_paging_5MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_2_paging_5MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_2_paging_5MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_2_5MHz_t; + if (rel13->paging_direct_indication_differentiation_flag == 0) { + ((DCI6_2_di_5MHz_t *) dci_pdu)->type = 0; + ((DCI6_2_di_5MHz_t *) dci_pdu)->di_info = rel13->direct_indication; + } else { + ((DCI6_2_paging_5MHz_t *) dci_pdu)->type = 1; + ((DCI6_2_paging_5MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_2_paging_5MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_2_paging_5MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_2_paging_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; } - break; + break; case 50: - dci_alloc->dci_length = sizeof_DCI6_2_10MHz_t; - if (rel13->paging_direct_indication_differentiation_flag==0) { - ((DCI6_2_di_10MHz_t *)dci_pdu)->type = 0; - ((DCI6_2_di_10MHz_t *)dci_pdu)->di_info = rel13->direct_indication; - } - else { - ((DCI6_2_paging_10MHz_t *)dci_pdu)->type = 1; - ((DCI6_2_paging_10MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_2_paging_10MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_2_paging_10MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_2_paging_10MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_2_10MHz_t; + if (rel13->paging_direct_indication_differentiation_flag == 0) { + ((DCI6_2_di_10MHz_t *) dci_pdu)->type = 0; + ((DCI6_2_di_10MHz_t *) dci_pdu)->di_info = rel13->direct_indication; + } else { + ((DCI6_2_paging_10MHz_t *) dci_pdu)->type = 1; + ((DCI6_2_paging_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_2_paging_10MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_2_paging_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_2_paging_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; } - break; + break; case 100: - dci_alloc->dci_length = sizeof_DCI6_2_20MHz_t; - if (rel13->paging_direct_indication_differentiation_flag==0) { - ((DCI6_2_di_20MHz_t *)dci_pdu)->type = 0; - ((DCI6_2_di_20MHz_t *)dci_pdu)->di_info = rel13->direct_indication; - } - else { - ((DCI6_2_paging_20MHz_t *)dci_pdu)->type = 1; - ((DCI6_2_paging_20MHz_t *)dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_2_paging_20MHz_t *)dci_pdu)->mcs = rel13->mcs; - ((DCI6_2_paging_20MHz_t *)dci_pdu)->rep = (rel13->pdsch_reptition_levels-1); - ((DCI6_2_paging_20MHz_t *)dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number-1; + dci_alloc->dci_length = sizeof_DCI6_2_20MHz_t; + if (rel13->paging_direct_indication_differentiation_flag == 0) { + ((DCI6_2_di_20MHz_t *) dci_pdu)->type = 0; + ((DCI6_2_di_20MHz_t *) dci_pdu)->di_info = rel13->direct_indication; + } else { + ((DCI6_2_paging_20MHz_t *) dci_pdu)->type = 1; + ((DCI6_2_paging_20MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_2_paging_20MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_2_paging_20MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_2_paging_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; } break; } } - AssertFatal(rel13->harq_process<8, - "ERROR: Format 6_1A: harq_pid=%d >= 8\n", rel13->harq_process); - + AssertFatal (rel13->harq_process < 8, "ERROR: Format 6_1A: harq_pid=%d >= 8\n", rel13->harq_process); + dlsch0_harq = dlsch0->harq_processes[rel13->harq_process]; - dlsch0_harq->codeword=0; - + dlsch0_harq->codeword = 0; + // printf("DCI: Setting subframe_tx for subframe %d\n",subframe); - dlsch0->subframe_tx[subframe] = 1; - - conv_eMTC_rballoc(rel13->resource_block_coding, - fp->N_RB_DL, - dlsch0_harq->rb_alloc); - - dlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rel13->resource_block_coding&31]; // this is the 6PRB RIV - - - dlsch0_harq->rvidx = rel13->redundancy_version; - - dlsch0_harq->Nl = 1; + dlsch0->subframe_tx[(subframe + 2) % 10] = 1; + + conv_eMTC_rballoc (rel13->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); + + dlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rel13->resource_block_coding & 31]; // this is the 6PRB RIV + + + dlsch0_harq->rvidx = rel13->redundancy_version; + + dlsch0_harq->Nl = 1; // dlsch[0]->layer_index = 0; // if (beamforming_mode == 0) dlsch0_harq->mimo_mode = (fp->nb_antenna_ports_eNB == 1) ? SISO : ALAMOUTI; - //else if (beamforming_mode == 7) - // dlsch0_harq->mimo_mode = TM7; - //else - //LOG_E(PHY,"Invalid beamforming mode %dL\n", beamforming_mode); - + //else if (beamforming_mode == 7) + // dlsch0_harq->mimo_mode = TM7; + //else + //LOG_E(PHY,"Invalid beamforming mode %dL\n", beamforming_mode); + dlsch0_harq->dl_power_off = 1; - + dlsch0->active = 1; - dlsch0->harq_mask |= (1<harq_process); - - + dlsch0->harq_mask |= (1 << rel13->harq_process); + + if (dlsch0_harq->round == 0) { dlsch0_harq->status = ACTIVE; // printf("Setting DLSCH process %d to ACTIVE\n",rel8->harq_process); // MCS and TBS don't change across HARQ rounds - dlsch0_harq->mcs = rel13->mcs; - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; - + dlsch0_harq->mcs = rel13->mcs; + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; + } - - dlsch0->harq_ids[subframe] = rel13->harq_process; - - - + + dlsch0->harq_ids[(subframe + 2) % 10] = rel13->harq_process; + dlsch0_harq->frame = (subframe >= 8) ? ((frame + 1) & 1023) : frame; + dlsch0_harq->subframe = (subframe + 2) % 10; + + + dlsch0->rnti = rel13->rnti; @@ -2384,583 +2378,536 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d } -void fill_dci0(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci_alloc, - nfapi_hi_dci0_dci_pdu *pdu) +void +fill_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, DCI_ALLOC_t * dci_alloc, nfapi_hi_dci0_dci_pdu * pdu) { LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; - uint32_t cqi_req = pdu->dci_pdu_rel8.cqi_csi_request; - uint32_t dai = pdu->dci_pdu_rel8.dl_assignment_index; - uint32_t cshift = pdu->dci_pdu_rel8.cyclic_shift_2_for_drms; - uint32_t TPC = pdu->dci_pdu_rel8.tpc; - uint32_t mcs = pdu->dci_pdu_rel8.mcs_1; - uint32_t hopping = pdu->dci_pdu_rel8.frequency_hopping_enabled_flag; - uint32_t rballoc = computeRIV(frame_parms->N_RB_DL, - pdu->dci_pdu_rel8.resource_block_start, - pdu->dci_pdu_rel8.number_of_resource_block); + uint32_t cqi_req = pdu->dci_pdu_rel8.cqi_csi_request; + uint32_t dai = pdu->dci_pdu_rel8.dl_assignment_index; + uint32_t cshift = pdu->dci_pdu_rel8.cyclic_shift_2_for_drms; + uint32_t TPC = pdu->dci_pdu_rel8.tpc; + uint32_t mcs = pdu->dci_pdu_rel8.mcs_1; + uint32_t hopping = pdu->dci_pdu_rel8.frequency_hopping_enabled_flag; + uint32_t rballoc = computeRIV (frame_parms->N_RB_DL, + pdu->dci_pdu_rel8.resource_block_start, + pdu->dci_pdu_rel8.number_of_resource_block); - uint32_t ndi = pdu->dci_pdu_rel8.new_data_indication_1; + uint32_t ndi = pdu->dci_pdu_rel8.new_data_indication_1; #ifdef T_TRACER - T(T_ENB_PHY_ULSCH_UE_DCI, T_INT(eNB->Mod_id), T_INT(proc->frame_tx), T_INT(proc->subframe_tx), - T_INT(pdu->dci_pdu_rel8.rnti), T_INT(((proc->frame_tx*10+proc->subframe_tx+4) % 8) /* TODO: correct harq pid */), - T_INT(mcs), T_INT(-1 /* TODO: remove round? */), - T_INT(pdu->dci_pdu_rel8.resource_block_start), - T_INT(pdu->dci_pdu_rel8.number_of_resource_block), - T_INT(get_TBS_UL(mcs, pdu->dci_pdu_rel8.number_of_resource_block) * 8), - T_INT(pdu->dci_pdu_rel8.aggregation_level), - T_INT(pdu->dci_pdu_rel8.cce_index)); + T (T_ENB_PHY_ULSCH_UE_DCI, T_INT (eNB->Mod_id), T_INT (proc->frame_tx), T_INT (proc->subframe_tx), + T_INT (pdu->dci_pdu_rel8.rnti), T_INT (((proc->frame_tx * 10 + proc->subframe_tx + 4) % 8) /* TODO: correct harq pid */ ), + T_INT (mcs), T_INT (-1 /* TODO: remove round? */ ), + T_INT (pdu->dci_pdu_rel8.resource_block_start), + T_INT (pdu->dci_pdu_rel8.number_of_resource_block), + T_INT (get_TBS_UL (mcs, pdu->dci_pdu_rel8.number_of_resource_block) * 8), T_INT (pdu->dci_pdu_rel8.aggregation_level), T_INT (pdu->dci_pdu_rel8.cce_index)); #endif - void *dci_pdu = (void*)dci_alloc->dci_pdu; + void *dci_pdu = (void *) dci_alloc->dci_pdu; - LOG_D(PHY,"Filling DCI0 with cqi %d, mcs %d, hopping %d, rballoc %x (%d,%d) ndi %d TPC %d cshift %d\n",cqi_req, - mcs,hopping,rballoc,pdu->dci_pdu_rel8.resource_block_start,pdu->dci_pdu_rel8.number_of_resource_block, - ndi,TPC,cshift); + LOG_D (PHY, "Filling DCI0 with cqi %d, mcs %d, hopping %d, rballoc %x (%d,%d) ndi %d TPC %d cshift %d\n", cqi_req, + mcs, hopping, rballoc, pdu->dci_pdu_rel8.resource_block_start, pdu->dci_pdu_rel8.number_of_resource_block, ndi, TPC, cshift); - dci_alloc->format = format0; + dci_alloc->format = format0; dci_alloc->firstCCE = pdu->dci_pdu_rel8.cce_index; - dci_alloc->L = pdu->dci_pdu_rel8.aggregation_level; - dci_alloc->rnti = pdu->dci_pdu_rel8.rnti; - dci_alloc->ra_flag = 0; + dci_alloc->L = pdu->dci_pdu_rel8.aggregation_level; + dci_alloc->rnti = pdu->dci_pdu_rel8.rnti; + dci_alloc->ra_flag = 0; switch (frame_parms->N_RB_DL) { case 6: if (frame_parms->frame_type == TDD) { - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->dai = dai; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->cshift = cshift; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->TPC = TPC; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->mcs = mcs; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->ndi = ndi; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->type = 0; - ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_1_5MHz_TDD_1_6_t; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->dai = dai; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->cshift = cshift; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->TPC = TPC; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->mcs = mcs; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->ndi = ndi; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->hopping = hopping; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->type = 0; + ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_1_5MHz_TDD_1_6_t; } else { - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->cshift = cshift; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->TPC = TPC; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->mcs = mcs; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->ndi = ndi; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->hopping = hopping; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->type = 0; - ((DCI0_1_5MHz_FDD_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_1_5MHz_FDD_t; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->cshift = cshift; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->TPC = TPC; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->mcs = mcs; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->ndi = ndi; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->hopping = hopping; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->type = 0; + ((DCI0_1_5MHz_FDD_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_1_5MHz_FDD_t; } - + break; - + case 25: if (frame_parms->frame_type == TDD) { - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->dai = dai; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift = cshift; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->TPC = TPC; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->mcs = mcs; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->ndi = ndi; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->type = 0; - ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_5MHz_TDD_1_6_t; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->dai = dai; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->cshift = cshift; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->TPC = TPC; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->mcs = mcs; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->ndi = ndi; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->hopping = hopping; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->type = 0; + ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_5MHz_TDD_1_6_t; } else { - ((DCI0_5MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_5MHz_FDD_t *)dci_pdu)->cshift = cshift; - ((DCI0_5MHz_FDD_t *)dci_pdu)->TPC = TPC; - ((DCI0_5MHz_FDD_t *)dci_pdu)->mcs = mcs; - ((DCI0_5MHz_FDD_t *)dci_pdu)->ndi = ndi; - ((DCI0_5MHz_FDD_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_5MHz_FDD_t *)dci_pdu)->hopping = hopping; - ((DCI0_5MHz_FDD_t *)dci_pdu)->type = 0; - ((DCI0_5MHz_FDD_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_5MHz_FDD_t; + ((DCI0_5MHz_FDD_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_5MHz_FDD_t *) dci_pdu)->cshift = cshift; + ((DCI0_5MHz_FDD_t *) dci_pdu)->TPC = TPC; + ((DCI0_5MHz_FDD_t *) dci_pdu)->mcs = mcs; + ((DCI0_5MHz_FDD_t *) dci_pdu)->ndi = ndi; + ((DCI0_5MHz_FDD_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_5MHz_FDD_t *) dci_pdu)->hopping = hopping; + ((DCI0_5MHz_FDD_t *) dci_pdu)->type = 0; + ((DCI0_5MHz_FDD_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_5MHz_FDD_t; } - + break; - + case 50: if (frame_parms->frame_type == TDD) { - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->dai = dai; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->cshift = cshift; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->TPC = TPC; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->mcs = mcs; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->ndi = ndi; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->type = 0; - ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_10MHz_TDD_1_6_t; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->dai = dai; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->cshift = cshift; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->TPC = TPC; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->mcs = mcs; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->ndi = ndi; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->hopping = hopping; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->type = 0; + ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_10MHz_TDD_1_6_t; } else { - ((DCI0_10MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_10MHz_FDD_t *)dci_pdu)->cshift = cshift; - ((DCI0_10MHz_FDD_t *)dci_pdu)->TPC = TPC; - ((DCI0_10MHz_FDD_t *)dci_pdu)->mcs = mcs; - ((DCI0_10MHz_FDD_t *)dci_pdu)->ndi = ndi; - ((DCI0_10MHz_FDD_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_10MHz_FDD_t *)dci_pdu)->hopping = hopping; - ((DCI0_10MHz_FDD_t *)dci_pdu)->type = 0; - ((DCI0_10MHz_FDD_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_10MHz_FDD_t; + ((DCI0_10MHz_FDD_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_10MHz_FDD_t *) dci_pdu)->cshift = cshift; + ((DCI0_10MHz_FDD_t *) dci_pdu)->TPC = TPC; + ((DCI0_10MHz_FDD_t *) dci_pdu)->mcs = mcs; + ((DCI0_10MHz_FDD_t *) dci_pdu)->ndi = ndi; + ((DCI0_10MHz_FDD_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_10MHz_FDD_t *) dci_pdu)->hopping = hopping; + ((DCI0_10MHz_FDD_t *) dci_pdu)->type = 0; + ((DCI0_10MHz_FDD_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_10MHz_FDD_t; } - + break; - + case 100: if (frame_parms->frame_type == TDD) { - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->dai = dai; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->cshift = cshift; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->TPC = TPC; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->mcs = mcs; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->ndi = ndi; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->hopping = hopping; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->type = 0; - ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->padding = 0; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->dai = dai; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->cshift = cshift; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->TPC = TPC; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->mcs = mcs; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->ndi = ndi; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->hopping = hopping; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->type = 0; + ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_20MHz_TDD_1_6_t; + dci_alloc->dci_length = sizeof_DCI0_20MHz_TDD_1_6_t; } else { - ((DCI0_20MHz_FDD_t *)dci_pdu)->cqi_req = cqi_req; - ((DCI0_20MHz_FDD_t *)dci_pdu)->cshift = cshift; - ((DCI0_20MHz_FDD_t *)dci_pdu)->TPC = TPC; - ((DCI0_20MHz_FDD_t *)dci_pdu)->mcs = mcs; - ((DCI0_20MHz_FDD_t *)dci_pdu)->ndi = ndi; - ((DCI0_20MHz_FDD_t *)dci_pdu)->rballoc = rballoc; - ((DCI0_20MHz_FDD_t *)dci_pdu)->hopping = hopping; - ((DCI0_20MHz_FDD_t *)dci_pdu)->type = 0; - ((DCI0_20MHz_FDD_t *)dci_pdu)->padding = 0; - dci_alloc->dci_length = sizeof_DCI0_20MHz_FDD_t; + ((DCI0_20MHz_FDD_t *) dci_pdu)->cqi_req = cqi_req; + ((DCI0_20MHz_FDD_t *) dci_pdu)->cshift = cshift; + ((DCI0_20MHz_FDD_t *) dci_pdu)->TPC = TPC; + ((DCI0_20MHz_FDD_t *) dci_pdu)->mcs = mcs; + ((DCI0_20MHz_FDD_t *) dci_pdu)->ndi = ndi; + ((DCI0_20MHz_FDD_t *) dci_pdu)->rballoc = rballoc; + ((DCI0_20MHz_FDD_t *) dci_pdu)->hopping = hopping; + ((DCI0_20MHz_FDD_t *) dci_pdu)->type = 0; + ((DCI0_20MHz_FDD_t *) dci_pdu)->padding = 0; + dci_alloc->dci_length = sizeof_DCI0_20MHz_FDD_t; } - - //printf("eNB: rb_alloc (20 MHz dci) %d\n",rballoc); - break; - + + //printf("eNB: rb_alloc (20 MHz dci) %d\n",rballoc); + break; + default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } -void fill_ulsch(PHY_VARS_eNB *eNB,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe) +void +fill_ulsch (PHY_VARS_eNB * eNB, nfapi_ul_config_ulsch_pdu * ulsch_pdu, int frame, int subframe) { - uint8_t harq_pid; - uint8_t UE_id; - boolean_t new_ulsch = (find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST)==-1) ? TRUE : FALSE; + uint8_t harq_pid; + uint8_t UE_id; + boolean_t new_ulsch = (find_ulsch (ulsch_pdu->ulsch_pdu_rel8.rnti, eNB, SEARCH_EXIST) == -1) ? TRUE : FALSE; - AssertFatal((UE_id=find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0, - "No existing/free UE ULSCH for rnti %x\n",ulsch_pdu->ulsch_pdu_rel8.rnti); + AssertFatal ((UE_id = find_ulsch (ulsch_pdu->ulsch_pdu_rel8.rnti, eNB, SEARCH_EXIST_OR_FREE)) >= 0, "No existing/free UE ULSCH for rnti %x\n", ulsch_pdu->ulsch_pdu_rel8.rnti); - LTE_eNB_ULSCH_t *ulsch=eNB->ulsch[UE_id]; + LTE_eNB_ULSCH_t *ulsch = eNB->ulsch[UE_id]; LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; - int use_srs = 0; + int use_srs = 0; harq_pid = ulsch_pdu->ulsch_pdu_rel8.harq_process_number; ulsch->harq_mask |= 1 << harq_pid; - ulsch->harq_processes[harq_pid]->frame = frame; - ulsch->harq_processes[harq_pid]->subframe = subframe; - ulsch->harq_processes[harq_pid]->handled = 0; + ulsch->harq_processes[harq_pid]->frame = frame; + ulsch->harq_processes[harq_pid]->subframe = subframe; + ulsch->harq_processes[harq_pid]->handled = 0; - ulsch->harq_processes[harq_pid]->first_rb = ulsch_pdu->ulsch_pdu_rel8.resource_block_start; - ulsch->harq_processes[harq_pid]->nb_rb = ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; + ulsch->harq_processes[harq_pid]->first_rb = ulsch_pdu->ulsch_pdu_rel8.resource_block_start; + ulsch->harq_processes[harq_pid]->nb_rb = ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; - AssertFatal(ulsch->harq_processes[harq_pid]->nb_rb>0,"nb_rb = 0\n"); + AssertFatal (ulsch->harq_processes[harq_pid]->nb_rb > 0, "nb_rb = 0\n"); - ulsch->harq_processes[harq_pid]->dci_alloc = 1; - ulsch->harq_processes[harq_pid]->rar_alloc = 0; - ulsch->harq_processes[harq_pid]->n_DMRS = ulsch_pdu->ulsch_pdu_rel8.cyclic_shift_2_for_drms; + ulsch->harq_processes[harq_pid]->dci_alloc = 1; + ulsch->harq_processes[harq_pid]->rar_alloc = 0; + ulsch->harq_processes[harq_pid]->n_DMRS = ulsch_pdu->ulsch_pdu_rel8.cyclic_shift_2_for_drms; - ulsch->harq_processes[harq_pid]->Nsymb_pusch = 12-(frame_parms->Ncp<<1)-(use_srs==0?0:1); - ulsch->harq_processes[harq_pid]->srs_active = use_srs; + ulsch->harq_processes[harq_pid]->Nsymb_pusch = 12 - (frame_parms->Ncp << 1) - (use_srs == 0 ? 0 : 1); + ulsch->harq_processes[harq_pid]->srs_active = use_srs; //Mapping of cyclic shift field in DCI format0 to n_DMRS2 (3GPP 36.211, Table 5.5.2.1.1-1) - if(ulsch->harq_processes[harq_pid]->n_DMRS == 0) + if (ulsch->harq_processes[harq_pid]->n_DMRS == 0) ulsch->harq_processes[harq_pid]->n_DMRS2 = 0; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 1) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 1) ulsch->harq_processes[harq_pid]->n_DMRS2 = 6; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 2) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 2) ulsch->harq_processes[harq_pid]->n_DMRS2 = 3; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 3) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 3) ulsch->harq_processes[harq_pid]->n_DMRS2 = 4; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 4) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 4) ulsch->harq_processes[harq_pid]->n_DMRS2 = 2; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 5) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 5) ulsch->harq_processes[harq_pid]->n_DMRS2 = 8; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 6) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 6) ulsch->harq_processes[harq_pid]->n_DMRS2 = 10; - else if(ulsch->harq_processes[harq_pid]->n_DMRS == 7) + else if (ulsch->harq_processes[harq_pid]->n_DMRS == 7) ulsch->harq_processes[harq_pid]->n_DMRS2 = 9; - LOG_D(PHY,"[eNB %d][PUSCH %d] Programming PUSCH with n_DMRS2 %d (cshift %d) for Frame %d, Subframe %d\n", - eNB->Mod_id,harq_pid,ulsch->harq_processes[harq_pid]->n_DMRS2,ulsch->harq_processes[harq_pid]->n_DMRS, - frame,subframe); + LOG_D (PHY, "[eNB %d][PUSCH %d] Programming PUSCH with n_DMRS2 %d (cshift %d) for Frame %d, Subframe %d\n", + eNB->Mod_id, harq_pid, ulsch->harq_processes[harq_pid]->n_DMRS2, ulsch->harq_processes[harq_pid]->n_DMRS, frame, subframe); ulsch->harq_processes[harq_pid]->rvidx = ulsch_pdu->ulsch_pdu_rel8.redundancy_version; - ulsch->harq_processes[harq_pid]->Qm = ulsch_pdu->ulsch_pdu_rel8.modulation_type; + ulsch->harq_processes[harq_pid]->Qm = ulsch_pdu->ulsch_pdu_rel8.modulation_type; // Set O_ACK to 0 by default, will be set of DLSCH is scheduled and needs to be - ulsch->harq_processes[harq_pid]->O_ACK = 0; + ulsch->harq_processes[harq_pid]->O_ACK = 0; - if ((ulsch->harq_processes[harq_pid]->status == SCH_IDLE) || - (ulsch->harq_processes[harq_pid]->ndi != ulsch_pdu->ulsch_pdu_rel8.new_data_indication) || - (new_ulsch == TRUE)){ - ulsch->harq_processes[harq_pid]->status = ACTIVE; + if ((ulsch->harq_processes[harq_pid]->status == SCH_IDLE) || (ulsch->harq_processes[harq_pid]->ndi != ulsch_pdu->ulsch_pdu_rel8.new_data_indication) || (new_ulsch == TRUE)) { + ulsch->harq_processes[harq_pid]->status = ACTIVE; - ulsch->harq_processes[harq_pid]->TBS = ulsch_pdu->ulsch_pdu_rel8.size<<3; + ulsch->harq_processes[harq_pid]->TBS = ulsch_pdu->ulsch_pdu_rel8.size << 3; - ulsch->harq_processes[harq_pid]->Msc_initial = 12*ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; + ulsch->harq_processes[harq_pid]->Msc_initial = 12 * ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; ulsch->harq_processes[harq_pid]->Nsymb_initial = ulsch->harq_processes[harq_pid]->Nsymb_pusch; - ulsch->harq_processes[harq_pid]->round = 0; - ulsch->harq_processes[harq_pid]->ndi = ulsch_pdu->ulsch_pdu_rel8.new_data_indication; + ulsch->harq_processes[harq_pid]->round = 0; + ulsch->harq_processes[harq_pid]->ndi = ulsch_pdu->ulsch_pdu_rel8.new_data_indication; // note here, the CQI bits need to be kept constant as in initial transmission // set to 0 in initial transmission, and don't touch them during retransmissions // will be set if MAC has activated ULSCH_CQI_RI_PDU or ULSCH_CQI_HARQ_RI_PDU - ulsch->harq_processes[harq_pid]->Or1 = 0; - ulsch->harq_processes[harq_pid]->Or2 = 0; - } - else ulsch->harq_processes[harq_pid]->round++; + ulsch->harq_processes[harq_pid]->Or1 = 0; + ulsch->harq_processes[harq_pid]->Or2 = 0; + } else + ulsch->harq_processes[harq_pid]->round++; ulsch->rnti = ulsch_pdu->ulsch_pdu_rel8.rnti; - LOG_D(PHY,"Filling ULSCH %x (UE_id %d) (new_ulsch %d) for Frame %d, Subframe %d : harq_pid %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n", - ulsch->rnti, - UE_id, - new_ulsch, - frame, - subframe, - harq_pid, - ulsch->harq_processes[harq_pid]->first_rb, - ulsch->harq_processes[harq_pid]->nb_rb, - ulsch->harq_processes[harq_pid]->rvidx, - ulsch->harq_processes[harq_pid]->Qm, - ulsch->harq_processes[harq_pid]->TBS, - ulsch->harq_processes[harq_pid]->round); + LOG_D (PHY, "Filling ULSCH %x (UE_id %d) (new_ulsch %d) for Frame %d, Subframe %d : harq_pid %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n", + ulsch->rnti, + UE_id, + new_ulsch, + frame, + subframe, + harq_pid, + ulsch->harq_processes[harq_pid]->first_rb, + ulsch->harq_processes[harq_pid]->nb_rb, + ulsch->harq_processes[harq_pid]->rvidx, ulsch->harq_processes[harq_pid]->Qm, ulsch->harq_processes[harq_pid]->TBS, ulsch->harq_processes[harq_pid]->round); } -int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci) +int +dump_dci (LTE_DL_FRAME_PARMS * frame_parms, DCI_ALLOC_t * dci) { switch (dci->format) { - case format0: // This is an UL SCH allocation so nothing here, inform MAC - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config>0)) - switch(frame_parms->N_RB_DL) { + case format0: // This is an UL SCH allocation so nothing here, inform MAC + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config > 0)) + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format0 (TDD, 1.5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai, - ((DCI0_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (TDD, 1.5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC, + ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cshift, ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai, ((DCI0_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cqi_req); break; case 25: - LOG_D(PHY,"DCI format0 (TDD1-6, 5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai, - ((DCI0_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (TDD1-6, 5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC, + ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cshift, ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai, ((DCI0_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cqi_req); break; case 50: - LOG_D(PHY,"DCI format0 (TDD1-6, 10MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai, - ((DCI0_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (TDD1-6, 10MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC, + ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cshift, ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai, ((DCI0_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cqi_req); break; case 100: - LOG_D(PHY,"DCI format0 (TDD1-6, 20MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai, - ((DCI0_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (TDD1-6, 20MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, dai %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC, + ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cshift, ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai, ((DCI0_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->cqi_req); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; - } - else if (frame_parms->frame_type == FDD) - switch(frame_parms->N_RB_DL) { + } else if (frame_parms->frame_type == FDD) + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format0 (FDD, 1.5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_1_5MHz_FDD_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (FDD, 1.5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->TPC, ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->cshift, ((DCI0_1_5MHz_FDD_t *) & dci->dci_pdu[0])->cqi_req); break; case 25: - LOG_D(PHY,"DCI format0 (FDD, 5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_5MHz_FDD_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (FDD, 5MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->TPC, ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->cshift, ((DCI0_5MHz_FDD_t *) & dci->dci_pdu[0])->cqi_req); break; case 50: - LOG_D(PHY,"DCI format0 (FDD, 10MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_10MHz_FDD_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (FDD, 10MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->TPC, ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->cshift, ((DCI0_10MHz_FDD_t *) & dci->dci_pdu[0])->cqi_req); break; case 100: - LOG_D(PHY,"DCI format0 (FDD, 20MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu[0])[0], - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->hopping, - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->cshift, - ((DCI0_20MHz_FDD_t *)&dci->dci_pdu[0])->cqi_req); + LOG_D (PHY, "DCI format0 (FDD, 20MHz), rnti %x (%x): hopping %d, rb_alloc %x, mcs %d, ndi %d, TPC %d, cshift %d, cqi_req %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu[0])[0], + ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->hopping, + ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->TPC, ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->cshift, ((DCI0_20MHz_FDD_t *) & dci->dci_pdu[0])->cqi_req); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; - } - else - LOG_E(PHY,"Don't know how to handle TDD format 0 yet\n"); + } else + LOG_E (PHY, "Don't know how to handle TDD format 0 yet\n"); break; case format1: - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config>0)) + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config > 0)) - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format1 (TDD 1.5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI1_1_5MHz_TDD_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1 (TDD 1.5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI1_1_5MHz_TDD_t *) & dci->dci_pdu[0])->dai); break; case 25: - LOG_D(PHY,"DCI format1 (TDD 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI1_5MHz_TDD_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1 (TDD 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->ndi, ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI1_5MHz_TDD_t *) & dci->dci_pdu[0])->dai); break; case 50: - LOG_D(PHY,"DCI format1 (TDD 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI1_10MHz_TDD_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1 (TDD 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI1_10MHz_TDD_t *) & dci->dci_pdu[0])->dai); break; case 100: - LOG_D(PHY,"DCI format1 (TDD 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI1_20MHz_TDD_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1 (TDD 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d, dai %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->ndi, + ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI1_20MHz_TDD_t *) & dci->dci_pdu[0])->dai); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; - } - else if (frame_parms->frame_type == FDD) { - switch(frame_parms->N_RB_DL) { + } else if (frame_parms->frame_type == FDD) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format1 (FDD, 1.5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_1_5MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1 (FDD, 1.5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->ndi, ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_1_5MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 25: - LOG_D(PHY,"DCI format1 (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_5MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1 (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->ndi, ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_5MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 50: - LOG_D(PHY,"DCI format1 (FDD, 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_10MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1 (FDD, 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->ndi, ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_10MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 100: - LOG_D(PHY,"DCI format1 (FDD, 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1_20MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1 (FDD, 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d, harq_pid %d, ndi %d, RV %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->ndi, ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->rv, ((DCI1_20MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } else - LOG_E(PHY,"Don't know how to handle TDD format 0 yet\n"); + LOG_E (PHY, "Don't know how to handle TDD format 0 yet\n"); break; - case format1A: // This is DLSCH allocation for control traffic - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config>0)) { + case format1A: // This is DLSCH allocation for control traffic + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config > 0)) { switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format1A (TDD1-6, 1_5MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT25[((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC); - LOG_D(PHY,"DAI %d\n",((DCI1A_1_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1A (TDD1-6, 1_5MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT25[((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DAI %d\n", ((DCI1A_1_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai); break; case 25: - LOG_D(PHY,"DCI format1A (TDD1-6, 5MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %d (NB_RB %d)\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT25[((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC); - LOG_D(PHY,"DAI %d\n",((DCI1A_5MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1A (TDD1-6, 5MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %d (NB_RB %d)\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT25[((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DAI %d\n", ((DCI1A_5MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai); break; case 50: - LOG_D(PHY,"DCI format1A (TDD1-6, 10MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT50[((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC); - LOG_D(PHY,"DAI %d\n",((DCI1A_10MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1A (TDD1-6, 10MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT50[((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DAI %d\n", ((DCI1A_10MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai); break; case 100: - LOG_D(PHY,"DCI format1A (TDD1-6, 20MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT100[((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->TPC); - LOG_D(PHY,"DAI %d\n",((DCI1A_20MHz_TDD_1_6_t *)&dci->dci_pdu[0])->dai); + LOG_D (PHY, "DCI format1A (TDD1-6, 20MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT100[((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DAI %d\n", ((DCI1A_20MHz_TDD_1_6_t *) & dci->dci_pdu[0])->dai); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } @@ -2968,51 +2915,51 @@ int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci) } else if (frame_parms->frame_type == FDD) { switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format1A(FDD, 1.5MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT25[((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_1_5MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1A(FDD, 1.5MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT25[((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_1_5MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 25: - LOG_D(PHY,"DCI format1A(FDD, 5MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT25[((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_5MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1A(FDD, 5MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT25[((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_5MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 50: - LOG_D(PHY,"DCI format1A(FDD, 10MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT50[((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_10MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1A(FDD, 10MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT50[((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_10MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 100: - LOG_D(PHY,"DCI format1A(FDD, 20MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"VRB_TYPE %d\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->vrb_type); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT100[((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->rballoc]); - LOG_D(PHY,"MCS %d\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->mcs); - LOG_D(PHY,"HARQ_PID %d\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->harq_pid); - LOG_D(PHY,"NDI %d\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->ndi); - LOG_D(PHY,"RV %d\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->rv); - LOG_D(PHY,"TPC %d\n",((DCI1A_20MHz_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format1A(FDD, 20MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "VRB_TYPE %d\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->vrb_type); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT100[((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->rballoc]); + LOG_D (PHY, "MCS %d\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->mcs); + LOG_D (PHY, "HARQ_PID %d\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->harq_pid); + LOG_D (PHY, "NDI %d\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->ndi); + LOG_D (PHY, "RV %d\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->rv); + LOG_D (PHY, "TPC %d\n", ((DCI1A_20MHz_FDD_t *) & dci->dci_pdu[0])->TPC); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } @@ -3020,40 +2967,39 @@ int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci) break; - case format1C: // This is DLSCH allocation for control traffic + case format1C: // This is DLSCH allocation for control traffic switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format1C (1.5MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n", - ((DCI1C_1_5MHz_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT6[conv_1C_RIV(((DCI1C_1_5MHz_t *)&dci->dci_pdu[0])->rballoc,6)]); - LOG_D(PHY,"MCS %d\n",((DCI1C_1_5MHz_t *)&dci->dci_pdu[0])->mcs); + LOG_D (PHY, "DCI format1C (1.5MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1C_1_5MHz_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT6[conv_1C_RIV (((DCI1C_1_5MHz_t *) & dci->dci_pdu[0])->rballoc, 6)]); + LOG_D (PHY, "MCS %d\n", ((DCI1C_1_5MHz_t *) & dci->dci_pdu[0])->mcs); break; case 25: - LOG_D(PHY,"DCI format1C (5MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1C_5MHz_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT25[conv_1C_RIV(((DCI1C_5MHz_t *)&dci->dci_pdu[0])->rballoc,25)]); - LOG_D(PHY,"MCS %d\n",((DCI1C_5MHz_t *)&dci->dci_pdu[0])->mcs); + LOG_D (PHY, "DCI format1C (5MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1C_5MHz_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT25[conv_1C_RIV (((DCI1C_5MHz_t *) & dci->dci_pdu[0])->rballoc, 25)]); + LOG_D (PHY, "MCS %d\n", ((DCI1C_5MHz_t *) & dci->dci_pdu[0])->mcs); break; case 50: - LOG_D(PHY,"DCI format1C (10MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"Ngap %d\n",((DCI1C_10MHz_t *)&dci->dci_pdu[0])->Ngap); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1C_10MHz_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT50[conv_1C_RIV(((DCI1C_10MHz_t *)&dci->dci_pdu[0])->rballoc,50)]); - LOG_D(PHY,"MCS %d\n",((DCI1C_10MHz_t *)&dci->dci_pdu[0])->mcs); + LOG_D (PHY, "DCI format1C (10MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "Ngap %d\n", ((DCI1C_10MHz_t *) & dci->dci_pdu[0])->Ngap); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1C_10MHz_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT50[conv_1C_RIV (((DCI1C_10MHz_t *) & dci->dci_pdu[0])->rballoc, 50)]); + LOG_D (PHY, "MCS %d\n", ((DCI1C_10MHz_t *) & dci->dci_pdu[0])->mcs); break; case 100: - LOG_D(PHY,"DCI format1C (20MHz), rnti %x (%x)\n",dci->rnti,((uint32_t*)&dci->dci_pdu[0])[0]); - LOG_D(PHY,"Ngap %d\n",((DCI1C_20MHz_t *)&dci->dci_pdu[0])->Ngap); - LOG_D(PHY,"RB_ALLOC %x (NB_RB %d)\n",((DCI1C_20MHz_t *)&dci->dci_pdu[0])->rballoc,RIV2nb_rb_LUT50[conv_1C_RIV(((DCI1C_20MHz_t *)&dci->dci_pdu[0])->rballoc,100)]); - LOG_D(PHY,"MCS %d\n",((DCI1C_20MHz_t *)&dci->dci_pdu[0])->mcs); + LOG_D (PHY, "DCI format1C (20MHz), rnti %x (%x)\n", dci->rnti, ((uint32_t *) & dci->dci_pdu[0])[0]); + LOG_D (PHY, "Ngap %d\n", ((DCI1C_20MHz_t *) & dci->dci_pdu[0])->Ngap); + LOG_D (PHY, "RB_ALLOC %x (NB_RB %d)\n", ((DCI1C_20MHz_t *) & dci->dci_pdu[0])->rballoc, RIV2nb_rb_LUT50[conv_1C_RIV (((DCI1C_20MHz_t *) & dci->dci_pdu[0])->rballoc, 100)]); + LOG_D (PHY, "MCS %d\n", ((DCI1C_20MHz_t *) & dci->dci_pdu[0])->mcs); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); - DevParam (frame_parms->N_RB_DL, 0, 0); - break; + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + DevParam (frame_parms->N_RB_DL, 0, 0); + break; } @@ -3061,332 +3007,296 @@ int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci) case format2: - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config>0)) { + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config > 0)) { if (frame_parms->nb_antenna_ports_eNB == 2) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2 2 antennas (TDD 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tbswap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->tpmi - ); + LOG_D (PHY, "DCI format2 2 antennas (TDD 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tbswap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 25: - LOG_D(PHY,"DCI format2 2 antennas (TDD 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, "DCI format2 2 antennas (TDD 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 50: - LOG_D(PHY,"DCI format2 2 antennas (TDD 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, "DCI format2 2 antennas (TDD 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 100: - LOG_D(PHY,"DCI format2 2 antennas (TDD 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, "DCI format2 2 antennas (TDD 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } else if (frame_parms->nb_antenna_ports_eNB == 4) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2 2 antennas (TDD 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tbswap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi - ); + LOG_D (PHY, "DCI format2 2 antennas (TDD 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tbswap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 25: - LOG_D(PHY,"DCI format2 2 antennas (TDD 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, "DCI format2 2 antennas (TDD 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 50: - LOG_D(PHY,"DCI format2 2 antennas (TDD 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, "DCI format2 2 antennas (TDD 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 100: - LOG_D(PHY,"DCI format2 2 antennas (TDD 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, "DCI format2 2 antennas (TDD 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, TPC %d, dai %d, tb_swap %d, tpmi %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, + ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } } else if (frame_parms->frame_type == FDD) { if (frame_parms->nb_antenna_ports_eNB == 2) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2 2 antennas (FDD, 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 2 antennas (FDD, 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 25: - LOG_D(PHY,"DCI format2 2 antennas (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, swap %d, TPMI %d, TPC %d\n", - - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 2 antennas (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, swap %d, TPMI %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 50: - LOG_D(PHY,"DCI format2 2 antennas (FDD, 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 2 antennas (FDD, 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 100: - LOG_D(PHY,"DCI format2 2 antennas (FDD, 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 2 antennas (FDD, 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } else if (frame_parms->nb_antenna_ports_eNB == 4) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2 4 antennas (FDD, 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 4 antennas (FDD, 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 25: - LOG_D(PHY,"DCI format2 4 antennas (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 4 antennas (FDD, 5 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 50: - LOG_D(PHY,"DCI format2 4 antennas (FDD, 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 4 antennas (FDD, 10 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 100: - LOG_D(PHY,"DCI format2 4 antennas (FDD, 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2 4 antennas (FDD, 20 MHz), rnti %x (%x): rah %d, rb_alloc %x, mcs %d|%d, harq_pid %d, ndi %d|%d, RV %d|%d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } @@ -3394,328 +3304,251 @@ int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci) } else - LOG_E(PHY,"Don't know how to handle TDD format 0 yet\n"); + LOG_E (PHY, "Don't know how to handle TDD format 0 yet\n"); break; case format2A: - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config>0)) { + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config > 0)) { if (frame_parms->nb_antenna_ports_eNB == 2) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2A 2 antennas (FDD 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_1_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap - ); + LOG_D (PHY, "DCI format2A 2 antennas (FDD 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_1_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap); break; case 25: - LOG_D(PHY,"DCI format2A 2 antennas (FDD 5 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_5MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap); + LOG_D (PHY, "DCI format2A 2 antennas (FDD 5 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_5MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap); break; case 50: - LOG_D(PHY,"DCI format2A 2 antennas (FDD 10 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_10MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap); + LOG_D (PHY, "DCI format2A 2 antennas (FDD 10 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_10MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap); break; case 100: - LOG_D(PHY,"DCI format2A 2 antennas (FDD 20 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_20MHz_2A_TDD_t *)&dci->dci_pdu[0])->tb_swap); + LOG_D (PHY, "DCI format2A 2 antennas (FDD 20 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_20MHz_2A_TDD_t *) & dci->dci_pdu[0])->tb_swap); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } else if (frame_parms->nb_antenna_ports_eNB == 4) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2A 4 antennas (TDD 1.5 MHz), rnti %x (%"PRIu64"): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_1_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi - ); + LOG_D (PHY, + "DCI format2A 4 antennas (TDD 1.5 MHz), rnti %x (%" PRIu64 "): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", + dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, + ((DCI2A_1_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 25: - LOG_D(PHY,"DCI format2A 4 antennas (TDD 5 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_5MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, + "DCI format2A 4 antennas (TDD 5 MHz), rnti %x (%" PRIu64 + "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rah, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, + ((DCI2A_5MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 50: - LOG_D(PHY,"DCI format2A 4 antennas (TDD 10 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_10MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, + "DCI format2A 4 antennas (TDD 10 MHz), rnti %x (%" PRIu64 + "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rah, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, + ((DCI2A_10MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; case 100: - LOG_D(PHY,"DCI format2A 4 antennas (TDD 20 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->TPC, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->dai, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_20MHz_4A_TDD_t *)&dci->dci_pdu[0])->tpmi); + LOG_D (PHY, + "DCI format2A 4 antennas (TDD 20 MHz), rnti %x (%" PRIu64 + "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, TPC %d, dai %d, tbswap %d, tpmi %d\n", dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rah, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rballoc, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->harq_pid, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv1, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->TPC, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->dai, ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->tb_swap, + ((DCI2A_20MHz_4A_TDD_t *) & dci->dci_pdu[0])->tpmi); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } } else if (frame_parms->frame_type == FDD) { if (frame_parms->nb_antenna_ports_eNB == 2) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2A 2 antennas (FDD, 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", - dci->rnti, - ((uint32_t*)&dci->dci_pdu)[0], - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_1_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2A 2 antennas (FDD, 1.5 MHz), rnti %x (%x): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", + dci->rnti, + ((uint32_t *) & dci->dci_pdu)[0], + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_1_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 25: - LOG_D(PHY,"DCI format2A 2 antennas (FDD, 5 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_5MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2A 2 antennas (FDD, 5 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_5MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 50: - LOG_D(PHY,"DCI format2A 2 antennas (FDD, 10 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_10MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2A 2 antennas (FDD, 10 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_10MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 100: - LOG_D(PHY,"DCI format2A 2 antennas (FDD, 20 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_20MHz_2A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2A 2 antennas (FDD, 20 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, TPC %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rah, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_20MHz_2A_FDD_t *) & dci->dci_pdu[0])->TPC); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } } else if (frame_parms->nb_antenna_ports_eNB == 4) { - switch(frame_parms->N_RB_DL) { + switch (frame_parms->N_RB_DL) { case 6: - LOG_D(PHY,"DCI format2A 4 antennas (FDD, 1.5 MHz), rnti %x (%"PRIu64"): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2A_1_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, "DCI format2A 4 antennas (FDD, 1.5 MHz), rnti %x (%" PRIu64 "): rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, + ((uint64_t *) & dci->dci_pdu)[0], + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, + ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI2A_1_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 25: - LOG_D(PHY,"DCI format2A 4 antennas (FDD, 5 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2A_5MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, + "DCI format2A 4 antennas (FDD, 5 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rah, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, + ((DCI2A_5MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 50: - LOG_D(PHY,"DCI format2A 4 antennas (FDD, 5 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2A_10MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, + "DCI format2A 4 antennas (FDD, 5 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rah, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, + ((DCI2A_10MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; case 100: - LOG_D(PHY,"DCI format2A 4 antennas (FDD, 5 MHz), rnti %x (%"PRIu64"): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", - dci->rnti, - ((uint64_t*)&dci->dci_pdu)[0], - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rah, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs1, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->mcs2, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->harq_pid, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi1, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->ndi2, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv1, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->rv2, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI2A_20MHz_4A_FDD_t *)&dci->dci_pdu[0])->TPC); + LOG_D (PHY, + "DCI format2A 4 antennas (FDD, 5 MHz), rnti %x (%" PRIu64 "): rah %d, rb_alloc %x, mcs1 %d, mcs2 %d, harq_pid %d, ndi1 %d, ndi2 %d, RV1 %d, RV2 %d, tb_swap %d, tpmi %d, TPC %d\n", + dci->rnti, ((uint64_t *) & dci->dci_pdu)[0], ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rah, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs1, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->mcs2, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->harq_pid, + ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi1, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->ndi2, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv1, + ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->rv2, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->tb_swap, ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->tpmi, + ((DCI2A_20MHz_4A_FDD_t *) & dci->dci_pdu[0])->TPC); break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } @@ -3723,2305 +3556,2126 @@ int dump_dci(LTE_DL_FRAME_PARMS *frame_parms, DCI_ALLOC_t *dci) } else - LOG_E(PHY,"Don't know how to handle TDD format 0 yet\n"); + LOG_E (PHY, "Don't know how to handle TDD format 0 yet\n"); break; case format1E_2A_M10PRB: - LOG_D(PHY,"DCI format1E_2A_M10PRB, rnti %x (%8x): harq_pid %d, rah %d, rb_alloc %x, mcs %d, rv %d, tpmi %d, ndi %d, dl_power_offset %d\n", - dci->rnti, - ((uint32_t *)&dci->dci_pdu)[0], - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->harq_pid, - //((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->tb_swap, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->rah, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->rballoc, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->mcs, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->rv, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->tpmi, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->ndi, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->dl_power_off - ); + LOG_D (PHY, "DCI format1E_2A_M10PRB, rnti %x (%8x): harq_pid %d, rah %d, rb_alloc %x, mcs %d, rv %d, tpmi %d, ndi %d, dl_power_offset %d\n", + dci->rnti, ((uint32_t *) & dci->dci_pdu)[0], ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->harq_pid, + //((DCI1E_5MHz_2A_M10PRB_TDD_t *)&dci->dci_pdu[0])->tb_swap, + ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->rah, + ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->rballoc, + ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->mcs, + ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->rv, + ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->tpmi, ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->ndi, ((DCI1E_5MHz_2A_M10PRB_TDD_t *) & dci->dci_pdu[0])->dl_power_off); break; default: - LOG_E(PHY,"dci_tools.c: dump_dci, unknown format %d\n",dci->format); - return(-1); + LOG_E (PHY, "dci_tools.c: dump_dci, unknown format %d\n", dci->format); + return (-1); } - return(0); + return (0); } -void extract_dci1A_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted) +void +extract_dci1A_info (uint8_t N_RB_DL, lte_frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t * pdci_info_extarcted) { - uint8_t harq_pid=0; - uint32_t rballoc=0; - uint8_t vrb_type=0; - uint8_t mcs=0; - uint8_t rv=0; - uint8_t ndi=0; - uint8_t TPC=0; + uint8_t harq_pid = 0; + uint32_t rballoc = 0; + uint8_t vrb_type = 0; + uint8_t mcs = 0; + uint8_t rv = 0; + uint8_t ndi = 0; + uint8_t TPC = 0; - uint8_t dai=0; + uint8_t dai = 0; - switch (N_RB_DL) { - case 6: - if (frame_type == TDD) { - vrb_type = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc; - rv = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->rv; - ndi = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->ndi; - TPC = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->harq_pid; - dai = ((DCI1A_1_5MHz_TDD_1_6_t *)dci_pdu)->dai; - // printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } else { - vrb_type = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->rv; - ndi = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->ndi; - TPC = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_1_5MHz_FDD_t *)dci_pdu)->harq_pid; - //printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } - break; - - case 25: - - if (frame_type == TDD) { - vrb_type = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->rballoc; - rv = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->rv; - ndi = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->ndi; - TPC = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->harq_pid; - dai = ((DCI1A_5MHz_TDD_1_6_t *)dci_pdu)->dai; - //printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } else { - vrb_type = ((DCI1A_5MHz_FDD_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_5MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_5MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1A_5MHz_FDD_t *)dci_pdu)->rv; - ndi = ((DCI1A_5MHz_FDD_t *)dci_pdu)->ndi; - TPC = ((DCI1A_5MHz_FDD_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_5MHz_FDD_t *)dci_pdu)->harq_pid; - //printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } - - break; - - case 50: - if (frame_type == TDD) { - vrb_type = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->rballoc; - rv = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->rv; - ndi = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->ndi; - TPC = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->harq_pid; - dai = ((DCI1A_10MHz_TDD_1_6_t *)dci_pdu)->dai; - // printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } else { - vrb_type = ((DCI1A_10MHz_FDD_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_10MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_10MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1A_10MHz_FDD_t *)dci_pdu)->rv; - ndi = ((DCI1A_10MHz_FDD_t *)dci_pdu)->ndi; - TPC = ((DCI1A_10MHz_FDD_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_10MHz_FDD_t *)dci_pdu)->harq_pid; - //printf("FDD 1A: mcs %d, vrb_type %d, rballoc %x,ndi %d, rv %d, TPC %d\n",mcs,vrb_type,rballoc,ndi,rv,TPC); - } - break; - - case 100: - if (frame_type == TDD) { - vrb_type = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->rballoc; - rv = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->rv; - ndi = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->ndi; - TPC = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->harq_pid; - dai = ((DCI1A_20MHz_TDD_1_6_t *)dci_pdu)->dai; - // printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } else { - vrb_type = ((DCI1A_20MHz_FDD_t *)dci_pdu)->vrb_type; - mcs = ((DCI1A_20MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1A_20MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1A_20MHz_FDD_t *)dci_pdu)->rv; - ndi = ((DCI1A_20MHz_FDD_t *)dci_pdu)->ndi; - TPC = ((DCI1A_20MHz_FDD_t *)dci_pdu)->TPC; - harq_pid = ((DCI1A_20MHz_FDD_t *)dci_pdu)->harq_pid; - //printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); - } - break; + switch (N_RB_DL) { + case 6: + if (frame_type == TDD) { + vrb_type = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->rballoc; + rv = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->rv; + ndi = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->ndi; + TPC = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->harq_pid; + dai = ((DCI1A_1_5MHz_TDD_1_6_t *) dci_pdu)->dai; + // printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); + } else { + vrb_type = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->rv; + ndi = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->ndi; + TPC = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_1_5MHz_FDD_t *) dci_pdu)->harq_pid; + //printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); } - - pdci_info_extarcted->vrb_type = vrb_type; - pdci_info_extarcted->mcs1 = mcs; - pdci_info_extarcted->rballoc = rballoc; - pdci_info_extarcted->rv1 = rv; - pdci_info_extarcted->ndi1 = ndi; - pdci_info_extarcted->TPC = TPC; - pdci_info_extarcted->harq_pid = harq_pid; - pdci_info_extarcted->dai = dai; -} - -void extract_dci1C_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted) -{ - - uint32_t rballoc=0; - uint8_t mcs=0; - - switch (N_RB_DL) { - case 6: - mcs = ((DCI1C_5MHz_t *)dci_pdu)->mcs; - rballoc = conv_1C_RIV(((DCI1C_5MHz_t *)dci_pdu)->rballoc,6); - - break; - - case 25: - mcs = ((DCI1C_5MHz_t *)dci_pdu)->mcs; - rballoc = conv_1C_RIV(((DCI1C_5MHz_t *)dci_pdu)->rballoc,6); - - break; - - case 50: - mcs = ((DCI1C_10MHz_t *)dci_pdu)->mcs; - rballoc = conv_1C_RIV(((DCI1C_10MHz_t *)dci_pdu)->rballoc,6); - - break; - - case 100: - mcs = ((DCI1C_20MHz_t *)dci_pdu)->mcs; - rballoc = conv_1C_RIV(((DCI1C_20MHz_t *)dci_pdu)->rballoc,6); - break; - - default: - AssertFatal(0,"Format 1C: Unknown N_RB_DL %d\n",N_RB_DL); - break; - } - - pdci_info_extarcted->mcs1 = mcs; - pdci_info_extarcted->rballoc = rballoc; -} - -void extract_dci1_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted) -{ - - uint32_t rballoc=0; - uint8_t mcs=0; - uint8_t rah=0; - uint8_t rv=0; - uint8_t TPC=0; - uint8_t ndi=0; - uint8_t harq_pid=0; - - switch (N_RB_DL) { - case 6: - if (frame_type == TDD) { - mcs = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->rah; - rv = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->rv; - TPC = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_1_5MHz_TDD_t *)dci_pdu)->harq_pid; - } else { - mcs = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->mcs; - rah = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->rah; - rballoc = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->rv; - TPC = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_1_5MHz_FDD_t *)dci_pdu)->harq_pid; - } - - break; - - case 25: - if (frame_type == TDD) { - mcs = ((DCI1_5MHz_TDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1_5MHz_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI1_5MHz_TDD_t *)dci_pdu)->rah; - rv = ((DCI1_5MHz_TDD_t *)dci_pdu)->rv; - TPC = ((DCI1_5MHz_TDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_5MHz_TDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_5MHz_TDD_t *)dci_pdu)->harq_pid; - } else { - mcs = ((DCI1_5MHz_FDD_t *)dci_pdu)->mcs; - rah = ((DCI1_5MHz_FDD_t *)dci_pdu)->rah; - rballoc = ((DCI1_5MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1_5MHz_FDD_t *)dci_pdu)->rv; - TPC = ((DCI1_5MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_5MHz_FDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_5MHz_FDD_t *)dci_pdu)->harq_pid; - } - - break; - - case 50: - if (frame_type == TDD) { - mcs = ((DCI1_10MHz_TDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1_10MHz_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI1_10MHz_TDD_t *)dci_pdu)->rah; - rv = ((DCI1_10MHz_TDD_t *)dci_pdu)->rv; - TPC = ((DCI1_10MHz_TDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_10MHz_TDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_10MHz_TDD_t *)dci_pdu)->harq_pid; - } else { - mcs = ((DCI1_10MHz_FDD_t *)dci_pdu)->mcs; - rah = ((DCI1_10MHz_FDD_t *)dci_pdu)->rah; - rballoc = ((DCI1_10MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1_10MHz_FDD_t *)dci_pdu)->rv; - TPC = ((DCI1_10MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_10MHz_FDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_10MHz_FDD_t *)dci_pdu)->harq_pid; - } - - break; - - case 100: - if (frame_type == TDD) { - mcs = ((DCI1_20MHz_TDD_t *)dci_pdu)->mcs; - rballoc = ((DCI1_20MHz_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI1_20MHz_TDD_t *)dci_pdu)->rah; - rv = ((DCI1_20MHz_TDD_t *)dci_pdu)->rv; - TPC = ((DCI1_20MHz_TDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_20MHz_TDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_20MHz_TDD_t *)dci_pdu)->harq_pid; - } else { - mcs = ((DCI1_20MHz_FDD_t *)dci_pdu)->mcs; - rah = ((DCI1_20MHz_FDD_t *)dci_pdu)->rah; - rballoc = ((DCI1_20MHz_FDD_t *)dci_pdu)->rballoc; - rv = ((DCI1_20MHz_FDD_t *)dci_pdu)->rv; - TPC = ((DCI1_20MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI1_20MHz_FDD_t *)dci_pdu)->ndi; - harq_pid = ((DCI1_20MHz_FDD_t *)dci_pdu)->harq_pid; - } - - break; - } - - pdci_info_extarcted->mcs1 = mcs; - pdci_info_extarcted->rah = rah; - pdci_info_extarcted->rballoc = rballoc; - pdci_info_extarcted->rv1 = rv; - pdci_info_extarcted->TPC = TPC; - pdci_info_extarcted->ndi1 = ndi; - pdci_info_extarcted->harq_pid = harq_pid; - -} - -void extract_dci2_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, uint8_t nb_antenna_ports_eNB, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted) -{ - - uint32_t rballoc=0; - uint8_t rah=0; - uint8_t mcs1=0; - uint8_t mcs2=0; - uint8_t rv1=0; - uint8_t rv2=0; - uint8_t ndi1=0; - uint8_t ndi2=0; - uint8_t tbswap=0; - uint8_t tpmi=0; - uint8_t harq_pid=0; - uint8_t TPC=0; - - switch (N_RB_DL) { - - case 6: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - rah = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->ndi2; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - rah = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->ndi2; - } - } else { - LOG_E(PHY,"UE: Format2 DCI: unsupported number of TX antennas %d\n",nb_antenna_ports_eNB); - } - - break; - - case 25: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - rah = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_2A_FDD_t *)dci_pdu)->ndi2; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - rah = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_4A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_2A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_5MHz_4A_FDD_t *)dci_pdu)->ndi2; - } - } else { - LOG_E(PHY,"UE: Format2 DCI: unsupported number of TX antennas %d\n",nb_antenna_ports_eNB); - } - - break; - - case 50: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - rah = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_10MHz_2A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_10MHz_2A_FDD_t *)dci_pdu)->ndi2; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - rah = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_10MHz_4A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_10MHz_4A_FDD_t *)dci_pdu)->ndi2; - } - } else { - LOG_E(PHY,"UE: Format2A DCI: unsupported number of TX antennas %d\n",nb_antenna_ports_eNB); - } - - break; - - case 100: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - rah = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_20MHz_2A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_20MHz_2A_FDD_t *)dci_pdu)->ndi2; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - rah = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_20MHz_4A_TDD_t *)dci_pdu)->ndi2; - } else { - rah = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->rah; - mcs1 = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->rv2; - harq_pid = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->TPC; - ndi1 = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2_20MHz_4A_FDD_t *)dci_pdu)->ndi2; - } - } else { - LOG_E(PHY,"UE: Format2A DCI: unsupported number of TX antennas %d\n",nb_antenna_ports_eNB); - } - - break; - } - - pdci_info_extarcted->rah = rah; - pdci_info_extarcted->mcs1 = mcs1; - pdci_info_extarcted->mcs2 = mcs2; - pdci_info_extarcted->rv1 = rv1; - pdci_info_extarcted->rv2 = rv2; - pdci_info_extarcted->harq_pid = harq_pid; - pdci_info_extarcted->rballoc = rballoc; - pdci_info_extarcted->tb_swap = tbswap; - pdci_info_extarcted->tpmi = tpmi; - pdci_info_extarcted->TPC = TPC; - pdci_info_extarcted->ndi1 = ndi1; - pdci_info_extarcted->ndi2 = ndi2; - -} - -void extract_dci2A_info(uint8_t N_RB_DL, lte_frame_type_t frame_type, uint8_t nb_antenna_ports_eNB, void *dci_pdu, DCI_INFO_EXTRACTED_t *pdci_info_extarcted) -{ - - uint32_t rballoc=0; - uint8_t rah=0; - uint8_t mcs1=0; - uint8_t mcs2=0; - uint8_t rv1=0; - uint8_t rv2=0; - uint8_t ndi1=0; - uint8_t ndi2=0; - uint8_t tbswap=0; - uint8_t tpmi=0; - uint8_t harq_pid=0; - uint8_t TPC=0; - - AssertFatal( (nb_antenna_ports_eNB == 2) || (nb_antenna_ports_eNB == 4), "unsupported nb_antenna_ports_eNB %d\n", nb_antenna_ports_eNB); - switch (N_RB_DL) { - - case 6: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_1_5MHz_2A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_1_5MHz_2A_FDD_t *)dci_pdu)->TPC; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_1_5MHz_4A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->rballoc; - rv1 = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_1_5MHz_4A_FDD_t *)dci_pdu)->TPC; - } - } - - break; - - case 25: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_5MHz_2A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_5MHz_2A_FDD_t *)dci_pdu)->TPC; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_5MHz_4A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_5MHz_4A_FDD_t *)dci_pdu)->TPC; - } - } - break; - - case 50: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_10MHz_2A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_10MHz_2A_FDD_t *)dci_pdu)->TPC; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_10MHz_4A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_10MHz_4A_FDD_t *)dci_pdu)->TPC; - } - } - - break; - - case 100: - if (nb_antenna_ports_eNB == 2) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_20MHz_2A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->tb_swap; - TPC = ((DCI2A_20MHz_2A_FDD_t *)dci_pdu)->TPC; - } - } else if (nb_antenna_ports_eNB == 4) { - if (frame_type == TDD) { - mcs1 = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_20MHz_4A_TDD_t *)dci_pdu)->TPC; - } else { - mcs1 = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->mcs1; - mcs2 = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->mcs2; - rballoc = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->rballoc; - rah = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->rah; - rv1 = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->rv1; - rv2 = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->rv2; - ndi1 = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->ndi1; - ndi2 = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->ndi2; - harq_pid = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->harq_pid; - tbswap = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->tb_swap; - tpmi = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->tpmi; - TPC = ((DCI2A_20MHz_4A_FDD_t *)dci_pdu)->TPC; - } - } - - break; - } - - pdci_info_extarcted->mcs1 = mcs1; - pdci_info_extarcted->mcs2 = mcs2; - pdci_info_extarcted->rballoc = rballoc; - pdci_info_extarcted->rah = rah; - pdci_info_extarcted->rv1 = rv1; - pdci_info_extarcted->rv2 = rv2; - pdci_info_extarcted->ndi1 = ndi1; - pdci_info_extarcted->ndi2 = ndi2; - pdci_info_extarcted->harq_pid = harq_pid; - pdci_info_extarcted->tb_swap = tbswap; - pdci_info_extarcted->TPC = TPC; - pdci_info_extarcted->tpmi = tpmi; -} - -int check_dci_format1_1a_coherency(DCI_format_t dci_format, - uint8_t N_RB_DL, - uint16_t rnti, - uint16_t tc_rnti, - uint16_t si_rnti, - uint16_t ra_rnti, - uint16_t p_rnti, - uint32_t frame, - uint8_t subframe, - DCI_INFO_EXTRACTED_t *pdci_info_extarcted, - LTE_DL_UE_HARQ_t *pdlsch0_harq) -{ - uint8_t harq_pid = pdci_info_extarcted->harq_pid; - uint32_t rballoc = pdci_info_extarcted->rballoc; - uint8_t mcs1 = pdci_info_extarcted->mcs1; - uint8_t TPC = pdci_info_extarcted->TPC; - uint8_t rah = pdci_info_extarcted->rah; -#ifdef DEBUG_DCI - uint8_t rv1 = pdci_info_extarcted->rv1; - uint8_t ndi1 = pdci_info_extarcted->ndi1; -#endif - - uint8_t NPRB = 0; - long long int RIV_max = 0; - -#ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1-1A] AbsSubframe %d.%d dci_format %d\n", frame, subframe, dci_format); - LOG_I(PHY,"[DCI-FORMAT-1-1A] rnti %x\n", rnti); - LOG_I(PHY,"[DCI-FORMAT-1-1A] harq_pid %d\n", harq_pid); - LOG_I(PHY,"[DCI-FORMAT-1-1A] rah %d\n", rah); - LOG_I(PHY,"[DCI-FORMAT-1-1A] rballoc %x\n", rballoc); - LOG_I(PHY,"[DCI-FORMAT-1-1A] mcs1 %d\n", mcs1); - LOG_I(PHY,"[DCI-FORMAT-1-1A] rv1 %d\n", rv1); - LOG_I(PHY,"[DCI-FORMAT-1-1A] ndi1 %d\n", ndi1); - LOG_I(PHY,"[DCI-FORMAT-1-1A] TPC %d\n", TPC); -#endif - - - // I- check dci content minimum coherency - if( ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) && harq_pid > 0) - { - return(0); - } - - if(harq_pid>=8) - { - LOG_I(PHY,"bad harq id \n"); - return(0); - } - - if(dci_format == format1 && ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) ) - { - LOG_I(PHY,"bad dci format \n"); - return(0); - } - - - if( mcs1 > 28) - { - if(pdlsch0_harq->round == 0) - { - LOG_I(PHY,"bad dci mcs + round \n"); - return(0); - } - - if((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) - { - LOG_I(PHY,"bad dci mcs + rnti \n"); - return(0); - } - } - - if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) - { - NPRB = (TPC&1) + 2; - switch (N_RB_DL) { - case 6: - RIV_max = RIV_max6; - break; - case 25: - RIV_max = RIV_max25; - break; - case 50: - RIV_max = RIV_max50; - break; - case 100: - RIV_max = RIV_max100; - break; - } - } - else - { - switch (N_RB_DL) { - case 6: - NPRB = RIV2nb_rb_LUT6[rballoc];//NPRB; - if(rah) - RIV_max = RIV_max6; - else - RIV_max = 0x3F; - break; - case 25: - NPRB = RIV2nb_rb_LUT25[rballoc];//NPRB; - if(rah) - RIV_max = RIV_max25; - else - RIV_max = 0x1FFF; - break; - case 50: - NPRB = RIV2nb_rb_LUT50[rballoc];//NPRB; - if(rah) - RIV_max = RIV_max50; - else - RIV_max = 0x1FFFF; - break; - case 100: - NPRB = RIV2nb_rb_LUT100[rballoc];//NPRB; - if(rah) - RIV_max = RIV_max100; - else - RIV_max = 0x1FFFFFF; - break; - } - } - - - if(dci_format == format1) - { - NPRB = conv_nprb(rah, rballoc, N_RB_DL); - } - - - if(rballoc > RIV_max) - { - LOG_I(PHY,"bad dci rballoc rballoc %d RIV_max %lld \n",rballoc, RIV_max); - // DCI false detection - return(0); - } - - if(NPRB == 0) - { - // DCI false detection - LOG_I(PHY,"bad NPRB = 0 \n"); - return(0); - } - - // this a retransmission - if(pdlsch0_harq->round>0) - { - // compare old TBS to new TBS - if((mcs1<29) && (pdlsch0_harq->TBS != TBStable[get_I_TBS(mcs1)][NPRB-1])) - { - // this is an eNB issue - // retransmisison but old and new TBS are different !!! - // work around, consider it as a new transmission - LOG_E(PHY,"Format1A Retransmission but TBS are different: consider it as new transmission !!! \n"); - pdlsch0_harq->round = 0; - //return(0); // ?? to cross check - } - } - - return(1); -} - -int check_dci_format1c_coherency(uint8_t N_RB_DL, - DCI_INFO_EXTRACTED_t *pdci_info_extarcted, - uint16_t rnti, - uint16_t si_rnti, - uint16_t ra_rnti, - uint16_t p_rnti, - LTE_DL_UE_HARQ_t *pdlsch0_harq) -{ - uint32_t rballoc = pdci_info_extarcted->rballoc; - - uint8_t NPRB = 0; - uint32_t RIV_max = 0; - - // I- check dci content minimum coherency - - if((rnti!=si_rnti) && (rnti!=p_rnti) && (rnti!=ra_rnti)) - return(0); - - switch (N_RB_DL) { - case 6: - NPRB = RIV2nb_rb_LUT6[rballoc];//NPRB; - RIV_max = RIV_max6; break; - case 25: - NPRB = RIV2nb_rb_LUT25[rballoc];//NPRB; - RIV_max = RIV_max25; + + case 25: + + if (frame_type == TDD) { + vrb_type = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->rballoc; + rv = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->rv; + ndi = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->ndi; + TPC = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->harq_pid; + dai = ((DCI1A_5MHz_TDD_1_6_t *) dci_pdu)->dai; + //printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); + } else { + vrb_type = ((DCI1A_5MHz_FDD_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_5MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_5MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1A_5MHz_FDD_t *) dci_pdu)->rv; + ndi = ((DCI1A_5MHz_FDD_t *) dci_pdu)->ndi; + TPC = ((DCI1A_5MHz_FDD_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_5MHz_FDD_t *) dci_pdu)->harq_pid; + //printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); + } + break; - case 50: - NPRB = RIV2nb_rb_LUT50[rballoc];//NPRB; - RIV_max = RIV_max50; + + case 50: + if (frame_type == TDD) { + vrb_type = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->rballoc; + rv = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->rv; + ndi = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->ndi; + TPC = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->harq_pid; + dai = ((DCI1A_10MHz_TDD_1_6_t *) dci_pdu)->dai; + // printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); + } else { + vrb_type = ((DCI1A_10MHz_FDD_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_10MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_10MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1A_10MHz_FDD_t *) dci_pdu)->rv; + ndi = ((DCI1A_10MHz_FDD_t *) dci_pdu)->ndi; + TPC = ((DCI1A_10MHz_FDD_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_10MHz_FDD_t *) dci_pdu)->harq_pid; + //printf("FDD 1A: mcs %d, vrb_type %d, rballoc %x,ndi %d, rv %d, TPC %d\n",mcs,vrb_type,rballoc,ndi,rv,TPC); + } break; - case 100: - NPRB = RIV2nb_rb_LUT100[rballoc];//NPRB; - RIV_max = RIV_max100; + + case 100: + if (frame_type == TDD) { + vrb_type = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->rballoc; + rv = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->rv; + ndi = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->ndi; + TPC = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->harq_pid; + dai = ((DCI1A_20MHz_TDD_1_6_t *) dci_pdu)->dai; + // printf("TDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); + } else { + vrb_type = ((DCI1A_20MHz_FDD_t *) dci_pdu)->vrb_type; + mcs = ((DCI1A_20MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1A_20MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1A_20MHz_FDD_t *) dci_pdu)->rv; + ndi = ((DCI1A_20MHz_FDD_t *) dci_pdu)->ndi; + TPC = ((DCI1A_20MHz_FDD_t *) dci_pdu)->TPC; + harq_pid = ((DCI1A_20MHz_FDD_t *) dci_pdu)->harq_pid; + //printf("FDD 1A: mcs %d, rballoc %x,rv %d, TPC %d\n",mcs,rballoc,rv,TPC); + } break; - } + } - if(rballoc > RIV_max) - { - // DCI false detection - return(0); - } - - if(NPRB == 0) - { - // DCI false detection - return(0); - } - - return(1); + pdci_info_extarcted->vrb_type = vrb_type; + pdci_info_extarcted->mcs1 = mcs; + pdci_info_extarcted->rballoc = rballoc; + pdci_info_extarcted->rv1 = rv; + pdci_info_extarcted->ndi1 = ndi; + pdci_info_extarcted->TPC = TPC; + pdci_info_extarcted->harq_pid = harq_pid; + pdci_info_extarcted->dai = dai; } -int check_dci_format2_2a_coherency(DCI_format_t dci_format, - uint8_t N_RB_DL, - DCI_INFO_EXTRACTED_t *pdci_info_extarcted, - uint16_t rnti, - uint16_t si_rnti, - uint16_t ra_rnti, - uint16_t p_rnti, - LTE_DL_UE_HARQ_t *pdlsch0_harq, - LTE_DL_UE_HARQ_t *pdlsch1_harq) +void +extract_dci1C_info (uint8_t N_RB_DL, lte_frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t * pdci_info_extarcted) { - uint8_t rah = pdci_info_extarcted->rah; - uint8_t mcs1 = pdci_info_extarcted->mcs1; - uint8_t mcs2 = pdci_info_extarcted->mcs2; - uint8_t rv1 = pdci_info_extarcted->rv1; - uint8_t rv2 = pdci_info_extarcted->rv2; - uint8_t harq_pid = pdci_info_extarcted->harq_pid; - uint32_t rballoc = pdci_info_extarcted->rballoc; -#ifdef DEBUG_DCI - uint8_t ndi1 = pdci_info_extarcted->ndi1; - uint8_t ndi2 = pdci_info_extarcted->ndi2; -#endif + uint32_t rballoc = 0; + uint8_t mcs = 0; - uint8_t NPRB = 0; - long long RIV_max = 0; + switch (N_RB_DL) { + case 6: + mcs = ((DCI1C_5MHz_t *) dci_pdu)->mcs; + rballoc = conv_1C_RIV (((DCI1C_5MHz_t *) dci_pdu)->rballoc, 6); -#ifdef DEBUG_DCI - LOG_I(PHY, "extarcted dci - dci_format %d \n", dci_format); - LOG_I(PHY, "extarcted dci - rnti %d \n", rnti); - LOG_I(PHY, "extarcted dci - rah %d \n", rah); - LOG_I(PHY, "extarcted dci - mcs1 %d \n", mcs1); - LOG_I(PHY, "extarcted dci - mcs2 %d \n", mcs2); - LOG_I(PHY, "extarcted dci - rv1 %d \n", rv1); - LOG_I(PHY, "extarcted dci - rv2 %d \n", rv2); - //LOG_I(PHY, "extarcted dci - ndi1 %d \n", ndi1); - //LOG_I(PHY, "extarcted dci - ndi2 %d \n", ndi2); - LOG_I(PHY, "extarcted dci - rballoc %x \n", rballoc); - LOG_I(PHY, "extarcted dci - harq pid %d \n", harq_pid); - LOG_I(PHY, "extarcted dci - round0 %d \n", pdlsch0_harq->round); - LOG_I(PHY, "extarcted dci - round1 %d \n", pdlsch1_harq->round); -#endif + break; - // I- check dci content minimum coherency - if(harq_pid>=8) - { - LOG_I(PHY,"bad harq pid\n"); - return(0); - } + case 25: + mcs = ((DCI1C_5MHz_t *) dci_pdu)->mcs; + rballoc = conv_1C_RIV (((DCI1C_5MHz_t *) dci_pdu)->rballoc, 6); - if( (rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti) ) - { - LOG_I(PHY,"bad rnti\n"); - return(0); - } + break; + case 50: + mcs = ((DCI1C_10MHz_t *) dci_pdu)->mcs; + rballoc = conv_1C_RIV (((DCI1C_10MHz_t *) dci_pdu)->rballoc, 6); - if( mcs1 > 28) - { - if(pdlsch0_harq->round == 0) - { - LOG_I(PHY,"bad mcs1\n"); - return(0); - } - } + break; - if( mcs2 > 28) - { - if(pdlsch1_harq->round == 0) - { - LOG_I(PHY,"bad mcs2\n"); - return(0); - } - } + case 100: + mcs = ((DCI1C_20MHz_t *) dci_pdu)->mcs; + rballoc = conv_1C_RIV (((DCI1C_20MHz_t *) dci_pdu)->rballoc, 6); + break; + default: + AssertFatal (0, "Format 1C: Unknown N_RB_DL %d\n", N_RB_DL); + break; + } - if((pdlsch0_harq->round == 0) && (rv1 > 0) && (mcs1 != 0)) - { - // DCI false detection - LOG_I(PHY,"bad rv1\n"); - return(0); - } - - if((pdlsch1_harq->round == 0) && (rv2 > 0) && (mcs2 != 0)) - { - // DCI false detection - LOG_I(PHY,"bad rv2\n"); - return(0); - } - - - switch (N_RB_DL) { - case 6: - if (rah == 0) - { - //RBG = 1; - RIV_max = 0x3F; - } - else - { - RIV_max = RIV_max6; - } - break; - case 25: - if (rah == 0) - { - //RBG = 2; - RIV_max = 0x1FFF; - } - else - { - RIV_max = RIV_max25; - } - break; - case 50: - if (rah == 0) - { - //RBG = 3; - RIV_max = 0x1FFFF; - } - else - { - RIV_max = RIV_max50; - } - break; - case 100: - if (rah == 0) - { - //RBG = 4; - RIV_max = 0x1FFFFFF; - } - else - { - RIV_max = RIV_max100; - } - break; - } - - NPRB = conv_nprb(rah, - rballoc, - N_RB_DL); - - - - if( (rballoc > RIV_max) && (rah == 1) ) - { - // DCI false detection - LOG_I(PHY,"bad rballoc %d RIV_max %lld\n", rballoc, RIV_max); - return(0); - } - - if(NPRB == 0) - { - // DCI false detection - LOG_I(PHY,"bad NPRB\n"); - return(0); - } - - return(1); + pdci_info_extarcted->mcs1 = mcs; + pdci_info_extarcted->rballoc = rballoc; } -void compute_llr_offset(LTE_DL_FRAME_PARMS *frame_parms, - LTE_UE_PDCCH *pdcch_vars, - LTE_UE_PDSCH *pdsch_vars, - LTE_DL_UE_HARQ_t *dlsch0_harq, - uint8_t nb_rb_alloc, - uint8_t subframe) -{ - uint32_t pbch_pss_sss_re; - uint32_t crs_re; - uint32_t granted_re; - uint32_t data_re; - uint32_t llr_offset; - uint8_t symbol; - uint8_t symbol_mod; - - pdsch_vars->llr_offset[pdcch_vars->num_pdcch_symbols] = 0; - - //LOG_I(PHY,"compute_llr_offset: nb RB %d - Qm %d \n", nb_rb_alloc, dlsch0_harq->Qm); - - //dlsch0_harq->rb_alloc_even; - //dlsch0_harq->rb_alloc_odd; - - for(symbol=pdcch_vars->num_pdcch_symbols; symbolsymbols_per_tti; symbol++) - { - symbol_mod = (symbol >= (7-frame_parms->Ncp))? (symbol-(7-frame_parms->Ncp)) : symbol; - if((symbol_mod == 0) || symbol_mod == (4-frame_parms->Ncp)) - { - if (frame_parms->nb_antennas_tx == 2) - crs_re = 4; - else - crs_re = 2; - } - else - { - crs_re = 0; - } - - granted_re = nb_rb_alloc * (12-crs_re); - pbch_pss_sss_re = adjust_G2(frame_parms,dlsch0_harq->rb_alloc_even,dlsch0_harq->Qm,subframe,symbol); - pbch_pss_sss_re = (double)pbch_pss_sss_re * ((double)(12-crs_re)/12); - data_re = granted_re - pbch_pss_sss_re; - llr_offset = data_re * dlsch0_harq->Qm * 2; - - pdsch_vars->llr_length[symbol] = data_re; - if(symbol < (frame_parms->symbols_per_tti-1)) - pdsch_vars->llr_offset[symbol+1] = pdsch_vars->llr_offset[symbol] + llr_offset; - - //LOG_I(PHY,"Granted Re subframe %d / symbol %d => %d (%d RBs)\n", subframe, symbol_mod, granted_re,dlsch0_harq->nb_rb); - //LOG_I(PHY,"Pbch/PSS/SSS Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, pbch_pss_sss_re); - //LOG_I(PHY,"CRS Re Per PRB subframe %d / symbol %d => %d \n", subframe, symbol_mod, crs_re); - //LOG_I(PHY,"Data Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, data_re); - - - - //LOG_I(PHY,"Data Re subframe %d-symbol %d => llr length %d, llr offset %d \n", subframe, symbol, - // pdsch_vars->llr_length[symbol], pdsch_vars->llr_offset[symbol]); - } -} -void prepare_dl_decoding_format1_1A(DCI_format_t dci_format, - uint8_t N_RB_DL, - DCI_INFO_EXTRACTED_t *pdci_info_extarcted, - LTE_DL_FRAME_PARMS *frame_parms, - LTE_UE_PDCCH *pdcch_vars, - LTE_UE_PDSCH *pdsch_vars, - uint8_t subframe, - uint16_t rnti, - uint16_t tc_rnti, - uint16_t si_rnti, - uint16_t ra_rnti, - uint16_t p_rnti, - LTE_DL_UE_HARQ_t *pdlsch0_harq, - LTE_UE_DLSCH_t *pdlsch0) +void +extract_dci1_info (uint8_t N_RB_DL, lte_frame_type_t frame_type, void *dci_pdu, DCI_INFO_EXTRACTED_t * pdci_info_extarcted) { - uint8_t harq_pid = pdci_info_extarcted->harq_pid; - uint8_t vrb_type = pdci_info_extarcted->vrb_type; - uint32_t rballoc = pdci_info_extarcted->rballoc; - uint8_t mcs1 = pdci_info_extarcted->mcs1; - uint8_t rv1 = pdci_info_extarcted->rv1; - uint8_t ndi1 = pdci_info_extarcted->ndi1; - uint8_t TPC = pdci_info_extarcted->TPC; - uint8_t rah = pdci_info_extarcted->rah; - uint8_t dai = pdci_info_extarcted->dai; + uint32_t rballoc = 0; + uint8_t mcs = 0; + uint8_t rah = 0; + uint8_t rv = 0; + uint8_t TPC = 0; + uint8_t ndi = 0; + uint8_t harq_pid = 0; - - uint8_t NPRB = 0; - uint8_t NPRB4TBS = 0; - uint8_t nb_rb_alloc = 0; - - if(dci_format == format1A) - { - switch (N_RB_DL) { - case 6: - NPRB = RIV2nb_rb_LUT6[rballoc]; - break; - case 25: - NPRB = RIV2nb_rb_LUT25[rballoc]; - break; - case 50: - NPRB = RIV2nb_rb_LUT50[rballoc]; - break; - case 100: - NPRB = RIV2nb_rb_LUT100[rballoc]; - break; - } - if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) - { - NPRB4TBS = (TPC&1) + 2; - } - else - { - NPRB4TBS = NPRB; - /* - switch (N_RB_DL) { - case 6: - NPRB = RIV2nb_rb_LUT6[rballoc];//NPRB; - break; - case 25: - NPRB = RIV2nb_rb_LUT25[rballoc];//NPRB; - break; - case 50: - NPRB = RIV2nb_rb_LUT50[rballoc];//NPRB; - break; - case 100: - NPRB = RIV2nb_rb_LUT100[rballoc];//NPRB; - break; - } - - */ - nb_rb_alloc = NPRB; - } - } - else // format1 - { - NPRB = conv_nprb(rah, rballoc, N_RB_DL); - NPRB4TBS=NPRB; - nb_rb_alloc = NPRB; + switch (N_RB_DL) { + case 6: + if (frame_type == TDD) { + mcs = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->rah; + rv = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->rv; + TPC = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_1_5MHz_TDD_t *) dci_pdu)->harq_pid; + } else { + mcs = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->mcs; + rah = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->rah; + rballoc = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->rv; + TPC = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_1_5MHz_FDD_t *) dci_pdu)->harq_pid; } - pdlsch0->current_harq_pid = harq_pid; - pdlsch0->active = 1; - pdlsch0->rnti = rnti; - if(dci_format == format1A) - pdlsch0->harq_ack[subframe].vDAI_DL = dai+1; + break; - if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) - { - pdlsch0_harq->round = 0; - pdlsch0_harq->status = ACTIVE; - } - else //CRNTI - { - if (rnti == tc_rnti) { - //fix for standalone Contention Resolution Id - pdlsch0_harq->DCINdi = (uint8_t)-1; - LOG_D(PHY,"UE (%x/%d): Format1A DCI: C-RNTI is temporary. Set NDI = %d and to be ignored\n", - rnti,harq_pid,pdlsch0_harq->DCINdi); - } - - // NDI has been toggled or this is the first transmission - if ((ndi1!=pdlsch0_harq->DCINdi) || (pdlsch0_harq->first_tx==1)) - { - pdlsch0_harq->round = 0; - pdlsch0_harq->first_tx = 0; - pdlsch0_harq->status = ACTIVE; - - }else if (rv1 != 0 ) - //NDI has not been toggled but rv was increased by eNB: retransmission - { - if (pdlsch0_harq->status == SCH_IDLE) - //packet was actually decoded in previous transmission (ACK was missed by eNB) - //However, the round is not a good check as it might have been decoded in a retransmission prior to this one. - { - LOG_D(PHY,"skip pdsch decoding and report ack\n"); - // skip pdsch decoding and report ack - //pdlsch0_harq->status = SCH_IDLE; - pdlsch0->active = 0; - pdlsch0->harq_ack[subframe].ack = 1; - pdlsch0->harq_ack[subframe].harq_id = harq_pid; - pdlsch0->harq_ack[subframe].send_harq_status = 1; - - //pdlsch0_harq->first_tx = 0; - } - else //normal retransmission - { - // nothing special to do - } - } - else - { - pdlsch0_harq->status = ACTIVE; - } + case 25: + if (frame_type == TDD) { + mcs = ((DCI1_5MHz_TDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1_5MHz_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI1_5MHz_TDD_t *) dci_pdu)->rah; + rv = ((DCI1_5MHz_TDD_t *) dci_pdu)->rv; + TPC = ((DCI1_5MHz_TDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_5MHz_TDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_5MHz_TDD_t *) dci_pdu)->harq_pid; + } else { + mcs = ((DCI1_5MHz_FDD_t *) dci_pdu)->mcs; + rah = ((DCI1_5MHz_FDD_t *) dci_pdu)->rah; + rballoc = ((DCI1_5MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1_5MHz_FDD_t *) dci_pdu)->rv; + TPC = ((DCI1_5MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_5MHz_FDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_5MHz_FDD_t *) dci_pdu)->harq_pid; } - pdlsch0_harq->DCINdi = ndi1; - pdlsch0_harq->mcs = mcs1; - pdlsch0_harq->rvidx = rv1; - pdlsch0_harq->nb_rb = NPRB; + break; - pdlsch0_harq->codeword = 0; - pdlsch0_harq->Nl = 1; - pdlsch0_harq->mimo_mode = frame_parms->nb_antenna_ports_eNB == 1 ?SISO : ALAMOUTI; - pdlsch0_harq->dl_power_off = 1; //no power offset - pdlsch0_harq->delta_PUCCH = delta_PUCCH_lut[TPC &3]; - - // compute resource allocation - if(dci_format == format1A) - { - switch (N_RB_DL) { - case 6: - if (vrb_type == LOCALIZED) { - pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT6[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT6[rballoc]; - } - else { - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT6[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT6[rballoc]; - } - break; - - case 25: - if (vrb_type == LOCALIZED) { - pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT25[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT25[rballoc]; - } - else { - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT25[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT25[rballoc]; - } - break; - - case 50: - if (vrb_type == LOCALIZED) { - pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = localRIV2alloc_LUT50_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = localRIV2alloc_LUT50_1[rballoc]; - printf("rballoc: %08x.%08x\n",pdlsch0_harq->rb_alloc_even[0],pdlsch0_harq->rb_alloc_even[1]); - } else { // DISTRIBUTED - if ((rballoc&(1<<10)) == 0) { - rballoc = rballoc&(~(1<<10)); - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT50_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT50_1[rballoc]; - } - else { - rballoc = rballoc&(~(1<<10)); - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT50_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT50_1[rballoc]; - } - } - break; - - case 100: - if (vrb_type == LOCALIZED) { - pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = localRIV2alloc_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_even[2] = localRIV2alloc_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_even[3] = localRIV2alloc_LUT100_3[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = localRIV2alloc_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[2] = localRIV2alloc_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_odd[3] = localRIV2alloc_LUT100_3[rballoc]; - } else { - if ((rballoc&(1<<10)) == 0) { //Gap 1 - rballoc = rballoc&(~(1<<12)); - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap0_even_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap0_even_LUT100_3[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap0_odd_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap0_odd_LUT100_3[rballoc]; - } - else { //Gap 2 - rballoc = rballoc&(~(1<<12)); - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap1_even_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap1_even_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap1_even_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap1_even_LUT100_3[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap1_odd_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap1_odd_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap1_odd_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap1_odd_LUT100_3[rballoc]; - } - } - break; - } - } - else // format1 - { - conv_rballoc(rah,rballoc,frame_parms->N_RB_DL,pdlsch0_harq->rb_alloc_even); - pdlsch0_harq->rb_alloc_odd[0]= pdlsch0_harq->rb_alloc_even[0]; - pdlsch0_harq->rb_alloc_odd[1]= pdlsch0_harq->rb_alloc_even[1]; - pdlsch0_harq->rb_alloc_odd[2]= pdlsch0_harq->rb_alloc_even[2]; - pdlsch0_harq->rb_alloc_odd[3]= pdlsch0_harq->rb_alloc_even[3]; - } - if ((rnti==si_rnti) || (rnti==p_rnti) || (rnti==ra_rnti)) - { - pdlsch0_harq->TBS = TBStable[mcs1][NPRB4TBS-1]; - pdlsch0_harq->Qm = 2; - } - else - { - if(mcs1 < 29) - { - pdlsch0_harq->TBS = TBStable[get_I_TBS(mcs1)][NPRB4TBS-1]; - pdlsch0_harq->Qm = get_Qm(mcs1); - } + case 50: + if (frame_type == TDD) { + mcs = ((DCI1_10MHz_TDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1_10MHz_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI1_10MHz_TDD_t *) dci_pdu)->rah; + rv = ((DCI1_10MHz_TDD_t *) dci_pdu)->rv; + TPC = ((DCI1_10MHz_TDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_10MHz_TDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_10MHz_TDD_t *) dci_pdu)->harq_pid; + } else { + mcs = ((DCI1_10MHz_FDD_t *) dci_pdu)->mcs; + rah = ((DCI1_10MHz_FDD_t *) dci_pdu)->rah; + rballoc = ((DCI1_10MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1_10MHz_FDD_t *) dci_pdu)->rv; + TPC = ((DCI1_10MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_10MHz_FDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_10MHz_FDD_t *) dci_pdu)->harq_pid; } - compute_llr_offset(frame_parms, - pdcch_vars, - pdsch_vars, - pdlsch0_harq, - nb_rb_alloc, - subframe); -} + break; -void prepare_dl_decoding_format1C(uint8_t N_RB_DL, - DCI_INFO_EXTRACTED_t *pdci_info_extarcted, - LTE_DL_FRAME_PARMS *frame_parms, - LTE_UE_PDCCH *pdcch_vars, - LTE_UE_PDSCH *pdsch_vars, - uint32_t rnti, - uint32_t si_rnti, - uint32_t ra_rnti, - uint32_t p_rnti, - uint32_t frame, - uint8_t subframe, - LTE_DL_UE_HARQ_t *pdlsch0_harq, - LTE_UE_DLSCH_t *pdlsch0) -{ - - uint8_t harq_pid = pdci_info_extarcted->harq_pid; - uint32_t rballoc = pdci_info_extarcted->rballoc; - uint8_t mcs1 = pdci_info_extarcted->mcs1; - uint8_t Ngap = pdci_info_extarcted->Ngap; - - pdlsch0_harq->round = 0; - pdlsch0_harq->first_tx = 1; - pdlsch0_harq->vrb_type = DISTRIBUTED; - - if (rnti==si_rnti) { // rule from Section 5.3.1 of 36.321 - if (((frame&1) == 0) && (subframe == 5)) - pdlsch0_harq->rvidx = (((3*((frame>>1)&3))+1)>>1)&3; // SIB1 - else - pdlsch0_harq->rvidx = (((3*(subframe&3))+1)>>1)&3; // other SIBs - } - else if ((rnti==p_rnti) || (rnti==ra_rnti)) { // Section 7.1.7.3 - pdlsch0_harq->rvidx = 0; - } - - - pdlsch0_harq->Nl = 1; - pdlsch0_harq->mimo_mode = frame_parms->nb_antenna_ports_eNB == 1 ?SISO : ALAMOUTI; - pdlsch0_harq->dl_power_off = 1; //no power offset - - pdlsch0_harq->codeword = 0; - pdlsch0_harq->mcs = mcs1; - pdlsch0_harq->TBS = TBStable1C[mcs1]; - pdlsch0_harq->Qm = 2; - - - pdlsch0->current_harq_pid = harq_pid; - pdlsch0->active = 1; - pdlsch0->rnti = rnti; - - switch (N_RB_DL) { - case 6: - pdlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rballoc]; - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT6[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT6[rballoc]; - - break; - - case 25: - pdlsch0_harq->nb_rb = RIV2nb_rb_LUT25[rballoc]; - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT25[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT25[rballoc]; - break; - - case 50: - pdlsch0_harq->nb_rb = RIV2nb_rb_LUT50[rballoc]; - if (Ngap == 0) { - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT50_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT50_1[rballoc]; - } - else { - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap1_even_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap1_odd_LUT50_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap1_even_LUT50_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap1_odd_LUT50_1[rballoc]; - } - break; - - case 100: - pdlsch0_harq->nb_rb = RIV2nb_rb_LUT100[rballoc]; - if (Ngap==0) { - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap0_even_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap0_odd_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap0_even_LUT100_3[rballoc]; - pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap0_odd_LUT100_3[rballoc]; - } - else { - pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap1_even_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap1_odd_LUT100_0[rballoc]; - pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap1_even_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap1_odd_LUT100_1[rballoc]; - pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap1_even_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap1_odd_LUT100_2[rballoc]; - pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap1_even_LUT100_3[rballoc]; - pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap1_odd_LUT100_3[rballoc]; - } - break; - - default: - AssertFatal(0,"Format 1C: Unknown N_RB_DL %d\n",frame_parms->N_RB_DL); - break; + case 100: + if (frame_type == TDD) { + mcs = ((DCI1_20MHz_TDD_t *) dci_pdu)->mcs; + rballoc = ((DCI1_20MHz_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI1_20MHz_TDD_t *) dci_pdu)->rah; + rv = ((DCI1_20MHz_TDD_t *) dci_pdu)->rv; + TPC = ((DCI1_20MHz_TDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_20MHz_TDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_20MHz_TDD_t *) dci_pdu)->harq_pid; + } else { + mcs = ((DCI1_20MHz_FDD_t *) dci_pdu)->mcs; + rah = ((DCI1_20MHz_FDD_t *) dci_pdu)->rah; + rballoc = ((DCI1_20MHz_FDD_t *) dci_pdu)->rballoc; + rv = ((DCI1_20MHz_FDD_t *) dci_pdu)->rv; + TPC = ((DCI1_20MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI1_20MHz_FDD_t *) dci_pdu)->ndi; + harq_pid = ((DCI1_20MHz_FDD_t *) dci_pdu)->harq_pid; } - compute_llr_offset(frame_parms, - pdcch_vars, - pdsch_vars, - pdlsch0_harq, - pdlsch0_harq->nb_rb, - subframe); + break; + } + + pdci_info_extarcted->mcs1 = mcs; + pdci_info_extarcted->rah = rah; + pdci_info_extarcted->rballoc = rballoc; + pdci_info_extarcted->rv1 = rv; + pdci_info_extarcted->TPC = TPC; + pdci_info_extarcted->ndi1 = ndi; + pdci_info_extarcted->harq_pid = harq_pid; } -void compute_precoding_info_2cw(uint8_t tpmi, uint8_t tbswap, uint16_t pmi_alloc, LTE_DL_FRAME_PARMS *frame_parms, LTE_DL_UE_HARQ_t *dlsch0_harq, LTE_DL_UE_HARQ_t *dlsch1_harq) +void +extract_dci2_info (uint8_t N_RB_DL, lte_frame_type_t frame_type, uint8_t nb_antenna_ports_eNB, void *dci_pdu, DCI_INFO_EXTRACTED_t * pdci_info_extarcted) { -switch (tpmi) { - case 0: - dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; - dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; - dlsch0_harq->pmi_alloc = pmi_extend(frame_parms,0, 1); - dlsch1_harq->pmi_alloc = pmi_extend(frame_parms,0, 1); - break; - case 1: - dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; - dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; - dlsch0_harq->pmi_alloc = pmi_extend(frame_parms,1, 1); - dlsch1_harq->pmi_alloc = pmi_extend(frame_parms,1, 1); - break; - case 2: // PUSCH precoding - dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; - dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; - if (tbswap==0){ - dlsch0_harq->pmi_alloc = pmi_alloc; - dlsch1_harq->pmi_alloc = pmi_alloc^0x1555; - } else { - dlsch1_harq->pmi_alloc = pmi_alloc; - dlsch0_harq->pmi_alloc = pmi_alloc^0x1555; - } -#ifdef DEBUG_HARQ - printf ("\n \n compute_precoding_info_2cw pmi_alloc_new = %d\n", dlsch0_harq->pmi_alloc); - #endif - break; - default: - break; - } -} + uint32_t rballoc = 0; + uint8_t rah = 0; + uint8_t mcs1 = 0; + uint8_t mcs2 = 0; + uint8_t rv1 = 0; + uint8_t rv2 = 0; + uint8_t ndi1 = 0; + uint8_t ndi2 = 0; + uint8_t tbswap = 0; + uint8_t tpmi = 0; + uint8_t harq_pid = 0; + uint8_t TPC = 0; -void compute_precoding_info_1cw(uint8_t tpmi, uint16_t pmi_alloc, LTE_DL_FRAME_PARMS *frame_parms, LTE_DL_UE_HARQ_t *dlsch_harq) -{ - -switch (tpmi) { - case 0 : - dlsch_harq->mimo_mode = ALAMOUTI; - break; - case 1: - dlsch_harq->mimo_mode = UNIFORM_PRECODING11; - dlsch_harq->pmi_alloc = pmi_extend(frame_parms,0, 0); - break; - case 2: - dlsch_harq->mimo_mode = UNIFORM_PRECODING1m1; - dlsch_harq->pmi_alloc = pmi_extend(frame_parms,1, 0); - break; - case 3: - dlsch_harq->mimo_mode = UNIFORM_PRECODING1j; - dlsch_harq->pmi_alloc = pmi_extend(frame_parms,2, 0); - break; - case 4: - dlsch_harq->mimo_mode = UNIFORM_PRECODING1mj; - dlsch_harq->pmi_alloc = pmi_extend(frame_parms,3, 0); - break; - case 5: - dlsch_harq->mimo_mode = PUSCH_PRECODING0; - dlsch_harq->pmi_alloc = pmi_alloc;//pmi_convert(frame_parms,dlsch0->pmi_alloc,0); - break; - case 6: - dlsch_harq->mimo_mode = PUSCH_PRECODING1; - dlsch_harq->pmi_alloc = pmi_alloc;//pmi_convert(frame_parms,dlsch0->pmi_alloc,1); - break; - } - #ifdef DEBUG_HARQ - printf ("[DCI UE] I am calling from the UE side pmi_alloc_new = %d with tpmi %d\n", dlsch_harq->pmi_alloc, tpmi); - #endif - } - -void compute_precoding_info_format2A(uint8_t tpmi, - uint8_t nb_antenna_ports_eNB, - uint8_t tb0_active, - uint8_t tb1_active, - LTE_DL_UE_HARQ_t *dlsch0_harq, - LTE_DL_UE_HARQ_t *dlsch1_harq) -{ - - dlsch0_harq->dl_power_off = 0; - dlsch1_harq->dl_power_off = 0; + switch (N_RB_DL) { + case 6: if (nb_antenna_ports_eNB == 2) { - if ((tb0_active==1) && (tb1_active==1)) { - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->dl_power_off = 1; - dlsch1_harq->dl_power_off = 1; - } else { - dlsch0_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->mimo_mode = ALAMOUTI; - } - } else if (nb_antenna_ports_eNB == 4) { // 4 antenna case - if ((tb0_active==1) && (tb1_active==1)) { - switch (tpmi) { - case 0: // one layer per transport block - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->dl_power_off = 1; - dlsch1_harq->dl_power_off = 1; - break; - - case 1: // one-layers on TB 0, two on TB 1 - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->Nl = 2; - dlsch0_harq->dl_power_off = 1; - dlsch1_harq->dl_power_off = 1; - break; - - case 2: // two-layers on TB 0, two on TB 1 - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->Nl = 2; - dlsch0_harq->dl_power_off = 1; - dlsch1_harq->dl_power_off = 1; - break; - - case 3: // - LOG_E(PHY,"Illegal value (3) for TPMI in Format 2A DCI\n"); - break; - } - } else if (tb0_active == 1) { - switch (tpmi) { - case 0: // one layer per transport block - dlsch0_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->mimo_mode = ALAMOUTI; - break; - - case 1: // two-layers on TB 0 - dlsch0_harq->mimo_mode = LARGE_CDD; - dlsch0_harq->Nl = 2; - dlsch0_harq->dl_power_off = 1; - break; - - case 2: // two-layers on TB 0, two on TB 1 - case 3: // - LOG_E(PHY,"Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n",tpmi); - break; - } - } else if (tb1_active == 1) { - switch (tpmi) { - case 0: // one layer per transport block - dlsch0_harq->mimo_mode = ALAMOUTI; - dlsch1_harq->mimo_mode = ALAMOUTI; - break; - - case 1: // two-layers on TB 0 - dlsch1_harq->mimo_mode = LARGE_CDD; - dlsch1_harq->Nl = 2; - dlsch0_harq->dl_power_off = 1; - break; - - case 2: // two-layers on TB 0, two on TB 1 - case 3: // - LOG_E(PHY,"Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n",tpmi); - break; - } - } + if (frame_type == TDD) { + rah = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->ndi2; } - // printf("Format 2A: NPRB=%d (rballoc %x,mcs1 %d, mcs2 %d, frame_type %d N_RB_DL %d,active %d/%d)\n",NPRB,rballoc,mcs1,mcs2,frame_parms->frame_type,frame_parms->N_RB_DL,dlsch0->active,dlsch1->active); - //printf("UE (%x/%d): Subframe %d Format2A DCI: ndi1 %d, old_ndi1 %d, ndi2 %d, old_ndi2 %d (first tx1 %d, first tx2 %d) harq_status1 %d, harq_status2 %d\n",dlsch0->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi, - // dlsch0_harq->first_tx,dlsch1_harq->first_tx,dlsch0_harq->status,dlsch1_harq->status); - //printf("TBS0 %d, TBS1 %d\n",dlsch0_harq->TBS,dlsch1_harq->TBS); + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + rah = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->ndi2; + } + } else { + LOG_E (PHY, "UE: Format2 DCI: unsupported number of TX antennas %d\n", nb_antenna_ports_eNB); + } + + break; + + case 25: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + rah = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_2A_FDD_t *) dci_pdu)->ndi2; + } + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + rah = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_4A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_2A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_5MHz_4A_FDD_t *) dci_pdu)->ndi2; + } + } else { + LOG_E (PHY, "UE: Format2 DCI: unsupported number of TX antennas %d\n", nb_antenna_ports_eNB); + } + + break; + + case 50: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + rah = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_10MHz_2A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_10MHz_2A_FDD_t *) dci_pdu)->ndi2; + } + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + rah = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_10MHz_4A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_10MHz_4A_FDD_t *) dci_pdu)->ndi2; + } + } else { + LOG_E (PHY, "UE: Format2A DCI: unsupported number of TX antennas %d\n", nb_antenna_ports_eNB); + } + + break; + + case 100: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + rah = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_20MHz_2A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_20MHz_2A_FDD_t *) dci_pdu)->ndi2; + } + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + rah = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_20MHz_4A_TDD_t *) dci_pdu)->ndi2; + } else { + rah = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->rah; + mcs1 = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->rv2; + harq_pid = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->TPC; + ndi1 = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2_20MHz_4A_FDD_t *) dci_pdu)->ndi2; + } + } else { + LOG_E (PHY, "UE: Format2A DCI: unsupported number of TX antennas %d\n", nb_antenna_ports_eNB); + } + + break; + } + + pdci_info_extarcted->rah = rah; + pdci_info_extarcted->mcs1 = mcs1; + pdci_info_extarcted->mcs2 = mcs2; + pdci_info_extarcted->rv1 = rv1; + pdci_info_extarcted->rv2 = rv2; + pdci_info_extarcted->harq_pid = harq_pid; + pdci_info_extarcted->rballoc = rballoc; + pdci_info_extarcted->tb_swap = tbswap; + pdci_info_extarcted->tpmi = tpmi; + pdci_info_extarcted->TPC = TPC; + pdci_info_extarcted->ndi1 = ndi1; + pdci_info_extarcted->ndi2 = ndi2; } -void prepare_dl_decoding_format2_2A(DCI_format_t dci_format, - DCI_INFO_EXTRACTED_t *pdci_info_extarcted, - LTE_DL_FRAME_PARMS *frame_parms, - LTE_UE_PDCCH *pdcch_vars, - LTE_UE_PDSCH *pdsch_vars, - uint16_t rnti, - uint8_t subframe, - LTE_DL_UE_HARQ_t *dlsch0_harq, - LTE_DL_UE_HARQ_t *dlsch1_harq, - LTE_UE_DLSCH_t *pdlsch0, - LTE_UE_DLSCH_t *pdlsch1) +void +extract_dci2A_info (uint8_t N_RB_DL, lte_frame_type_t frame_type, uint8_t nb_antenna_ports_eNB, void *dci_pdu, DCI_INFO_EXTRACTED_t * pdci_info_extarcted) { - uint8_t rah = pdci_info_extarcted->rah; - uint8_t mcs1 = pdci_info_extarcted->mcs1; - uint8_t mcs2 = pdci_info_extarcted->mcs2; - uint8_t rv1 = pdci_info_extarcted->rv1; - uint8_t rv2 = pdci_info_extarcted->rv2; - uint8_t harq_pid = pdci_info_extarcted->harq_pid; - uint32_t rballoc = pdci_info_extarcted->rballoc; - uint8_t tbswap = pdci_info_extarcted->tb_swap; - uint8_t tpmi = pdci_info_extarcted->tpmi; - uint8_t TPC = pdci_info_extarcted->TPC; - uint8_t ndi1 = pdci_info_extarcted->ndi1; - uint8_t ndi2 = pdci_info_extarcted->ndi2; + uint32_t rballoc = 0; + uint8_t rah = 0; + uint8_t mcs1 = 0; + uint8_t mcs2 = 0; + uint8_t rv1 = 0; + uint8_t rv2 = 0; + uint8_t ndi1 = 0; + uint8_t ndi2 = 0; + uint8_t tbswap = 0; + uint8_t tpmi = 0; + uint8_t harq_pid = 0; + uint8_t TPC = 0; - uint8_t TB0_active = 1; - uint8_t TB1_active = 1; + AssertFatal ((nb_antenna_ports_eNB == 2) || (nb_antenna_ports_eNB == 4), "unsupported nb_antenna_ports_eNB %d\n", nb_antenna_ports_eNB); + switch (N_RB_DL) { - // printf("inside prepare pdlsch1->pmi_alloc %d \n",pdlsch1->pmi_alloc); - - - if ((rv1 == 1) && (mcs1 == 0)) { - TB0_active=0; + case 6: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_1_5MHz_2A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_1_5MHz_2A_FDD_t *) dci_pdu)->TPC; } - if ((rv2 == 1) && (mcs2 == 0)) { - TB1_active=0; + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_1_5MHz_4A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->rballoc; + rv1 = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_1_5MHz_4A_FDD_t *) dci_pdu)->TPC; } + } -#ifdef DEBUG_HARQ - printf("[DCI UE]: TB0 status %d , TB1 status %d\n", TB0_active, TB1_active); + break; + + case 25: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_5MHz_2A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_5MHz_2A_FDD_t *) dci_pdu)->TPC; + } + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_5MHz_4A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_5MHz_4A_FDD_t *) dci_pdu)->TPC; + } + } + break; + + case 50: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_10MHz_2A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_10MHz_2A_FDD_t *) dci_pdu)->TPC; + } + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_10MHz_4A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_10MHz_4A_FDD_t *) dci_pdu)->TPC; + } + } + + break; + + case 100: + if (nb_antenna_ports_eNB == 2) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_20MHz_2A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->tb_swap; + TPC = ((DCI2A_20MHz_2A_FDD_t *) dci_pdu)->TPC; + } + } else if (nb_antenna_ports_eNB == 4) { + if (frame_type == TDD) { + mcs1 = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_20MHz_4A_TDD_t *) dci_pdu)->TPC; + } else { + mcs1 = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->mcs1; + mcs2 = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->mcs2; + rballoc = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->rballoc; + rah = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->rah; + rv1 = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->rv1; + rv2 = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->rv2; + ndi1 = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->ndi1; + ndi2 = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->ndi2; + harq_pid = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->harq_pid; + tbswap = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->tb_swap; + tpmi = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->tpmi; + TPC = ((DCI2A_20MHz_4A_FDD_t *) dci_pdu)->TPC; + } + } + + break; + } + + pdci_info_extarcted->mcs1 = mcs1; + pdci_info_extarcted->mcs2 = mcs2; + pdci_info_extarcted->rballoc = rballoc; + pdci_info_extarcted->rah = rah; + pdci_info_extarcted->rv1 = rv1; + pdci_info_extarcted->rv2 = rv2; + pdci_info_extarcted->ndi1 = ndi1; + pdci_info_extarcted->ndi2 = ndi2; + pdci_info_extarcted->harq_pid = harq_pid; + pdci_info_extarcted->tb_swap = tbswap; + pdci_info_extarcted->TPC = TPC; + pdci_info_extarcted->tpmi = tpmi; +} + +int +check_dci_format1_1a_coherency (DCI_format_t dci_format, + uint8_t N_RB_DL, + uint16_t rnti, + uint16_t tc_rnti, + uint16_t si_rnti, uint16_t ra_rnti, uint16_t p_rnti, uint32_t frame, uint8_t subframe, DCI_INFO_EXTRACTED_t * pdci_info_extarcted, LTE_DL_UE_HARQ_t * pdlsch0_harq) +{ + uint8_t harq_pid = pdci_info_extarcted->harq_pid; + uint32_t rballoc = pdci_info_extarcted->rballoc; + uint8_t mcs1 = pdci_info_extarcted->mcs1; + uint8_t TPC = pdci_info_extarcted->TPC; + uint8_t rah = pdci_info_extarcted->rah; +#ifdef DEBUG_DCI + uint8_t rv1 = pdci_info_extarcted->rv1; + uint8_t ndi1 = pdci_info_extarcted->ndi1; #endif - dlsch0_harq->mcs = mcs1; - dlsch1_harq->mcs = mcs2; - dlsch0_harq->rvidx = rv1; - dlsch1_harq->rvidx = rv2; - dlsch0_harq->DCINdi = ndi1; - dlsch1_harq->DCINdi = ndi2; + uint8_t NPRB = 0; + long long int RIV_max = 0; - dlsch0_harq->codeword = 0; - dlsch1_harq->codeword = 1; - dlsch0_harq->Nl = 1; - dlsch1_harq->Nl = 1; - dlsch0_harq->delta_PUCCH = delta_PUCCH_lut[TPC&3]; - dlsch1_harq->delta_PUCCH = delta_PUCCH_lut[TPC&3]; +#ifdef DEBUG_DCI + LOG_I (PHY, "[DCI-FORMAT-1-1A] AbsSubframe %d.%d dci_format %d\n", frame, subframe, dci_format); + LOG_I (PHY, "[DCI-FORMAT-1-1A] rnti %x\n", rnti); + LOG_I (PHY, "[DCI-FORMAT-1-1A] harq_pid %d\n", harq_pid); + LOG_I (PHY, "[DCI-FORMAT-1-1A] rah %d\n", rah); + LOG_I (PHY, "[DCI-FORMAT-1-1A] rballoc %x\n", rballoc); + LOG_I (PHY, "[DCI-FORMAT-1-1A] mcs1 %d\n", mcs1); + LOG_I (PHY, "[DCI-FORMAT-1-1A] rv1 %d\n", rv1); + LOG_I (PHY, "[DCI-FORMAT-1-1A] ndi1 %d\n", ndi1); + LOG_I (PHY, "[DCI-FORMAT-1-1A] TPC %d\n", TPC); +#endif + + + // I- check dci content minimum coherency + if (((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) && harq_pid > 0) { + return (0); + } + + if (harq_pid >= 8) { + LOG_I (PHY, "bad harq id \n"); + return (0); + } + + if (dci_format == format1 && ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti))) { + LOG_I (PHY, "bad dci format \n"); + return (0); + } + + + if (mcs1 > 28) { + if (pdlsch0_harq->round == 0) { + LOG_I (PHY, "bad dci mcs + round \n"); + return (0); + } + + if ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) { + LOG_I (PHY, "bad dci mcs + rnti \n"); + return (0); + } + } + + if ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) { + NPRB = (TPC & 1) + 2; + switch (N_RB_DL) { + case 6: + RIV_max = RIV_max6; + break; + case 25: + RIV_max = RIV_max25; + break; + case 50: + RIV_max = RIV_max50; + break; + case 100: + RIV_max = RIV_max100; + break; + } + } else { + switch (N_RB_DL) { + case 6: + NPRB = RIV2nb_rb_LUT6[rballoc]; //NPRB; + if (rah) + RIV_max = RIV_max6; + else + RIV_max = 0x3F; + break; + case 25: + NPRB = RIV2nb_rb_LUT25[rballoc]; //NPRB; + if (rah) + RIV_max = RIV_max25; + else + RIV_max = 0x1FFF; + break; + case 50: + NPRB = RIV2nb_rb_LUT50[rballoc]; //NPRB; + if (rah) + RIV_max = RIV_max50; + else + RIV_max = 0x1FFFF; + break; + case 100: + NPRB = RIV2nb_rb_LUT100[rballoc]; //NPRB; + if (rah) + RIV_max = RIV_max100; + else + RIV_max = 0x1FFFFFF; + break; + } + } + + + if (dci_format == format1) { + NPRB = conv_nprb (rah, rballoc, N_RB_DL); + } + + + if (rballoc > RIV_max) { + LOG_I (PHY, "bad dci rballoc rballoc %d RIV_max %lld \n", rballoc, RIV_max); + // DCI false detection + return (0); + } + + if (NPRB == 0) { + // DCI false detection + LOG_I (PHY, "bad NPRB = 0 \n"); + return (0); + } + // this a retransmission + if (pdlsch0_harq->round > 0) { + // compare old TBS to new TBS + if ((mcs1 < 29) && (pdlsch0_harq->TBS != TBStable[get_I_TBS (mcs1)][NPRB - 1])) { + // this is an eNB issue + // retransmisison but old and new TBS are different !!! + // work around, consider it as a new transmission + LOG_E (PHY, "Format1A Retransmission but TBS are different: consider it as new transmission !!! \n"); + pdlsch0_harq->round = 0; + //return(0); // ?? to cross check + } + } + + return (1); +} + +int +check_dci_format1c_coherency (uint8_t N_RB_DL, DCI_INFO_EXTRACTED_t * pdci_info_extarcted, uint16_t rnti, uint16_t si_rnti, uint16_t ra_rnti, uint16_t p_rnti, LTE_DL_UE_HARQ_t * pdlsch0_harq) +{ + uint32_t rballoc = pdci_info_extarcted->rballoc; + + uint8_t NPRB = 0; + uint32_t RIV_max = 0; + + // I- check dci content minimum coherency + + if ((rnti != si_rnti) && (rnti != p_rnti) && (rnti != ra_rnti)) + return (0); + + switch (N_RB_DL) { + case 6: + NPRB = RIV2nb_rb_LUT6[rballoc]; //NPRB; + RIV_max = RIV_max6; + break; + case 25: + NPRB = RIV2nb_rb_LUT25[rballoc]; //NPRB; + RIV_max = RIV_max25; + break; + case 50: + NPRB = RIV2nb_rb_LUT50[rballoc]; //NPRB; + RIV_max = RIV_max50; + break; + case 100: + NPRB = RIV2nb_rb_LUT100[rballoc]; //NPRB; + RIV_max = RIV_max100; + break; + } + + if (rballoc > RIV_max) { + // DCI false detection + return (0); + } + + if (NPRB == 0) { + // DCI false detection + return (0); + } + + return (1); +} + +int +check_dci_format2_2a_coherency (DCI_format_t dci_format, + uint8_t N_RB_DL, + DCI_INFO_EXTRACTED_t * pdci_info_extarcted, + uint16_t rnti, uint16_t si_rnti, uint16_t ra_rnti, uint16_t p_rnti, LTE_DL_UE_HARQ_t * pdlsch0_harq, LTE_DL_UE_HARQ_t * pdlsch1_harq) +{ + uint8_t rah = pdci_info_extarcted->rah; + uint8_t mcs1 = pdci_info_extarcted->mcs1; + uint8_t mcs2 = pdci_info_extarcted->mcs2; + uint8_t rv1 = pdci_info_extarcted->rv1; + uint8_t rv2 = pdci_info_extarcted->rv2; + uint8_t harq_pid = pdci_info_extarcted->harq_pid; + uint32_t rballoc = pdci_info_extarcted->rballoc; + +#ifdef DEBUG_DCI + uint8_t ndi1 = pdci_info_extarcted->ndi1; + uint8_t ndi2 = pdci_info_extarcted->ndi2; +#endif + + uint8_t NPRB = 0; + long long RIV_max = 0; + +#ifdef DEBUG_DCI + LOG_I (PHY, "extarcted dci - dci_format %d \n", dci_format); + LOG_I (PHY, "extarcted dci - rnti %d \n", rnti); + LOG_I (PHY, "extarcted dci - rah %d \n", rah); + LOG_I (PHY, "extarcted dci - mcs1 %d \n", mcs1); + LOG_I (PHY, "extarcted dci - mcs2 %d \n", mcs2); + LOG_I (PHY, "extarcted dci - rv1 %d \n", rv1); + LOG_I (PHY, "extarcted dci - rv2 %d \n", rv2); + //LOG_I(PHY, "extarcted dci - ndi1 %d \n", ndi1); + //LOG_I(PHY, "extarcted dci - ndi2 %d \n", ndi2); + LOG_I (PHY, "extarcted dci - rballoc %x \n", rballoc); + LOG_I (PHY, "extarcted dci - harq pid %d \n", harq_pid); + LOG_I (PHY, "extarcted dci - round0 %d \n", pdlsch0_harq->round); + LOG_I (PHY, "extarcted dci - round1 %d \n", pdlsch1_harq->round); +#endif + + // I- check dci content minimum coherency + if (harq_pid >= 8) { + LOG_I (PHY, "bad harq pid\n"); + return (0); + } + + if ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) { + LOG_I (PHY, "bad rnti\n"); + return (0); + } + + + if (mcs1 > 28) { + if (pdlsch0_harq->round == 0) { + LOG_I (PHY, "bad mcs1\n"); + return (0); + } + } + + if (mcs2 > 28) { + if (pdlsch1_harq->round == 0) { + LOG_I (PHY, "bad mcs2\n"); + return (0); + } + } + + + if ((pdlsch0_harq->round == 0) && (rv1 > 0) && (mcs1 != 0)) { + // DCI false detection + LOG_I (PHY, "bad rv1\n"); + return (0); + } + + if ((pdlsch1_harq->round == 0) && (rv2 > 0) && (mcs2 != 0)) { + // DCI false detection + LOG_I (PHY, "bad rv2\n"); + return (0); + } + + + switch (N_RB_DL) { + case 6: + if (rah == 0) { + //RBG = 1; + RIV_max = 0x3F; + } else { + RIV_max = RIV_max6; + } + break; + case 25: + if (rah == 0) { + //RBG = 2; + RIV_max = 0x1FFF; + } else { + RIV_max = RIV_max25; + } + break; + case 50: + if (rah == 0) { + //RBG = 3; + RIV_max = 0x1FFFF; + } else { + RIV_max = RIV_max50; + } + break; + case 100: + if (rah == 0) { + //RBG = 4; + RIV_max = 0x1FFFFFF; + } else { + RIV_max = RIV_max100; + } + break; + } + + NPRB = conv_nprb (rah, rballoc, N_RB_DL); + + + + if ((rballoc > RIV_max) && (rah == 1)) { + // DCI false detection + LOG_I (PHY, "bad rballoc %d RIV_max %lld\n", rballoc, RIV_max); + return (0); + } + + if (NPRB == 0) { + // DCI false detection + LOG_I (PHY, "bad NPRB\n"); + return (0); + } + + return (1); +} + +void +compute_llr_offset (LTE_DL_FRAME_PARMS * frame_parms, LTE_UE_PDCCH * pdcch_vars, LTE_UE_PDSCH * pdsch_vars, LTE_DL_UE_HARQ_t * dlsch0_harq, uint8_t nb_rb_alloc, uint8_t subframe) +{ + uint32_t pbch_pss_sss_re; + uint32_t crs_re; + uint32_t granted_re; + uint32_t data_re; + uint32_t llr_offset; + uint8_t symbol; + uint8_t symbol_mod; + + pdsch_vars->llr_offset[pdcch_vars->num_pdcch_symbols] = 0; + + //LOG_I(PHY,"compute_llr_offset: nb RB %d - Qm %d \n", nb_rb_alloc, dlsch0_harq->Qm); + + //dlsch0_harq->rb_alloc_even; + //dlsch0_harq->rb_alloc_odd; + + for (symbol = pdcch_vars->num_pdcch_symbols; symbol < frame_parms->symbols_per_tti; symbol++) { + symbol_mod = (symbol >= (7 - frame_parms->Ncp)) ? (symbol - (7 - frame_parms->Ncp)) : symbol; + if ((symbol_mod == 0) || symbol_mod == (4 - frame_parms->Ncp)) { + if (frame_parms->nb_antennas_tx == 2) + crs_re = 4; + else + crs_re = 2; + } else { + crs_re = 0; + } + + granted_re = nb_rb_alloc * (12 - crs_re); + pbch_pss_sss_re = adjust_G2 (frame_parms, dlsch0_harq->rb_alloc_even, dlsch0_harq->Qm, subframe, symbol); + pbch_pss_sss_re = (double) pbch_pss_sss_re *((double) (12 - crs_re) / 12); + data_re = granted_re - pbch_pss_sss_re; + llr_offset = data_re * dlsch0_harq->Qm * 2; + + pdsch_vars->llr_length[symbol] = data_re; + if (symbol < (frame_parms->symbols_per_tti - 1)) + pdsch_vars->llr_offset[symbol + 1] = pdsch_vars->llr_offset[symbol] + llr_offset; + + //LOG_I(PHY,"Granted Re subframe %d / symbol %d => %d (%d RBs)\n", subframe, symbol_mod, granted_re,dlsch0_harq->nb_rb); + //LOG_I(PHY,"Pbch/PSS/SSS Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, pbch_pss_sss_re); + //LOG_I(PHY,"CRS Re Per PRB subframe %d / symbol %d => %d \n", subframe, symbol_mod, crs_re); + //LOG_I(PHY,"Data Re subframe %d / symbol %d => %d \n", subframe, symbol_mod, data_re); + + + + //LOG_I(PHY,"Data Re subframe %d-symbol %d => llr length %d, llr offset %d \n", subframe, symbol, + // pdsch_vars->llr_length[symbol], pdsch_vars->llr_offset[symbol]); + } +} + +void +prepare_dl_decoding_format1_1A (DCI_format_t dci_format, + uint8_t N_RB_DL, + DCI_INFO_EXTRACTED_t * pdci_info_extarcted, + LTE_DL_FRAME_PARMS * frame_parms, + LTE_UE_PDCCH * pdcch_vars, + LTE_UE_PDSCH * pdsch_vars, + uint8_t subframe, uint16_t rnti, uint16_t tc_rnti, uint16_t si_rnti, uint16_t ra_rnti, uint16_t p_rnti, LTE_DL_UE_HARQ_t * pdlsch0_harq, LTE_UE_DLSCH_t * pdlsch0) +{ + + uint8_t harq_pid = pdci_info_extarcted->harq_pid; + uint8_t vrb_type = pdci_info_extarcted->vrb_type; + uint32_t rballoc = pdci_info_extarcted->rballoc; + uint8_t mcs1 = pdci_info_extarcted->mcs1; + uint8_t rv1 = pdci_info_extarcted->rv1; + uint8_t ndi1 = pdci_info_extarcted->ndi1; + uint8_t TPC = pdci_info_extarcted->TPC; + uint8_t rah = pdci_info_extarcted->rah; + uint8_t dai = pdci_info_extarcted->dai; + + + uint8_t NPRB = 0; + uint8_t NPRB4TBS = 0; + uint8_t nb_rb_alloc = 0; + + if (dci_format == format1A) { + switch (N_RB_DL) { + case 6: + NPRB = RIV2nb_rb_LUT6[rballoc]; + break; + case 25: + NPRB = RIV2nb_rb_LUT25[rballoc]; + break; + case 50: + NPRB = RIV2nb_rb_LUT50[rballoc]; + break; + case 100: + NPRB = RIV2nb_rb_LUT100[rballoc]; + break; + } + if ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) { + NPRB4TBS = (TPC & 1) + 2; + } else { + NPRB4TBS = NPRB; + /* + switch (N_RB_DL) { + case 6: + NPRB = RIV2nb_rb_LUT6[rballoc];//NPRB; + break; + case 25: + NPRB = RIV2nb_rb_LUT25[rballoc];//NPRB; + break; + case 50: + NPRB = RIV2nb_rb_LUT50[rballoc];//NPRB; + break; + case 100: + NPRB = RIV2nb_rb_LUT100[rballoc];//NPRB; + break; + } + + */ + nb_rb_alloc = NPRB; + } + } else // format1 + { + NPRB = conv_nprb (rah, rballoc, N_RB_DL); + NPRB4TBS = NPRB; + nb_rb_alloc = NPRB; + } + + pdlsch0->current_harq_pid = harq_pid; + pdlsch0->active = 1; + pdlsch0->rnti = rnti; + if (dci_format == format1A) + pdlsch0->harq_ack[subframe].vDAI_DL = dai + 1; + + if ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) { + pdlsch0_harq->round = 0; + pdlsch0_harq->status = ACTIVE; + } else //CRNTI + { + if (rnti == tc_rnti) { + //fix for standalone Contention Resolution Id + pdlsch0_harq->DCINdi = (uint8_t) - 1; + LOG_D (PHY, "UE (%x/%d): Format1A DCI: C-RNTI is temporary. Set NDI = %d and to be ignored\n", rnti, harq_pid, pdlsch0_harq->DCINdi); + } + // NDI has been toggled or this is the first transmission + if ((ndi1 != pdlsch0_harq->DCINdi) || (pdlsch0_harq->first_tx == 1)) { + pdlsch0_harq->round = 0; + pdlsch0_harq->first_tx = 0; + pdlsch0_harq->status = ACTIVE; + + } else if (rv1 != 0) + //NDI has not been toggled but rv was increased by eNB: retransmission + { + if (pdlsch0_harq->status == SCH_IDLE) + //packet was actually decoded in previous transmission (ACK was missed by eNB) + //However, the round is not a good check as it might have been decoded in a retransmission prior to this one. + { + LOG_D (PHY, "skip pdsch decoding and report ack\n"); + // skip pdsch decoding and report ack + //pdlsch0_harq->status = SCH_IDLE; + pdlsch0->active = 0; + pdlsch0->harq_ack[subframe].ack = 1; + pdlsch0->harq_ack[subframe].harq_id = harq_pid; + pdlsch0->harq_ack[subframe].send_harq_status = 1; + + //pdlsch0_harq->first_tx = 0; + } else //normal retransmission + { + // nothing special to do + } + } else { + pdlsch0_harq->status = ACTIVE; + } + } + + pdlsch0_harq->DCINdi = ndi1; + pdlsch0_harq->mcs = mcs1; + pdlsch0_harq->rvidx = rv1; + pdlsch0_harq->nb_rb = NPRB; + + pdlsch0_harq->codeword = 0; + pdlsch0_harq->Nl = 1; + pdlsch0_harq->mimo_mode = frame_parms->nb_antenna_ports_eNB == 1 ? SISO : ALAMOUTI; + pdlsch0_harq->dl_power_off = 1; //no power offset + pdlsch0_harq->delta_PUCCH = delta_PUCCH_lut[TPC & 3]; + + // compute resource allocation + if (dci_format == format1A) { + switch (N_RB_DL) { + case 6: + if (vrb_type == LOCALIZED) { + pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT6[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT6[rballoc]; + } else { + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT6[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT6[rballoc]; + } + break; + + case 25: + if (vrb_type == LOCALIZED) { + pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT25[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT25[rballoc]; + } else { + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT25[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT25[rballoc]; + } + break; + + case 50: + if (vrb_type == LOCALIZED) { + pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = localRIV2alloc_LUT50_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = localRIV2alloc_LUT50_1[rballoc]; + printf ("rballoc: %08x.%08x\n", pdlsch0_harq->rb_alloc_even[0], pdlsch0_harq->rb_alloc_even[1]); + } else { // DISTRIBUTED + if ((rballoc & (1 << 10)) == 0) { + rballoc = rballoc & (~(1 << 10)); + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT50_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT50_1[rballoc]; + } else { + rballoc = rballoc & (~(1 << 10)); + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT50_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT50_1[rballoc]; + } + } + break; + + case 100: + if (vrb_type == LOCALIZED) { + pdlsch0_harq->rb_alloc_even[0] = localRIV2alloc_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = localRIV2alloc_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_even[2] = localRIV2alloc_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_even[3] = localRIV2alloc_LUT100_3[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = localRIV2alloc_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = localRIV2alloc_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[2] = localRIV2alloc_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_odd[3] = localRIV2alloc_LUT100_3[rballoc]; + } else { + if ((rballoc & (1 << 10)) == 0) { //Gap 1 + rballoc = rballoc & (~(1 << 12)); + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap0_even_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap0_even_LUT100_3[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap0_odd_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap0_odd_LUT100_3[rballoc]; + } else { //Gap 2 + rballoc = rballoc & (~(1 << 12)); + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap1_even_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap1_even_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap1_even_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap1_even_LUT100_3[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap1_odd_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap1_odd_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap1_odd_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap1_odd_LUT100_3[rballoc]; + } + } + break; + } + } else // format1 + { + conv_rballoc (rah, rballoc, frame_parms->N_RB_DL, pdlsch0_harq->rb_alloc_even); + pdlsch0_harq->rb_alloc_odd[0] = pdlsch0_harq->rb_alloc_even[0]; + pdlsch0_harq->rb_alloc_odd[1] = pdlsch0_harq->rb_alloc_even[1]; + pdlsch0_harq->rb_alloc_odd[2] = pdlsch0_harq->rb_alloc_even[2]; + pdlsch0_harq->rb_alloc_odd[3] = pdlsch0_harq->rb_alloc_even[3]; + } + if ((rnti == si_rnti) || (rnti == p_rnti) || (rnti == ra_rnti)) { + pdlsch0_harq->TBS = TBStable[mcs1][NPRB4TBS - 1]; + pdlsch0_harq->Qm = 2; + } else { + if (mcs1 < 29) { + pdlsch0_harq->TBS = TBStable[get_I_TBS (mcs1)][NPRB4TBS - 1]; + pdlsch0_harq->Qm = get_Qm (mcs1); + } + } + + compute_llr_offset (frame_parms, pdcch_vars, pdsch_vars, pdlsch0_harq, nb_rb_alloc, subframe); +} + +void +prepare_dl_decoding_format1C (uint8_t N_RB_DL, + DCI_INFO_EXTRACTED_t * pdci_info_extarcted, + LTE_DL_FRAME_PARMS * frame_parms, + LTE_UE_PDCCH * pdcch_vars, + LTE_UE_PDSCH * pdsch_vars, + uint32_t rnti, uint32_t si_rnti, uint32_t ra_rnti, uint32_t p_rnti, uint32_t frame, uint8_t subframe, LTE_DL_UE_HARQ_t * pdlsch0_harq, LTE_UE_DLSCH_t * pdlsch0) +{ + + uint8_t harq_pid = pdci_info_extarcted->harq_pid; + uint32_t rballoc = pdci_info_extarcted->rballoc; + uint8_t mcs1 = pdci_info_extarcted->mcs1; + uint8_t Ngap = pdci_info_extarcted->Ngap; + + pdlsch0_harq->round = 0; + pdlsch0_harq->first_tx = 1; + pdlsch0_harq->vrb_type = DISTRIBUTED; + + if (rnti == si_rnti) { // rule from Section 5.3.1 of 36.321 + if (((frame & 1) == 0) && (subframe == 5)) + pdlsch0_harq->rvidx = (((3 * ((frame >> 1) & 3)) + 1) >> 1) & 3; // SIB1 + else + pdlsch0_harq->rvidx = (((3 * (subframe & 3)) + 1) >> 1) & 3; // other SIBs + } else if ((rnti == p_rnti) || (rnti == ra_rnti)) { // Section 7.1.7.3 + pdlsch0_harq->rvidx = 0; + } + + + pdlsch0_harq->Nl = 1; + pdlsch0_harq->mimo_mode = frame_parms->nb_antenna_ports_eNB == 1 ? SISO : ALAMOUTI; + pdlsch0_harq->dl_power_off = 1; //no power offset + + pdlsch0_harq->codeword = 0; + pdlsch0_harq->mcs = mcs1; + pdlsch0_harq->TBS = TBStable1C[mcs1]; + pdlsch0_harq->Qm = 2; + + + pdlsch0->current_harq_pid = harq_pid; + pdlsch0->active = 1; + pdlsch0->rnti = rnti; + + switch (N_RB_DL) { + case 6: + pdlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rballoc]; + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT6[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT6[rballoc]; + + break; + + case 25: + pdlsch0_harq->nb_rb = RIV2nb_rb_LUT25[rballoc]; + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_even_LUT25[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_odd_LUT25[rballoc]; + break; + + case 50: + pdlsch0_harq->nb_rb = RIV2nb_rb_LUT50[rballoc]; + if (Ngap == 0) { + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT50_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT50_1[rballoc]; + } else { + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap1_even_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap1_odd_LUT50_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap1_even_LUT50_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap1_odd_LUT50_1[rballoc]; + } + break; + + case 100: + pdlsch0_harq->nb_rb = RIV2nb_rb_LUT100[rballoc]; + if (Ngap == 0) { + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap0_even_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap0_odd_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap0_even_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap0_odd_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap0_even_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap0_odd_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap0_even_LUT100_3[rballoc]; + pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap0_odd_LUT100_3[rballoc]; + } else { + pdlsch0_harq->rb_alloc_even[0] = distRIV2alloc_gap1_even_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_odd[0] = distRIV2alloc_gap1_odd_LUT100_0[rballoc]; + pdlsch0_harq->rb_alloc_even[1] = distRIV2alloc_gap1_even_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_odd[1] = distRIV2alloc_gap1_odd_LUT100_1[rballoc]; + pdlsch0_harq->rb_alloc_even[2] = distRIV2alloc_gap1_even_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_odd[2] = distRIV2alloc_gap1_odd_LUT100_2[rballoc]; + pdlsch0_harq->rb_alloc_even[3] = distRIV2alloc_gap1_even_LUT100_3[rballoc]; + pdlsch0_harq->rb_alloc_odd[3] = distRIV2alloc_gap1_odd_LUT100_3[rballoc]; + } + break; + + default: + AssertFatal (0, "Format 1C: Unknown N_RB_DL %d\n", frame_parms->N_RB_DL); + break; + } + + compute_llr_offset (frame_parms, pdcch_vars, pdsch_vars, pdlsch0_harq, pdlsch0_harq->nb_rb, subframe); + +} + +void +compute_precoding_info_2cw (uint8_t tpmi, uint8_t tbswap, uint16_t pmi_alloc, LTE_DL_FRAME_PARMS * frame_parms, LTE_DL_UE_HARQ_t * dlsch0_harq, LTE_DL_UE_HARQ_t * dlsch1_harq) +{ + + switch (tpmi) { + case 0: + dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; + dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODING1; + dlsch0_harq->pmi_alloc = pmi_extend (frame_parms, 0, 1); + dlsch1_harq->pmi_alloc = pmi_extend (frame_parms, 0, 1); + break; + case 1: + dlsch0_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; + dlsch1_harq->mimo_mode = DUALSTREAM_UNIFORM_PRECODINGj; + dlsch0_harq->pmi_alloc = pmi_extend (frame_parms, 1, 1); + dlsch1_harq->pmi_alloc = pmi_extend (frame_parms, 1, 1); + break; + case 2: // PUSCH precoding + dlsch0_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; + dlsch1_harq->mimo_mode = DUALSTREAM_PUSCH_PRECODING; + if (tbswap == 0) { + dlsch0_harq->pmi_alloc = pmi_alloc; + dlsch1_harq->pmi_alloc = pmi_alloc ^ 0x1555; + } else { + dlsch1_harq->pmi_alloc = pmi_alloc; + dlsch0_harq->pmi_alloc = pmi_alloc ^ 0x1555; + } +#ifdef DEBUG_HARQ + printf ("\n \n compute_precoding_info_2cw pmi_alloc_new = %d\n", dlsch0_harq->pmi_alloc); +#endif + break; + default: + break; + } +} + +void +compute_precoding_info_1cw (uint8_t tpmi, uint16_t pmi_alloc, LTE_DL_FRAME_PARMS * frame_parms, LTE_DL_UE_HARQ_t * dlsch_harq) +{ + + switch (tpmi) { + case 0: + dlsch_harq->mimo_mode = ALAMOUTI; + break; + case 1: + dlsch_harq->mimo_mode = UNIFORM_PRECODING11; + dlsch_harq->pmi_alloc = pmi_extend (frame_parms, 0, 0); + break; + case 2: + dlsch_harq->mimo_mode = UNIFORM_PRECODING1m1; + dlsch_harq->pmi_alloc = pmi_extend (frame_parms, 1, 0); + break; + case 3: + dlsch_harq->mimo_mode = UNIFORM_PRECODING1j; + dlsch_harq->pmi_alloc = pmi_extend (frame_parms, 2, 0); + break; + case 4: + dlsch_harq->mimo_mode = UNIFORM_PRECODING1mj; + dlsch_harq->pmi_alloc = pmi_extend (frame_parms, 3, 0); + break; + case 5: + dlsch_harq->mimo_mode = PUSCH_PRECODING0; + dlsch_harq->pmi_alloc = pmi_alloc; //pmi_convert(frame_parms,dlsch0->pmi_alloc,0); + break; + case 6: + dlsch_harq->mimo_mode = PUSCH_PRECODING1; + dlsch_harq->pmi_alloc = pmi_alloc; //pmi_convert(frame_parms,dlsch0->pmi_alloc,1); + break; + } +#ifdef DEBUG_HARQ + printf ("[DCI UE] I am calling from the UE side pmi_alloc_new = %d with tpmi %d\n", dlsch_harq->pmi_alloc, tpmi); +#endif +} + +void +compute_precoding_info_format2A (uint8_t tpmi, uint8_t nb_antenna_ports_eNB, uint8_t tb0_active, uint8_t tb1_active, LTE_DL_UE_HARQ_t * dlsch0_harq, LTE_DL_UE_HARQ_t * dlsch1_harq) +{ + + dlsch0_harq->dl_power_off = 0; + dlsch1_harq->dl_power_off = 0; + + if (nb_antenna_ports_eNB == 2) { + if ((tb0_active == 1) && (tb1_active == 1)) { + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch0_harq->dl_power_off = 1; + dlsch1_harq->dl_power_off = 1; + } else { + dlsch0_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->mimo_mode = ALAMOUTI; + } + } else if (nb_antenna_ports_eNB == 4) { // 4 antenna case + if ((tb0_active == 1) && (tb1_active == 1)) { + switch (tpmi) { + case 0: // one layer per transport block + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; dlsch0_harq->dl_power_off = 1; dlsch1_harq->dl_power_off = 1; + break; - pdlsch0->current_harq_pid = harq_pid; - pdlsch0->harq_ack[subframe].harq_id = harq_pid; - pdlsch1->current_harq_pid = harq_pid; - pdlsch1->harq_ack[subframe].harq_id = harq_pid; + case 1: // one-layers on TB 0, two on TB 1 + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->Nl = 2; + dlsch0_harq->dl_power_off = 1; + dlsch1_harq->dl_power_off = 1; + break; - // assume two CW are active - dlsch0_harq->status = ACTIVE; - dlsch1_harq->status = ACTIVE; - pdlsch0->active = 1; - pdlsch1->active = 1; - pdlsch0->rnti = rnti; - pdlsch1->rnti = rnti; + case 2: // two-layers on TB 0, two on TB 1 + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch0_harq->Nl = 2; + dlsch0_harq->dl_power_off = 1; + dlsch1_harq->dl_power_off = 1; + break; - - if (TB0_active && TB1_active && tbswap==1) { - dlsch0_harq->codeword = 1; - dlsch1_harq->codeword = 0; + case 3: // + LOG_E (PHY, "Illegal value (3) for TPMI in Format 2A DCI\n"); + break; } + } else if (tb0_active == 1) { + switch (tpmi) { + case 0: // one layer per transport block + dlsch0_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->mimo_mode = ALAMOUTI; + break; + case 1: // two-layers on TB 0 + dlsch0_harq->mimo_mode = LARGE_CDD; + dlsch0_harq->Nl = 2; + dlsch0_harq->dl_power_off = 1; + break; - if (!TB0_active && TB1_active){ - dlsch1_harq->codeword = 0; + case 2: // two-layers on TB 0, two on TB 1 + case 3: // + LOG_E (PHY, "Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n", tpmi); + break; } + } else if (tb1_active == 1) { + switch (tpmi) { + case 0: // one layer per transport block + dlsch0_harq->mimo_mode = ALAMOUTI; + dlsch1_harq->mimo_mode = ALAMOUTI; + break; - if (TB0_active && !TB1_active){ - dlsch0_harq->codeword = 0; + case 1: // two-layers on TB 0 + dlsch1_harq->mimo_mode = LARGE_CDD; + dlsch1_harq->Nl = 2; + dlsch0_harq->dl_power_off = 1; + break; + + case 2: // two-layers on TB 0, two on TB 1 + case 3: // + LOG_E (PHY, "Illegal value %d for TPMI in Format 2A DCI with one transport block enabled\n", tpmi); + break; } + } + } + // printf("Format 2A: NPRB=%d (rballoc %x,mcs1 %d, mcs2 %d, frame_type %d N_RB_DL %d,active %d/%d)\n",NPRB,rballoc,mcs1,mcs2,frame_parms->frame_type,frame_parms->N_RB_DL,dlsch0->active,dlsch1->active); + //printf("UE (%x/%d): Subframe %d Format2A DCI: ndi1 %d, old_ndi1 %d, ndi2 %d, old_ndi2 %d (first tx1 %d, first tx2 %d) harq_status1 %d, harq_status2 %d\n",dlsch0->rnti,harq_pid,subframe,ndi,dlsch0_harq->DCINdi, + // dlsch0_harq->first_tx,dlsch1_harq->first_tx,dlsch0_harq->status,dlsch1_harq->status); + //printf("TBS0 %d, TBS1 %d\n",dlsch0_harq->TBS,dlsch1_harq->TBS); - - if (TB0_active==0) { - dlsch0_harq->status = SCH_IDLE; - pdlsch0->active = 0; - #ifdef DEBUG_HARQ - printf("[DCI UE]: TB0 is deactivated, retransmit TB1 transmit in TM6\n"); - #endif - } - - if (TB1_active==0) { - dlsch1_harq->status = SCH_IDLE; - pdlsch1->active = 0; - } - -#ifdef DEBUG_HARQ - printf("[DCI UE]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); -#endif - - // compute resource allocation - if (TB0_active == 1){ - - dlsch0_harq->nb_rb = conv_nprb(rah, - rballoc, - frame_parms->N_RB_DL); - conv_rballoc(rah, - rballoc, - frame_parms->N_RB_DL, - dlsch0_harq->rb_alloc_even); - - dlsch0_harq->rb_alloc_odd[0]= dlsch0_harq->rb_alloc_even[0]; - dlsch0_harq->rb_alloc_odd[1]= dlsch0_harq->rb_alloc_even[1]; - dlsch0_harq->rb_alloc_odd[2]= dlsch0_harq->rb_alloc_even[2]; - dlsch0_harq->rb_alloc_odd[3]= dlsch0_harq->rb_alloc_even[3]; - - if (TB1_active == 1){ - dlsch1_harq->rb_alloc_even[0]= dlsch0_harq->rb_alloc_even[0]; - dlsch1_harq->rb_alloc_even[1]= dlsch0_harq->rb_alloc_even[1]; - dlsch1_harq->rb_alloc_even[2]= dlsch0_harq->rb_alloc_even[2]; - dlsch1_harq->rb_alloc_even[3]= dlsch0_harq->rb_alloc_even[3]; - dlsch1_harq->rb_alloc_odd[0] = dlsch0_harq->rb_alloc_odd[0]; - dlsch1_harq->rb_alloc_odd[1] = dlsch0_harq->rb_alloc_odd[1]; - dlsch1_harq->rb_alloc_odd[2] = dlsch0_harq->rb_alloc_odd[2]; - dlsch1_harq->rb_alloc_odd[3] = dlsch0_harq->rb_alloc_odd[3]; - - dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; - - //dlsch0_harq->Nl = 1; - //dlsch1_harq->Nl = 1; - } - } else if ((TB0_active == 0) && (TB1_active == 1)){ - - conv_rballoc(rah, - rballoc, - frame_parms->N_RB_DL, - dlsch1_harq->rb_alloc_even); - - dlsch1_harq->rb_alloc_odd[0]= dlsch1_harq->rb_alloc_even[0]; - dlsch1_harq->rb_alloc_odd[1]= dlsch1_harq->rb_alloc_even[1]; - dlsch1_harq->rb_alloc_odd[2]= dlsch1_harq->rb_alloc_even[2]; - dlsch1_harq->rb_alloc_odd[3]= dlsch1_harq->rb_alloc_even[3]; - dlsch1_harq->nb_rb = conv_nprb(rah, - rballoc, - frame_parms->N_RB_DL); - } - - - // compute precoding matrix + mimo mode - if(dci_format == format2) - { - if ((TB0_active) && (TB1_active)){ //two CW active - compute_precoding_info_2cw(tpmi, tbswap, pdlsch0->pmi_alloc,frame_parms, dlsch0_harq, dlsch1_harq); - - // printf("[DCI UE 1]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); - } else if ((TB0_active) && (!TB1_active)) { // only CW 0 active - compute_precoding_info_1cw(tpmi, pdlsch0->pmi_alloc, frame_parms, dlsch0_harq); - } else { - compute_precoding_info_1cw(tpmi, pdlsch1->pmi_alloc, frame_parms, dlsch1_harq); - // printf("I am doing compute_precoding_info_1cw with tpmi %d \n", tpmi); - } - //printf(" UE DCI harq0 MIMO mode = %d\n", dlsch0_harq->mimo_mode); - if ((frame_parms->nb_antenna_ports_eNB == 1) && (TB0_active)) - dlsch0_harq->mimo_mode = SISO; - } - else - { - compute_precoding_info_format2A( tpmi, - frame_parms->nb_antenna_ports_eNB, - TB0_active, - TB1_active, - dlsch0_harq, - dlsch1_harq); - } - // printf("[DCI UE 2]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); - // reset round + compute Qm - if (TB0_active) { - // printf("TB0 ndi1 =%d, dlsch0_harq->DCINdi =%d, dlsch0_harq->first_tx = %d\n", ndi1, dlsch0_harq->DCINdi, dlsch0_harq->first_tx); - if ((ndi1!=dlsch0_harq->DCINdi) || (dlsch0_harq->first_tx==1)) { - dlsch0_harq->round = 0; - dlsch0_harq->status = ACTIVE; - dlsch0_harq->DCINdi = ndi1; - - //LOG_I(PHY,"[UE] DLSCH: New Data Indicator CW0 subframe %d (pid %d, round %d)\n", - // subframe,harq_pid,dlsch0_harq->round); - if ( dlsch0_harq->first_tx==1) { - LOG_D(PHY,"Format 2 DCI First TX0: Clearing flag\n"); - dlsch0_harq->first_tx = 0; - } - } - /*else if (rv1 != 0 ) - //NDI has not been toggled but rv was increased by eNB: retransmission - { - if(dlsch0_harq->status == SCH_IDLE) { - // skip pdsch decoding and report ack - //dlsch0_harq->status = SCH_IDLE; - pdlsch0->active = 0; - pdlsch0->harq_ack[subframe].ack = 1; - pdlsch0->harq_ack[subframe].harq_id = harq_pid; - pdlsch0->harq_ack[subframe].send_harq_status = 1; - }*/ - - // if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest - // PDCCH for the same trasport block using Imcs in [0 .. 28] - if(dlsch0_harq->mcs <= 28) - { - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; - LOG_D(PHY,"[UE] DLSCH: New TBS CW0 subframe %d (pid %d, round %d) TBS %d \n", - subframe,harq_pid,dlsch0_harq->round, dlsch0_harq->TBS); - } - else - { - LOG_D(PHY,"[UE] DLSCH: Keep the same TBS CW0 subframe %d (pid %d, round %d) TBS %d \n", - subframe,harq_pid,dlsch0_harq->round, dlsch0_harq->TBS); - } - //if(dlsch0_harq->Nl == 2) - //dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1]; - if (mcs1 <= 28) - dlsch0_harq->Qm = get_Qm(mcs1); - else if (mcs1<=31) - dlsch0_harq->Qm = (mcs1-28)<<1; - } - - // printf("[DCI UE 3]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); - - if (TB1_active) { - // printf("TB1 ndi2 =%d, dlsch1_harq->DCINdi =%d, dlsch1_harq->first_tx = %d\n", ndi2, dlsch1_harq->DCINdi, dlsch1_harq->first_tx); - if ((ndi2!=dlsch1_harq->DCINdi) || (dlsch1_harq->first_tx==1)) { - dlsch1_harq->round = 0; - dlsch1_harq->status = ACTIVE; - dlsch1_harq->DCINdi = ndi2; - //LOG_I(PHY,"[UE] DLSCH: New Data Indicator CW1 subframe %d (pid %d, round %d)\n", - // subframe,harq_pid,dlsch0_harq->round); - if (dlsch1_harq->first_tx==1) { - LOG_D(PHY,"Format 2 DCI First TX1: Clearing flag\n"); - dlsch1_harq->first_tx = 0; - } - } - /*else if (rv1 != 0 ) - //NDI has not been toggled but rv was increased by eNB: retransmission - { - if(dlsch1_harq->status == SCH_IDLE) { - // skip pdsch decoding and report ack - //dlsch1_harq->status = SCH_IDLE; - pdlsch1->active = 0; - pdlsch1->harq_ack[subframe].ack = 1; - pdlsch1->harq_ack[subframe].harq_id = harq_pid; - pdlsch1->harq_ack[subframe].send_harq_status = 1; - } - }*/ - - // if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest - // PDCCH for the same trasport block using Imcs in [0 .. 28] - if(dlsch1_harq->mcs <= 28) - { - dlsch1_harq->TBS = TBStable[get_I_TBS(dlsch1_harq->mcs)][dlsch1_harq->nb_rb-1]; - LOG_D(PHY,"[UE] DLSCH: New TBS CW1 subframe %d (pid %d, round %d) TBS %d \n", - subframe,harq_pid,dlsch1_harq->round, dlsch1_harq->TBS); - } - else - { - LOG_D(PHY,"[UE] DLSCH: Keep the same TBS CW1 subframe %d (pid %d, round %d) TBS %d \n", - subframe,harq_pid,dlsch1_harq->round, dlsch1_harq->TBS); - } - if (mcs2 <= 28) - dlsch1_harq->Qm = get_Qm(mcs2); - else if (mcs1<=31) - dlsch1_harq->Qm = (mcs2-28)<<1; - } - - - compute_llr_offset(frame_parms, - pdcch_vars, - pdsch_vars, - dlsch0_harq, - dlsch0_harq->nb_rb, - subframe); - - - /* #ifdef DEBUG_HARQ - printf("[DCI UE]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); - printf("[DCI UE]: TB0_active %d , TB1_active %d\n", TB0_active, TB1_active); - if (dlsch0 != NULL && dlsch1 != NULL) - printf("[DCI UE] dlsch0_harq status = %d, dlsch1_harq status = %d\n", dlsch0_harq->status, dlsch1_harq->status); - else if (dlsch0 == NULL && dlsch1 != NULL) - printf("[DCI UE] dlsch0_harq NULL dlsch1_harq status = %d\n", dlsch1_harq->status); - else if (dlsch0 != NULL && dlsch1 == NULL) - printf("[DCI UE] dlsch1_harq NULL dlsch0_harq status = %d\n", dlsch0_harq->status); - #endif*/ } -int generate_ue_dlsch_params_from_dci(int frame, - uint8_t subframe, - void *dci_pdu, - uint16_t rnti, - DCI_format_t dci_format, - LTE_UE_PDCCH *pdcch_vars, - LTE_UE_PDSCH *pdsch_vars, - LTE_UE_DLSCH_t **dlsch, - LTE_DL_FRAME_PARMS *frame_parms, - PDSCH_CONFIG_DEDICATED *pdsch_config_dedicated, - uint16_t si_rnti, - uint16_t ra_rnti, - uint16_t p_rnti, - uint8_t beamforming_mode, - uint16_t tc_rnti) +void +prepare_dl_decoding_format2_2A (DCI_format_t dci_format, + DCI_INFO_EXTRACTED_t * pdci_info_extarcted, + LTE_DL_FRAME_PARMS * frame_parms, + LTE_UE_PDCCH * pdcch_vars, + LTE_UE_PDSCH * pdsch_vars, + uint16_t rnti, uint8_t subframe, LTE_DL_UE_HARQ_t * dlsch0_harq, LTE_DL_UE_HARQ_t * dlsch1_harq, LTE_UE_DLSCH_t * pdlsch0, LTE_UE_DLSCH_t * pdlsch1) { - uint8_t harq_pid=0; - uint8_t frame_type=frame_parms->frame_type; - uint8_t tpmi=0; - LTE_UE_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; - LTE_DL_UE_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; + uint8_t rah = pdci_info_extarcted->rah; + uint8_t mcs1 = pdci_info_extarcted->mcs1; + uint8_t mcs2 = pdci_info_extarcted->mcs2; + uint8_t rv1 = pdci_info_extarcted->rv1; + uint8_t rv2 = pdci_info_extarcted->rv2; + uint8_t harq_pid = pdci_info_extarcted->harq_pid; + uint32_t rballoc = pdci_info_extarcted->rballoc; + uint8_t tbswap = pdci_info_extarcted->tb_swap; + uint8_t tpmi = pdci_info_extarcted->tpmi; + uint8_t TPC = pdci_info_extarcted->TPC; + uint8_t ndi1 = pdci_info_extarcted->ndi1; + uint8_t ndi2 = pdci_info_extarcted->ndi2; - DCI_INFO_EXTRACTED_t dci_info_extarcted; - uint8_t status=0; + uint8_t TB0_active = 1; + uint8_t TB1_active = 1; - if (!dlsch[0]) return -1; + // printf("inside prepare pdlsch1->pmi_alloc %d \n",pdlsch1->pmi_alloc); - #ifdef DEBUG_DCI - LOG_D(PHY,"dci_tools.c: Filling ue dlsch params -> rnti %x, SFN/SF %d/%d, dci_format %s\n", - rnti, - frame%1024, - subframe, - (dci_format==format0? "Format 0":( - dci_format==format1? "format 1":( - dci_format==format1A? "format 1A":( - dci_format==format1B? "format 1B":( - dci_format==format1C? "format 1C":( - dci_format==format1D? "format 1D":( - dci_format==format1E_2A_M10PRB? "format 1E_2A_M10PRB":( - dci_format==format2? "format 2":( - dci_format==format2A? "format 2A":( - dci_format==format2B? "format 2B":( - dci_format==format2C? "format 2C":( - dci_format==format2D? "format 2D":( - dci_format==format3? "format 3": "UNKNOWN" - )))))))))))))); - #endif - memset(&dci_info_extarcted,0,sizeof(dci_info_extarcted)); - switch (dci_format) { + if ((rv1 == 1) && (mcs1 == 0)) { + TB0_active = 0; + } + if ((rv2 == 1) && (mcs2 == 0)) { + TB1_active = 0; + } +#ifdef DEBUG_HARQ + printf ("[DCI UE]: TB0 status %d , TB1 status %d\n", TB0_active, TB1_active); +#endif - case format0: // This is an ULSCH allocation so nothing here, inform MAC - LOG_E(PHY,"format0 not possible\n"); - return(-1); - break; + dlsch0_harq->mcs = mcs1; + dlsch1_harq->mcs = mcs2; + dlsch0_harq->rvidx = rv1; + dlsch1_harq->rvidx = rv2; + dlsch0_harq->DCINdi = ndi1; + dlsch1_harq->DCINdi = ndi2; - case format1A: + dlsch0_harq->codeword = 0; + dlsch1_harq->codeword = 1; + dlsch0_harq->Nl = 1; + dlsch1_harq->Nl = 1; + dlsch0_harq->delta_PUCCH = delta_PUCCH_lut[TPC & 3]; + dlsch1_harq->delta_PUCCH = delta_PUCCH_lut[TPC & 3]; + dlsch0_harq->dl_power_off = 1; + dlsch1_harq->dl_power_off = 1; + + pdlsch0->current_harq_pid = harq_pid; + pdlsch0->harq_ack[subframe].harq_id = harq_pid; + pdlsch1->current_harq_pid = harq_pid; + pdlsch1->harq_ack[subframe].harq_id = harq_pid; + + // assume two CW are active + dlsch0_harq->status = ACTIVE; + dlsch1_harq->status = ACTIVE; + pdlsch0->active = 1; + pdlsch1->active = 1; + pdlsch0->rnti = rnti; + pdlsch1->rnti = rnti; + + + if (TB0_active && TB1_active && tbswap == 1) { + dlsch0_harq->codeword = 1; + dlsch1_harq->codeword = 0; + } + + + if (!TB0_active && TB1_active) { + dlsch1_harq->codeword = 0; + } + + if (TB0_active && !TB1_active) { + dlsch0_harq->codeword = 0; + } + + + if (TB0_active == 0) { + dlsch0_harq->status = SCH_IDLE; + pdlsch0->active = 0; +#ifdef DEBUG_HARQ + printf ("[DCI UE]: TB0 is deactivated, retransmit TB1 transmit in TM6\n"); +#endif + } + + if (TB1_active == 0) { + dlsch1_harq->status = SCH_IDLE; + pdlsch1->active = 0; + } +#ifdef DEBUG_HARQ + printf ("[DCI UE]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); +#endif + + // compute resource allocation + if (TB0_active == 1) { + + dlsch0_harq->nb_rb = conv_nprb (rah, rballoc, frame_parms->N_RB_DL); + conv_rballoc (rah, rballoc, frame_parms->N_RB_DL, dlsch0_harq->rb_alloc_even); + + dlsch0_harq->rb_alloc_odd[0] = dlsch0_harq->rb_alloc_even[0]; + dlsch0_harq->rb_alloc_odd[1] = dlsch0_harq->rb_alloc_even[1]; + dlsch0_harq->rb_alloc_odd[2] = dlsch0_harq->rb_alloc_even[2]; + dlsch0_harq->rb_alloc_odd[3] = dlsch0_harq->rb_alloc_even[3]; + + if (TB1_active == 1) { + dlsch1_harq->rb_alloc_even[0] = dlsch0_harq->rb_alloc_even[0]; + dlsch1_harq->rb_alloc_even[1] = dlsch0_harq->rb_alloc_even[1]; + dlsch1_harq->rb_alloc_even[2] = dlsch0_harq->rb_alloc_even[2]; + dlsch1_harq->rb_alloc_even[3] = dlsch0_harq->rb_alloc_even[3]; + dlsch1_harq->rb_alloc_odd[0] = dlsch0_harq->rb_alloc_odd[0]; + dlsch1_harq->rb_alloc_odd[1] = dlsch0_harq->rb_alloc_odd[1]; + dlsch1_harq->rb_alloc_odd[2] = dlsch0_harq->rb_alloc_odd[2]; + dlsch1_harq->rb_alloc_odd[3] = dlsch0_harq->rb_alloc_odd[3]; + + dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; + + //dlsch0_harq->Nl = 1; + //dlsch1_harq->Nl = 1; + } + } else if ((TB0_active == 0) && (TB1_active == 1)) { + + conv_rballoc (rah, rballoc, frame_parms->N_RB_DL, dlsch1_harq->rb_alloc_even); + + dlsch1_harq->rb_alloc_odd[0] = dlsch1_harq->rb_alloc_even[0]; + dlsch1_harq->rb_alloc_odd[1] = dlsch1_harq->rb_alloc_even[1]; + dlsch1_harq->rb_alloc_odd[2] = dlsch1_harq->rb_alloc_even[2]; + dlsch1_harq->rb_alloc_odd[3] = dlsch1_harq->rb_alloc_even[3]; + dlsch1_harq->nb_rb = conv_nprb (rah, rballoc, frame_parms->N_RB_DL); + } + + // compute precoding matrix + mimo mode + if (dci_format == format2) { + if ((TB0_active) && (TB1_active)) { //two CW active + compute_precoding_info_2cw (tpmi, tbswap, pdlsch0->pmi_alloc, frame_parms, dlsch0_harq, dlsch1_harq); + + // printf("[DCI UE 1]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); + } else if ((TB0_active) && (!TB1_active)) { // only CW 0 active + compute_precoding_info_1cw (tpmi, pdlsch0->pmi_alloc, frame_parms, dlsch0_harq); + } else { + compute_precoding_info_1cw (tpmi, pdlsch1->pmi_alloc, frame_parms, dlsch1_harq); + // printf("I am doing compute_precoding_info_1cw with tpmi %d \n", tpmi); + } + //printf(" UE DCI harq0 MIMO mode = %d\n", dlsch0_harq->mimo_mode); + if ((frame_parms->nb_antenna_ports_eNB == 1) && (TB0_active)) + dlsch0_harq->mimo_mode = SISO; + } else { + compute_precoding_info_format2A (tpmi, frame_parms->nb_antenna_ports_eNB, TB0_active, TB1_active, dlsch0_harq, dlsch1_harq); + } + // printf("[DCI UE 2]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); + // reset round + compute Qm + if (TB0_active) { + // printf("TB0 ndi1 =%d, dlsch0_harq->DCINdi =%d, dlsch0_harq->first_tx = %d\n", ndi1, dlsch0_harq->DCINdi, dlsch0_harq->first_tx); + if ((ndi1 != dlsch0_harq->DCINdi) || (dlsch0_harq->first_tx == 1)) { + dlsch0_harq->round = 0; + dlsch0_harq->status = ACTIVE; + dlsch0_harq->DCINdi = ndi1; + + //LOG_I(PHY,"[UE] DLSCH: New Data Indicator CW0 subframe %d (pid %d, round %d)\n", + // subframe,harq_pid,dlsch0_harq->round); + if (dlsch0_harq->first_tx == 1) { + LOG_D (PHY, "Format 2 DCI First TX0: Clearing flag\n"); + dlsch0_harq->first_tx = 0; + } + } + /*else if (rv1 != 0 ) + //NDI has not been toggled but rv was increased by eNB: retransmission + { + if(dlsch0_harq->status == SCH_IDLE) { + // skip pdsch decoding and report ack + //dlsch0_harq->status = SCH_IDLE; + pdlsch0->active = 0; + pdlsch0->harq_ack[subframe].ack = 1; + pdlsch0->harq_ack[subframe].harq_id = harq_pid; + pdlsch0->harq_ack[subframe].send_harq_status = 1; + } */ + + // if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest + // PDCCH for the same trasport block using Imcs in [0 .. 28] + if (dlsch0_harq->mcs <= 28) { + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; + LOG_D (PHY, "[UE] DLSCH: New TBS CW0 subframe %d (pid %d, round %d) TBS %d \n", subframe, harq_pid, dlsch0_harq->round, dlsch0_harq->TBS); + } else { + LOG_D (PHY, "[UE] DLSCH: Keep the same TBS CW0 subframe %d (pid %d, round %d) TBS %d \n", subframe, harq_pid, dlsch0_harq->round, dlsch0_harq->TBS); + } + //if(dlsch0_harq->Nl == 2) + //dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][(dlsch0_harq->nb_rb<<1)-1]; + if (mcs1 <= 28) + dlsch0_harq->Qm = get_Qm (mcs1); + else if (mcs1 <= 31) + dlsch0_harq->Qm = (mcs1 - 28) << 1; + } + // printf("[DCI UE 3]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); + + if (TB1_active) { + // printf("TB1 ndi2 =%d, dlsch1_harq->DCINdi =%d, dlsch1_harq->first_tx = %d\n", ndi2, dlsch1_harq->DCINdi, dlsch1_harq->first_tx); + if ((ndi2 != dlsch1_harq->DCINdi) || (dlsch1_harq->first_tx == 1)) { + dlsch1_harq->round = 0; + dlsch1_harq->status = ACTIVE; + dlsch1_harq->DCINdi = ndi2; + //LOG_I(PHY,"[UE] DLSCH: New Data Indicator CW1 subframe %d (pid %d, round %d)\n", + // subframe,harq_pid,dlsch0_harq->round); + if (dlsch1_harq->first_tx == 1) { + LOG_D (PHY, "Format 2 DCI First TX1: Clearing flag\n"); + dlsch1_harq->first_tx = 0; + } + } + /*else if (rv1 != 0 ) + //NDI has not been toggled but rv was increased by eNB: retransmission + { + if(dlsch1_harq->status == SCH_IDLE) { + // skip pdsch decoding and report ack + //dlsch1_harq->status = SCH_IDLE; + pdlsch1->active = 0; + pdlsch1->harq_ack[subframe].ack = 1; + pdlsch1->harq_ack[subframe].harq_id = harq_pid; + pdlsch1->harq_ack[subframe].send_harq_status = 1; + } + } */ + + // if Imcs in [29..31] TBS is assumed to be as determined from DCI transported in the latest + // PDCCH for the same trasport block using Imcs in [0 .. 28] + if (dlsch1_harq->mcs <= 28) { + dlsch1_harq->TBS = TBStable[get_I_TBS (dlsch1_harq->mcs)][dlsch1_harq->nb_rb - 1]; + LOG_D (PHY, "[UE] DLSCH: New TBS CW1 subframe %d (pid %d, round %d) TBS %d \n", subframe, harq_pid, dlsch1_harq->round, dlsch1_harq->TBS); + } else { + LOG_D (PHY, "[UE] DLSCH: Keep the same TBS CW1 subframe %d (pid %d, round %d) TBS %d \n", subframe, harq_pid, dlsch1_harq->round, dlsch1_harq->TBS); + } + if (mcs2 <= 28) + dlsch1_harq->Qm = get_Qm (mcs2); + else if (mcs1 <= 31) + dlsch1_harq->Qm = (mcs2 - 28) << 1; + } + + + compute_llr_offset (frame_parms, pdcch_vars, pdsch_vars, dlsch0_harq, dlsch0_harq->nb_rb, subframe); + + + /* #ifdef DEBUG_HARQ + printf("[DCI UE]: dlsch0_harq status %d , dlsch1_harq status %d\n", dlsch0_harq->status, dlsch1_harq->status); + printf("[DCI UE]: TB0_active %d , TB1_active %d\n", TB0_active, TB1_active); + if (dlsch0 != NULL && dlsch1 != NULL) + printf("[DCI UE] dlsch0_harq status = %d, dlsch1_harq status = %d\n", dlsch0_harq->status, dlsch1_harq->status); + else if (dlsch0 == NULL && dlsch1 != NULL) + printf("[DCI UE] dlsch0_harq NULL dlsch1_harq status = %d\n", dlsch1_harq->status); + else if (dlsch0 != NULL && dlsch1 == NULL) + printf("[DCI UE] dlsch1_harq NULL dlsch0_harq status = %d\n", dlsch0_harq->status); + #endif */ +} + +int +generate_ue_dlsch_params_from_dci (int frame, + uint8_t subframe, + void *dci_pdu, + uint16_t rnti, + DCI_format_t dci_format, + LTE_UE_PDCCH * pdcch_vars, + LTE_UE_PDSCH * pdsch_vars, + LTE_UE_DLSCH_t ** dlsch, + LTE_DL_FRAME_PARMS * frame_parms, + PDSCH_CONFIG_DEDICATED * pdsch_config_dedicated, uint16_t si_rnti, uint16_t ra_rnti, uint16_t p_rnti, uint8_t beamforming_mode, uint16_t tc_rnti) +{ + + uint8_t harq_pid = 0; + uint8_t frame_type = frame_parms->frame_type; + uint8_t tpmi = 0; + LTE_UE_DLSCH_t *dlsch0 = NULL, *dlsch1 = NULL; + LTE_DL_UE_HARQ_t *dlsch0_harq = NULL, *dlsch1_harq = NULL; + + DCI_INFO_EXTRACTED_t dci_info_extarcted; + uint8_t status = 0; + + if (!dlsch[0]) + return -1; + +#ifdef DEBUG_DCI + LOG_D (PHY, "dci_tools.c: Filling ue dlsch params -> rnti %x, SFN/SF %d/%d, dci_format %s\n", + rnti, + frame % 1024, + subframe, + (dci_format == + format0 ? "Format 0" : (dci_format == + format1 ? "format 1" : (dci_format == + format1A ? "format 1A" : (dci_format == + format1B ? "format 1B" : (dci_format == + format1C ? "format 1C" : (dci_format == + format1D ? "format 1D" : (dci_format == + format1E_2A_M10PRB ? + "format 1E_2A_M10PRB" : (dci_format == + format2 ? + "format 2" + : (dci_format + == + format2A ? + "format 2A" + : + (dci_format + == + format2B + ? + "format 2B" + : + (dci_format + == + format2C + ? + "format 2C" + : + (dci_format + == + format2D + ? + "format 2D" + : + (dci_format + == + format3 + ? + "format 3" + : + "UNKNOWN")))))))))))))); +#endif + + memset (&dci_info_extarcted, 0, sizeof (dci_info_extarcted)); + switch (dci_format) { + + case format0: // This is an ULSCH allocation so nothing here, inform MAC + LOG_E (PHY, "format0 not possible\n"); + return (-1); + break; + + case format1A: { // extract dci infomation #ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1A] AbsSubframe %d.%d extarct dci info \n", frame, subframe); + LOG_I (PHY, "[DCI-FORMAT-1A] AbsSubframe %d.%d extarct dci info \n", frame, subframe); #endif - extract_dci1A_info(frame_parms->N_RB_DL, - frame_type, - dci_pdu, - &dci_info_extarcted); + extract_dci1A_info (frame_parms->N_RB_DL, frame_type, dci_pdu, &dci_info_extarcted); // check dci content dlsch0 = dlsch[0]; dlsch0->active = 0; - dlsch0_harq = dlsch[0]->harq_processes[dci_info_extarcted.harq_pid]; + dlsch0_harq = dlsch[0]->harq_processes[dci_info_extarcted.harq_pid]; #ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1A] AbsSubframe %d.%d check dci coherency \n", frame, subframe); + LOG_I (PHY, "[DCI-FORMAT-1A] AbsSubframe %d.%d check dci coherency \n", frame, subframe); #endif - status = check_dci_format1_1a_coherency(format1A, - frame_parms->N_RB_DL, - rnti, - tc_rnti, - si_rnti, - ra_rnti, - p_rnti,frame,subframe, - &dci_info_extarcted, - dlsch0_harq); - if(status == 0) - { - printf("bad DCI 1A !!! \n"); - return(-1); + status = check_dci_format1_1a_coherency (format1A, frame_parms->N_RB_DL, rnti, tc_rnti, si_rnti, ra_rnti, p_rnti, frame, subframe, &dci_info_extarcted, dlsch0_harq); + if (status == 0) { + printf ("bad DCI 1A !!! \n"); + return (-1); } - // dci is correct ==> update internal structure and prepare dl decoding #ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1A] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe); + LOG_I (PHY, "[DCI-FORMAT-1A] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe); #endif - prepare_dl_decoding_format1_1A(format1A, - frame_parms->N_RB_DL, - &dci_info_extarcted, - frame_parms, - pdcch_vars, - pdsch_vars, - subframe, - rnti, - tc_rnti, - si_rnti, - ra_rnti, - p_rnti, - dlsch0_harq, - dlsch0); + prepare_dl_decoding_format1_1A (format1A, frame_parms->N_RB_DL, &dci_info_extarcted, frame_parms, pdcch_vars, pdsch_vars, subframe, rnti, tc_rnti, si_rnti, ra_rnti, p_rnti, dlsch0_harq, dlsch0); break; } - case format1C: + case format1C: { // extract dci infomation #ifdef DEBUG_DL_DECODING - LOG_I(PHY,"[DCI Format-1C] extact dci information \n"); + LOG_I (PHY, "[DCI Format-1C] extact dci information \n"); #endif - extract_dci1C_info(frame_parms->N_RB_DL, - frame_type, - dci_pdu, - &dci_info_extarcted); + extract_dci1C_info (frame_parms->N_RB_DL, frame_type, dci_pdu, &dci_info_extarcted); // check dci content #ifdef DEBUG_DL_DECODING - LOG_I(PHY,"[DCI Format-1C] check dci content \n"); + LOG_I (PHY, "[DCI Format-1C] check dci content \n"); #endif dlsch0 = dlsch[0]; dlsch0->active = 0; dlsch0_harq = dlsch[0]->harq_processes[dci_info_extarcted.harq_pid]; - status = check_dci_format1c_coherency(frame_parms->N_RB_DL, - &dci_info_extarcted, - rnti, - si_rnti, - ra_rnti, - p_rnti, - dlsch0_harq); - if(status == 0) - return(-1); + status = check_dci_format1c_coherency (frame_parms->N_RB_DL, &dci_info_extarcted, rnti, si_rnti, ra_rnti, p_rnti, dlsch0_harq); + if (status == 0) + return (-1); // dci is correct ==> update internal structure and prepare dl decoding #ifdef DEBUG_DL_DECODING - LOG_I(PHY,"[DCI Format-1C] prepare downlink decoding \n"); + LOG_I (PHY, "[DCI Format-1C] prepare downlink decoding \n"); #endif - prepare_dl_decoding_format1C(frame_parms->N_RB_DL, - &dci_info_extarcted, - frame_parms, - pdcch_vars, - pdsch_vars, - rnti, - si_rnti, - ra_rnti, - p_rnti, - frame, - subframe, - dlsch0_harq, - dlsch0); + prepare_dl_decoding_format1C (frame_parms->N_RB_DL, &dci_info_extarcted, frame_parms, pdcch_vars, pdsch_vars, rnti, si_rnti, ra_rnti, p_rnti, frame, subframe, dlsch0_harq, dlsch0); break; } - case format1: + case format1: { // extract dci infomation #ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1] AbsSubframe %d.%d extarct dci info \n", frame, subframe); + LOG_I (PHY, "[DCI-FORMAT-1] AbsSubframe %d.%d extarct dci info \n", frame, subframe); #endif - extract_dci1_info(frame_parms->N_RB_DL, - frame_type, - dci_pdu, - &dci_info_extarcted); + extract_dci1_info (frame_parms->N_RB_DL, frame_type, dci_pdu, &dci_info_extarcted); // check dci content dlsch0 = dlsch[0]; @@ -6029,403 +5683,324 @@ int generate_ue_dlsch_params_from_dci(int frame, dlsch0_harq = dlsch[0]->harq_processes[dci_info_extarcted.harq_pid]; #ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1] AbsSubframe %d.%d check dci coherency \n", frame, subframe); + LOG_I (PHY, "[DCI-FORMAT-1] AbsSubframe %d.%d check dci coherency \n", frame, subframe); #endif - status = check_dci_format1_1a_coherency(format1, - frame_parms->N_RB_DL, - rnti, - tc_rnti, - si_rnti, - ra_rnti, - p_rnti,frame,subframe, - &dci_info_extarcted, - dlsch0_harq); - if(status == 0) - { - printf("bad DCI 1 !!! \n"); - return(-1); + status = check_dci_format1_1a_coherency (format1, frame_parms->N_RB_DL, rnti, tc_rnti, si_rnti, ra_rnti, p_rnti, frame, subframe, &dci_info_extarcted, dlsch0_harq); + if (status == 0) { + printf ("bad DCI 1 !!! \n"); + return (-1); } - // dci is correct ==> update internal structure and prepare dl decoding #ifdef DEBUG_DCI - LOG_I(PHY,"[DCI-FORMAT-1] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe); + LOG_I (PHY, "[DCI-FORMAT-1] AbsSubframe %d.%d prepare dl decoding \n", frame, subframe); #endif - prepare_dl_decoding_format1_1A(format1, - frame_parms->N_RB_DL, - &dci_info_extarcted, - frame_parms, - pdcch_vars, - pdsch_vars, - subframe, - rnti, - tc_rnti, - si_rnti, - ra_rnti, - p_rnti, - dlsch0_harq, - dlsch0); + prepare_dl_decoding_format1_1A (format1, frame_parms->N_RB_DL, &dci_info_extarcted, frame_parms, pdcch_vars, pdsch_vars, subframe, rnti, tc_rnti, si_rnti, ra_rnti, p_rnti, dlsch0_harq, dlsch0); break; } - case format2: + case format2: { - // extract dci infomation - //LOG_I(PHY,"[DCI-format2] AbsSubframe %d.%d extract dci infomation \n", frame, subframe); - extract_dci2_info(frame_parms->N_RB_DL, - frame_type, - frame_parms->nb_antenna_ports_eNB, - dci_pdu, - &dci_info_extarcted); + // extract dci infomation + //LOG_I(PHY,"[DCI-format2] AbsSubframe %d.%d extract dci infomation \n", frame, subframe); + extract_dci2_info (frame_parms->N_RB_DL, frame_type, frame_parms->nb_antenna_ports_eNB, dci_pdu, &dci_info_extarcted); - // check dci content - dlsch[0]->active = 1; - dlsch[1]->active = 1; + // check dci content + dlsch[0]->active = 1; + dlsch[1]->active = 1; - dlsch0 = dlsch[0]; - dlsch1 = dlsch[1]; + dlsch0 = dlsch[0]; + dlsch1 = dlsch[1]; - dlsch0_harq = dlsch0->harq_processes[dci_info_extarcted.harq_pid]; - dlsch1_harq = dlsch1->harq_processes[dci_info_extarcted.harq_pid]; - // printf("before coherency dlsch[1]->pmi_alloc %d\n",dlsch[1]->pmi_alloc); - // printf("before coherency dlsch1->pmi_alloc %d\n",dlsch1->pmi_alloc); - // printf("before coherency dlsch1_harq->pmi_alloc %d\n",dlsch1_harq->pmi_alloc); + dlsch0_harq = dlsch0->harq_processes[dci_info_extarcted.harq_pid]; + dlsch1_harq = dlsch1->harq_processes[dci_info_extarcted.harq_pid]; + // printf("before coherency dlsch[1]->pmi_alloc %d\n",dlsch[1]->pmi_alloc); + // printf("before coherency dlsch1->pmi_alloc %d\n",dlsch1->pmi_alloc); + // printf("before coherency dlsch1_harq->pmi_alloc %d\n",dlsch1_harq->pmi_alloc); - //LOG_I(PHY,"[DCI-format2] check dci content \n"); - status = check_dci_format2_2a_coherency(format2, - frame_parms->N_RB_DL, - &dci_info_extarcted, - rnti, - si_rnti, - ra_rnti, - p_rnti, - dlsch0_harq, - dlsch1_harq); - if(status == 0) - return(-1); + //LOG_I(PHY,"[DCI-format2] check dci content \n"); + status = check_dci_format2_2a_coherency (format2, frame_parms->N_RB_DL, &dci_info_extarcted, rnti, si_rnti, ra_rnti, p_rnti, dlsch0_harq, dlsch1_harq); + if (status == 0) + return (-1); - // dci is correct ==> update internal structure and prepare dl decoding - //LOG_I(PHY,"[DCI-format2] update internal structure and prepare dl decoding \n"); - prepare_dl_decoding_format2_2A(format2, - &dci_info_extarcted, - frame_parms, - pdcch_vars, - pdsch_vars, - rnti, - subframe, - dlsch0_harq, - dlsch1_harq, - dlsch0, - dlsch1); + // dci is correct ==> update internal structure and prepare dl decoding + //LOG_I(PHY,"[DCI-format2] update internal structure and prepare dl decoding \n"); + prepare_dl_decoding_format2_2A (format2, &dci_info_extarcted, frame_parms, pdcch_vars, pdsch_vars, rnti, subframe, dlsch0_harq, dlsch1_harq, dlsch0, dlsch1); } break; - case format2A: + case format2A: { - // extract dci infomation - LOG_I(PHY,"[DCI-format2] AbsSubframe %d.%d extract dci infomation \n", frame%1024, subframe); - extract_dci2A_info(frame_parms->N_RB_DL, - frame_type, - frame_parms->nb_antenna_ports_eNB, - dci_pdu, - &dci_info_extarcted); + // extract dci infomation + LOG_I (PHY, "[DCI-format2] AbsSubframe %d.%d extract dci infomation \n", frame % 1024, subframe); + extract_dci2A_info (frame_parms->N_RB_DL, frame_type, frame_parms->nb_antenna_ports_eNB, dci_pdu, &dci_info_extarcted); - // check dci content - //LOG_I(PHY,"[DCI-format2A] check dci content \n"); - //LOG_I(PHY,"[DCI-format2A] tb_swap %d harq_pid %d\n", dci_info_extarcted.tb_swap, dci_info_extarcted.harq_pid); + // check dci content + //LOG_I(PHY,"[DCI-format2A] check dci content \n"); + //LOG_I(PHY,"[DCI-format2A] tb_swap %d harq_pid %d\n", dci_info_extarcted.tb_swap, dci_info_extarcted.harq_pid); //dlsch[0]->active = 0; //dlsch[1]->active = 0; - if (dci_info_extarcted.tb_swap == 0) { - dlsch0 = dlsch[0]; - dlsch1 = dlsch[1]; - } else { - dlsch0 = dlsch[1]; - dlsch1 = dlsch[0]; - } - dlsch0_harq = dlsch0->harq_processes[dci_info_extarcted.harq_pid]; - dlsch1_harq = dlsch1->harq_processes[dci_info_extarcted.harq_pid]; - - //LOG_I(PHY,"[DCI-format2A] check dci content \n"); - status = check_dci_format2_2a_coherency(format2A, - frame_parms->N_RB_DL, - &dci_info_extarcted, - rnti, - si_rnti, - ra_rnti, - p_rnti, - dlsch0_harq, - dlsch1_harq); - if(status == 0) - return(-1); - - // dci is correct ==> update internal structure and prepare dl decoding - //LOG_I(PHY,"[DCI-format2A] update internal structure and prepare dl decoding \n"); - prepare_dl_decoding_format2_2A(format2A, - &dci_info_extarcted, - frame_parms, - pdcch_vars, - pdsch_vars, - rnti, - subframe, - dlsch0_harq, - dlsch1_harq, - dlsch0, - dlsch1); - } - break; - - case format1E_2A_M10PRB: - if (!dlsch[0]) return -1; - - harq_pid = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->harq_pid; - - if (harq_pid>=8) { - LOG_E(PHY,"Format 1E_2A_M10PRB: harq_pid=%d >= 8\n", harq_pid); - return(-1); - } - - dlsch[0]->current_harq_pid = harq_pid; - dlsch[0]->harq_ack[subframe].harq_id = harq_pid; - - /* - tbswap = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->tb_swap; - if (tbswap == 0) { + if (dci_info_extarcted.tb_swap == 0) { dlsch0 = dlsch[0]; dlsch1 = dlsch[1]; - } - else{ + } else { dlsch0 = dlsch[1]; dlsch1 = dlsch[0]; - } - */ - dlsch0 = dlsch[0]; - - dlsch0_harq = dlsch[0]->harq_processes[harq_pid]; - // Needs to be checked - dlsch0_harq->codeword=0; - conv_rballoc(((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rah, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rballoc,frame_parms->N_RB_DL, - dlsch0_harq->rb_alloc_even); - - dlsch0_harq->rb_alloc_odd[0] = dlsch0_harq->rb_alloc_even[0]; - dlsch0_harq->rb_alloc_odd[1] = dlsch0_harq->rb_alloc_even[1]; - dlsch0_harq->rb_alloc_odd[2] = dlsch0_harq->rb_alloc_even[2]; - dlsch0_harq->rb_alloc_odd[3] = dlsch0_harq->rb_alloc_even[3]; - /* - dlsch1_harq->rb_alloc_even[0] = dlsch0_harq->rb_alloc_even[0]; - dlsch1_harq->rb_alloc_even[1] = dlsch0_harq->rb_alloc_even[1]; - dlsch1_harq->rb_alloc_even[2] = dlsch0_harq->rb_alloc_even[2]; - dlsch1_harq->rb_alloc_even[3] = dlsch0_harq->rb_alloc_even[3]; - */ - dlsch0_harq->nb_rb = conv_nprb(((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rah, - ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rballoc, - frame_parms->N_RB_DL); - //dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; - - dlsch0_harq->mcs = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->mcs; - dlsch0_harq->delta_PUCCH = delta_PUCCH_lut[((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->TPC&3]; - - - - /* - if (dlsch0_harq->mcs>20) { - printf("dci_tools.c: mcs > 20 disabled for now (asked %d)\n",dlsch0_harq->mcs); - return(-1); - } - */ - - //dlsch1_harq->mcs = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->mcs2; - dlsch0_harq->rvidx = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rv; - //dlsch1_harq->rvidx = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rv2; - - // check if either TB is disabled (see 36-213 V8.6 p. 26) - - if ((dlsch0_harq->rvidx == 1) && (dlsch0_harq->mcs == 0)) { - dlsch0_harq->status = DISABLED; } + dlsch0_harq = dlsch0->harq_processes[dci_info_extarcted.harq_pid]; + dlsch1_harq = dlsch1->harq_processes[dci_info_extarcted.harq_pid]; - //if ((dlsch1_harq->rvidx == 1) && (dlsch1_harq->mcs == 0)) { - //dlsch1_harq->status = DISABLED; - //} - dlsch0_harq->Nl = 1; + //LOG_I(PHY,"[DCI-format2A] check dci content \n"); + status = check_dci_format2_2a_coherency (format2A, frame_parms->N_RB_DL, &dci_info_extarcted, rnti, si_rnti, ra_rnti, p_rnti, dlsch0_harq, dlsch1_harq); + if (status == 0) + return (-1); - //dlsch0->layer_index = tbswap; - //dlsch1->layer_index = 1-tbswap; + // dci is correct ==> update internal structure and prepare dl decoding + //LOG_I(PHY,"[DCI-format2A] update internal structure and prepare dl decoding \n"); + prepare_dl_decoding_format2_2A (format2A, &dci_info_extarcted, frame_parms, pdcch_vars, pdsch_vars, rnti, subframe, dlsch0_harq, dlsch1_harq, dlsch0, dlsch1); + } + break; + + case format1E_2A_M10PRB: + if (!dlsch[0]) + return -1; + + harq_pid = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->harq_pid; + + if (harq_pid >= 8) { + LOG_E (PHY, "Format 1E_2A_M10PRB: harq_pid=%d >= 8\n", harq_pid); + return (-1); + } + + dlsch[0]->current_harq_pid = harq_pid; + dlsch[0]->harq_ack[subframe].harq_id = harq_pid; + + /* + tbswap = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->tb_swap; + if (tbswap == 0) { + dlsch0 = dlsch[0]; + dlsch1 = dlsch[1]; + } + else{ + dlsch0 = dlsch[1]; + dlsch1 = dlsch[0]; + } + */ + dlsch0 = dlsch[0]; + + dlsch0_harq = dlsch[0]->harq_processes[harq_pid]; + // Needs to be checked + dlsch0_harq->codeword = 0; + conv_rballoc (((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->rah, ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->rballoc, frame_parms->N_RB_DL, dlsch0_harq->rb_alloc_even); + + dlsch0_harq->rb_alloc_odd[0] = dlsch0_harq->rb_alloc_even[0]; + dlsch0_harq->rb_alloc_odd[1] = dlsch0_harq->rb_alloc_even[1]; + dlsch0_harq->rb_alloc_odd[2] = dlsch0_harq->rb_alloc_even[2]; + dlsch0_harq->rb_alloc_odd[3] = dlsch0_harq->rb_alloc_even[3]; + /* + dlsch1_harq->rb_alloc_even[0] = dlsch0_harq->rb_alloc_even[0]; + dlsch1_harq->rb_alloc_even[1] = dlsch0_harq->rb_alloc_even[1]; + dlsch1_harq->rb_alloc_even[2] = dlsch0_harq->rb_alloc_even[2]; + dlsch1_harq->rb_alloc_even[3] = dlsch0_harq->rb_alloc_even[3]; + */ + dlsch0_harq->nb_rb = conv_nprb (((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->rah, ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->rballoc, frame_parms->N_RB_DL); + //dlsch1_harq->nb_rb = dlsch0_harq->nb_rb; + + dlsch0_harq->mcs = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->mcs; + dlsch0_harq->delta_PUCCH = delta_PUCCH_lut[((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->TPC & 3]; - // Fix this - tpmi = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->tpmi; - // printf("ue: tpmi %d\n",tpmi); - switch (tpmi) { - case 0 : - dlsch0_harq->mimo_mode = ALAMOUTI; - break; + /* + if (dlsch0_harq->mcs>20) { + printf("dci_tools.c: mcs > 20 disabled for now (asked %d)\n",dlsch0_harq->mcs); + return(-1); + } + */ - case 1: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING11; - dlsch0_harq->pmi_alloc = pmi_extend(frame_parms,0,0); - break; + //dlsch1_harq->mcs = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->mcs2; + dlsch0_harq->rvidx = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->rv; + //dlsch1_harq->rvidx = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->rv2; - case 2: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING1m1; - dlsch0_harq->pmi_alloc = pmi_extend(frame_parms,1, 0); - break; + // check if either TB is disabled (see 36-213 V8.6 p. 26) - case 3: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING1j; - dlsch0_harq->pmi_alloc = pmi_extend(frame_parms,2, 0); + if ((dlsch0_harq->rvidx == 1) && (dlsch0_harq->mcs == 0)) { + dlsch0_harq->status = DISABLED; + } + //if ((dlsch1_harq->rvidx == 1) && (dlsch1_harq->mcs == 0)) { + //dlsch1_harq->status = DISABLED; + //} + dlsch0_harq->Nl = 1; - break; - - case 4: - dlsch0_harq->mimo_mode = UNIFORM_PRECODING1mj; - dlsch0_harq->pmi_alloc = pmi_extend(frame_parms,3, 0); - break; - - case 5: - dlsch0_harq->mimo_mode = PUSCH_PRECODING0; - // pmi stored from ulsch allocation routine - dlsch0_harq->pmi_alloc = dlsch0->pmi_alloc; - //LOG_I(PHY,"XXX using PMI %x\n",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc)); - break; + //dlsch0->layer_index = tbswap; + //dlsch1->layer_index = 1-tbswap; - case 6: - dlsch0_harq->mimo_mode = PUSCH_PRECODING1; - LOG_E(PHY,"Unsupported TPMI\n"); - return(-1); - break; - } + // Fix this + tpmi = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->tpmi; + // printf("ue: tpmi %d\n",tpmi); + switch (tpmi) { + case 0: + dlsch0_harq->mimo_mode = ALAMOUTI; + break; - if (frame_parms->nb_antenna_ports_eNB == 1) - dlsch0_harq->mimo_mode = SISO; + case 1: + dlsch0_harq->mimo_mode = UNIFORM_PRECODING11; + dlsch0_harq->pmi_alloc = pmi_extend (frame_parms, 0, 0); + break; + case 2: + dlsch0_harq->mimo_mode = UNIFORM_PRECODING1m1; + dlsch0_harq->pmi_alloc = pmi_extend (frame_parms, 1, 0); + break; - if ((dlsch0_harq->DCINdi != ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->ndi) || - (dlsch0_harq->first_tx==1)) { - - dlsch0_harq->round = 0; - dlsch0_harq->first_tx = 0; - dlsch0_harq->status = ACTIVE; - } - /* - else if (dlsch0_harq->status == SCH_IDLE) { // we got same ndi for a previously decoded process, - // this happens if either another harq process in the same - // is NAK or an ACK was not received - - dlsch0->harq_ack[subframe].ack = 1; - dlsch0->harq_ack[subframe].harq_id = harq_pid; - dlsch0->harq_ack[subframe].send_harq_status = 1; - dlsch0->active = 0; - return(0); - } - */ - - dlsch0_harq->DCINdi = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->ndi; - dlsch0_harq->mcs = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->mcs; - - if (dlsch0_harq->nb_rb>1) { - dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; - } else - dlsch0_harq->TBS =0; - - dlsch0->rnti = rnti; - //dlsch1->rnti = rnti; - - dlsch0->active = 1; - //dlsch1->active = 1; - - dlsch0_harq->dl_power_off = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->dl_power_off; - //dlsch1_harq->dl_power_off = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->dl_power_off; - + case 3: + dlsch0_harq->mimo_mode = UNIFORM_PRECODING1j; + dlsch0_harq->pmi_alloc = pmi_extend (frame_parms, 2, 0); break; - default: - LOG_E(PHY,"format %d not yet implemented\n",dci_format); - return(-1); + case 4: + dlsch0_harq->mimo_mode = UNIFORM_PRECODING1mj; + dlsch0_harq->pmi_alloc = pmi_extend (frame_parms, 3, 0); + break; + + case 5: + dlsch0_harq->mimo_mode = PUSCH_PRECODING0; + // pmi stored from ulsch allocation routine + dlsch0_harq->pmi_alloc = dlsch0->pmi_alloc; + //LOG_I(PHY,"XXX using PMI %x\n",pmi2hex_2Ar1(dlsch0_harq->pmi_alloc)); + break; + + + case 6: + dlsch0_harq->mimo_mode = PUSCH_PRECODING1; + LOG_E (PHY, "Unsupported TPMI\n"); + return (-1); break; } + + if (frame_parms->nb_antenna_ports_eNB == 1) + dlsch0_harq->mimo_mode = SISO; + + + if ((dlsch0_harq->DCINdi != ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->ndi) || (dlsch0_harq->first_tx == 1)) { + + dlsch0_harq->round = 0; + dlsch0_harq->first_tx = 0; + dlsch0_harq->status = ACTIVE; + } + /* + else if (dlsch0_harq->status == SCH_IDLE) { // we got same ndi for a previously decoded process, + // this happens if either another harq process in the same + // is NAK or an ACK was not received + + dlsch0->harq_ack[subframe].ack = 1; + dlsch0->harq_ack[subframe].harq_id = harq_pid; + dlsch0->harq_ack[subframe].send_harq_status = 1; + dlsch0->active = 0; + return(0); + } + */ + + dlsch0_harq->DCINdi = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->ndi; + dlsch0_harq->mcs = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->mcs; + + if (dlsch0_harq->nb_rb > 1) { + dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; + } else + dlsch0_harq->TBS = 0; + + dlsch0->rnti = rnti; + //dlsch1->rnti = rnti; + + dlsch0->active = 1; + //dlsch1->active = 1; + + dlsch0_harq->dl_power_off = ((DCI1E_5MHz_2A_M10PRB_TDD_t *) dci_pdu)->dl_power_off; + //dlsch1_harq->dl_power_off = ((DCI1E_5MHz_2A_M10PRB_TDD_t *)dci_pdu)->dl_power_off; + + + break; + + default: + LOG_E (PHY, "format %d not yet implemented\n", dci_format); + return (-1); + break; + } + #ifdef UE_DEBUG_TRACE - if (dlsch[0] && (dlsch[0]->rnti != 0xffff)) { - LOG_I(PHY,"dci_format:%d Abssubframe: %d.%d \n",dci_format,frame%1024,subframe); - LOG_I(PHY,"PDSCH dlsch0 UE: rnti %x\n",dlsch[0]->rnti); - LOG_D(PHY,"PDSCH dlsch0 UE: NBRB %d\n",dlsch0_harq->nb_rb); - LOG_D(PHY,"PDSCH dlsch0 UE: rballoc %x\n",dlsch0_harq->rb_alloc_even[0]); - LOG_I(PHY,"PDSCH dlsch0 UE: harq_pid %d\n",dci_info_extarcted.harq_pid); - LOG_I(PHY,"PDSCH dlsch0 UE: g %d\n",dlsch[0]->g_pucch); - LOG_D(PHY,"PDSCH dlsch0 UE: round %d\n",dlsch0_harq->round); - LOG_D(PHY,"PDSCH dlsch0 UE: DCINdi %d\n",dlsch0_harq->DCINdi); - LOG_D(PHY,"PDSCH dlsch0 UE: rvidx %d\n",dlsch0_harq->rvidx); - LOG_D(PHY,"PDSCH dlsch0 UE: TBS %d\n",dlsch0_harq->TBS); - LOG_D(PHY,"PDSCH dlsch0 UE: mcs %d\n",dlsch0_harq->mcs); - LOG_D(PHY,"PDSCH dlsch0 UE: pwr_off %d\n",dlsch0_harq->dl_power_off); - } + if (dlsch[0] && (dlsch[0]->rnti != 0xffff)) { + LOG_I (PHY, "dci_format:%d Abssubframe: %d.%d \n", dci_format, frame % 1024, subframe); + LOG_I (PHY, "PDSCH dlsch0 UE: rnti %x\n", dlsch[0]->rnti); + LOG_D (PHY, "PDSCH dlsch0 UE: NBRB %d\n", dlsch0_harq->nb_rb); + LOG_D (PHY, "PDSCH dlsch0 UE: rballoc %x\n", dlsch0_harq->rb_alloc_even[0]); + LOG_I (PHY, "PDSCH dlsch0 UE: harq_pid %d\n", dci_info_extarcted.harq_pid); + LOG_I (PHY, "PDSCH dlsch0 UE: g %d\n", dlsch[0]->g_pucch); + LOG_D (PHY, "PDSCH dlsch0 UE: round %d\n", dlsch0_harq->round); + LOG_D (PHY, "PDSCH dlsch0 UE: DCINdi %d\n", dlsch0_harq->DCINdi); + LOG_D (PHY, "PDSCH dlsch0 UE: rvidx %d\n", dlsch0_harq->rvidx); + LOG_D (PHY, "PDSCH dlsch0 UE: TBS %d\n", dlsch0_harq->TBS); + LOG_D (PHY, "PDSCH dlsch0 UE: mcs %d\n", dlsch0_harq->mcs); + LOG_D (PHY, "PDSCH dlsch0 UE: pwr_off %d\n", dlsch0_harq->dl_power_off); + } #endif #if T_TRACER - if( (dlsch[0]->rnti != si_rnti) && (dlsch[0]->rnti != ra_rnti) && (dlsch[0]->rnti != p_rnti)) - { - T(T_UE_PHY_DLSCH_UE_DCI, T_INT(0), T_INT(frame%1024), T_INT(subframe), - T_INT(dlsch[0]->rnti), T_INT(dci_format), - T_INT(harq_pid), - T_INT(dlsch0_harq->mcs), - T_INT(dlsch0_harq->TBS)); - } + if ((dlsch[0]->rnti != si_rnti) && (dlsch[0]->rnti != ra_rnti) && (dlsch[0]->rnti != p_rnti)) { + T (T_UE_PHY_DLSCH_UE_DCI, T_INT (0), T_INT (frame % 1024), T_INT (subframe), T_INT (dlsch[0]->rnti), T_INT (dci_format), T_INT (harq_pid), T_INT (dlsch0_harq->mcs), T_INT (dlsch0_harq->TBS)); + } #endif - // compute DL power control parameters - if (dlsch0_harq != NULL){ - computeRhoA_UE(pdsch_config_dedicated, dlsch[0],dlsch0_harq->dl_power_off, frame_parms->nb_antenna_ports_eNB); - computeRhoB_UE(pdsch_config_dedicated,&(frame_parms->pdsch_config_common),frame_parms->nb_antenna_ports_eNB,dlsch[0],dlsch0_harq->dl_power_off); - } + // compute DL power control parameters + if (dlsch0_harq != NULL) { + computeRhoA_UE (pdsch_config_dedicated, dlsch[0], dlsch0_harq->dl_power_off, frame_parms->nb_antenna_ports_eNB); + computeRhoB_UE (pdsch_config_dedicated, &(frame_parms->pdsch_config_common), frame_parms->nb_antenna_ports_eNB, dlsch[0], dlsch0_harq->dl_power_off); + } - if (dlsch1_harq != NULL) { - computeRhoA_UE(pdsch_config_dedicated, dlsch[1],dlsch1_harq->dl_power_off, frame_parms->nb_antenna_ports_eNB); - computeRhoB_UE(pdsch_config_dedicated,&(frame_parms->pdsch_config_common),frame_parms->nb_antenna_ports_eNB,dlsch[1],dlsch1_harq->dl_power_off); - } + if (dlsch1_harq != NULL) { + computeRhoA_UE (pdsch_config_dedicated, dlsch[1], dlsch1_harq->dl_power_off, frame_parms->nb_antenna_ports_eNB); + computeRhoB_UE (pdsch_config_dedicated, &(frame_parms->pdsch_config_common), frame_parms->nb_antenna_ports_eNB, dlsch[1], dlsch1_harq->dl_power_off); + } - return(0); + return (0); } -uint8_t subframe2harq_pid(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame,uint8_t subframe) +uint8_t +subframe2harq_pid (LTE_DL_FRAME_PARMS * frame_parms, uint32_t frame, uint8_t subframe) { - uint8_t ret = 255; + uint8_t ret = 255; if (frame_parms->frame_type == FDD) { - ret = (((frame<<1)+subframe)&7); + ret = (((frame << 1) + subframe) & 7); } else { switch (frame_parms->tdd_config) { case 1: - if ((subframe==2) || - (subframe==3) || - (subframe==7) || - (subframe==8)) + if ((subframe == 2) || (subframe == 3) || (subframe == 7) || (subframe == 8)) switch (subframe) { case 2: case 3: - ret = (subframe-2); + ret = (subframe - 2); break; case 7: case 8: - ret = (subframe-5); + ret = (subframe - 5); break; default: - LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); + LOG_E (PHY, "subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n", subframe, frame_parms->tdd_config); ret = (255); break; } @@ -6433,194 +6008,180 @@ uint8_t subframe2harq_pid(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame,uint8_t break; case 2: - if ((subframe!=2) && (subframe!=7)) { - LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); - ret=255; - } - else ret = (subframe/7); + if ((subframe != 2) && (subframe != 7)) { + LOG_E (PHY, "subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n", subframe, frame_parms->tdd_config); + ret = 255; + } else + ret = (subframe / 7); break; case 3: - if ((subframe<2) || (subframe>4)) { - LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); + if ((subframe < 2) || (subframe > 4)) { + LOG_E (PHY, "subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n", subframe, frame_parms->tdd_config); ret = (255); - } - else ret = (subframe-2); + } else + ret = (subframe - 2); break; case 4: - if ((subframe<2) || (subframe>3)) { - LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); + if ((subframe < 2) || (subframe > 3)) { + LOG_E (PHY, "subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n", subframe, frame_parms->tdd_config); ret = (255); - } - else ret = (subframe-2); + } else + ret = (subframe - 2); break; case 5: - if (subframe!=2) { - LOG_E(PHY,"subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n",subframe,frame_parms->tdd_config); + if (subframe != 2) { + LOG_E (PHY, "subframe2_harq_pid, Illegal subframe %d for TDD mode %d\n", subframe, frame_parms->tdd_config); ret = (255); - } - else ret = (subframe-2); + } else + ret = (subframe - 2); break; default: - LOG_E(PHY,"subframe2_harq_pid, Unsupported TDD mode %d\n",frame_parms->tdd_config); + LOG_E (PHY, "subframe2_harq_pid, Unsupported TDD mode %d\n", frame_parms->tdd_config); ret = (255); } } - AssertFatal(ret!=255, - "invalid harq_pid(%d) at SFN/SF = %d/%d\n", (int8_t)ret, frame, subframe); + AssertFatal (ret != 255, "invalid harq_pid(%d) at SFN/SF = %d/%d\n", (int8_t) ret, frame, subframe); return ret; } -uint8_t pdcch_alloc2ul_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n) +uint8_t +pdcch_alloc2ul_subframe (LTE_DL_FRAME_PARMS * frame_parms, uint8_t n) { - uint8_t ul_subframe = 255; + uint8_t ul_subframe = 255; - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 1) && - ((n==1)||(n==6))) // tdd_config 0,1 SF 1,5 - ul_subframe = ((n+6)%10); - else if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 6) && - ((n==0)||(n==1)||(n==5)||(n==6))) - ul_subframe = ((n+7)%10); - else if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 6) && - (n==9)) // tdd_config 6 SF 9 - ul_subframe = ((n+5)%10); + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 1) && ((n == 1) || (n == 6))) // tdd_config 0,1 SF 1,5 + ul_subframe = ((n + 6) % 10); + else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && ((n == 0) || (n == 1) || (n == 5) || (n == 6))) + ul_subframe = ((n + 7) % 10); + else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && (n == 9)) // tdd_config 6 SF 9 + ul_subframe = ((n + 5) % 10); else - ul_subframe = ((n+4)%10); + ul_subframe = ((n + 4) % 10); - if (subframe_select(frame_parms,ul_subframe) != SF_UL) return(255); + if (subframe_select (frame_parms, ul_subframe) != SF_UL) + return (255); - LOG_D(PHY, "subframe %d: PUSCH subframe = %d\n", n, ul_subframe); + LOG_D (PHY, "subframe %d: PUSCH subframe = %d\n", n, ul_subframe); return ul_subframe; } -uint8_t ul_subframe2pdcch_alloc_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t n) +uint8_t +ul_subframe2pdcch_alloc_subframe (LTE_DL_FRAME_PARMS * frame_parms, uint8_t n) { - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 1) && - ((n==7)||(n==2))) // tdd_config 0,1 SF 1,5 - return((n==7)? 1 : 6); - else if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 6) && - ((n==7)||(n==8)||(n==2)||(n==3))) - return((n+3)%10); - else if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 6) && - (n==4)) // tdd_config 6 SF 9 - return(9); + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 1) && ((n == 7) || (n == 2))) // tdd_config 0,1 SF 1,5 + return ((n == 7) ? 1 : 6); + else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && ((n == 7) || (n == 8) || (n == 2) || (n == 3))) + return ((n + 3) % 10); + else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && (n == 4)) // tdd_config 6 SF 9 + return (9); else - return((n+6)%10); + return ((n + 6) % 10); } -uint32_t pdcch_alloc2ul_frame(LTE_DL_FRAME_PARMS *frame_parms,uint32_t frame, uint8_t n) +uint32_t +pdcch_alloc2ul_frame (LTE_DL_FRAME_PARMS * frame_parms, uint32_t frame, uint8_t n) { - uint32_t ul_frame; + uint32_t ul_frame; - if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 1) && - ((n==1)||(n==6))) // tdd_config 0,1 SF 1,5 - ul_frame = (frame + (n==1 ? 0 : 1)); - else if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 6) && - ((n==0)||(n==1)||(n==5)||(n==6))) - ul_frame = (frame + (n>=5 ? 1 : 0)); - else if ((frame_parms->frame_type == TDD) && - (frame_parms->tdd_config == 6) && - (n==9)) // tdd_config 6 SF 9 - ul_frame = (frame+1); + if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 1) && ((n == 1) || (n == 6))) // tdd_config 0,1 SF 1,5 + ul_frame = (frame + (n == 1 ? 0 : 1)); + else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && ((n == 0) || (n == 1) || (n == 5) || (n == 6))) + ul_frame = (frame + (n >= 5 ? 1 : 0)); + else if ((frame_parms->frame_type == TDD) && (frame_parms->tdd_config == 6) && (n == 9)) // tdd_config 6 SF 9 + ul_frame = (frame + 1); else - ul_frame = (frame+(n>=6 ? 1 : 0)); + ul_frame = (frame + (n >= 6 ? 1 : 0)); - LOG_D(PHY, "frame %d subframe %d: PUSCH frame = %d\n", frame, n, ul_frame); + LOG_D (PHY, "frame %d subframe %d: PUSCH frame = %d\n", frame, n, ul_frame); return ul_frame % 1024; } -int32_t pmi_convert_rank1_from_rank2(uint16_t pmi_alloc, int tpmi, int nb_rb) +int32_t +pmi_convert_rank1_from_rank2 (uint16_t pmi_alloc, int tpmi, int nb_rb) { - int nb_subbands = 0; - int32_t pmi_alloc_new = 0, pmi_new = 0, pmi_old = 0; - int i; + int nb_subbands = 0; + int32_t pmi_alloc_new = 0, pmi_new = 0, pmi_old = 0; + int i; switch (nb_rb) { - case 6: - nb_subbands = 6; - break; - default: - case 25: - nb_subbands = 7; - break; - case 50: - nb_subbands = 9; - break; - case 100: - nb_subbands = 13; - break; - } + case 6: + nb_subbands = 6; + break; + default: + case 25: + nb_subbands = 7; + break; + case 50: + nb_subbands = 9; + break; + case 100: + nb_subbands = 13; + break; + } for (i = 0; i < nb_subbands; i++) { - pmi_old = (pmi_alloc >> i)&1; + pmi_old = (pmi_alloc >> i) & 1; if (pmi_old == 0) if (tpmi == 5) pmi_new = 0; else pmi_new = 1; + else if (tpmi == 5) + pmi_new = 2; else - if (tpmi == 5) - pmi_new = 2; - else - pmi_new = 3; + pmi_new = 3; - pmi_alloc_new|=pmi_new<<(2*i); + pmi_alloc_new |= pmi_new << (2 * i); } #ifdef DEBUG_HARQ -printf(" [DCI UE] pmi_alloc_old %d, pmi_alloc_new %d pmi_old %d , pmi_new %d\n", pmi_alloc, pmi_alloc_new,pmi_old, pmi_new ); + printf (" [DCI UE] pmi_alloc_old %d, pmi_alloc_new %d pmi_old %d , pmi_new %d\n", pmi_alloc, pmi_alloc_new, pmi_old, pmi_new); #endif -return(pmi_alloc_new); + return (pmi_alloc_new); } -uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_rb) +uint16_t +quantize_subband_pmi (PHY_MEASUREMENTS * meas, uint8_t eNB_id, int nb_rb) { - int i, aarx; - uint16_t pmiq=0; - uint32_t pmivect = 0; - uint8_t rank = meas->rank[eNB_id]; - int pmi_re,pmi_im; - int nb_subbands=0; + int i, aarx; + uint16_t pmiq = 0; + uint32_t pmivect = 0; + uint8_t rank = meas->rank[eNB_id]; + int pmi_re, pmi_im; + int nb_subbands = 0; switch (nb_rb) { - case 6: - nb_subbands = 6; - break; - default: - case 25: - nb_subbands = 7; - break; - case 50: - nb_subbands = 9; - break; - case 100: - nb_subbands = 13; - break; - } + case 6: + nb_subbands = 6; + break; + default: + case 25: + nb_subbands = 7; + break; + case 50: + nb_subbands = 9; + break; + case 100: + nb_subbands = 13; + break; + } - for (i=0; inb_antennas_rx; aarx++) { + for (aarx = 0; aarx < meas->nb_antennas_rx; aarx++) { pmi_re += meas->subband_pmi_re[eNB_id][i][aarx]; pmi_im += meas->subband_pmi_im[eNB_id][i][aarx]; } @@ -6639,51 +6200,51 @@ uint16_t quantize_subband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,int nb_rb) pmiq = PMI_2A_1mj; // printf("subband %d, pmi%d \n",i,pmiq); - pmivect |= (pmiq<<(2*i)); + pmivect |= (pmiq << (2 * i)); } - else if (rank==1) { - for (aarx=0; aarxnb_antennas_rx; aarx++) { + else if (rank == 1) { + for (aarx = 0; aarx < meas->nb_antennas_rx; aarx++) { pmi_re += meas->subband_pmi_re[eNB_id][i][aarx]; - //printf("meas->subband_pmi_re[eNB_id][i][%d]=%d\n", aarx, meas->subband_pmi_re[eNB_id][i][aarx]); + //printf("meas->subband_pmi_re[eNB_id][i][%d]=%d\n", aarx, meas->subband_pmi_re[eNB_id][i][aarx]); pmi_im += meas->subband_pmi_im[eNB_id][i][aarx]; - //printf("meas->subband_pmi_im[eNB_id][i][%d]=%d\n",aarx, meas->subband_pmi_im[eNB_id][i][aarx]); + //printf("meas->subband_pmi_im[eNB_id][i][%d]=%d\n",aarx, meas->subband_pmi_im[eNB_id][i][aarx]); } - if (pmi_re >= pmi_im) // this is not orthogonal - // this is orthogonal - //if (((pmi_re >= pmi_im) && (pmi_re >= -pmi_im)) || ((pmi_re <= pmi_im) && (pmi_re >= -pmi_im))) - pmiq = PMI_2A_R1_11; - else - pmiq = PMI_2A_R1_1j; + if (pmi_re >= pmi_im) // this is not orthogonal + // this is orthogonal + //if (((pmi_re >= pmi_im) && (pmi_re >= -pmi_im)) || ((pmi_re <= pmi_im) && (pmi_re >= -pmi_im))) + pmiq = PMI_2A_R1_11; + else + pmiq = PMI_2A_R1_1j; - // printf("subband %d, pmi_re %d, pmi_im %d, pmiq %d \n",i,pmi_re,pmi_im,pmiq); - // printf("subband %d, pmi%d \n",i,pmiq); + // printf("subband %d, pmi_re %d, pmi_im %d, pmiq %d \n",i,pmi_re,pmi_im,pmiq); + // printf("subband %d, pmi%d \n",i,pmiq); //According to Section 7.2.4 of 36.213 - pmivect |= ((pmiq-1)<<(i)); //shift 1 since only one bit - } - else { - LOG_E(PHY,"PMI feedback for rank>1 not supported!\n"); + pmivect |= ((pmiq - 1) << (i)); //shift 1 since only one bit + } else { + LOG_E (PHY, "PMI feedback for rank>1 not supported!\n"); pmivect = 0; } } #ifdef DEBUG_HARQ - printf( "quantize_subband_pmi pmivect %d \n", pmivect); + printf ("quantize_subband_pmi pmivect %d \n", pmivect); #endif - return(pmivect); + return (pmivect); } -uint16_t quantize_subband_pmi2(PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_t a_id,int nb_subbands) +uint16_t +quantize_subband_pmi2 (PHY_MEASUREMENTS * meas, uint8_t eNB_id, uint8_t a_id, int nb_subbands) { - uint8_t i; - uint16_t pmiq=0; - uint16_t pmivect = 0; - uint8_t rank = meas->rank[eNB_id]; - int pmi_re,pmi_im; + uint8_t i; + uint16_t pmiq = 0; + uint16_t pmivect = 0; + uint8_t rank = meas->rank[eNB_id]; + int pmi_re, pmi_im; - for (i=0; isubband_pmi_re[eNB_id][i][a_id]; @@ -6698,23 +6259,24 @@ uint16_t quantize_subband_pmi2(PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_t a_i else if ((pmi_re > pmi_im) && (pmi_re < -pmi_im)) pmiq = PMI_2A_1mj; - pmivect |= (pmiq<<(2*i)); + pmivect |= (pmiq << (2 * i)); } else { // This needs to be done properly!!! pmivect = 0; } } - return(pmivect); + return (pmivect); } -uint16_t quantize_wideband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id) +uint16_t +quantize_wideband_pmi (PHY_MEASUREMENTS * meas, uint8_t eNB_id) { - uint16_t pmiq=0; - uint8_t rank = meas->rank[eNB_id]; + uint16_t pmiq = 0; + uint8_t rank = meas->rank[eNB_id]; //int pmi; - int pmi_re,pmi_im; + int pmi_re, pmi_im; if (rank == 1) { //pmi = @@ -6736,8 +6298,9 @@ uint16_t quantize_wideband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id) } - return(pmiq); + return (pmiq); } + /* uint8_t sinr2cqi(int sinr) { if (sinr<-3) @@ -6749,15 +6312,16 @@ uint16_t quantize_wideband_pmi(PHY_MEASUREMENTS *meas,uint8_t eNB_id) } */ -uint8_t sinr2cqi(double sinr,uint8_t trans_mode) +uint8_t +sinr2cqi (double sinr, uint8_t trans_mode) { // int flag_LA=0; - uint8_t retValue = 0; + uint8_t retValue = 0; - if(flag_LA==0) { + if (flag_LA == 0) { // Ideal Channel Estimation - if (sinr<=-4.89) + if (sinr <= -4.89) retValue = (0); else if (sinr < -3.53) retValue = (3); @@ -6786,25 +6350,26 @@ uint8_t sinr2cqi(double sinr,uint8_t trans_mode) else retValue = (15); } else { - int h=0; - int trans_mode_tmp; + int h = 0; + int trans_mode_tmp; - if (trans_mode ==5) - trans_mode_tmp=2; - else if(trans_mode ==6) - trans_mode_tmp=3; + if (trans_mode == 5) + trans_mode_tmp = 2; + else if (trans_mode == 6) + trans_mode_tmp = 3; else - trans_mode_tmp = trans_mode-1; + trans_mode_tmp = trans_mode - 1; - for(h=0; h<16; h++) { - if(sinr<=sinr_to_cqi[trans_mode_tmp][h]) + for (h = 0; h < 16; h++) { + if (sinr <= sinr_to_cqi[trans_mode_tmp][h]) retValue = (h); } } - LOG_D(PHY, "sinr=%f trans_mode=%d cqi=%d\n", sinr, trans_mode, retValue); + LOG_D (PHY, "sinr=%f trans_mode=%d cqi=%d\n", sinr, trans_mode, retValue); return retValue; } + //uint32_t fill_subband_cqi(PHY_MEASUREMENTS *meas,uint8_t eNB_id) { // // uint8_t i; @@ -6831,45 +6396,47 @@ uint8_t sinr2cqi(double sinr,uint8_t trans_mode) //} -uint32_t fill_subband_cqi(PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_t trans_mode,int nb_subbands) +uint32_t +fill_subband_cqi (PHY_MEASUREMENTS * meas, uint8_t eNB_id, uint8_t trans_mode, int nb_subbands) { - uint8_t i; + uint8_t i; - uint32_t cqivect = 0,offset=0; + uint32_t cqivect = 0, offset = 0; - int diff_cqi=0; + int diff_cqi = 0; - for (i=0; iwideband_cqi_avg[eNB_id],trans_mode) + sinr2cqi(meas->subband_cqi_tot_dB[eNB_id][i],trans_mode); + diff_cqi = -sinr2cqi (meas->wideband_cqi_avg[eNB_id], trans_mode) + sinr2cqi (meas->subband_cqi_tot_dB[eNB_id][i], trans_mode); // Note, this is Table 7.2.1-2 from 36.213 - if (diff_cqi<=-1) + if (diff_cqi <= -1) offset = 3; - else if (diff_cqi>=2) + else if (diff_cqi >= 2) offset = 2; else - offset=(uint32_t)diff_cqi; + offset = (uint32_t) diff_cqi; - cqivect |= (offset<<(2*i)); + cqivect |= (offset << (2 * i)); } - return(cqivect); + return (cqivect); } -void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_t harq_pid,int N_RB_DL,uint16_t rnti, uint8_t trans_mode, double sinr_eff) +void +fill_CQI (LTE_UE_ULSCH_t * ulsch, PHY_MEASUREMENTS * meas, uint8_t eNB_id, uint8_t harq_pid, int N_RB_DL, uint16_t rnti, uint8_t trans_mode, double sinr_eff) { // printf("[PHY][UE] Filling CQI for eNB %d, meas->wideband_cqi_tot[%d] %d\n", // eNB_id,eNB_id,meas->wideband_cqi_tot[eNB_id]); - double sinr_tmp; - uint8_t *o = ulsch->o; - UCI_format_t uci_format = ulsch->uci_format; + double sinr_tmp; + uint8_t *o = ulsch->o; + UCI_format_t uci_format = ulsch->uci_format; - if(flag_LA==1) + if (flag_LA == 1) sinr_tmp = sinr_eff; else sinr_tmp = (double) meas->wideband_cqi_avg[eNB_id]; @@ -6883,51 +6450,51 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ case 6: switch (uci_format) { case wideband_cqi_rank1_2A: - ((wideband_cqi_rank1_2A_1_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((wideband_cqi_rank1_2A_1_5MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,6); + ((wideband_cqi_rank1_2A_1_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((wideband_cqi_rank1_2A_1_5MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 6); break; case wideband_cqi_rank2_2A: - ((wideband_cqi_rank2_2A_1_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_1_5MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_1_5MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,6); + ((wideband_cqi_rank2_2A_1_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_1_5MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_1_5MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 6); break; case HLC_subband_cqi_nopmi: - ((HLC_subband_cqi_nopmi_1_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_nopmi_1_5MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,6); + ((HLC_subband_cqi_nopmi_1_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_nopmi_1_5MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 6); break; case HLC_subband_cqi_rank1_2A: - ((HLC_subband_cqi_rank1_2A_1_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank1_2A_1_5MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,6); - ((HLC_subband_cqi_rank1_2A_1_5MHz *)o)->pmi = quantize_wideband_pmi(meas,eNB_id); + ((HLC_subband_cqi_rank1_2A_1_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank1_2A_1_5MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 6); + ((HLC_subband_cqi_rank1_2A_1_5MHz *) o)->pmi = quantize_wideband_pmi (meas, eNB_id); break; case HLC_subband_cqi_rank2_2A: // This has to be improved!!! - ((HLC_subband_cqi_rank2_2A_1_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_1_5MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,6); - ((HLC_subband_cqi_rank2_2A_1_5MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_1_5MHz *)o)->diffcqi2 = fill_subband_cqi(meas,eNB_id,trans_mode,6); - ((HLC_subband_cqi_rank2_2A_1_5MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,6); + ((HLC_subband_cqi_rank2_2A_1_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_1_5MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 6); + ((HLC_subband_cqi_rank2_2A_1_5MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_1_5MHz *) o)->diffcqi2 = fill_subband_cqi (meas, eNB_id, trans_mode, 6); + ((HLC_subband_cqi_rank2_2A_1_5MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 6); break; case HLC_subband_cqi_mcs_CBA: // this is the cba mcs uci for cba transmission - ((HLC_subband_cqi_mcs_CBA_1_5MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; - ((HLC_subband_cqi_mcs_CBA_1_5MHz *)o)->crnti = rnti; - LOG_D(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + ((HLC_subband_cqi_mcs_CBA_1_5MHz *) o)->mcs = ulsch->harq_processes[harq_pid]->mcs; + ((HLC_subband_cqi_mcs_CBA_1_5MHz *) o)->crnti = rnti; + LOG_D (PHY, "fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: - LOG_E(PHY,"fill_CQI ue_selected CQI not supported yet!!!\n"); - AssertFatal(1==0,"fill_CQI ue_selected CQI not supported yet!!!"); + LOG_E (PHY, "fill_CQI ue_selected CQI not supported yet!!!\n"); + AssertFatal (1 == 0, "fill_CQI ue_selected CQI not supported yet!!!"); break; default: - LOG_E(PHY,"unsupported CQI mode (%d)!!!\n",uci_format); - AssertFatal(1==0,"unsupported CQI mode !!!"); + LOG_E (PHY, "unsupported CQI mode (%d)!!!\n", uci_format); + AssertFatal (1 == 0, "unsupported CQI mode !!!"); break; } @@ -6937,51 +6504,51 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ case 25: switch (uci_format) { case wideband_cqi_rank1_2A: - ((wideband_cqi_rank1_2A_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((wideband_cqi_rank1_2A_5MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,7); + ((wideband_cqi_rank1_2A_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((wideband_cqi_rank1_2A_5MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 7); break; case wideband_cqi_rank2_2A: - ((wideband_cqi_rank2_2A_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_5MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_5MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,7); + ((wideband_cqi_rank2_2A_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_5MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_5MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 7); break; case HLC_subband_cqi_nopmi: - ((HLC_subband_cqi_nopmi_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_nopmi_5MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,7); + ((HLC_subband_cqi_nopmi_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_nopmi_5MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 7); break; case HLC_subband_cqi_rank1_2A: - ((HLC_subband_cqi_rank1_2A_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank1_2A_5MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,7); - ((HLC_subband_cqi_rank1_2A_5MHz *)o)->pmi = quantize_wideband_pmi(meas,eNB_id); + ((HLC_subband_cqi_rank1_2A_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank1_2A_5MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 7); + ((HLC_subband_cqi_rank1_2A_5MHz *) o)->pmi = quantize_wideband_pmi (meas, eNB_id); break; case HLC_subband_cqi_rank2_2A: // This has to be improved!!! - ((HLC_subband_cqi_rank2_2A_5MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_5MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,7); - ((HLC_subband_cqi_rank2_2A_5MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_5MHz *)o)->diffcqi2 = fill_subband_cqi(meas,eNB_id,trans_mode,7); - ((HLC_subband_cqi_rank2_2A_5MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,7); + ((HLC_subband_cqi_rank2_2A_5MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_5MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 7); + ((HLC_subband_cqi_rank2_2A_5MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_5MHz *) o)->diffcqi2 = fill_subband_cqi (meas, eNB_id, trans_mode, 7); + ((HLC_subband_cqi_rank2_2A_5MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 7); break; case HLC_subband_cqi_mcs_CBA: // this is the cba mcs uci for cba transmission - ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; - ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->crnti = rnti; - LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + ((HLC_subband_cqi_mcs_CBA_5MHz *) o)->mcs = ulsch->harq_processes[harq_pid]->mcs; + ((HLC_subband_cqi_mcs_CBA_5MHz *) o)->crnti = rnti; + LOG_N (PHY, "fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: - LOG_E(PHY,"fill_CQI ue_selected CQI not supported yet!!!\n"); - AssertFatal(1==0,"fill_CQI ue_selected CQI not supported yet!!!"); + LOG_E (PHY, "fill_CQI ue_selected CQI not supported yet!!!\n"); + AssertFatal (1 == 0, "fill_CQI ue_selected CQI not supported yet!!!"); break; default: - LOG_E(PHY,"unsupported CQI mode (%d)!!!\n",uci_format); - AssertFatal(1==0,"unsupported CQI mode !!!"); + LOG_E (PHY, "unsupported CQI mode (%d)!!!\n", uci_format); + AssertFatal (1 == 0, "unsupported CQI mode !!!"); break; } @@ -6991,51 +6558,51 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ case 50: switch (uci_format) { case wideband_cqi_rank1_2A: - ((wideband_cqi_rank1_2A_10MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((wideband_cqi_rank1_2A_10MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,9); + ((wideband_cqi_rank1_2A_10MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((wideband_cqi_rank1_2A_10MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 9); break; case wideband_cqi_rank2_2A: - ((wideband_cqi_rank2_2A_10MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_10MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_10MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,9); + ((wideband_cqi_rank2_2A_10MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_10MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_10MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 9); break; case HLC_subband_cqi_nopmi: - ((HLC_subband_cqi_nopmi_10MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_nopmi_10MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,9); + ((HLC_subband_cqi_nopmi_10MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_nopmi_10MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 9); break; case HLC_subband_cqi_rank1_2A: - ((HLC_subband_cqi_rank1_2A_10MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank1_2A_10MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,9); - ((HLC_subband_cqi_rank1_2A_10MHz *)o)->pmi = quantize_wideband_pmi(meas,eNB_id); + ((HLC_subband_cqi_rank1_2A_10MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank1_2A_10MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 9); + ((HLC_subband_cqi_rank1_2A_10MHz *) o)->pmi = quantize_wideband_pmi (meas, eNB_id); break; case HLC_subband_cqi_rank2_2A: // This has to be improved!!! - ((HLC_subband_cqi_rank2_2A_10MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_10MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,9); - ((HLC_subband_cqi_rank2_2A_10MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_10MHz *)o)->diffcqi2 = fill_subband_cqi(meas,eNB_id,trans_mode,9); - ((HLC_subband_cqi_rank2_2A_10MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,9); + ((HLC_subband_cqi_rank2_2A_10MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_10MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 9); + ((HLC_subband_cqi_rank2_2A_10MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_10MHz *) o)->diffcqi2 = fill_subband_cqi (meas, eNB_id, trans_mode, 9); + ((HLC_subband_cqi_rank2_2A_10MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 9); break; case HLC_subband_cqi_mcs_CBA: // this is the cba mcs uci for cba transmission - ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; - ((HLC_subband_cqi_mcs_CBA_10MHz *)o)->crnti = rnti; - LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + ((HLC_subband_cqi_mcs_CBA_10MHz *) o)->mcs = ulsch->harq_processes[harq_pid]->mcs; + ((HLC_subband_cqi_mcs_CBA_10MHz *) o)->crnti = rnti; + LOG_N (PHY, "fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: - LOG_E(PHY,"fill_CQI ue_selected CQI not supported yet!!!\n"); - AssertFatal(1==0,"fill_CQI ue_selected CQI not supported yet!!!"); + LOG_E (PHY, "fill_CQI ue_selected CQI not supported yet!!!\n"); + AssertFatal (1 == 0, "fill_CQI ue_selected CQI not supported yet!!!"); break; default: - LOG_E(PHY,"unsupported CQI mode (%d)!!!\n",uci_format); - AssertFatal(1==0,"unsupported CQI mode !!!"); + LOG_E (PHY, "unsupported CQI mode (%d)!!!\n", uci_format); + AssertFatal (1 == 0, "unsupported CQI mode !!!"); break; } @@ -7045,51 +6612,51 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ case 100: switch (uci_format) { case wideband_cqi_rank1_2A: - ((wideband_cqi_rank1_2A_20MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((wideband_cqi_rank1_2A_20MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,13); + ((wideband_cqi_rank1_2A_20MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((wideband_cqi_rank1_2A_20MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 13); break; case wideband_cqi_rank2_2A: - ((wideband_cqi_rank2_2A_20MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_20MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); //FIXME: calculate rank2 cqi - ((wideband_cqi_rank2_2A_20MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,13); + ((wideband_cqi_rank2_2A_20MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_20MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); //FIXME: calculate rank2 cqi + ((wideband_cqi_rank2_2A_20MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 13); break; case HLC_subband_cqi_nopmi: - ((HLC_subband_cqi_nopmi_20MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_nopmi_20MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,13); + ((HLC_subband_cqi_nopmi_20MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_nopmi_20MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 13); break; case HLC_subband_cqi_rank1_2A: - ((HLC_subband_cqi_rank1_2A_20MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank1_2A_20MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,13); - ((HLC_subband_cqi_rank1_2A_20MHz *)o)->pmi = quantize_wideband_pmi(meas,eNB_id); + ((HLC_subband_cqi_rank1_2A_20MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank1_2A_20MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 13); + ((HLC_subband_cqi_rank1_2A_20MHz *) o)->pmi = quantize_wideband_pmi (meas, eNB_id); break; case HLC_subband_cqi_rank2_2A: // This has to be improved!!! - ((HLC_subband_cqi_rank2_2A_20MHz *)o)->cqi1 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_20MHz *)o)->diffcqi1 = fill_subband_cqi(meas,eNB_id,trans_mode,13); - ((HLC_subband_cqi_rank2_2A_20MHz *)o)->cqi2 = sinr2cqi(sinr_tmp,trans_mode); - ((HLC_subband_cqi_rank2_2A_20MHz *)o)->diffcqi2 = fill_subband_cqi(meas,eNB_id,trans_mode,13); - ((HLC_subband_cqi_rank2_2A_20MHz *)o)->pmi = quantize_subband_pmi(meas,eNB_id,13); + ((HLC_subband_cqi_rank2_2A_20MHz *) o)->cqi1 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_20MHz *) o)->diffcqi1 = fill_subband_cqi (meas, eNB_id, trans_mode, 13); + ((HLC_subband_cqi_rank2_2A_20MHz *) o)->cqi2 = sinr2cqi (sinr_tmp, trans_mode); + ((HLC_subband_cqi_rank2_2A_20MHz *) o)->diffcqi2 = fill_subband_cqi (meas, eNB_id, trans_mode, 13); + ((HLC_subband_cqi_rank2_2A_20MHz *) o)->pmi = quantize_subband_pmi (meas, eNB_id, 13); break; case HLC_subband_cqi_mcs_CBA: // this is the cba mcs uci for cba transmission - ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->mcs = ulsch->harq_processes[harq_pid]->mcs; - ((HLC_subband_cqi_mcs_CBA_20MHz *)o)->crnti = rnti; - LOG_N(PHY,"fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); + ((HLC_subband_cqi_mcs_CBA_20MHz *) o)->mcs = ulsch->harq_processes[harq_pid]->mcs; + ((HLC_subband_cqi_mcs_CBA_20MHz *) o)->crnti = rnti; + LOG_N (PHY, "fill uci for cba rnti %x, mcs %d \n", rnti, ulsch->harq_processes[harq_pid]->mcs); break; case ue_selected: - LOG_E(PHY,"fill_CQI ue_selected CQI not supported yet!!!\n"); - AssertFatal(1==0,"fill_CQI ue_selected CQI not supported yet!!!"); + LOG_E (PHY, "fill_CQI ue_selected CQI not supported yet!!!\n"); + AssertFatal (1 == 0, "fill_CQI ue_selected CQI not supported yet!!!"); break; default: - LOG_E(PHY,"unsupported CQI mode (%d)!!!\n",uci_format); - AssertFatal(1==0,"unsupported CQI mode !!!"); + LOG_E (PHY, "unsupported CQI mode (%d)!!!\n", uci_format); + AssertFatal (1 == 0, "unsupported CQI mode !!!"); break; } @@ -7101,85 +6668,76 @@ void fill_CQI(LTE_UE_ULSCH_t *ulsch,PHY_MEASUREMENTS *meas,uint8_t eNB_id,uint8_ } -void reset_cba_uci(void *o) +void +reset_cba_uci (void *o) { // this is the cba mcs uci for cba transmission - ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->mcs = 0; //fixme - ((HLC_subband_cqi_mcs_CBA_5MHz *)o)->crnti = 0x0; + ((HLC_subband_cqi_mcs_CBA_5MHz *) o)->mcs = 0; //fixme + ((HLC_subband_cqi_mcs_CBA_5MHz *) o)->crnti = 0x0; } -uint32_t pmi_extend(LTE_DL_FRAME_PARMS *frame_parms,uint8_t wideband_pmi, uint8_t rank) +uint32_t +pmi_extend (LTE_DL_FRAME_PARMS * frame_parms, uint8_t wideband_pmi, uint8_t rank) { - uint8_t i,wideband_pmi2; - uint32_t pmi_ex = 0; + uint8_t i, wideband_pmi2; + uint32_t pmi_ex = 0; - if (frame_parms->N_RB_DL!=25) { - LOG_E(PHY,"pmi_extend not yet implemented for anything else than 25PRB\n"); - return(-1); + if (frame_parms->N_RB_DL != 25) { + LOG_E (PHY, "pmi_extend not yet implemented for anything else than 25PRB\n"); + return (-1); } - if (rank==0) { - wideband_pmi2=wideband_pmi&3; - for (i=0; i<14; i+=2) - pmi_ex|=(wideband_pmi2<transmission_mode[eNB_id]; - ANFBmode_t AckNackFBMode; + uint8_t harq_pid; + uint8_t transmission_mode = ue->transmission_mode[eNB_id]; + ANFBmode_t AckNackFBMode; LTE_UE_ULSCH_t *ulsch = ue->ulsch[eNB_id]; LTE_UE_DLSCH_t **dlsch = ue->dlsch[ue->current_thread_id[subframe]][0]; PHY_MEASUREMENTS *meas = &ue->measurements; LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; // uint32_t current_dlsch_cqi = ue->current_dlsch_cqi[eNB_id]; - if(frame_parms->frame_type == TDD) - { - AckNackFBMode = ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode; - } - else - { - AckNackFBMode = 1; // 1: multiplexing for FDD + if (frame_parms->frame_type == TDD) { + AckNackFBMode = ue->pucch_config_dedicated[eNB_id].tdd_AckNackFeedbackMode; + } else { + AckNackFBMode = 1; // 1: multiplexing for FDD } - uint32_t cqi_req; - uint32_t dai=3; - uint32_t cshift; - uint32_t TPC; - uint32_t ndi; - uint32_t mcs; - uint32_t rballoc,RIV_max; - uint16_t* RIV2first_rb_LUT; - uint16_t* RIV2nb_rb_LUT; + uint32_t cqi_req; + uint32_t dai = 3; + uint32_t cshift; + uint32_t TPC; + uint32_t ndi; + uint32_t mcs; + uint32_t rballoc, RIV_max; + uint16_t *RIV2first_rb_LUT; + uint16_t *RIV2nb_rb_LUT; // uint32_t hopping; // uint32_t type; @@ -7192,35 +6750,32 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if (rnti == ra_rnti) harq_pid = 0; else - harq_pid = subframe2harq_pid(frame_parms, - pdcch_alloc2ul_frame(frame_parms,proc->frame_rx,subframe), - pdcch_alloc2ul_subframe(frame_parms,subframe)); + harq_pid = subframe2harq_pid (frame_parms, pdcch_alloc2ul_frame (frame_parms, proc->frame_rx, subframe), pdcch_alloc2ul_subframe (frame_parms, subframe)); if (harq_pid == 255) { - LOG_E(PHY, "frame %d, subframe %d, rnti %x, format %d: illegal harq_pid!\n", - proc->frame_rx, subframe, rnti, dci_format); - return(-1); + LOG_E (PHY, "frame %d, subframe %d, rnti %x, format %d: illegal harq_pid!\n", proc->frame_rx, subframe, rnti, dci_format); + return (-1); } switch (frame_parms->N_RB_DL) { case 6: if (frame_parms->frame_type == TDD) { - cqi_req = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->cqi_req; - dai = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->dai; - cshift = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->cshift; - TPC = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->TPC; - ndi = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->ndi; - mcs = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->cqi_req; + dai = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->dai; + cshift = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->cshift; + TPC = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->TPC; + ndi = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->ndi; + mcs = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI0_1_5MHz_TDD_1_6_t *) dci_pdu)->rballoc; // hopping = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_1_5MHz_TDD_1_6_t *)dci_pdu)->type; } else { - cqi_req = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->cqi_req; - cshift = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->cshift; - TPC = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->ndi; - mcs = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_1_5MHz_FDD_t *) dci_pdu)->cqi_req; + cshift = ((DCI0_1_5MHz_FDD_t *) dci_pdu)->cshift; + TPC = ((DCI0_1_5MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI0_1_5MHz_FDD_t *) dci_pdu)->ndi; + mcs = ((DCI0_1_5MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI0_1_5MHz_FDD_t *) dci_pdu)->rballoc; // hopping = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_1_5MHz_FDD_t *)dci_pdu)->type; } @@ -7233,22 +6788,22 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, case 25: if (frame_parms->frame_type == TDD) { - cqi_req = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cqi_req; - dai = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->dai; - cshift = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift; - TPC = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->TPC; - ndi = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->ndi; - mcs = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->cqi_req; + dai = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->dai; + cshift = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->cshift; + TPC = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->TPC; + ndi = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->ndi; + mcs = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI0_5MHz_TDD_1_6_t *) dci_pdu)->rballoc; // hopping = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->type; } else { - cqi_req = ((DCI0_5MHz_FDD_t *)dci_pdu)->cqi_req; - cshift = ((DCI0_5MHz_FDD_t *)dci_pdu)->cshift; - TPC = ((DCI0_5MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI0_5MHz_FDD_t *)dci_pdu)->ndi; - mcs = ((DCI0_5MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI0_5MHz_FDD_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_5MHz_FDD_t *) dci_pdu)->cqi_req; + cshift = ((DCI0_5MHz_FDD_t *) dci_pdu)->cshift; + TPC = ((DCI0_5MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI0_5MHz_FDD_t *) dci_pdu)->ndi; + mcs = ((DCI0_5MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI0_5MHz_FDD_t *) dci_pdu)->rballoc; // hopping = ((DCI0_5MHz_FDD_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_5MHz_FDD_t *)dci_pdu)->type; } @@ -7261,22 +6816,22 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, case 50: if (frame_parms->frame_type == TDD) { - cqi_req = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->cqi_req; - dai = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->dai; - cshift = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->cshift; - TPC = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->TPC; - ndi = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->ndi; - mcs = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->cqi_req; + dai = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->dai; + cshift = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->cshift; + TPC = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->TPC; + ndi = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->ndi; + mcs = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI0_10MHz_TDD_1_6_t *) dci_pdu)->rballoc; // hopping = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_10MHz_TDD_1_6_t *)dci_pdu)->type; } else { - cqi_req = ((DCI0_10MHz_FDD_t *)dci_pdu)->cqi_req; - cshift = ((DCI0_10MHz_FDD_t *)dci_pdu)->cshift; - TPC = ((DCI0_10MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI0_10MHz_FDD_t *)dci_pdu)->ndi; - mcs = ((DCI0_10MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI0_10MHz_FDD_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_10MHz_FDD_t *) dci_pdu)->cqi_req; + cshift = ((DCI0_10MHz_FDD_t *) dci_pdu)->cshift; + TPC = ((DCI0_10MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI0_10MHz_FDD_t *) dci_pdu)->ndi; + mcs = ((DCI0_10MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI0_10MHz_FDD_t *) dci_pdu)->rballoc; // hopping = ((DCI0_10MHz_FDD_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_10MHz_FDD_t *)dci_pdu)->type; } @@ -7289,22 +6844,22 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, case 100: if (frame_parms->frame_type == TDD) { - cqi_req = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->cqi_req; - dai = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->dai; - cshift = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->cshift; - TPC = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->TPC; - ndi = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->ndi; - mcs = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->mcs; - rballoc = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->cqi_req; + dai = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->dai; + cshift = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->cshift; + TPC = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->TPC; + ndi = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->ndi; + mcs = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->mcs; + rballoc = ((DCI0_20MHz_TDD_1_6_t *) dci_pdu)->rballoc; // hopping = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_20MHz_TDD_1_6_t *)dci_pdu)->type; } else { - cqi_req = ((DCI0_20MHz_FDD_t *)dci_pdu)->cqi_req; - cshift = ((DCI0_20MHz_FDD_t *)dci_pdu)->cshift; - TPC = ((DCI0_20MHz_FDD_t *)dci_pdu)->TPC; - ndi = ((DCI0_20MHz_FDD_t *)dci_pdu)->ndi; - mcs = ((DCI0_20MHz_FDD_t *)dci_pdu)->mcs; - rballoc = ((DCI0_20MHz_FDD_t *)dci_pdu)->rballoc; + cqi_req = ((DCI0_20MHz_FDD_t *) dci_pdu)->cqi_req; + cshift = ((DCI0_20MHz_FDD_t *) dci_pdu)->cshift; + TPC = ((DCI0_20MHz_FDD_t *) dci_pdu)->TPC; + ndi = ((DCI0_20MHz_FDD_t *) dci_pdu)->ndi; + mcs = ((DCI0_20MHz_FDD_t *) dci_pdu)->mcs; + rballoc = ((DCI0_20MHz_FDD_t *) dci_pdu)->rballoc; // hopping = ((DCI0_20MHz_FDD_t *)dci_pdu)->hopping=hopping; // type = ((DCI0_20MHz_FDD_t *)dci_pdu)->type; } @@ -7317,58 +6872,52 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, break; default: - LOG_E(PHY,"Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); DevParam (frame_parms->N_RB_DL, 0, 0); break; } if (rballoc > RIV_max) { - LOG_E(PHY,"frame %d, subframe %d, rnti %x, format %d: FATAL ERROR: generate_ue_ulsch_params_from_dci, rb_alloc[%d] > RIV_max[%d]\n", - proc->frame_rx, subframe, rnti, dci_format,rballoc,RIV_max); - LOG_E(PHY,"Wrong DCI0 detection, do not transmit PUSCH for HARQID: %d\n",harq_pid); + LOG_E (PHY, "frame %d, subframe %d, rnti %x, format %d: FATAL ERROR: generate_ue_ulsch_params_from_dci, rb_alloc[%d] > RIV_max[%d]\n", + proc->frame_rx, subframe, rnti, dci_format, rballoc, RIV_max); + LOG_E (PHY, "Wrong DCI0 detection, do not transmit PUSCH for HARQID: %d\n", harq_pid); ulsch->harq_processes[harq_pid]->subframe_scheduling_flag = 0; - return(-1); + return (-1); } - // indicate that this process is to be serviced in subframe n+4 if ((rnti >= cba_rnti) && (rnti < p_rnti)) - ulsch->harq_processes[harq_pid]->subframe_cba_scheduling_flag = 1; //+=1 this indicates the number of dci / cba group: not supported in the data struct - else - { - ulsch->harq_processes[harq_pid]->subframe_scheduling_flag = 1; - //LOG_I(PHY,"[HARQ-UL harqId: %d] DCI0 ==> subframe_scheduling_flag = %d round: %d\n", harq_pid, ulsch->harq_processes[harq_pid]->subframe_scheduling_flag, ulsch->harq_processes[harq_pid]->round); + ulsch->harq_processes[harq_pid]->subframe_cba_scheduling_flag = 1; //+=1 this indicates the number of dci / cba group: not supported in the data struct + else { + ulsch->harq_processes[harq_pid]->subframe_scheduling_flag = 1; + //LOG_I(PHY,"[HARQ-UL harqId: %d] DCI0 ==> subframe_scheduling_flag = %d round: %d\n", harq_pid, ulsch->harq_processes[harq_pid]->subframe_scheduling_flag, ulsch->harq_processes[harq_pid]->round); } - ulsch->harq_processes[harq_pid]->TPC = TPC; - ulsch->harq_processes[harq_pid]->first_rb = RIV2first_rb_LUT[rballoc]; - ulsch->harq_processes[harq_pid]->nb_rb = RIV2nb_rb_LUT[rballoc]; + ulsch->harq_processes[harq_pid]->TPC = TPC; + ulsch->harq_processes[harq_pid]->first_rb = RIV2first_rb_LUT[rballoc]; + ulsch->harq_processes[harq_pid]->nb_rb = RIV2nb_rb_LUT[rballoc]; if (ue->ul_power_control_dedicated[eNB_id].accumulationEnabled == 1) { - LOG_D(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d: f_pusch (ACC) %d, adjusting by %d (TPC %d)\n", - ue->Mod_id,harq_pid,proc->frame_rx,subframe,ulsch->f_pusch, - delta_PUSCH_acc[ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC], - ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC); + LOG_D (PHY, "[UE %d][PUSCH %d] Frame %d subframe %d: f_pusch (ACC) %d, adjusting by %d (TPC %d)\n", + ue->Mod_id, harq_pid, proc->frame_rx, subframe, ulsch->f_pusch, delta_PUSCH_acc[ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC], ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC); ulsch->f_pusch += delta_PUSCH_acc[ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC]; } else { - LOG_D(PHY,"[UE %d][PUSCH %d] Frame %d subframe %d: f_pusch (ABS) %d, adjusting to %d (TPC %d)\n", - ue->Mod_id,harq_pid,proc->frame_rx,subframe,ulsch->f_pusch, - delta_PUSCH_abs[ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC], - ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC); + LOG_D (PHY, "[UE %d][PUSCH %d] Frame %d subframe %d: f_pusch (ABS) %d, adjusting to %d (TPC %d)\n", + ue->Mod_id, harq_pid, proc->frame_rx, subframe, ulsch->f_pusch, delta_PUSCH_abs[ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC], ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC); ulsch->f_pusch = delta_PUSCH_abs[ue->ulsch[eNB_id]->harq_processes[harq_pid]->TPC]; } - if (ulsch->harq_processes[harq_pid]->first_tx==1) { + if (ulsch->harq_processes[harq_pid]->first_tx == 1) { // ulsch->harq_processes[harq_pid]->Ndi = 1; - ulsch->harq_processes[harq_pid]->first_tx=0; - ulsch->harq_processes[harq_pid]->DCINdi= ndi; + ulsch->harq_processes[harq_pid]->first_tx = 0; + ulsch->harq_processes[harq_pid]->DCINdi = ndi; ulsch->harq_processes[harq_pid]->round = 0; } else { - if (ulsch->harq_processes[harq_pid]->DCINdi!=ndi) { // new SDU opportunity + if (ulsch->harq_processes[harq_pid]->DCINdi != ndi) { // new SDU opportunity // ulsch->harq_processes[harq_pid]->Ndi = 1; - ulsch->harq_processes[harq_pid]->DCINdi= ndi; + ulsch->harq_processes[harq_pid]->DCINdi = ndi; ulsch->harq_processes[harq_pid]->round = 0; } else { // ulsch->harq_processes[harq_pid]->Ndi = 0; @@ -7411,7 +6960,7 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, } } - ulsch->harq_processes[harq_pid]->n_DMRS = cshift; + ulsch->harq_processes[harq_pid]->n_DMRS = cshift; //printf("nb_rb %d, first_rb %d (RIV %d)\n",ulsch->harq_processes[harq_pid]->nb_rb,ulsch->harq_processes[harq_pid]->first_rb,rballoc); if ((rnti >= cba_rnti) && (rnti < p_rnti)) { @@ -7423,34 +6972,34 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, // printf("[PHY][UE] DCI format 0: harq_pid %d nb_rb %d, rballoc %d\n",harq_pid,ulsch->harq_processes[harq_pid]->nb_rb, // ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->rballoc); //Mapping of cyclic shift field in DCI format0 to n_DMRS2 (3GPP 36.211, Table 5.5.2.1.1-1) - if(cshift == 0) + if (cshift == 0) ulsch->harq_processes[harq_pid]->n_DMRS2 = 0; - else if(cshift == 1) + else if (cshift == 1) ulsch->harq_processes[harq_pid]->n_DMRS2 = 6; - else if(cshift == 2) + else if (cshift == 2) ulsch->harq_processes[harq_pid]->n_DMRS2 = 3; - else if(cshift == 3) + else if (cshift == 3) ulsch->harq_processes[harq_pid]->n_DMRS2 = 4; - else if(cshift == 4) + else if (cshift == 4) ulsch->harq_processes[harq_pid]->n_DMRS2 = 2; - else if(cshift == 5) + else if (cshift == 5) ulsch->harq_processes[harq_pid]->n_DMRS2 = 8; - else if(cshift == 6) + else if (cshift == 6) ulsch->harq_processes[harq_pid]->n_DMRS2 = 10; - else if(cshift == 7) + else if (cshift == 7) ulsch->harq_processes[harq_pid]->n_DMRS2 = 9; //reserved for cooperative communication /* - if(ulsch->n_DMRS2 == 6) - ulsch->cooperation_flag = 2; - else - ulsch->cooperation_flag = 0; - */ + if(ulsch->n_DMRS2 == 6) + ulsch->cooperation_flag = 2; + else + ulsch->cooperation_flag = 0; + */ - if ((ulsch->harq_processes[harq_pid]->nb_rb>0) && (ulsch->harq_processes[harq_pid]->nb_rb < 25)) - ulsch->power_offset = ue_power_offsets[ulsch->harq_processes[harq_pid]->nb_rb-1]; + if ((ulsch->harq_processes[harq_pid]->nb_rb > 0) && (ulsch->harq_processes[harq_pid]->nb_rb < 25)) + ulsch->power_offset = ue_power_offsets[ulsch->harq_processes[harq_pid]->nb_rb - 1]; // if (ulsch->harq_processes[harq_pid]->Ndi == 1) // ulsch->harq_processes[harq_pid]->status = ACTIVE; @@ -7458,82 +7007,79 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if (cqi_req == 1) { - if( (AntennaInfoDedicated__transmissionMode_tm3 == transmission_mode) || (AntennaInfoDedicated__transmissionMode_tm4 == transmission_mode) ) - { - ulsch->O_RI = 1; - } - else - { - ulsch->O_RI = 0; + if ((AntennaInfoDedicated__transmissionMode_tm3 == transmission_mode) || (AntennaInfoDedicated__transmissionMode_tm4 == transmission_mode)) { + ulsch->O_RI = 1; + } else { + ulsch->O_RI = 0; } //ulsch->O_RI = 0; //we only support 2 antenna ports, so this is always 1 according to 3GPP 36.213 Table - switch(transmission_mode) { + switch (transmission_mode) { // The aperiodic CQI reporting mode is fixed for every transmission mode instead of being configured by higher layer signaling case 1: if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 0; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 1; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 1; } break; @@ -7542,66 +7088,66 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 0; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 1; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 1; } break; @@ -7610,66 +7156,66 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 0; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 1; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 1; } break; @@ -7678,66 +7224,66 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_wideband_cqi_rank1_2A_1_5MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_1_5MHz; break; case 25: - ulsch->O = sizeof_wideband_cqi_rank1_2A_5MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_5MHz; break; case 50: - ulsch->O = sizeof_wideband_cqi_rank1_2A_10MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_10MHz; break; case 100: - ulsch->O = sizeof_wideband_cqi_rank1_2A_20MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_20MHz; break; } - ulsch->uci_format = wideband_cqi_rank1_2A; - ulsch->o_RI[0] = 0; + ulsch->uci_format = wideband_cqi_rank1_2A; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_wideband_cqi_rank2_2A_1_5MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_1_5MHz; break; case 25: - ulsch->O = sizeof_wideband_cqi_rank2_2A_5MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_5MHz; break; case 50: - ulsch->O = sizeof_wideband_cqi_rank2_2A_10MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_10MHz; break; case 100: - ulsch->O = sizeof_wideband_cqi_rank2_2A_20MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_20MHz; break; } - ulsch->uci_format = wideband_cqi_rank2_2A; - ulsch->o_RI[0] = 1; + ulsch->uci_format = wideband_cqi_rank2_2A; + ulsch->o_RI[0] = 1; } break; @@ -7746,66 +7292,66 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_wideband_cqi_rank1_2A_1_5MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_1_5MHz; break; case 25: - ulsch->O = sizeof_wideband_cqi_rank1_2A_5MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_5MHz; break; case 50: - ulsch->O = sizeof_wideband_cqi_rank1_2A_10MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_10MHz; break; case 100: - ulsch->O = sizeof_wideband_cqi_rank1_2A_20MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_20MHz; break; } - ulsch->uci_format = wideband_cqi_rank1_2A; - ulsch->o_RI[0] = 0; + ulsch->uci_format = wideband_cqi_rank1_2A; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_wideband_cqi_rank2_2A_1_5MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_1_5MHz; break; case 25: - ulsch->O = sizeof_wideband_cqi_rank2_2A_5MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_5MHz; break; case 50: - ulsch->O = sizeof_wideband_cqi_rank2_2A_10MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_10MHz; break; case 100: - ulsch->O = sizeof_wideband_cqi_rank2_2A_20MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_20MHz; break; } - ulsch->uci_format = wideband_cqi_rank2_2A; - ulsch->o_RI[0] = 1; + ulsch->uci_format = wideband_cqi_rank2_2A; + ulsch->o_RI[0] = 1; } break; @@ -7814,66 +7360,66 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_wideband_cqi_rank1_2A_1_5MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_1_5MHz; break; case 25: - ulsch->O = sizeof_wideband_cqi_rank1_2A_5MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_5MHz; break; case 50: - ulsch->O = sizeof_wideband_cqi_rank1_2A_10MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_10MHz; break; case 100: - ulsch->O = sizeof_wideband_cqi_rank1_2A_20MHz; + ulsch->O = sizeof_wideband_cqi_rank1_2A_20MHz; break; } - ulsch->uci_format = wideband_cqi_rank1_2A; - ulsch->o_RI[0] = 0; + ulsch->uci_format = wideband_cqi_rank1_2A; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_wideband_cqi_rank2_2A_1_5MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_1_5MHz; break; case 25: - ulsch->O = sizeof_wideband_cqi_rank2_2A_5MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_5MHz; break; case 50: - ulsch->O = sizeof_wideband_cqi_rank2_2A_10MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_10MHz; break; case 100: - ulsch->O = sizeof_wideband_cqi_rank2_2A_20MHz; + ulsch->O = sizeof_wideband_cqi_rank2_2A_20MHz; break; } - ulsch->uci_format = wideband_cqi_rank2_2A; - ulsch->o_RI[0] = 1; + ulsch->uci_format = wideband_cqi_rank2_2A; + ulsch->o_RI[0] = 1; } break; @@ -7882,130 +7428,128 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, if ((rnti >= cba_rnti) && (rnti < p_rnti)) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_mcs_CBA_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_mcs_CBA; - ulsch->o_RI[0] = 0; - } else if(meas->rank[eNB_id] == 0) { + ulsch->uci_format = HLC_subband_cqi_mcs_CBA; + ulsch->o_RI[0] = 0; + } else if (meas->rank[eNB_id] == 0) { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 0; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 0; } else { switch (ue->frame_parms.N_RB_DL) { case 6: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_1_5MHz; break; case 25: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_5MHz; break; case 50: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_10MHz; break; case 100: - ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; + ulsch->O = sizeof_HLC_subband_cqi_nopmi_20MHz; break; } - ulsch->uci_format = HLC_subband_cqi_nopmi; - ulsch->o_RI[0] = 1; + ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->o_RI[0] = 1; } break; default: - LOG_E(PHY,"Incorrect Transmission Mode \n"); + LOG_E (PHY, "Incorrect Transmission Mode \n"); break; } } else { ulsch->O_RI = 0; - ulsch->O = 0; - ulsch->uci_format = HLC_subband_cqi_nopmi; + ulsch->O = 0; + ulsch->uci_format = HLC_subband_cqi_nopmi; } - print_CQI(ulsch->o,ulsch->uci_format,eNB_id,ue->frame_parms.N_RB_DL); + print_CQI (ulsch->o, ulsch->uci_format, eNB_id, ue->frame_parms.N_RB_DL); - ulsch->bundling = 1-AckNackFBMode; + ulsch->bundling = 1 - AckNackFBMode; if (frame_parms->frame_type == FDD) { //int dl_subframe = (subframe<4) ? (subframe+6) : (subframe-4); - int dl_subframe = subframe; + int dl_subframe = subframe; - if (ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_ack[dl_subframe].send_harq_status>0) { // we have downlink transmission + if (ue->dlsch[ue->current_thread_id[subframe]][eNB_id][0]->harq_ack[dl_subframe].send_harq_status > 0) { // we have downlink transmission ulsch->harq_processes[harq_pid]->O_ACK = 1; } else { ulsch->harq_processes[harq_pid]->O_ACK = 0; } /*LOG_I(PHY,"DCI 0 Processing: dl_subframe %d send_harq_status Odd %d send_harq_status Even %d harq_pid %d O_ACK %d\n", dl_subframe, - ue->dlsch[0][eNB_id][0]->harq_ack[dl_subframe].send_harq_status, - ue->dlsch[1][eNB_id][0]->harq_ack[dl_subframe].send_harq_status, - harq_pid, - ulsch->harq_processes[harq_pid]->O_ACK);*/ + ue->dlsch[0][eNB_id][0]->harq_ack[dl_subframe].send_harq_status, + ue->dlsch[1][eNB_id][0]->harq_ack[dl_subframe].send_harq_status, + harq_pid, + ulsch->harq_processes[harq_pid]->O_ACK); */ } else { if (ulsch->bundling) - ulsch->harq_processes[harq_pid]->O_ACK = (dai == 3)? 0 : 1; + ulsch->harq_processes[harq_pid]->O_ACK = (dai == 3) ? 0 : 1; else - ulsch->harq_processes[harq_pid]->O_ACK = (dai >= 2)? 2 : (dai+1)&3; //(dai+1)&3; + ulsch->harq_processes[harq_pid]->O_ACK = (dai >= 2) ? 2 : (dai + 1) & 3; //(dai+1)&3; // ulsch->harq_processes[harq_pid]->V_UL_DAI = dai+1; } - dlsch[0]->harq_ack[subframe].vDAI_UL = dai+1; + dlsch[0]->harq_ack[subframe].vDAI_UL = dai + 1; /*LOG_I(PHY, "[PUSCH %d] Format0 DCI %s, CQI_req=%d, cshift=%d, TPC=%d, DAI=%d, vDAI_UL[sf#%d]=%d, NDI=%d, MCS=%d, RBalloc=%d, first_rb=%d, harq_pid=%d, nb_rb=%d, subframe_scheduling_flag=%d" - " ulsch->bundling %d, O_ACK %d \n", - harq_pid, - (frame_parms->frame_type == TDD? "TDD" : "FDD"), - cqi_req, cshift, TPC, dai, subframe, dlsch[0]->harq_ack[subframe].vDAI_UL, ndi, mcs, rballoc, - ulsch->harq_processes[harq_pid]->first_rb, harq_pid, ulsch->harq_processes[harq_pid]->nb_rb, - ulsch->harq_processes[harq_pid]->subframe_scheduling_flag, - ulsch->bundling, - ulsch->harq_processes[harq_pid]->O_ACK);*/ - LOG_D(PHY,"Setting beta_offset_cqi_times8 to %d, index %d\n", - beta_cqi[ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index], - ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index); + " ulsch->bundling %d, O_ACK %d \n", + harq_pid, + (frame_parms->frame_type == TDD? "TDD" : "FDD"), + cqi_req, cshift, TPC, dai, subframe, dlsch[0]->harq_ack[subframe].vDAI_UL, ndi, mcs, rballoc, + ulsch->harq_processes[harq_pid]->first_rb, harq_pid, ulsch->harq_processes[harq_pid]->nb_rb, + ulsch->harq_processes[harq_pid]->subframe_scheduling_flag, + ulsch->bundling, + ulsch->harq_processes[harq_pid]->O_ACK); */ + LOG_D (PHY, "Setting beta_offset_cqi_times8 to %d, index %d\n", beta_cqi[ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index], ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index); - ulsch->beta_offset_cqi_times8 = beta_cqi[ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index];//18; - ulsch->beta_offset_ri_times8 = beta_ri[ue->pusch_config_dedicated[eNB_id].betaOffset_RI_Index];//10; - ulsch->beta_offset_harqack_times8 = beta_ack[ue->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index];//16; + ulsch->beta_offset_cqi_times8 = beta_cqi[ue->pusch_config_dedicated[eNB_id].betaOffset_CQI_Index]; //18; + ulsch->beta_offset_ri_times8 = beta_ri[ue->pusch_config_dedicated[eNB_id].betaOffset_RI_Index]; //10; + ulsch->beta_offset_harqack_times8 = beta_ack[ue->pusch_config_dedicated[eNB_id].betaOffset_ACK_Index]; //16; - ulsch->Nsymb_pusch = 12-(frame_parms->Ncp<<1)-(use_srs==0?0:1); - ulsch->srs_active = use_srs; + ulsch->Nsymb_pusch = 12 - (frame_parms->Ncp << 1) - (use_srs == 0 ? 0 : 1); + ulsch->srs_active = use_srs; if ((rnti >= cba_rnti) && (rnti < p_rnti)) ulsch->harq_processes[harq_pid]->status = CBA_ACTIVE; @@ -8021,47 +7565,47 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, } else { ulsch->harq_processes[harq_pid]->rvidx = mcs - 28; if (ulsch->harq_processes[harq_pid]->round == 0) { - LOG_W(PHY,"PUSCH::mcs = %d and DCI0::mcs(%d) > 28 and round == %d\n", ulsch->harq_processes[harq_pid]->mcs, mcs, ulsch->harq_processes[harq_pid]->round); + LOG_W (PHY, "PUSCH::mcs = %d and DCI0::mcs(%d) > 28 and round == %d\n", ulsch->harq_processes[harq_pid]->mcs, mcs, ulsch->harq_processes[harq_pid]->round); } else { - LOG_D(PHY,"PUSCH::mcs = %d and DCI0::mcs(%d) > 28 and round == %d\n", ulsch->harq_processes[harq_pid]->mcs, mcs, ulsch->harq_processes[harq_pid]->round); + LOG_D (PHY, "PUSCH::mcs = %d and DCI0::mcs(%d) > 28 and round == %d\n", ulsch->harq_processes[harq_pid]->mcs, mcs, ulsch->harq_processes[harq_pid]->round); } //LOG_E(PHY,"Fatal: mcs(%d) > 28!!! and round == 0\n", mcs); } - ulsch->harq_processes[harq_pid]->TBS = TBStable[get_I_TBS_UL(ulsch->harq_processes[harq_pid]->mcs)][ulsch->harq_processes[harq_pid]->nb_rb-1]; + ulsch->harq_processes[harq_pid]->TBS = TBStable[get_I_TBS_UL (ulsch->harq_processes[harq_pid]->mcs)][ulsch->harq_processes[harq_pid]->nb_rb - 1]; /* else if (ulsch->harq_processes[harq_pid]->mcs == 29) { ulsch->harq_processes[harq_pid]->mcs = 4; ulsch->harq_processes[harq_pid]->TBS = TBStable[get_I_TBS_UL(ulsch->harq_processes[harq_pid]->mcs)][ulsch->harq_processes[harq_pid]->nb_rb-1]; - // ulsch->harq_processes[harq_pid]->calibration_flag =1; - // printf("Auto-Calibration (UE): mcs %d, TBS %d, nb_rb %d\n",ulsch->harq_processes[harq_pid]->mcs,ulsch->harq_processes[harq_pid]->TBS,ulsch->harq_processes[harq_pid]->nb_rb); - }*/ - ulsch->harq_processes[harq_pid]->Msc_initial = 12*ulsch->harq_processes[harq_pid]->nb_rb; + // ulsch->harq_processes[harq_pid]->calibration_flag =1; + // printf("Auto-Calibration (UE): mcs %d, TBS %d, nb_rb %d\n",ulsch->harq_processes[harq_pid]->mcs,ulsch->harq_processes[harq_pid]->TBS,ulsch->harq_processes[harq_pid]->nb_rb); + } */ + ulsch->harq_processes[harq_pid]->Msc_initial = 12 * ulsch->harq_processes[harq_pid]->nb_rb; ulsch->harq_processes[harq_pid]->Nsymb_initial = ulsch->Nsymb_pusch; // a Ndi=1 automatically acknowledges previous PUSCH transmission if (ue->ulsch_Msg3_active[eNB_id] == 1) ue->ulsch_Msg3_active[eNB_id] = 0; - LOG_D(PHY,"[UE %d][PUSCH %d] Frame %d, subframe %d : Programming PUSCH with n_DMRS2 %d (cshift %d), nb_rb %d, first_rb %d, mcs %d, round %d, rv %d, ulsch_ue_Msg3_active %d, cqi_req %d => O %d\n", - ue->Mod_id,harq_pid, - proc->frame_rx,subframe,ulsch->harq_processes[harq_pid]->n_DMRS2,cshift,ulsch->harq_processes[harq_pid]->nb_rb,ulsch->harq_processes[harq_pid]->first_rb, - ulsch->harq_processes[harq_pid]->mcs,ulsch->harq_processes[harq_pid]->round,ulsch->harq_processes[harq_pid]->rvidx, ue->ulsch_Msg3_active[eNB_id],cqi_req,ulsch->O); + LOG_D (PHY, + "[UE %d][PUSCH %d] Frame %d, subframe %d : Programming PUSCH with n_DMRS2 %d (cshift %d), nb_rb %d, first_rb %d, mcs %d, round %d, rv %d, ulsch_ue_Msg3_active %d, cqi_req %d => O %d\n", + ue->Mod_id, harq_pid, proc->frame_rx, subframe, ulsch->harq_processes[harq_pid]->n_DMRS2, cshift, ulsch->harq_processes[harq_pid]->nb_rb, ulsch->harq_processes[harq_pid]->first_rb, + ulsch->harq_processes[harq_pid]->mcs, ulsch->harq_processes[harq_pid]->round, ulsch->harq_processes[harq_pid]->rvidx, ue->ulsch_Msg3_active[eNB_id], cqi_req, ulsch->O); - // ulsch->n_DMRS2 = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift; + // ulsch->n_DMRS2 = ((DCI0_5MHz_TDD_1_6_t *)dci_pdu)->cshift; #ifdef UE_DEBUG_TRACE - LOG_I(PHY,"Format 0 DCI : ulsch (ue): AbsSubframe %d.%d\n",proc->frame_rx%1024,subframe); - LOG_D(PHY,"Format 0 DCI : ulsch (ue): NBRB %d\n",ulsch->harq_processes[harq_pid]->nb_rb); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): first_rb %d\n",ulsch->harq_processes[harq_pid]->first_rb); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): rballoc %d\n",rballoc); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): harq_pid %d\n",harq_pid); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): first_tx %d\n",ulsch->harq_processes[harq_pid]->first_tx); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): DCINdi %d\n",ulsch->harq_processes[harq_pid]->DCINdi); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): round %d\n",ulsch->harq_processes[harq_pid]->round); + LOG_I (PHY, "Format 0 DCI : ulsch (ue): AbsSubframe %d.%d\n", proc->frame_rx % 1024, subframe); + LOG_D (PHY, "Format 0 DCI : ulsch (ue): NBRB %d\n", ulsch->harq_processes[harq_pid]->nb_rb); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): first_rb %d\n", ulsch->harq_processes[harq_pid]->first_rb); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): rballoc %d\n", rballoc); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): harq_pid %d\n", harq_pid); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): first_tx %d\n", ulsch->harq_processes[harq_pid]->first_tx); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): DCINdi %d\n", ulsch->harq_processes[harq_pid]->DCINdi); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): round %d\n", ulsch->harq_processes[harq_pid]->round); //LOG_I(PHY,"Format 0 DCI :ulsch (ue): TBS %d\n",ulsch->harq_processes[harq_pid]->TBS); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): mcs %d\n",ulsch->harq_processes[harq_pid]->mcs); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): mcs %d\n", ulsch->harq_processes[harq_pid]->mcs); //LOG_I(PHY,"Format 0 DCI :ulsch (ue): O %d\n",ulsch->O); //LOG_I(PHY,"Format 0 DCI :ulsch (ue): cqiReq %d\n",cqi_req); //if (frame_parms->frame_type == TDD) @@ -8069,17 +7613,16 @@ int generate_ue_ulsch_params_from_dci(void *dci_pdu, //else // LOG_I(PHY,"Format 0 DCI :ulsch (ue): O_ACK %d\n",ulsch->harq_processes[harq_pid]->O_ACK); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): Nsymb_pusch %d\n",ulsch->Nsymb_pusch); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): cshift %d\n",ulsch->harq_processes[harq_pid]->n_DMRS2); - LOG_D(PHY,"Format 0 DCI :ulsch (ue): phich status %d\n",ulsch->harq_processes[harq_pid]->status); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): Nsymb_pusch %d\n", ulsch->Nsymb_pusch); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): cshift %d\n", ulsch->harq_processes[harq_pid]->n_DMRS2); + LOG_D (PHY, "Format 0 DCI :ulsch (ue): phich status %d\n", ulsch->harq_processes[harq_pid]->status); #else - UNUSED_VARIABLE(dai); + UNUSED_VARIABLE (dai); #endif - return(0); + return (0); } else { - LOG_E(PHY,"frame %d, subframe %d: FATAL ERROR, generate_ue_ulsch_params_from_dci, Illegal dci_format %d\n", - proc->frame_rx, subframe,dci_format); - return(-1); + LOG_E (PHY, "frame %d, subframe %d: FATAL ERROR, generate_ue_ulsch_params_from_dci, Illegal dci_format %d\n", proc->frame_rx, subframe, dci_format); + return (-1); } } @@ -8718,32 +8261,34 @@ int generate_eNB_ulsch_params_from_dci(PHY_VARS_eNB *eNB, } */ -double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe) +double +sinr_eff_cqi_calc (PHY_VARS_UE * ue, uint8_t eNB_id, uint8_t subframe) { - uint8_t transmission_mode = ue->transmission_mode[eNB_id]; + uint8_t transmission_mode = ue->transmission_mode[eNB_id]; PHY_MEASUREMENTS *meas = &ue->measurements; - LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; - int32_t **dl_channel_est = ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id]; - double *s_dB; + LTE_DL_FRAME_PARMS *frame_parms = &ue->frame_parms; + int32_t **dl_channel_est = ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[subframe]].dl_ch_estimates[eNB_id]; + double *s_dB; s_dB = ue->sinr_CQI_dB; // LTE_UE_ULSCH_t *ulsch = ue->ulsch[eNB_id]; //for the calculation of SINR_eff for CQI calculation - int count,a_rx,a_tx; - double abs_channel=0; - double channelx=0; - double channely=0; - double channelx_i=0; - double channely_i=0; - uint16_t q = quantize_subband_pmi(meas,eNB_id,7); - uint8_t qq; + int count, a_rx, a_tx; + double abs_channel = 0; + double channelx = 0; + double channely = 0; + double channelx_i = 0; + double channely_i = 0; + uint16_t q = quantize_subband_pmi (meas, eNB_id, 7); + uint8_t qq; - switch(transmission_mode) { + switch (transmission_mode) { case 1: - for (count=0; countN_RB_DL*12; count++) { - for(a_tx=0; a_txnb_antenna_ports_eNB; a_tx++) { - for (a_rx=0; a_rxnb_antennas_rx; a_rx++) { - s_dB[count] = 10*log10(pow(((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2],2) + pow(((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2], - 2)) - meas->n0_power_avg_dB; + for (count = 0; count < frame_parms->N_RB_DL * 12; count++) { + for (a_tx = 0; a_tx < frame_parms->nb_antenna_ports_eNB; a_tx++) { + for (a_rx = 0; a_rx < frame_parms->nb_antennas_rx; a_rx++) { + s_dB[count] = + 10 * log10 (pow (((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2], 2) + + pow (((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2], 2)) - meas->n0_power_avg_dB; } } } @@ -8751,275 +8296,282 @@ double sinr_eff_cqi_calc(PHY_VARS_UE *ue, uint8_t eNB_id, uint8_t subframe) break; case 2: - for (count=0; countN_RB_DL*12; count++) { - abs_channel=0; + for (count = 0; count < frame_parms->N_RB_DL * 12; count++) { + abs_channel = 0; - for(a_tx=0; a_txnb_antenna_ports_eNB; a_tx++) { - for (a_rx=0; a_rxnb_antennas_rx; a_rx++) { - abs_channel += (pow(((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2],2) + pow(((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2],2)); + for (a_tx = 0; a_tx < frame_parms->nb_antenna_ports_eNB; a_tx++) { + for (a_rx = 0; a_rx < frame_parms->nb_antennas_rx; a_rx++) { + abs_channel += + (pow (((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2], 2) + + pow (((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2], 2)); } } - s_dB[count] = 10*log10(abs_channel/2) - meas->n0_power_avg_dB; + s_dB[count] = 10 * log10 (abs_channel / 2) - meas->n0_power_avg_dB; } break; case 5: - for (count=0; countN_RB_DL*12; count++) { - channelx=0; - channely=0; - channelx_i=0; - channely_i=0; - qq = (q>>(((count/12)>>2)<<1))&3; + for (count = 0; count < frame_parms->N_RB_DL * 12; count++) { + channelx = 0; + channely = 0; + channelx_i = 0; + channely_i = 0; + qq = (q >> (((count / 12) >> 2) << 1)) & 3; //printf("pmi_alloc %d: rb %d, pmi %d\n",q,count/12,qq); - for(a_tx=0; a_txnb_antenna_ports_eNB; a_tx++) { - for (a_rx=0; a_rxnb_antennas_rx; a_rx++) { - switch(qq) { + for (a_tx = 0; a_tx < frame_parms->nb_antenna_ports_eNB; a_tx++) { + for (a_rx = 0; a_rx < frame_parms->nb_antennas_rx; a_rx++) { + switch (qq) { case 0: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely_i -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + channelx += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } break; case 1: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely_i += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + channelx -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } break; case 2: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channely += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channely_i -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; + channelx -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channely += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; } break; case 3: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely_i = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channely -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channelx_i -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channely_i += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; + channelx += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channely -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channelx_i -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channely_i += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; } break; default: - printf("Problem in SINR Calculation for TM5 \n"); + printf ("Problem in SINR Calculation for TM5 \n"); break; - }//switch(qq) - }//a_rx - }//a_tx + } //switch(qq) + } //a_rx + } //a_tx - s_dB[count] = 10 * log10 ((pow(channelx,2) + pow(channely,2))/2) - 10 * log10 ((pow(channelx_i,2) + pow(channely_i,2))/2) - meas->n0_power_avg_dB; - }//count + s_dB[count] = 10 * log10 ((pow (channelx, 2) + pow (channely, 2)) / 2) - 10 * log10 ((pow (channelx_i, 2) + pow (channely_i, 2)) / 2) - meas->n0_power_avg_dB; + } //count break; case 6: - for (count=0; countN_RB_DL*12; count++) { - channelx=0; - channely=0; - qq = (q>>(((count/12)>>2)<<1))&3; + for (count = 0; count < frame_parms->N_RB_DL * 12; count++) { + channelx = 0; + channely = 0; + qq = (q >> (((count / 12) >> 2) << 1)) & 3; //printf("pmi_alloc %d: rb %d, pmi %d\n",q,count/12,qq); - for(a_tx=0; a_txnb_antenna_ports_eNB; a_tx++) { - for (a_rx=0; a_rxnb_antennas_rx; a_rx++) { - switch(qq) { + for (a_tx = 0; a_tx < frame_parms->nb_antenna_ports_eNB; a_tx++) { + for (a_rx = 0; a_rx < frame_parms->nb_antennas_rx; a_rx++) { + switch (qq) { case 0: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + channelx += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } break; case 1: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + channelx -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } break; case 2: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channely += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; + channelx -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channely += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; } break; case 3: - if (channelx==0 || channely==0) { - channelx = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; - channely = ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; + if (channelx == 0 || channely == 0) { + channelx = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; + channely = ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; } else { - channelx += ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+1+(LTE_CE_FILTER_LENGTH)*2]; - channely -= ((int16_t *) dl_channel_est[(a_tx<<1)+a_rx])[2*count+(LTE_CE_FILTER_LENGTH)*2]; + channelx += ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + 1 + (LTE_CE_FILTER_LENGTH) * 2]; + channely -= ((int16_t *) dl_channel_est[(a_tx << 1) + a_rx])[2 * count + (LTE_CE_FILTER_LENGTH) * 2]; } break; default: - printf("Problem in SINR Calculation for TM6 \n"); + printf ("Problem in SINR Calculation for TM6 \n"); break; - }//switch(qq) - }//a_rx - }//a_tx + } //switch(qq) + } //a_rx + } //a_tx - s_dB[count] = 10 * log10 ((pow(channelx,2) + pow(channely,2))/2) - meas->n0_power_avg_dB; - }//count + s_dB[count] = 10 * log10 ((pow (channelx, 2) + pow (channely, 2)) / 2) - meas->n0_power_avg_dB; + } //count break; default: - printf("Problem in SINR Calculation for CQI \n"); + printf ("Problem in SINR Calculation for CQI \n"); break; } - int ii; - double sinr_eff = 0; - double sinr_eff_qpsk=0; - double sinr_eff_qam16=0; - double sinr_eff_qam64=0; - double x = 0; - double I_qpsk=0; - double I_qam16=0; - double I_qam64=0; - double I_qpsk_avg=0; - double I_qam16_avg=0; - double I_qam64_avg=0; - double qpsk_max=12.2; - double qam16_max=19.2; - double qam64_max=25.2; - double sinr_min = -20; - int offset=0; + int ii; + double sinr_eff = 0; + double sinr_eff_qpsk = 0; + double sinr_eff_qam16 = 0; + double sinr_eff_qam64 = 0; + double x = 0; + double I_qpsk = 0; + double I_qam16 = 0; + double I_qam64 = 0; + double I_qpsk_avg = 0; + double I_qam16_avg = 0; + double I_qam64_avg = 0; + double qpsk_max = 12.2; + double qam16_max = 19.2; + double qam64_max = 25.2; + double sinr_min = -20; + int offset = 0; for (offset = 0; offset <= 24; offset++) { - for(ii=0; ii<12; ii++) { + for (ii = 0; ii < 12; ii++) { //x is the sinr_dB in dB - x = s_dB[(offset*12)+ii]; + x = s_dB[(offset * 12) + ii]; - if(xqpsk_max) + if (x > qpsk_max) I_qpsk += 1; else - I_qpsk += (q_qpsk[0]*pow(x,7) + q_qpsk[1]*pow(x,6) + q_qpsk[2]*pow(x,5) + q_qpsk[3]*pow(x,4) + q_qpsk[4]*pow(x,3) + q_qpsk[5]*pow(x,2) + q_qpsk[6]*x + q_qpsk[7]); + I_qpsk += (q_qpsk[0] * pow (x, 7) + q_qpsk[1] * pow (x, 6) + q_qpsk[2] * pow (x, 5) + q_qpsk[3] * pow (x, 4) + q_qpsk[4] * pow (x, 3) + q_qpsk[5] * pow (x, 2) + q_qpsk[6] * x + q_qpsk[7]); - if(x>qam16_max) + if (x > qam16_max) I_qam16 += 1; else - I_qam16 += (q_qam16[0]*pow(x,7) + q_qam16[1]*pow(x,6) + q_qam16[2]*pow(x,5) + q_qam16[3]*pow(x,4) + q_qam16[4]*pow(x,3) + q_qam16[5]*pow(x,2) + q_qam16[6]*x + q_qam16[7]); + I_qam16 += + (q_qam16[0] * pow (x, 7) + q_qam16[1] * pow (x, 6) + q_qam16[2] * pow (x, 5) + q_qam16[3] * pow (x, 4) + q_qam16[4] * pow (x, 3) + q_qam16[5] * pow (x, 2) + q_qam16[6] * x + q_qam16[7]); - if(x>qam64_max) + if (x > qam64_max) I_qam64 += 1; else - I_qam64 += (q_qam64[0]*pow(x,7) + q_qam64[1]*pow(x,6) + q_qam64[2]*pow(x,5) + q_qam64[3]*pow(x,4) + q_qam64[4]*pow(x,3) + q_qam64[5]*pow(x,2) + q_qam64[6]*x + q_qam64[7]); + I_qam64 += + (q_qam64[0] * pow (x, 7) + q_qam64[1] * pow (x, 6) + q_qam64[2] * pow (x, 5) + q_qam64[3] * pow (x, 4) + q_qam64[4] * pow (x, 3) + q_qam64[5] * pow (x, 2) + q_qam64[6] * x + q_qam64[7]); } } } // averaging of accumulated MI - I_qpsk_avg = I_qpsk/(12*frame_parms->N_RB_DL); - I_qam16_avg = I_qam16/(12*frame_parms->N_RB_DL); - I_qam64_avg = I_qam64/(12*frame_parms->N_RB_DL); + I_qpsk_avg = I_qpsk / (12 * frame_parms->N_RB_DL); + I_qam16_avg = I_qam16 / (12 * frame_parms->N_RB_DL); + I_qam64_avg = I_qam64 / (12 * frame_parms->N_RB_DL); // I->SINR_effective Mapping - sinr_eff_qpsk = (p_qpsk[0]*pow(I_qpsk_avg,7) + p_qpsk[1]*pow(I_qpsk_avg,6) + p_qpsk[2]*pow(I_qpsk_avg,5) + p_qpsk[3]*pow(I_qpsk_avg,4) + p_qpsk[4]*pow(I_qpsk_avg,3) + p_qpsk[5]*pow(I_qpsk_avg, - 2) + p_qpsk[6]*I_qpsk_avg + p_qpsk[7]); + sinr_eff_qpsk = + (p_qpsk[0] * pow (I_qpsk_avg, 7) + p_qpsk[1] * pow (I_qpsk_avg, 6) + p_qpsk[2] * pow (I_qpsk_avg, 5) + p_qpsk[3] * pow (I_qpsk_avg, 4) + p_qpsk[4] * pow (I_qpsk_avg, 3) + + p_qpsk[5] * pow (I_qpsk_avg, 2) + p_qpsk[6] * I_qpsk_avg + p_qpsk[7]); - sinr_eff_qam16 = (p_qam16[0]*pow(I_qam16_avg,7) + p_qam16[1]*pow(I_qam16_avg,6) + p_qam16[2]*pow(I_qam16_avg,5) + p_qam16[3]*pow(I_qam16_avg,4) + p_qam16[4]*pow(I_qam16_avg, - 3) + p_qam16[5]*pow(I_qam16_avg,2) + p_qam16[6]*I_qam16_avg + p_qam16[7]); + sinr_eff_qam16 = (p_qam16[0] * pow (I_qam16_avg, 7) + p_qam16[1] * pow (I_qam16_avg, 6) + p_qam16[2] * pow (I_qam16_avg, 5) + p_qam16[3] * pow (I_qam16_avg, 4) + p_qam16[4] * pow (I_qam16_avg, + 3) + + p_qam16[5] * pow (I_qam16_avg, 2) + p_qam16[6] * I_qam16_avg + p_qam16[7]); - sinr_eff_qam64 = (p_qam64[0]*pow(I_qam64_avg,7) + p_qam64[1]*pow(I_qam64_avg,6) + p_qam64[2]*pow(I_qam64_avg,5) + p_qam64[3]*pow(I_qam64_avg,4) + p_qam64[4]*pow(I_qam64_avg, - 3) + p_qam64[5]*pow(I_qam64_avg,2) + p_qam64[6]*I_qam64_avg + p_qam64[7]); - sinr_eff = cmax3(sinr_eff_qpsk,sinr_eff_qam16,sinr_eff_qam64); + sinr_eff_qam64 = (p_qam64[0] * pow (I_qam64_avg, 7) + p_qam64[1] * pow (I_qam64_avg, 6) + p_qam64[2] * pow (I_qam64_avg, 5) + p_qam64[3] * pow (I_qam64_avg, 4) + p_qam64[4] * pow (I_qam64_avg, + 3) + + p_qam64[5] * pow (I_qam64_avg, 2) + p_qam64[6] * I_qam64_avg + p_qam64[7]); + sinr_eff = cmax3 (sinr_eff_qpsk, sinr_eff_qam16, sinr_eff_qam64); //printf("SINR_Eff = %e\n",sinr_eff); - return(sinr_eff); + return (sinr_eff); } + // #ifdef DEBUG_DLSCH_TOOLS -main() +main () { - int i; - uint8_t rah; - uint32_t rballoc; + int i; + uint8_t rah; + uint32_t rballoc; - generate_RIV_tables(); + generate_RIV_tables (); rah = 0; rballoc = 0x1fff; - printf("rballoc 0 %x => %x\n",rballoc,conv_rballoc(rah,rballoc)); + printf ("rballoc 0 %x => %x\n", rballoc, conv_rballoc (rah, rballoc)); rah = 1; rballoc = 0x1678; - printf("rballoc 1 %x => %x\n",rballoc,conv_rballoc(rah,rballoc)); + printf ("rballoc 1 %x => %x\n", rballoc, conv_rballoc (rah, rballoc)); rballoc = 0xfffc; - printf("rballoc 1 %x => %x\n",rballoc,conv_rballoc(rah,rballoc)); + printf ("rballoc 1 %x => %x\n", rballoc, conv_rballoc (rah, rballoc)); rballoc = 0xfffd; - printf("rballoc 1 %x => %x\n",rballoc,conv_rballoc(rah,rballoc)); + printf ("rballoc 1 %x => %x\n", rballoc, conv_rballoc (rah, rballoc)); rballoc = 0xffff; - printf("rballoc 1 %x => %x\n",rballoc,conv_rballoc(rah,rballoc)); + printf ("rballoc 1 %x => %x\n", rballoc, conv_rballoc (rah, rballoc)); rballoc = 0xfffe; - printf("rballoc 1 %x => %x\n",rballoc,conv_rballoc(rah,rballoc)); + printf ("rballoc 1 %x => %x\n", rballoc, conv_rballoc (rah, rballoc)); } #endif - diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 49a60ae9e8..2bacdb1a33 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -37,10 +37,10 @@ #include "PHY/defs.h" #include "PHY/extern.h" #include "SCHED/defs.h" -#include "SIMULATION/TOOLS/defs.h" // for taus +#include "SIMULATION/TOOLS/defs.h" // for taus #include "PHY/sse_intrin.h" -#include "assertions.h" +#include "assertions.h" #include "T.h" #include "UTIL/LOG/log.h" @@ -49,50 +49,51 @@ //#define DEBUG_PHY #ifdef Rel14 -void generate_edci_top(PHY_VARS_eNB *eNB, int frame, int subframe) { +void +generate_edci_top (PHY_VARS_eNB * eNB, int frame, int subframe) +{ } -void mpdcch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, - mDCI_ALLOC_t *mdci, - uint16_t i, - uint8_t *e, - uint32_t length) +void +mpdcch_scrambling (LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, uint16_t i, uint8_t * e, uint32_t length) { - int n; - uint8_t reset; - uint32_t x1, x2, s=0; - uint8_t Nacc=4; - uint16_t j0,j,idelta; - uint16_t i0 = mdci->i0; + int n; + uint8_t reset; + uint32_t x1, x2, s = 0; + uint8_t Nacc = 4; + uint16_t j0, j, idelta; + uint16_t i0 = mdci->i0; // Note: we could actually not do anything if i-i0 < Nacc, save it for later reset = 1; // x1 is set in lte_gold_generic - if ((mdci->rnti == 0xFFFE) || - (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI - Nacc=frame_parms->frame_type == FDD ? 4 : 10; - else Nacc=1; - - if (frame_parms->frame_type == FDD || Nacc == 1) idelta = 0; - else idelta = Nacc-2; - - j0 = (i0+idelta)/Nacc; - j = (i - i0)/Nacc; + if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI + Nacc = frame_parms->frame_type == FDD ? 4 : 10; + else + Nacc = 1; + + if (frame_parms->frame_type == FDD || Nacc == 1) + idelta = 0; + else + idelta = Nacc - 2; + + j0 = (i0 + idelta) / Nacc; + j = (i - i0) / Nacc; + - // rule for BL/CE UEs from Section 6.8.B2 in 36.211 - x2= ((((j0+j)*Nacc)%10)<<9) + mdci->dmrs_scrambling_init; - - for (n=0; ndmrs_scrambling_init; + + for (n = 0; n < length; n++) { + if ((i & 0x1f) == 0) { + s = lte_gold_generic (&x1, &x2, reset); //printf("lte_gold[%d]=%x\n",i,s); reset = 0; } - e[i] = (e[i]&1) ^ ((s>>(i&0x1f))&1); + e[i] = (e[i] & 1) ^ ((s >> (i & 0x1f)) & 1); } } @@ -101,81 +102,70 @@ void mpdcch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, // For format 5 there are 6 PRB pairs => 864 REs for 24 total ECCE static uint16_t mpdcch5tab[864]; -void init_mpdcch5tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re; +void +init_mpdcch5tab_normal_regular_subframe_evenNRBDL (PHY_VARS_eNB * eNB,int l_MPDCCH_start) +{ + int l, k, kmod, re; - LOG_I(PHY,"Inititalizing mpdcch5tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=0,re=0;l<14;l++) { - for (k=0;k<72;k++){ - kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) - mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + LOG_I (PHY, "Inititalizing mpdcch5tab for normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = l_MPDCCH_start, re = 0; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) + mpdcch5tab[re++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; } } - AssertFatal(re==864,"RE count not equal to 864\n"); + AssertFatal (re == 720, "RE count %d not equal to 864, l_MPDCCH_start %d\n",re,l_MPDCCH_start); } -extern uint8_t *generate_dci0(uint8_t *dci, - uint8_t *e, - uint8_t DCI_LENGTH, - uint8_t aggregation_level, - uint16_t rnti); +extern uint8_t *generate_dci0 (uint8_t * dci, uint8_t * e, uint8_t DCI_LENGTH, uint8_t aggregation_level, uint16_t rnti); -void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe,int16_t amp,int32_t **txdataF) { +void +generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF) +{ - LTE_eNB_MPDCCH *mpdcch= &eNB->mpdcch_vars[subframe&2]; - mDCI_ALLOC_t *mdci; - int coded_bits; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; - int i; - int gain_lin_QPSK; + LTE_eNB_MPDCCH *mpdcch = &eNB->mpdcch_vars[subframe & 2]; + mDCI_ALLOC_t *mdci; + int coded_bits; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + int i; + int gain_lin_QPSK; - for (i=0;inum_dci;i++) { + for (i = 0; i < mpdcch->num_dci; i++) { mdci = &mpdcch->mdci_alloc[i]; - AssertFatal(fp->frame_type==FDD,"TDD is not yet supported for MPDCCH\n"); - AssertFatal(fp->Ncp == NORMAL,"Extended Prefix not yet supported for MPDCCH\n"); - AssertFatal(mdci->L<=24,"L is %d\n",mdci->L); - AssertFatal(fp->N_RB_DL==50 || fp->N_RB_DL==100,"Only N_RB_DL=50,100 for MPDCCH\n"); + AssertFatal (fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n"); + AssertFatal (fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n"); + AssertFatal (mdci->L <= 24, "L is %d\n", mdci->L); + AssertFatal (fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "Only N_RB_DL=50,100 for MPDCCH\n"); // Force MPDDCH format 5 - AssertFatal(mdci->number_of_prb_pairs==6,"2 or 4 PRB pairs not support yet for MPDCCH\n"); - AssertFatal(mdci->reps>0,"mdci->reps==0\n"); + AssertFatal (mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); + AssertFatal (mdci->reps > 0, "mdci->reps==0\n"); // 9 REs/EREG * 4 EREG/ECCE => 36 REs/ECCE => 72 bits/ECCE, so same as regular PDCCH channel encoding // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing - generate_dci0(mdci->dci_pdu, - mpdcch->e+(72*mdci->firstCCE), - mdci->dci_length, - mdci->L, - mdci->rnti); + generate_dci0 (mdci->dci_pdu, mpdcch->e + (72 * mdci->firstCCE), mdci->dci_length, mdci->L, mdci->rnti); + - coded_bits = 72 * mdci->L; // scrambling - uint16_t absSF = (frame*10)+subframe; + uint16_t absSF = (frame * 10) + subframe; - AssertFatal(absSF < 1024, - "Absolute subframe %d = %d*10 + %d > 1023\n", - absSF,frame,subframe); + AssertFatal (absSF < 1024, "Absolute subframe %d = %d*10 + %d > 1023\n", absSF, frame, subframe); - mpdcch_scrambling(fp, - mdci, - absSF, - mpdcch->e+(72*mdci->firstCCE), - coded_bits); + mpdcch_scrambling (fp, mdci, absSF, mpdcch->e + (72 * mdci->firstCCE), coded_bits); // Modulation for PDCCH - if (fp->nb_antenna_ports_eNB==1) - gain_lin_QPSK = (int16_t)((amp*ONE_OVER_SQRT2_Q15)>>15); + if (fp->nb_antenna_ports_eNB == 1) + gain_lin_QPSK = (int16_t) ((amp * ONE_OVER_SQRT2_Q15) >> 15); else - gain_lin_QPSK = amp/2; + gain_lin_QPSK = amp / 2; - uint8_t *e_ptr = mpdcch->e; + uint8_t *e_ptr = mpdcch->e; // if (mdci->transmission_type==0) nprime=mdci->rnti&3; // for Localized 2+4 we use 6.8B.5 rule // map directly to one antenna port for now @@ -185,19 +175,22 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe,int16_t amp,in // mpdcchtab5 below contains the mapping from each coded symbol to relative RE avoiding the DMRS - int re_offset = fp->first_carrier_offset + 1 + ((fp->N_RB_DL==100)?1:0) + mdci->narrowband*12*6; - if (re_offset>fp->ofdm_symbol_size) re_offset-=(fp->ofdm_symbol_size-1); - int32_t *txF = &txdataF[0][re_offset]; - int32_t yIQ; + int re_offset = fp->first_carrier_offset + 1 + ((fp->N_RB_DL == 100) ? 1 : 0) + mdci->narrowband * 12 * 6; + if (re_offset > fp->ofdm_symbol_size) + re_offset -= (fp->ofdm_symbol_size - 1); + int32_t *txF = &txdataF[0][re_offset]; + int32_t yIQ; - for (i=0; i<(coded_bits>>1); i++) { + for (i = 0; i < (coded_bits >> 1); i++) { // QPSK modulation to yIQ - ((int16_t*)&yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; e_ptr++; - ((int16_t*)&yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; e_ptr++; - txF[mpdcch5tab[i+(36*mdci->firstCCE)]] = yIQ; + ((int16_t *) & yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + e_ptr++; + ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + e_ptr++; + txF[mpdcch5tab[i + (36 * mdci->firstCCE)]] = yIQ; } } -} +} #endif diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index 8a0e160f23..6a27811036 100755 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -1677,6 +1677,10 @@ void init_ul_hopping(LTE_DL_FRAME_PARMS *frame_parms); @param nB nB from 36.304 (0=4T,1=2T,2=T,3=T/2,4=T/4,5=T/8,6=T/16,7=T/32*/ int init_ue_paging_info(PHY_VARS_UE *ue, long defaultPagingCycle, long nB); +#ifdef Rel14 +void init_mpdcch5tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB,int l_MPDCCH_start); +#endif + int32_t compareints (const void * a, const void * b); diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 637bb129ea..3be6f4b987 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -59,7 +59,7 @@ void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB, LTE_eNB_MPDCCH *mpdcch_vars = &eNB->mpdcch_vars[idx]; nfapi_dl_config_mpdcch_pdu *pdu = &dl_config_pdu->mpdcch_pdu; - LOG_D(PHY,"Frame %d, Subframe %d: MDCI processing\n",proc->frame_tx,proc->subframe_tx); + LOG_I(PHY,"Frame %d, Subframe %d: MDCI processing\n",proc->frame_tx,proc->subframe_tx); // copy dci configuration into eNB structure fill_mdci_and_dlsch(eNB,proc,&mpdcch_vars->mdci_alloc[mpdcch_vars->num_dci],pdu); @@ -147,7 +147,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0_harq = dlsch0->harq_processes[0]; dlsch0_harq->pdu = sdu; - if (proc->frame_tx < 200) LOG_I(PHY,"NFAPI: frame %d, subframe %d: Programming SI-BR (%d) => %d\n",proc->frame_tx,proc->subframe_tx,rel13->pdsch_payload_type,UE_id); + if (proc->frame_tx < 200) LOG_D(PHY,"NFAPI: frame %d, subframe %d: Programming SI-BR (%d) => %d\n",proc->frame_tx,proc->subframe_tx,rel13->pdsch_payload_type,UE_id); dlsch0->rnti = 0xFFFF; dlsch0->Kmimo = 1; @@ -156,6 +156,8 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0->i0 = rel13->initial_transmission_sf_io; dlsch0_harq->pdsch_start = rel10->pdsch_start; dlsch0->harq_ids[proc->subframe_tx] = 0; + dlsch0_harq->frame = proc->frame_tx; + dlsch0_harq->subframe = proc->subframe_tx; if (rel13->pdsch_payload_type == 0) dlsch0->sib1_br_flag=1; diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 118f0f8eed..14618d7828 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -47,278 +47,208 @@ #include #if defined(ENABLE_ITTI) -# include "intertask_interface.h" +#include "intertask_interface.h" #endif -void pmch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,PHY_VARS_RN *rn,relaying_type_t r_type) { +void +pmch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, PHY_VARS_RN * rn, relaying_type_t r_type) +{ #if defined(Rel10) || defined(Rel14) - MCH_PDU *mch_pduP=NULL; - MCH_PDU mch_pdu; + MCH_PDU *mch_pduP = NULL; + MCH_PDU mch_pdu; // uint8_t sync_area=255; #endif - int subframe = proc->subframe_tx; + int subframe = proc->subframe_tx; - AssertFatal(1==0,"pmch not tested for the moment, exiting\n"); + AssertFatal (1 == 0, "pmch not tested for the moment, exiting\n"); // This is DL-Cell spec pilots in Control region - generate_pilots_slot(eNB, - eNB->common_vars.txdataF, - AMP, - subframe<<1,1); + generate_pilots_slot (eNB, eNB->common_vars.txdataF, AMP, subframe << 1, 1); + - #if defined(Rel10) || defined(Rel14) // if mcch is active, send regardless of the node type: eNB or RN // when mcch is active, MAC sched does not allow MCCH and MTCH multiplexing /* - mch_pduP = mac_xface->get_mch_sdu(eNB->Mod_id, - eNB->CC_id, - proc->frame_tx, - subframe); - */ + mch_pduP = mac_xface->get_mch_sdu(eNB->Mod_id, + eNB->CC_id, + proc->frame_tx, + subframe); + */ switch (r_type) { case no_relay: if ((mch_pduP->Pdu_size > 0) && (mch_pduP->sync_area == 0)) // TEST: only transmit mcch for sync area 0 - LOG_D(PHY,"[eNB%"PRIu8"] Frame %d subframe %d : Got MCH pdu for MBSFN (MCS %"PRIu8", TBS %d) \n", - eNB->Mod_id,proc->frame_tx,subframe,mch_pduP->mcs, - eNB->dlsch_MCH->harq_processes[0]->TBS>>3); + LOG_D (PHY, "[eNB%" PRIu8 "] Frame %d subframe %d : Got MCH pdu for MBSFN (MCS %" PRIu8 ", TBS %d) \n", + eNB->Mod_id, proc->frame_tx, subframe, mch_pduP->mcs, eNB->dlsch_MCH->harq_processes[0]->TBS >> 3); else { - LOG_D(PHY,"[DeNB %"PRIu8"] Frame %d subframe %d : Do not transmit MCH pdu for MBSFN sync area %"PRIu8" (%s)\n", - eNB->Mod_id,proc->frame_tx,subframe,mch_pduP->sync_area, - (mch_pduP->Pdu_size == 0)? "Empty MCH PDU":"Let RN transmit for the moment"); + LOG_D (PHY, "[DeNB %" PRIu8 "] Frame %d subframe %d : Do not transmit MCH pdu for MBSFN sync area %" PRIu8 " (%s)\n", + eNB->Mod_id, proc->frame_tx, subframe, mch_pduP->sync_area, (mch_pduP->Pdu_size == 0) ? "Empty MCH PDU" : "Let RN transmit for the moment"); mch_pduP = NULL; } - + break; - + case multicast_relay: - if ((mch_pduP->Pdu_size > 0) && ((mch_pduP->mcch_active == 1) || mch_pduP->msi_active==1)) { - LOG_D(PHY,"[RN %"PRIu8"] Frame %d subframe %d: Got the MCH PDU for MBSFN sync area %"PRIu8" (MCS %"PRIu8", TBS %"PRIu16")\n", - rn->Mod_id,rn->frame, subframe, - mch_pduP->sync_area,mch_pduP->mcs,mch_pduP->Pdu_size); - } else if (rn->mch_avtive[subframe%5] == 1) { // SF2 -> SF7, SF3 -> SF8 - mch_pduP= &mch_pdu; - memcpy(&mch_pduP->payload, // could be a simple copy - rn->dlsch_rn_MCH[subframe%5]->harq_processes[0]->b, - rn->dlsch_rn_MCH[subframe%5]->harq_processes[0]->TBS>>3); - mch_pduP->Pdu_size = (uint16_t) (rn->dlsch_rn_MCH[subframe%5]->harq_processes[0]->TBS>>3); - mch_pduP->mcs = rn->dlsch_rn_MCH[subframe%5]->harq_processes[0]->mcs; - LOG_D(PHY,"[RN %"PRIu8"] Frame %d subframe %d: Forward the MCH PDU for MBSFN received on SF %d sync area %"PRIu8" (MCS %"PRIu8", TBS %"PRIu16")\n", - rn->Mod_id,rn->frame, subframe,subframe%5, - rn->sync_area[subframe%5],mch_pduP->mcs,mch_pduP->Pdu_size); + if ((mch_pduP->Pdu_size > 0) && ((mch_pduP->mcch_active == 1) || mch_pduP->msi_active == 1)) { + LOG_D (PHY, "[RN %" PRIu8 "] Frame %d subframe %d: Got the MCH PDU for MBSFN sync area %" PRIu8 " (MCS %" PRIu8 ", TBS %" PRIu16 ")\n", + rn->Mod_id, rn->frame, subframe, mch_pduP->sync_area, mch_pduP->mcs, mch_pduP->Pdu_size); + } else if (rn->mch_avtive[subframe % 5] == 1) { // SF2 -> SF7, SF3 -> SF8 + mch_pduP = &mch_pdu; + memcpy (&mch_pduP->payload, // could be a simple copy + rn->dlsch_rn_MCH[subframe % 5]->harq_processes[0]->b, rn->dlsch_rn_MCH[subframe % 5]->harq_processes[0]->TBS >> 3); + mch_pduP->Pdu_size = (uint16_t) (rn->dlsch_rn_MCH[subframe % 5]->harq_processes[0]->TBS >> 3); + mch_pduP->mcs = rn->dlsch_rn_MCH[subframe % 5]->harq_processes[0]->mcs; + LOG_D (PHY, "[RN %" PRIu8 "] Frame %d subframe %d: Forward the MCH PDU for MBSFN received on SF %d sync area %" PRIu8 " (MCS %" PRIu8 ", TBS %" PRIu16 ")\n", + rn->Mod_id, rn->frame, subframe, subframe % 5, rn->sync_area[subframe % 5], mch_pduP->mcs, mch_pduP->Pdu_size); } else { - mch_pduP=NULL; + mch_pduP = NULL; } - - rn->mch_avtive[subframe]=0; + + rn->mch_avtive[subframe] = 0; break; - + default: - LOG_W(PHY,"[eNB %"PRIu8"] Frame %d subframe %d: unknown relaying type %d \n", - eNB->Mod_id,proc->frame_tx,subframe,r_type); - mch_pduP=NULL; + LOG_W (PHY, "[eNB %" PRIu8 "] Frame %d subframe %d: unknown relaying type %d \n", eNB->Mod_id, proc->frame_tx, subframe, r_type); + mch_pduP = NULL; break; - }// switch - + } // switch + if (mch_pduP) { - fill_eNB_dlsch_MCH(eNB,mch_pduP->mcs,1,0); + fill_eNB_dlsch_MCH (eNB, mch_pduP->mcs, 1, 0); // Generate PMCH - generate_mch(eNB,proc,(uint8_t*)mch_pduP->payload); + generate_mch (eNB, proc, (uint8_t *) mch_pduP->payload); } else { - LOG_D(PHY,"[eNB/RN] Frame %d subframe %d: MCH not generated \n",proc->frame_tx,subframe); + LOG_D (PHY, "[eNB/RN] Frame %d subframe %d: MCH not generated \n", proc->frame_tx, subframe); } - + #endif } -void common_signal_procedures (PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { +void +common_signal_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) +{ - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; - int **txdataF = eNB->common_vars.txdataF; - uint8_t *pbch_pdu=&eNB->pbch_pdu[0]; - int subframe = proc->subframe_tx; - int frame = proc->frame_tx; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + int **txdataF = eNB->common_vars.txdataF; + uint8_t *pbch_pdu = &eNB->pbch_pdu[0]; + int subframe = proc->subframe_tx; + int frame = proc->frame_tx; - LOG_D(PHY,"common_signal_procedures: frame %d, subframe %d\n",frame,subframe); + LOG_D (PHY, "common_signal_procedures: frame %d, subframe %d\n", frame, subframe); // generate Cell-Specific Reference Signals for both slots - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX,1); - generate_pilots_slot(eNB, - txdataF, - AMP, - subframe<<1,0); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX, 1); + generate_pilots_slot (eNB, txdataF, AMP, subframe << 1, 0); // check that 2nd slot is for DL - if (subframe_select(fp,subframe) == SF_DL) - generate_pilots_slot(eNB, - txdataF, - AMP, - (subframe<<1)+1,0); - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX,0); - + if (subframe_select (fp, subframe) == SF_DL) + generate_pilots_slot (eNB, txdataF, AMP, (subframe << 1) + 1, 0); + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_RS_TX, 0); + // First half of PSS/SSS (FDD, slot 0) if (subframe == 0) { if (fp->frame_type == FDD) { - generate_pss(txdataF, - AMP, - fp, - (fp->Ncp==NORMAL) ? 6 : 5, - 0); - generate_sss(txdataF, - AMP, - fp, - (fp->Ncp==NORMAL) ? 5 : 4, - 0); - + generate_pss (txdataF, AMP, fp, (fp->Ncp == NORMAL) ? 6 : 5, 0); + generate_sss (txdataF, AMP, fp, (fp->Ncp == NORMAL) ? 5 : 4, 0); + } - - + /// First half of SSS (TDD, slot 1) - - if (fp->frame_type == TDD) { - generate_sss(txdataF, - AMP, - fp, - (fp->Ncp==NORMAL) ? 6 : 5, - 1); - } + if (fp->frame_type == TDD) { + generate_sss (txdataF, AMP, fp, (fp->Ncp == NORMAL) ? 6 : 5, 1); + } // generate PBCH (Physical Broadcast CHannel) info /// generate PBCH - if ((frame&3)==0) { - AssertFatal(eNB->pbch_configured==1,"PBCH was not configured by MAC\n"); - eNB->pbch_configured=0; + if ((frame & 3) == 0) { + AssertFatal (eNB->pbch_configured == 1, "PBCH was not configured by MAC\n"); + eNB->pbch_configured = 0; } - generate_pbch(&eNB->pbch, - txdataF, - AMP, - fp, - pbch_pdu, - frame&3); - + generate_pbch (&eNB->pbch, txdataF, AMP, fp, pbch_pdu, frame & 3); + + } else if ((subframe == 1) && (fp->frame_type == TDD)) { + generate_pss (txdataF, AMP, fp, 2, 2); } - else if ((subframe == 1) && - (fp->frame_type == TDD)){ - generate_pss(txdataF, - AMP, - fp, - 2, - 2); - } - // Second half of PSS/SSS (FDD, slot 10) - else if ((subframe == 5) && - (fp->frame_type == FDD)) { - generate_pss(txdataF, - AMP, - &eNB->frame_parms, - (fp->Ncp==NORMAL) ? 6 : 5, - 10); - generate_sss(txdataF, - AMP, - &eNB->frame_parms, - (fp->Ncp==NORMAL) ? 5 : 4, - 10); + else if ((subframe == 5) && (fp->frame_type == FDD)) { + generate_pss (txdataF, AMP, &eNB->frame_parms, (fp->Ncp == NORMAL) ? 6 : 5, 10); + generate_sss (txdataF, AMP, &eNB->frame_parms, (fp->Ncp == NORMAL) ? 5 : 4, 10); } - // Second-half of SSS (TDD, slot 11) - else if ((subframe == 5) && - (fp->frame_type == TDD)) { - generate_sss(txdataF, - AMP, - fp, - (fp->Ncp==NORMAL) ? 6 : 5, - 11); + else if ((subframe == 5) && (fp->frame_type == TDD)) { + generate_sss (txdataF, AMP, fp, (fp->Ncp == NORMAL) ? 6 : 5, 11); } - // Second half of PSS (TDD, slot 12) - else if ((subframe == 6) && - (fp->frame_type == TDD)) { - generate_pss(txdataF, - AMP, - fp, - 2, - 12); + else if ((subframe == 6) && (fp->frame_type == TDD)) { + generate_pss (txdataF, AMP, fp, 2, 12); } } -void pdsch_procedures(PHY_VARS_eNB *eNB, - eNB_rxtx_proc_t *proc, - int harq_pid, - LTE_eNB_DLSCH_t *dlsch, - LTE_eNB_DLSCH_t *dlsch1, - LTE_eNB_UE_stats *ue_stats, - int ra_flag) { +void +pdsch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, int harq_pid, LTE_eNB_DLSCH_t * dlsch, LTE_eNB_DLSCH_t * dlsch1, LTE_eNB_UE_stats * ue_stats, int ra_flag) +{ - int frame=proc->frame_tx; - int subframe=proc->subframe_tx; - LTE_DL_eNB_HARQ_t *dlsch_harq=dlsch->harq_processes[harq_pid]; - int input_buffer_length = dlsch_harq->TBS/8; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; + int frame = proc->frame_tx; + int subframe = proc->subframe_tx; + LTE_DL_eNB_HARQ_t *dlsch_harq = dlsch->harq_processes[harq_pid]; + int input_buffer_length = dlsch_harq->TBS / 8; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - if (frame < 200) { + if (dlsch->rnti != 0xFFFF) { - LOG_I(PHY, - "[eNB %"PRIu8"][PDSCH %"PRIx16"/%"PRIu8"] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %"PRIu16", pdsch_start %d, G %d, nb_rb %"PRIu16", rb0 %x, rb1 %x, TBS %"PRIu16", pmi_alloc %"PRIx64", rv %"PRIu8" (round %"PRIu8")\n", - eNB->Mod_id, dlsch->rnti,harq_pid, - frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, - get_G(fp, - dlsch_harq->nb_rb, - dlsch_harq->rb_alloc, - dlsch_harq->Qm, - dlsch_harq->Nl, - dlsch_harq->pdsch_start, - frame, - subframe, - dlsch_harq->mimo_mode==TM7?7:0), - dlsch_harq->nb_rb, - dlsch_harq->rb_alloc[0], - dlsch_harq->rb_alloc[1], - dlsch_harq->TBS, - pmi2hex_2Ar1(dlsch_harq->pmi_alloc), - dlsch_harq->rvidx, - dlsch_harq->round); - } + LOG_I (PHY, + "[eNB %" PRIu8 "][PDSCH %" PRIx16 "/%" PRIu8 "] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %" PRIu16 ", pdsch_start %d, G %d, nb_rb %" PRIu16 ", rb0 %x, rb1 %x, TBS %" + PRIu16 ", pmi_alloc %" PRIx64 ", rv %" PRIu8 " (round %" PRIu8 ")\n", eNB->Mod_id, dlsch->rnti, harq_pid, frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, get_G (fp, + dlsch_harq-> + nb_rb, + dlsch_harq-> + rb_alloc, + dlsch_harq-> + Qm, + dlsch_harq-> + Nl, + dlsch_harq-> + pdsch_start, + frame, + subframe, + dlsch_harq-> + mimo_mode == + TM7 ? 7 : 0), + dlsch_harq->nb_rb, dlsch_harq->rb_alloc[0], dlsch_harq->rb_alloc[1], dlsch_harq->TBS, pmi2hex_2Ar1 (dlsch_harq->pmi_alloc), dlsch_harq->rvidx, dlsch_harq->round); + } #if defined(MESSAGE_CHART_GENERATOR_PHY) - MSC_LOG_TX_MESSAGE( - MSC_PHY_ENB,MSC_PHY_UE, - NULL,0, - "%05u:%02u PDSCH/DLSCH input size = %"PRIu16", G %d, nb_rb %"PRIu16", TBS %"PRIu16", pmi_alloc %"PRIx16", rv %"PRIu8" (round %"PRIu8")", - frame, subframe, - input_buffer_length, - get_G(fp, - dlsch_harq->nb_rb, - dlsch_harq->rb_alloc, - dlsch_harq->Qm, - dlsch_harq->Nl, - dlsch_harq->pdsch_start, - frame, - subframe, - dlsch_harq->mimo_mode==TM7?7:0), - dlsch_harq->nb_rb, - dlsch_harq->TBS, - pmi2hex_2Ar1(dlsch_harq->pmi_alloc), - dlsch_harq->rvidx, - dlsch_harq->round); + MSC_LOG_TX_MESSAGE (MSC_PHY_ENB, MSC_PHY_UE, + NULL, 0, + "%05u:%02u PDSCH/DLSCH input size = %" PRIu16 ", G %d, nb_rb %" PRIu16 ", TBS %" PRIu16 ", pmi_alloc %" PRIx16 ", rv %" PRIu8 " (round %" PRIu8 ")", + frame, subframe, + input_buffer_length, + get_G (fp, + dlsch_harq->nb_rb, + dlsch_harq->rb_alloc, + dlsch_harq->Qm, + dlsch_harq->Nl, + dlsch_harq->pdsch_start, + frame, subframe, dlsch_harq->mimo_mode == TM7 ? 7 : 0), dlsch_harq->nb_rb, dlsch_harq->TBS, pmi2hex_2Ar1 (dlsch_harq->pmi_alloc), dlsch_harq->rvidx, dlsch_harq->round); #endif - - - if (ue_stats) ue_stats->dlsch_sliding_cnt++; - + + + if (ue_stats) + ue_stats->dlsch_sliding_cnt++; + if (dlsch_harq->round == 0) { if (ue_stats) ue_stats->dlsch_trials[harq_pid][0]++; @@ -326,1080 +256,868 @@ void pdsch_procedures(PHY_VARS_eNB *eNB, ue_stats->dlsch_trials[harq_pid][dlsch_harq->round]++; #ifdef DEBUG_PHY_PROC #ifdef DEBUG_DLSCH - LOG_D(PHY,"[eNB] This DLSCH is a retransmission\n"); + LOG_D (PHY, "[eNB] This DLSCH is a retransmission\n"); #endif #endif } - LOG_D(PHY,"Generating DLSCH/PDSCH %d\n",ra_flag); + LOG_D (PHY, "Generating DLSCH/PDSCH %d\n", ra_flag); // 36-212 - start_meas(&eNB->dlsch_encoding_stats); - AssertFatal(dlsch_harq->pdu!=NULL,"dlsch_harq->pdu == NULL (rnti %x)\n",dlsch->rnti); - eNB->te(eNB, - dlsch_harq->pdu, - dlsch_harq->pdsch_start, - dlsch, - frame,subframe, - &eNB->dlsch_rate_matching_stats, - &eNB->dlsch_turbo_encoding_stats, - &eNB->dlsch_interleaving_stats); - stop_meas(&eNB->dlsch_encoding_stats); + start_meas (&eNB->dlsch_encoding_stats); + AssertFatal (dlsch_harq->pdu != NULL, "dlsch_harq->pdu == NULL (rnti %x)\n", dlsch->rnti); + eNB->te (eNB, dlsch_harq->pdu, dlsch_harq->pdsch_start, dlsch, frame, subframe, &eNB->dlsch_rate_matching_stats, &eNB->dlsch_turbo_encoding_stats, &eNB->dlsch_interleaving_stats); + stop_meas (&eNB->dlsch_encoding_stats); // 36-211 - start_meas(&eNB->dlsch_scrambling_stats); - dlsch_scrambling(fp, - 0, - dlsch, - harq_pid, - get_G(fp, - dlsch_harq->nb_rb, - dlsch_harq->rb_alloc, - dlsch_harq->Qm, - dlsch_harq->Nl, - dlsch_harq->pdsch_start, - frame,subframe, - 0), - 0, - frame, - subframe<<1); - stop_meas(&eNB->dlsch_scrambling_stats); - - start_meas(&eNB->dlsch_modulation_stats); - - - dlsch_modulation(eNB, - eNB->common_vars.txdataF, - AMP, - subframe, - dlsch_harq->pdsch_start, - dlsch, - dlsch1); - - stop_meas(&eNB->dlsch_modulation_stats); + start_meas (&eNB->dlsch_scrambling_stats); + dlsch_scrambling (fp, 0, dlsch, harq_pid, get_G (fp, dlsch_harq->nb_rb, dlsch_harq->rb_alloc, dlsch_harq->Qm, dlsch_harq->Nl, dlsch_harq->pdsch_start, frame, subframe, 0), 0, frame, subframe << 1); + stop_meas (&eNB->dlsch_scrambling_stats); + + start_meas (&eNB->dlsch_modulation_stats); + + + dlsch_modulation (eNB, eNB->common_vars.txdataF, AMP, subframe, dlsch_harq->pdsch_start, dlsch, dlsch1); + + stop_meas (&eNB->dlsch_modulation_stats); dlsch->active = 0; dlsch_harq->round++; - if (dlsch->rnti == 0xFFFF) dlsch->harq_mask=0; + if (dlsch->rnti == 0xFFFF) + dlsch->harq_mask = 0; } -void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, - eNB_rxtx_proc_t *proc, - relaying_type_t r_type, - PHY_VARS_RN *rn, - int do_meas) +void +phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type_t r_type, PHY_VARS_RN * rn, int do_meas) { - UNUSED(rn); - int frame=proc->frame_tx; - int subframe=proc->subframe_tx; - uint32_t i,aa; - uint8_t harq_pid; - int8_t UE_id=0; - uint8_t num_pdcch_symbols=0; - uint8_t num_dci=0; - uint8_t ul_subframe; - uint32_t ul_frame; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; + UNUSED (rn); + int frame = proc->frame_tx; + int subframe = proc->subframe_tx; + uint32_t i, aa; + uint8_t harq_pid; + int8_t UE_id = 0; + uint8_t num_pdcch_symbols = 0; + uint8_t num_dci = 0; + uint8_t ul_subframe; + uint32_t ul_frame; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_UL_eNB_HARQ_t *ulsch_harq; - int offset = eNB->CC_id;//proc == &eNB->proc.proc_rxtx[0] ? 0 : 1; + int offset = eNB->CC_id; //proc == &eNB->proc.proc_rxtx[0] ? 0 : 1; - if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)==SF_UL)) return; + if ((fp->frame_type == TDD) && (subframe_select (fp, subframe) == SF_UL)) + return; - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,1); - if (do_meas==1) start_meas(&eNB->phy_proc_tx); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX + offset, 1); + if (do_meas == 1) + start_meas (&eNB->phy_proc_tx); // clear the transmit data array for the current subframe - for (aa=0; aanb_antenna_ports_eNB; aa++) { - memset(&eNB->common_vars.txdataF[aa][subframe*fp->ofdm_symbol_size*(fp->symbols_per_tti)], - 0,fp->ofdm_symbol_size*(fp->symbols_per_tti)*sizeof(int32_t)); + for (aa = 0; aa < fp->nb_antenna_ports_eNB; aa++) { + memset (&eNB->common_vars.txdataF[aa][subframe * fp->ofdm_symbol_size * (fp->symbols_per_tti)], 0, fp->ofdm_symbol_size * (fp->symbols_per_tti) * sizeof (int32_t)); } - - if (is_pmch_subframe(frame,subframe,fp)) { - pmch_procedures(eNB,proc,rn,r_type); - } - else { + + if (is_pmch_subframe (frame, subframe, fp)) { + pmch_procedures (eNB, proc, rn, r_type); + } else { // this is not a pmch subframe, so generate PSS/SSS/PBCH - common_signal_procedures(eNB,proc); + common_signal_procedures (eNB, proc); } // clear existing ulsch dci allocations before applying info from MAC (this is table - ul_subframe = pdcch_alloc2ul_subframe(fp,subframe); - ul_frame = pdcch_alloc2ul_frame(fp,frame,subframe); + ul_subframe = pdcch_alloc2ul_subframe (fp, subframe); + ul_frame = pdcch_alloc2ul_frame (fp, frame, subframe); // clear previous allocation information for all UEs - for (i=0; idlsch[i][0]) eNB->dlsch[i][0]->subframe_tx[subframe] = 0; } /* save old HARQ information needed for PHICH generation */ - if (ul_subframe < 10) { // This means that there is a potential UL subframe that will be scheduled here - for (i=0; iulsch[i]) { - ulsch_harq = eNB->ulsch[i]->harq_processes[harq_pid]; - - /* Store first_rb and n_DMRS for correct PHICH generation below. - * For PHICH generation we need "old" values of last scheduling - * for this HARQ process. 'generate_eNB_dlsch_params' below will - * overwrite first_rb and n_DMRS and 'generate_phich_top', done - * after 'generate_eNB_dlsch_params', would use the "new" values - * instead of the "old" ones. - * - * This has been tested for FDD only, may be wrong for TDD. - * - * TODO: maybe we should restructure the code to be sure it - * is done correctly. The main concern is if the code - * changes and first_rb and n_DMRS are modified before - * we reach here, then the PHICH processing will be wrong, - * using wrong first_rb and n_DMRS values to compute - * ngroup_PHICH and nseq_PHICH. - * - * TODO: check if that works with TDD. - */ - ulsch_harq->previous_first_rb = ulsch_harq->first_rb; - ulsch_harq->previous_n_DMRS = ulsch_harq->n_DMRS; - + ulsch_harq = eNB->ulsch[i]->harq_processes[harq_pid]; + + /* Store first_rb and n_DMRS for correct PHICH generation below. + * For PHICH generation we need "old" values of last scheduling + * for this HARQ process. 'generate_eNB_dlsch_params' below will + * overwrite first_rb and n_DMRS and 'generate_phich_top', done + * after 'generate_eNB_dlsch_params', would use the "new" values + * instead of the "old" ones. + * + * This has been tested for FDD only, may be wrong for TDD. + * + * TODO: maybe we should restructure the code to be sure it + * is done correctly. The main concern is if the code + * changes and first_rb and n_DMRS are modified before + * we reach here, then the PHICH processing will be wrong, + * using wrong first_rb and n_DMRS values to compute + * ngroup_PHICH and nseq_PHICH. + * + * TODO: check if that works with TDD. + */ + ulsch_harq->previous_first_rb = ulsch_harq->first_rb; + ulsch_harq->previous_n_DMRS = ulsch_harq->n_DMRS; + } } } - // num_pdcch_symbols = DCI_pdu->num_pdcch_symbols; - num_pdcch_symbols = eNB->pdcch_vars[subframe&1].num_pdcch_symbols; - num_dci = eNB->pdcch_vars[subframe&1].num_dci; + num_pdcch_symbols = eNB->pdcch_vars[subframe & 1].num_pdcch_symbols; + num_dci = eNB->pdcch_vars[subframe & 1].num_dci; // LOG_D(PHY,"num_pdcch_symbols %"PRIu8",(dci common %"PRIu8", dci uespec %"PRIu8"\n",num_pdcch_symbols, // DCI_pdu->Num_common_dci,DCI_pdu->Num_ue_spec_dci); - LOG_D(PHY,"num_pdcch_symbols %"PRIu8",(number dci %"PRIu8"\n",num_pdcch_symbols, - num_dci); - VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_DCI_INFO,num_pdcch_symbols); + LOG_D (PHY, "num_pdcch_symbols %" PRIu8 ",(number dci %" PRIu8 "\n", num_pdcch_symbols, num_dci); + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME (VCD_SIGNAL_DUMPER_VARIABLES_DCI_INFO, num_pdcch_symbols); - VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_DCI_INFO,(frame*10)+subframe); + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME (VCD_SIGNAL_DUMPER_VARIABLES_DCI_INFO, (frame * 10) + subframe); if (num_dci > 0) - LOG_D(PHY,"[eNB %"PRIu8"] Frame %d, subframe %d: Calling generate_dci_top (pdcch) (num_dci %"PRIu8")\n",eNB->Mod_id,frame, subframe, - num_dci); + LOG_D (PHY, "[eNB %" PRIu8 "] Frame %d, subframe %d: Calling generate_dci_top (pdcch) (num_dci %" PRIu8 ")\n", eNB->Mod_id, frame, subframe, num_dci); - - generate_dci_top(num_pdcch_symbols, - num_dci, - &eNB->pdcch_vars[subframe&1].dci_alloc[0], - 0, - AMP, - fp, - eNB->common_vars.txdataF, - subframe); - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX,0); + generate_dci_top (num_pdcch_symbols, num_dci, &eNB->pdcch_vars[subframe & 1].dci_alloc[0], 0, AMP, fp, eNB->common_vars.txdataF, subframe); + + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX, 0); // Now scan UE specific DLSCH - LTE_eNB_DLSCH_t *dlsch0,*dlsch1; - for (UE_id=0; UE_iddlsch[(uint8_t)UE_id][0]; - dlsch1 = eNB->dlsch[(uint8_t)UE_id][1]; + LTE_eNB_DLSCH_t *dlsch0, *dlsch1; + for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { + dlsch0 = eNB->dlsch[(uint8_t) UE_id][0]; + dlsch1 = eNB->dlsch[(uint8_t) UE_id][1]; - if ((dlsch0)&& - (dlsch0->rnti>0)&& - (dlsch0->active == 1)) { + if ((dlsch0) && (dlsch0->rnti > 0) && (dlsch0->active == 1)) { - // get harq_pid - harq_pid = dlsch0->harq_ids[subframe]; - AssertFatal(harq_pid>=0,"harq_pid is negative\n"); - // generate pdsch - pdsch_procedures(eNB, - proc, - harq_pid, - dlsch0, - dlsch1, - &eNB->UE_stats[(uint32_t)UE_id], - 0); + // get harq_pid + harq_pid = dlsch0->harq_ids[subframe]; + AssertFatal (harq_pid >= 0, "harq_pid is negative\n"); + // generate pdsch + if ((dlsch0->harq_processes[harq_pid]->status == ACTIVE) && (dlsch0->harq_processes[harq_pid]->frame == frame) && (dlsch0->harq_processes[harq_pid]->subframe == subframe)) + pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); - } - - - else if ((dlsch0)&& - (dlsch0->rnti>0)&& - (dlsch0->active == 0)) { - - // clear subframe TX flag since UE is not scheduled for PDSCH in this subframe (so that we don't look for PUCCH later) - dlsch0->subframe_tx[subframe]=0; - } } + else if ((dlsch0) && (dlsch0->rnti > 0) && (dlsch0->active == 0)) { - generate_phich_top(eNB, - proc, - AMP); + // clear subframe TX flag since UE is not scheduled for PDSCH in this subframe (so that we don't look for PUCCH later) + dlsch0->subframe_tx[subframe] = 0; + } + } + + + + generate_phich_top (eNB, proc, AMP); + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX + offset, 0); + if (do_meas == 1) + stop_meas (&eNB->phy_proc_tx); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_TX+offset,0); - if (do_meas==1) stop_meas(&eNB->phy_proc_tx); - } -void prach_procedures(PHY_VARS_eNB *eNB, +void +prach_procedures (PHY_VARS_eNB * eNB, #ifdef Rel14 - int br_flag + int br_flag #endif - ) { - uint16_t max_preamble[4],max_preamble_energy[4],max_preamble_delay[4]; - uint16_t i; - int frame,subframe; + ) +{ + uint16_t max_preamble[4], max_preamble_energy[4], max_preamble_delay[4]; + uint16_t i; + int frame, subframe; #ifdef Rel14 - if (br_flag==1) { + if (br_flag == 1) { subframe = eNB->proc.subframe_prach_br; frame = eNB->proc.frame_prach_br; - pthread_mutex_lock(&eNB->UL_INFO_mutex); - eNB->UL_INFO.rach_ind_br.number_of_preambles=0; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); - } - else + pthread_mutex_lock (&eNB->UL_INFO_mutex); + eNB->UL_INFO.rach_ind_br.number_of_preambles = 0; + pthread_mutex_unlock (&eNB->UL_INFO_mutex); + } else #endif - { - pthread_mutex_lock(&eNB->UL_INFO_mutex); - eNB->UL_INFO.rach_ind.number_of_preambles=0; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); - subframe = eNB->proc.subframe_prach; - frame = eNB->proc.frame_prach; - } - RU_t *ru; - int aa=0; - int ru_aa; + { + pthread_mutex_lock (&eNB->UL_INFO_mutex); + eNB->UL_INFO.rach_ind.number_of_preambles = 0; + pthread_mutex_unlock (&eNB->UL_INFO_mutex); + subframe = eNB->proc.subframe_prach; + frame = eNB->proc.frame_prach; + } + RU_t *ru; + int aa = 0; + int ru_aa; - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX,1); + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX, 1); - for (i=0;inum_RU;i++) { - ru=eNB->RU_list[i]; - for (ru_aa=0,aa=0;ru_aanb_rx;ru_aa++,aa++) { + for (i = 0; i < eNB->num_RU; i++) { + ru = eNB->RU_list[i]; + for (ru_aa = 0, aa = 0; ru_aa < ru->nb_rx; ru_aa++, aa++) { eNB->prach_vars.rxsigF[0][aa] = eNB->RU_list[i]->prach_rxsigF[ru_aa]; #ifdef Rel14 - int ce_level; + int ce_level; - if (br_flag==1) - for (ce_level=0;ce_level<4;ce_level++) eNB->prach_vars_br.rxsigF[ce_level][aa] = eNB->RU_list[i]->prach_rxsigF_br[ce_level][ru_aa]; + if (br_flag == 1) + for (ce_level = 0; ce_level < 4; ce_level++) + eNB->prach_vars_br.rxsigF[ce_level][aa] = eNB->RU_list[i]->prach_rxsigF_br[ce_level][ru_aa]; #endif } } - rx_prach(eNB, - eNB->RU_list[0], - &max_preamble[0], - &max_preamble_energy[0], - &max_preamble_delay[0], - frame, - 0 + rx_prach (eNB, eNB->RU_list[0], &max_preamble[0], &max_preamble_energy[0], &max_preamble_delay[0], frame, 0 #ifdef Rel14 - ,br_flag + , br_flag #endif - ); + ); #ifdef DEBUG_PHY_PROC - LOG_I(PHY,"[RAPROC] Frame %d, subframe %d : Most likely preamble %d, energy %d dB delay %d\n", - frame,subframe, - max_preamble[0], - max_preamble_energy[0]/10, - max_preamble_delay[0]); + LOG_I (PHY, "[RAPROC] Frame %d, subframe %d : Most likely preamble %d, energy %d dB delay %d\n", frame, subframe, max_preamble[0], max_preamble_energy[0] / 10, max_preamble_delay[0]); #endif #ifdef Rel14 - if (br_flag==1) { - int prach_mask; - - prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br); - - eNB->UL_INFO.rach_ind_br.preamble_list = eNB->preamble_list_br; - int ind=0; - int ce_level=0; + if (br_flag == 1) { + int prach_mask; + + prach_mask = is_prach_subframe (&eNB->frame_parms, eNB->proc.frame_prach_br, eNB->proc.subframe_prach_br); + + eNB->UL_INFO.rach_ind_br.preamble_list = eNB->preamble_list_br; + int ind = 0; + int ce_level = 0; /* Save for later, it doesn't work - for (int ind=0,ce_level=0;ce_level<4;ce_level++) { - - if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&& - (prach_mask&(1<<(1+ce_level)) > 0) && // prach is active and CE level has finished its repetitions - (eNB->prach_vars_br.repetition_number[ce_level]== - eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) { + for (int ind=0,ce_level=0;ce_level<4;ce_level++) { - */ + if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1)&& + (prach_mask&(1<<(1+ce_level)) > 0) && // prach is active and CE level has finished its repetitions + (eNB->prach_vars_br.repetition_number[ce_level]== + eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) { - if (eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0]==1){ - if ((eNB->prach_energy_counter == 100) && - (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { - eNB->UL_INFO.rach_ind_br.number_of_preambles++; - - eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind];// - eNB->preamble_list_br[ind].preamble_rel8.preamble = max_preamble[ind]; - // note: fid is implicitly 0 here, this is the rule for eMTC RA-RNTI from 36.321, Section 5.1.4 - eNB->preamble_list_br[ind].preamble_rel8.rnti = 1+subframe+(eNB->prach_vars_br.first_frame[ce_level]%40); - eNB->preamble_list_br[ind].instance_length = 0; //don't know exactly what this is - eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type = 1+ce_level; // CE Level - LOG_D(PHY,"Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", - ind, - ce_level, - prach_mask, - eNB->preamble_list_br[ind].preamble_rel8.timing_advance, - eNB->preamble_list_br[ind].preamble_rel8.preamble, - eNB->preamble_list_br[ind].preamble_rel8.rnti, - eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type); + */ + + if (eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] == 1) { + if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { + eNB->UL_INFO.rach_ind_br.number_of_preambles++; + + eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind]; // + eNB->preamble_list_br[ind].preamble_rel8.preamble = max_preamble[ind]; + // note: fid is implicitly 0 here, this is the rule for eMTC RA-RNTI from 36.321, Section 5.1.4 + eNB->preamble_list_br[ind].preamble_rel8.rnti = 1 + subframe + (eNB->prach_vars_br.first_frame[ce_level] % 40); + eNB->preamble_list_br[ind].instance_length = 0; //don't know exactly what this is + eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type = 1 + ce_level; // CE Level + LOG_D (PHY, "Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + ind, + ce_level, + prach_mask, + eNB->preamble_list_br[ind].preamble_rel8.timing_advance, + eNB->preamble_list_br[ind].preamble_rel8.preamble, eNB->preamble_list_br[ind].preamble_rel8.rnti, eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type); } /* - ind++; - } - } */// ce_level + ind++; + } + } */// ce_level } - } - else + } else #endif - { - if ((eNB->prach_energy_counter == 100) && - (max_preamble_energy[0] > eNB->measurements.prach_I0+200)) { + { + if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { - LOG_D(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", - eNB->Mod_id, - eNB->CC_id, - frame, - subframe, - max_preamble[0], - max_preamble_energy[0]/10, - max_preamble_energy[0]%10, - max_preamble_delay[0]); - - T(T_ENB_PHY_INITIATE_RA_PROCEDURE, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), - T_INT(max_preamble[0]), T_INT(max_preamble_energy[0]), T_INT(max_preamble_delay[0])); - - pthread_mutex_lock(&eNB->UL_INFO_mutex); - - eNB->UL_INFO.rach_ind.number_of_preambles = 1; - eNB->UL_INFO.rach_ind.preamble_list = eNB->preamble_list; - - eNB->preamble_list[0].preamble_rel8.timing_advance = max_preamble_delay[0]; - eNB->preamble_list[0].preamble_rel8.preamble = max_preamble[0]; - eNB->preamble_list[0].preamble_rel8.rnti = 1+subframe; // note: fid is implicitly 0 here - eNB->preamble_list[0].preamble_rel13.rach_resource_type = 0; - eNB->preamble_list[0].instance_length = 0; //don't know exactly what this is - - LOG_D(PHY,"Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", - eNB->preamble_list[0].preamble_rel8.timing_advance, - eNB->preamble_list[0].preamble_rel8.preamble, - eNB->preamble_list[0].preamble_rel8.rnti, - eNB->preamble_list[0].preamble_rel13.rach_resource_type); - pthread_mutex_unlock(&eNB->UL_INFO_mutex); - - } // max_preamble_energy > prach_I0 + 100 - else { - eNB->measurements.prach_I0 = ((eNB->measurements.prach_I0*900)>>10) + ((max_preamble_energy[0]*124)>>10); - if (frame==0) LOG_I(PHY,"prach_I0 = %d.%d dB\n",eNB->measurements.prach_I0/10,eNB->measurements.prach_I0%10); - if (eNB->prach_energy_counter < 100) eNB->prach_energy_counter++; - } - } // else br_flag + LOG_D (PHY, "[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", + eNB->Mod_id, eNB->CC_id, frame, subframe, max_preamble[0], max_preamble_energy[0] / 10, max_preamble_energy[0] % 10, max_preamble_delay[0]); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX,0); + T (T_ENB_PHY_INITIATE_RA_PROCEDURE, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (max_preamble[0]), T_INT (max_preamble_energy[0]), T_INT (max_preamble_delay[0])); + + pthread_mutex_lock (&eNB->UL_INFO_mutex); + + eNB->UL_INFO.rach_ind.number_of_preambles = 1; + eNB->UL_INFO.rach_ind.preamble_list = eNB->preamble_list; + + eNB->preamble_list[0].preamble_rel8.timing_advance = max_preamble_delay[0]; + eNB->preamble_list[0].preamble_rel8.preamble = max_preamble[0]; + eNB->preamble_list[0].preamble_rel8.rnti = 1 + subframe; // note: fid is implicitly 0 here + eNB->preamble_list[0].preamble_rel13.rach_resource_type = 0; + eNB->preamble_list[0].instance_length = 0; //don't know exactly what this is + + LOG_D (PHY, "Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + eNB->preamble_list[0].preamble_rel8.timing_advance, + eNB->preamble_list[0].preamble_rel8.preamble, eNB->preamble_list[0].preamble_rel8.rnti, eNB->preamble_list[0].preamble_rel13.rach_resource_type); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); + + } // max_preamble_energy > prach_I0 + 100 + else { + eNB->measurements.prach_I0 = ((eNB->measurements.prach_I0 * 900) >> 10) + ((max_preamble_energy[0] * 124) >> 10); + if (frame == 0) + LOG_I (PHY, "prach_I0 = %d.%d dB\n", eNB->measurements.prach_I0 / 10, eNB->measurements.prach_I0 % 10); + if (eNB->prach_energy_counter < 100) + eNB->prach_energy_counter++; + } + } // else br_flag + + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX, 0); } -void srs_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) { +void +srs_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) +{ LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - const int subframe = proc->subframe_rx; - const int frame = proc->frame_rx; + const int subframe = proc->subframe_rx; + const int frame = proc->frame_rx; - int i; + int i; - if (is_srs_occasion_common(fp,frame,subframe)) { - - // Do SRS processing - // check if there is SRS and we have to use shortened format - // TODO: check for exceptions in transmission of SRS together with ACK/NACK - for (i=0;isoundingrs_ul_config_dedicated[i].active==1) { + // Do SRS processing + // check if there is SRS and we have to use shortened format + // TODO: check for exceptions in transmission of SRS together with ACK/NACK + for (i = 0; i < NUMBER_OF_UE_MAX; i++) { - - if (lte_srs_channel_estimation(fp, - &eNB->common_vars, - &eNB->srs_vars[i], - &eNB->soundingrs_ul_config_dedicated[i], - subframe, - 0/*eNB_id*/)) { - LOG_E(PHY,"problem processing SRS\n"); - } - eNB->soundingrs_ul_config_dedicated[i].active=0; + if (eNB->soundingrs_ul_config_dedicated[i].active == 1) { + + + if (lte_srs_channel_estimation (fp, &eNB->common_vars, &eNB->srs_vars[i], &eNB->soundingrs_ul_config_dedicated[i], subframe, 0 /*eNB_id */ )) { + LOG_E (PHY, "problem processing SRS\n"); + } + eNB->soundingrs_ul_config_dedicated[i].active = 0; } } } } -void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,uint32_t stat) { - - pthread_mutex_lock(&eNB->UL_INFO_mutex); - nfapi_sr_indication_pdu_t *pdu = &eNB->UL_INFO.sr_ind.sr_pdu_list[eNB->UL_INFO.sr_ind.number_of_srs]; +void +fill_sr_indication (PHY_VARS_eNB * eNB, uint16_t rnti, int frame, int subframe, uint32_t stat) +{ - pdu->instance_length = 0; // don't know what to do with this + pthread_mutex_lock (&eNB->UL_INFO_mutex); + nfapi_sr_indication_pdu_t *pdu = &eNB->UL_INFO.sr_ind.sr_pdu_list[eNB->UL_INFO.sr_ind.number_of_srs]; + + pdu->instance_length = 0; // don't know what to do with this // pdu->rx_ue_information.handle = handle; - pdu->rx_ue_information.rnti = rnti; + pdu->rx_ue_information.rnti = rnti; - int SNRtimes10 = dB_fixed_times10(stat) - 10*max(eNB->measurements.n0_subband_power_tot_dB[0], - eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); + int SNRtimes10 = dB_fixed_times10 (stat) - 10 * max (eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL - 1]); - if (SNRtimes10 < -640) pdu->ul_cqi_information.ul_cqi=0; - else if (SNRtimes10 > 635) pdu->ul_cqi_information.ul_cqi=255; - else pdu->ul_cqi_information.ul_cqi=(640+SNRtimes10)/5; + if (SNRtimes10 < -640) + pdu->ul_cqi_information.ul_cqi = 0; + else if (SNRtimes10 > 635) + pdu->ul_cqi_information.ul_cqi = 255; + else + pdu->ul_cqi_information.ul_cqi = (640 + SNRtimes10) / 5; pdu->ul_cqi_information.channel = 0; eNB->UL_INFO.sr_ind.number_of_srs++; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); } -void uci_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) +void +uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) { - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; - uint8_t SR_payload = 0,pucch_b0b1[4][2]= {{0,0},{0,0},{0,0},{0,0}},harq_ack[4]={0,0,0,0}; - int32_t metric[4]={0,0,0,0},metric_SR=0,max_metric; - const int subframe = proc->subframe_rx; - const int frame = proc->frame_rx; - int i; - LTE_eNB_UCI *uci; - uint16_t tdd_multiplexing_mask=0; - int res; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + uint8_t SR_payload = 0, pucch_b0b1[4][2] = { {0, 0}, {0, 0}, {0, 0}, {0, 0} }, harq_ack[4] = { + 0, 0, 0, 0}; + int32_t metric[4] = { 0, 0, 0, 0 }, metric_SR = 0, max_metric; + const int subframe = proc->subframe_rx; + const int frame = proc->frame_rx; + int i; + LTE_eNB_UCI *uci; + uint16_t tdd_multiplexing_mask = 0; + int res; - for (i=0;iuci_vars[i]; - if ((uci->active == 1) && - (uci->frame == frame) && - (uci->subframe == subframe)) { + if ((uci->active == 1) && (uci->frame == frame) && (uci->subframe == subframe)) { - LOG_D(PHY,"Frame %d, subframe %d: Running uci procedures (type %d) for %d \n",frame,subframe,uci->type,i); - uci->active=0; + LOG_D (PHY, "Frame %d, subframe %d: Running uci procedures (type %d) for %d \n", frame, subframe, uci->type, i); + uci->active = 0; // Null out PUCCH PRBs for noise measurement - switch(fp->N_RB_UL) { + switch (fp->N_RB_UL) { case 6: - eNB->rb_mask_ul[0] |= (0x1 | (1<<5)); //position 5 + eNB->rb_mask_ul[0] |= (0x1 | (1 << 5)); //position 5 break; case 15: - eNB->rb_mask_ul[0] |= (0x1 | (1<<14)); // position 14 + eNB->rb_mask_ul[0] |= (0x1 | (1 << 14)); // position 14 break; case 25: - eNB->rb_mask_ul[0] |= (0x1 | (1<<24)); // position 24 + eNB->rb_mask_ul[0] |= (0x1 | (1 << 24)); // position 24 break; case 50: eNB->rb_mask_ul[0] |= 0x1; - eNB->rb_mask_ul[1] |= (1<<17); // position 49 (49-32) + eNB->rb_mask_ul[1] |= (1 << 17); // position 49 (49-32) break; case 75: eNB->rb_mask_ul[0] |= 0x1; - eNB->rb_mask_ul[2] |= (1<<10); // position 74 (74-64) + eNB->rb_mask_ul[2] |= (1 << 10); // position 74 (74-64) break; case 100: eNB->rb_mask_ul[0] |= 0x1; - eNB->rb_mask_ul[3] |= (1<<3); // position 99 (99-96) + eNB->rb_mask_ul[3] |= (1 << 3); // position 99 (99-96) break; default: - LOG_E(PHY,"Unknown number for N_RB_UL %d\n",fp->N_RB_UL); + LOG_E (PHY, "Unknown number for N_RB_UL %d\n", fp->N_RB_UL); break; } switch (uci->type) { case SR: case HARQ_SR: - - metric_SR = rx_pucch(eNB, - uci->pucch_fmt, - i, - uci->n_pucch_1_0_sr[0], - 0, // n2_pucch - uci->srs_active, // shortened format - &SR_payload, - frame, - subframe, - PUCCH1_THRES); - LOG_D(PHY,"[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (SR n1pucch is %d)\n", - eNB->Mod_id, - uci->rnti, - frame, - subframe, - SR_payload, - uci->n_pucch_1_0_sr[0]); - if (uci->type == SR) { - if (SR_payload == 1) { - fill_sr_indication(eNB,uci->rnti,frame,subframe,metric_SR); - return; - } - else { - return; - } - } + + metric_SR = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1_0_sr[0], 0, // n2_pucch + uci->srs_active, // shortened format + &SR_payload, frame, subframe, PUCCH1_THRES); + LOG_D (PHY, "[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (SR n1pucch is %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, SR_payload, uci->n_pucch_1_0_sr[0]); + if (uci->type == SR) { + if (SR_payload == 1) { + fill_sr_indication (eNB, uci->rnti, frame, subframe, metric_SR); + return; + } else { + return; + } + } case HARQ: - if (fp->frame_type == FDD) { - LOG_D(PHY,"Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n", - frame,subframe,i, - uci->pucch_fmt,uci->type, - uci->frame,uci->subframe,uci->n_pucch_1[0][0], - SR_payload); - - metric[0] = rx_pucch(eNB, - uci->pucch_fmt, - i, - uci->n_pucch_1[0][0], - 0, //n2_pucch - uci->srs_active, // shortened format - pucch_b0b1[0], - frame, - subframe, - PUCCH1a_THRES); - - - /* cancel SR detection if reception on n1_pucch0 is better than on SR PUCCH resource index, otherwise send it up to MAC */ - if (uci->type==HARQ_SR && metric[0] > metric_SR) SR_payload = 0; - else if (SR_payload == 1) fill_sr_indication(eNB,uci->rnti,frame,subframe,metric_SR); - - if (uci->type==HARQ_SR && metric[0] <= metric_SR) { - /* when transmitting ACK/NACK on SR PUCCH resource index, SR payload is always 1 */ - SR_payload = 1; - - metric[0]=rx_pucch(eNB, - uci->pucch_fmt, - i, - uci->n_pucch_1_0_sr[0], - 0, //n2_pucch - uci->srs_active, // shortened format - pucch_b0b1[0], - frame, - subframe, - PUCCH1a_THRES); - } - + if (fp->frame_type == FDD) { + LOG_D (PHY, "Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n", + frame, subframe, i, uci->pucch_fmt, uci->type, uci->frame, uci->subframe, uci->n_pucch_1[0][0], SR_payload); - LOG_D(PHY,"[eNB %d][PDSCH %x] Frame %d subframe %d pucch1a (FDD) payload %d (metric %d)\n", - eNB->Mod_id, - uci->rnti, - frame,subframe, - pucch_b0b1[0][0],metric[0]); - - uci->stat = metric[0]; - fill_uci_harq_indication(eNB,uci,frame,subframe,pucch_b0b1[0],0,0xffff); - - } - else { // frame_type == TDD + metric[0] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1[0][0], 0, //n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[0], frame, subframe, PUCCH1a_THRES); - // if SR was detected, use the n1_pucch from SR - if (SR_payload==1) { + /* cancel SR detection if reception on n1_pucch0 is better than on SR PUCCH resource index, otherwise send it up to MAC */ + if (uci->type == HARQ_SR && metric[0] > metric_SR) + SR_payload = 0; + else if (SR_payload == 1) + fill_sr_indication (eNB, uci->rnti, frame, subframe, metric_SR); + + if (uci->type == HARQ_SR && metric[0] <= metric_SR) { + /* when transmitting ACK/NACK on SR PUCCH resource index, SR payload is always 1 */ + SR_payload = 1; + + metric[0] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1_0_sr[0], 0, //n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[0], frame, subframe, PUCCH1a_THRES); + } + + + LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d pucch1a (FDD) payload %d (metric %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, pucch_b0b1[0][0], metric[0]); + + uci->stat = metric[0]; + fill_uci_harq_indication (eNB, uci, frame, subframe, pucch_b0b1[0], 0, 0xffff); + + } else { // frame_type == TDD + + + // if SR was detected, use the n1_pucch from SR + if (SR_payload == 1) { #ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[eNB %d][PDSCH %x] Frame %d subframe %d Checking ACK/NAK (%d,%d,%d,%d) format %d with SR\n",eNB->Mod_id, - eNB->dlsch[UE_id][0]->rnti, - frame,subframe, - n1_pucch0,n1_pucch1,n1_pucch2,n1_pucch3,format); + LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d Checking ACK/NAK (%d,%d,%d,%d) format %d with SR\n", eNB->Mod_id, + eNB->dlsch[UE_id][0]->rnti, frame, subframe, n1_pucch0, n1_pucch1, n1_pucch2, n1_pucch3, format); #endif - - metric[0] = rx_pucch(eNB, - pucch_format1b, - i, - uci->n_pucch_1_0_sr[0], - 0, //n2_pucch - uci->srs_active, // shortened format - pucch_b0b1[0], - frame, - subframe, - PUCCH1a_THRES); - } else { //using assigned pucch resources + + metric[0] = rx_pucch (eNB, pucch_format1b, i, uci->n_pucch_1_0_sr[0], 0, //n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[0], frame, subframe, PUCCH1a_THRES); + } else { //using assigned pucch resources #ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[eNB %d][PDSCH %x] Frame %d subframe %d Checking ACK/NAK M=%d (%d,%d,%d,%d) format %d\n",eNB->Mod_id, - eNB->dlsch[UE_id][0]->rnti, - frame,subframe, - uci->num_pucch_resources, - uci->n_pucch_1[res][0], - uci->n_pucch_1[res][1], - uci->n_pucch_1[res][2], - uci->n_pucch_1[res][3], - uci->pucch_fmt); + LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d Checking ACK/NAK M=%d (%d,%d,%d,%d) format %d\n", eNB->Mod_id, + eNB->dlsch[UE_id][0]->rnti, + frame, subframe, uci->num_pucch_resources, uci->n_pucch_1[res][0], uci->n_pucch_1[res][1], uci->n_pucch_1[res][2], uci->n_pucch_1[res][3], uci->pucch_fmt); #endif - for (res=0;resnum_pucch_resources;res++) - metric[res] = rx_pucch(eNB, - uci->pucch_fmt, - i, - uci->n_pucch_1[res][0], - 0, // n2_pucch - uci->srs_active, // shortened format - pucch_b0b1[res], - frame, - subframe, - PUCCH1a_THRES); - - + for (res = 0; res < uci->num_pucch_resources; res++) + metric[res] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1[res][0], 0, // n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[res], frame, subframe, PUCCH1a_THRES); - } - - if (SR_payload == 1) { // this implements Table 7.3.1 from 36.213 - if (pucch_b0b1[0][0] == 4) { // there isn't a likely transmission - harq_ack[0] = 4; // DTX - } - else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] == 1) { // 1/4/7 ACKs - harq_ack[0] = 1; - } - else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1) { // 2/5/8 ACKs - harq_ack[0] = 2; - } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1) { // 3/6/9 ACKs - harq_ack[0] = 3; - } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] != 1) { // 0 ACKs, or at least one DL assignment missed - harq_ack[0] = 0; - } - uci->stat = metric[0]; - fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,2,0xffff); // special_bundling mode - } - else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources==2)){ // multiplexing + no SR, implement Table 10.1.3-5 (Rel14) for multiplexing with M=2 - if (pucch_b0b1[0][0] == 4 || - pucch_b0b1[1][0] == 4) { // there isn't a likely transmission - harq_ack[0] = 4; // DTX - harq_ack[1] = 6; // NACK/DTX - } - else { - if (metric[1]>metric[0]) { - if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 1; // ACK - tdd_multiplexing_mask = 0x3; - } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1){ - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 1; // ACK - tdd_multiplexing_mask = 0x2; - } - else { - harq_ack[0] = 4; // DTX - harq_ack[1] = 4; // DTX - } - } - else { - if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x1; - } - else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1){ - harq_ack[0] = 2; // NACK - harq_ack[1] = 6; // NACK/DTX - } - else { - harq_ack[0] = 4; // DTX - harq_ack[1] = 4; // DTX - } - } - } - uci->stat = max(metric[0],metric[1]); - fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,1,tdd_multiplexing_mask); // multiplexing mode - } //else if ((uci->tdd_bundling == 0) && (res==2)) - else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources==3)){ // multiplexing + no SR, implement Table 10.1.3-6 (Rel14) for multiplexing with M=3 - - if (harq_ack[0] == 4 || - harq_ack[1] == 4 || - harq_ack[2] == 4) { // there isn't a likely transmission - harq_ack[0] = 4; // DTX - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - - } - else { - - max_metric = max(metric[0],max(metric[1],metric[2])); - - if (metric[0]==max_metric) { - if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x1; - } - else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1){ - harq_ack[0] = 2; // NACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - } - else { - harq_ack[0] = 4; // DTX - harq_ack[1] = 4; // DTX - harq_ack[2] = 4; // DTX - } - } // if (metric[0]==max_metric) { - else if (metric[1]==max_metric) { - - if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 1; // ACK - harq_ack[2] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x3; - } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 1; // ACK - harq_ack[2] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x2; - } - else { - harq_ack[0] = 4; // DTX - harq_ack[1] = 4; // DTX - harq_ack[2] = 4; // DTX - } - } // if (metric[1]==max_metric) { - else { - if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 1; // ACK - harq_ack[2] = 1; // ACK - tdd_multiplexing_mask = 0x7; - } - else if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] != 1 ) { - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 1; // ACK - tdd_multiplexing_mask = 0x5; - } - else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] == 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 1; // ACK - harq_ack[2] = 1; // ACK - tdd_multiplexing_mask = 0x6; - } - else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] != 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 1; // ACK - tdd_multiplexing_mask = 0x4; - } - } + + } + + + if (SR_payload == 1) { // this implements Table 7.3.1 from 36.213 + if (pucch_b0b1[0][0] == 4) { // there isn't a likely transmission + harq_ack[0] = 4; // DTX + } else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] == 1) { // 1/4/7 ACKs + harq_ack[0] = 1; + } else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1) { // 2/5/8 ACKs + harq_ack[0] = 2; + } else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1) { // 3/6/9 ACKs + harq_ack[0] = 3; + } else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] != 1) { // 0 ACKs, or at least one DL assignment missed + harq_ack[0] = 0; + } + uci->stat = metric[0]; + fill_uci_harq_indication (eNB, uci, frame, subframe, harq_ack, 2, 0xffff); // special_bundling mode + } else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources == 2)) { // multiplexing + no SR, implement Table 10.1.3-5 (Rel14) for multiplexing with M=2 + if (pucch_b0b1[0][0] == 4 || pucch_b0b1[1][0] == 4) { // there isn't a likely transmission + harq_ack[0] = 4; // DTX + harq_ack[1] = 6; // NACK/DTX + } else { + if (metric[1] > metric[0]) { + if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 1; // ACK + tdd_multiplexing_mask = 0x3; + } else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 1; // ACK + tdd_multiplexing_mask = 0x2; + } else { + harq_ack[0] = 4; // DTX + harq_ack[1] = 4; // DTX + } + } else { + if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x1; + } else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1) { + harq_ack[0] = 2; // NACK + harq_ack[1] = 6; // NACK/DTX + } else { + harq_ack[0] = 4; // DTX + harq_ack[1] = 4; // DTX + } + } + } + uci->stat = max (metric[0], metric[1]); + fill_uci_harq_indication (eNB, uci, frame, subframe, harq_ack, 1, tdd_multiplexing_mask); // multiplexing mode + } //else if ((uci->tdd_bundling == 0) && (res==2)) + else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources == 3)) { // multiplexing + no SR, implement Table 10.1.3-6 (Rel14) for multiplexing with M=3 + + if (harq_ack[0] == 4 || harq_ack[1] == 4 || harq_ack[2] == 4) { // there isn't a likely transmission + harq_ack[0] = 4; // DTX + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + + } else { + + max_metric = max (metric[0], max (metric[1], metric[2])); + + if (metric[0] == max_metric) { + if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x1; + } else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1) { + harq_ack[0] = 2; // NACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + } else { + harq_ack[0] = 4; // DTX + harq_ack[1] = 4; // DTX + harq_ack[2] = 4; // DTX + } + } // if (metric[0]==max_metric) { + else if (metric[1] == max_metric) { + + if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 1; // ACK + harq_ack[2] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x3; + } else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 1; // ACK + harq_ack[2] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x2; + } else { + harq_ack[0] = 4; // DTX + harq_ack[1] = 4; // DTX + harq_ack[2] = 4; // DTX + } + } // if (metric[1]==max_metric) { + else { + if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 1; // ACK + harq_ack[2] = 1; // ACK + tdd_multiplexing_mask = 0x7; + } else if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] != 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 1; // ACK + tdd_multiplexing_mask = 0x5; + } else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] == 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 1; // ACK + harq_ack[2] = 1; // ACK + tdd_multiplexing_mask = 0x6; + } else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] != 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 1; // ACK + tdd_multiplexing_mask = 0x4; + } + } + uci->stat = max_metric; + fill_uci_harq_indication (eNB, uci, frame, subframe, harq_ack, 1, tdd_multiplexing_mask); // multiplexing mode + } + } //else if ((uci->tdd_bundling == 0) && (res==3)) + else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources == 4)) { // multiplexing + no SR, implement Table 10.1.3-7 (Rel14) for multiplexing with M=4 + if (pucch_b0b1[0][0] == 4 || pucch_b0b1[1][0] == 4 || pucch_b0b1[2][0] == 4 || pucch_b0b1[3][0] == 4) { // there isn't a likely transmission + harq_ack[0] = 4; // DTX + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 6; // NACK/DTX + + } else { + + max_metric = max (metric[0], max (metric[1], max (metric[2], metric[3]))); + + if (metric[0] == max_metric) { + if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] != 1) { + harq_ack[0] = 2; // NACK + harq_ack[1] = 4; // DTX + harq_ack[2] = 4; // DTX + harq_ack[3] = 4; // DTX + } else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0x9; + } else if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x1; + } else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1) { + harq_ack[0] = 2; // NACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 6; // NACK/DTX + } + + } else if (metric[1] == max_metric) { + if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 1; // ACK + harq_ack[2] = 1; // ACK + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0xF; + } else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 1; // ACK + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x3; + } else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] != 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 1; // ACK + harq_ack[2] = 1; // ACK + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0xE; + } else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 1; // ACK + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x2; + } + } else if (metric[2] == max_metric) { + if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 1; // ACK + harq_ack[2] = 1; // ACK + harq_ack[3] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x7; + } else if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] != 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 1; // ACK + harq_ack[3] = 6; // NACK/DTX + tdd_multiplexing_mask = 0x5; + } else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] == 1) { + harq_ack[0] = 4; // NACK/DTX + harq_ack[1] = 1; // ACK + harq_ack[2] = 1; // ACK + harq_ack[3] = 4; // NACK/DTX + tdd_multiplexing_mask = 0x6; + } else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] != 1) { + harq_ack[0] = 4; // NACK/DTX + harq_ack[1] = 4; // NACK/DTX + harq_ack[2] = 1; // ACK + harq_ack[3] = 4; // NACK/DTX + tdd_multiplexing_mask = 0x4; + } + } else { // max_metric[3]=max_metric + if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] == 1) { + harq_ack[0] = 1; // ACK + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 1; // ACK + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0xD; + } else if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] != 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 1; // ACK + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0xA; + } else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] == 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 1; // ACK + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0xC; + } else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] != 1) { + harq_ack[0] = 6; // NACK/DTX + harq_ack[1] = 6; // NACK/DTX + harq_ack[2] = 6; // NACK/DTX + harq_ack[3] = 1; // ACK + tdd_multiplexing_mask = 0x8; + } + } + } uci->stat = max_metric; - fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,1,tdd_multiplexing_mask); // multiplexing mode - } - } //else if ((uci->tdd_bundling == 0) && (res==3)) - else if ((uci->tdd_bundling == 0) && (uci->num_pucch_resources==4)){ // multiplexing + no SR, implement Table 10.1.3-7 (Rel14) for multiplexing with M=4 - if (pucch_b0b1[0][0] == 4 || - pucch_b0b1[1][0] == 4 || - pucch_b0b1[2][0] == 4 || - pucch_b0b1[3][0] == 4) { // there isn't a likely transmission - harq_ack[0] = 4; // DTX - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 6; // NACK/DTX - - } else { + fill_uci_harq_indication (eNB, uci, frame, subframe, harq_ack, 1, tdd_multiplexing_mask); // multiplexing mode + } // else if ((uci->tdd_bundling == 0) && (res==4)) + else { // bundling + harq_ack[0] = pucch_b0b1[0][0]; + harq_ack[1] = pucch_b0b1[0][1]; + uci->stat = metric[0]; + fill_uci_harq_indication (eNB, uci, frame, subframe, harq_ack, 0, 0xffff); // special_bundling mode + } - max_metric = max(metric[0],max(metric[1],max(metric[2],metric[3]))); - - if (metric[0]==max_metric) { - if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] != 1){ - harq_ack[0] = 2; // NACK - harq_ack[1] = 4; // DTX - harq_ack[2] = 4; // DTX - harq_ack[3] = 4; // DTX - } - else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0x9; - } - else if (pucch_b0b1[0][0] == 1 && pucch_b0b1[0][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x1; - } - else if (pucch_b0b1[0][0] != 1 && pucch_b0b1[0][1] != 1){ - harq_ack[0] = 2; // NACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 6; // NACK/DTX - } - - } - else if (metric[1]==max_metric) { - if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 1; // ACK - harq_ack[2] = 1; // ACK - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0xF; - } - else if (pucch_b0b1[1][0] == 1 && pucch_b0b1[1][1] != 1 ) { - harq_ack[0] = 1; // ACK - harq_ack[1] = 1; // ACK - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x3; - } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] != 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 1; // ACK - harq_ack[2] = 1; // ACK - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0xE; - } - else if (pucch_b0b1[1][0] != 1 && pucch_b0b1[1][1] == 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 1; // ACK - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x2; - } - } - else if (metric[2]==max_metric) { - if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 1; // ACK - harq_ack[2] = 1; // ACK - harq_ack[3] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x7; - } - else if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] != 1 ) { - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 1; // ACK - harq_ack[3] = 6; // NACK/DTX - tdd_multiplexing_mask = 0x5; - } - else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] == 1 ) { - harq_ack[0] = 4; // NACK/DTX - harq_ack[1] = 1; // ACK - harq_ack[2] = 1; // ACK - harq_ack[3] = 4; // NACK/DTX - tdd_multiplexing_mask = 0x6; - } - else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] != 1 ) { - harq_ack[0] = 4; // NACK/DTX - harq_ack[1] = 4; // NACK/DTX - harq_ack[2] = 1; // ACK - harq_ack[3] = 4; // NACK/DTX - tdd_multiplexing_mask = 0x4; - } - } - else { // max_metric[3]=max_metric - if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] == 1){ - harq_ack[0] = 1; // ACK - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 1; // ACK - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0xD; - } - else if (pucch_b0b1[2][0] == 1 && pucch_b0b1[2][1] != 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 1; // ACK - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0xA; - } - else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] == 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 1; // ACK - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0xC; - } - else if (pucch_b0b1[2][0] != 1 && pucch_b0b1[2][1] != 1 ) { - harq_ack[0] = 6; // NACK/DTX - harq_ack[1] = 6; // NACK/DTX - harq_ack[2] = 6; // NACK/DTX - harq_ack[3] = 1; // ACK - tdd_multiplexing_mask = 0x8; - } - } - } - uci->stat = max_metric; - fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,1,tdd_multiplexing_mask); // multiplexing mode - } // else if ((uci->tdd_bundling == 0) && (res==4)) - else { // bundling - harq_ack[0] = pucch_b0b1[0][0]; - harq_ack[1] = pucch_b0b1[0][1]; - uci->stat = metric[0]; - fill_uci_harq_indication(eNB,uci,frame,subframe,harq_ack,0,0xffff); // special_bundling mode - } - #ifdef DEBUG_PHY_PROC - LOG_D(PHY,"[eNB %d][PDSCH %x] Frame %d subframe %d ACK/NAK metric 0 %d, metric 1 %d, (%d,%d)\n",eNB->Mod_id, - eNB->dlsch[UE_id][0]->rnti, - frame,subframe, - metric0,metric1,pucch_b0b1[0],pucch_b0b1[1]); + LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d ACK/NAK metric 0 %d, metric 1 %d, (%d,%d)\n", eNB->Mod_id, + eNB->dlsch[UE_id][0]->rnti, frame, subframe, metric0, metric1, pucch_b0b1[0], pucch_b0b1[1]); #endif - } - break; + } + break; default: - AssertFatal(1==0,"Unsupported UCI type %d\n",uci->type); - break; + AssertFatal (1 == 0, "Unsupported UCI type %d\n", uci->type); + break; } - + if (SR_payload == 1) { - LOG_D(PHY,"[eNB %d][SR %x] Frame %d subframe %d Got SR for PUSCH, transmitting to MAC\n",eNB->Mod_id, - uci->rnti,frame,subframe); - - if (eNB->first_sr[i] == 1) { // this is the first request for uplink after Connection Setup, so clear HARQ process 0 use for Msg4 - eNB->first_sr[i] = 0; - eNB->dlsch[i][0]->harq_processes[0]->round=0; - eNB->dlsch[i][0]->harq_processes[0]->status=SCH_IDLE; - LOG_D(PHY,"[eNB %d][SR %x] Frame %d subframe %d First SR\n", - eNB->Mod_id, - eNB->ulsch[i]->rnti,frame,subframe); - } + LOG_D (PHY, "[eNB %d][SR %x] Frame %d subframe %d Got SR for PUSCH, transmitting to MAC\n", eNB->Mod_id, uci->rnti, frame, subframe); + + if (eNB->first_sr[i] == 1) { // this is the first request for uplink after Connection Setup, so clear HARQ process 0 use for Msg4 + eNB->first_sr[i] = 0; + eNB->dlsch[i][0]->harq_processes[0]->round = 0; + eNB->dlsch[i][0]->harq_processes[0]->status = SCH_IDLE; + LOG_D (PHY, "[eNB %d][SR %x] Frame %d subframe %d First SR\n", eNB->Mod_id, eNB->ulsch[i]->rnti, frame, subframe); + } } } } } -void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) +void +pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) { - uint32_t ret=0,i; - uint32_t harq_pid; - uint8_t nPRS; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; + uint32_t ret = 0, i; + uint32_t harq_pid; + uint8_t nPRS; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; LTE_eNB_ULSCH_t *ulsch; LTE_UL_eNB_HARQ_t *ulsch_harq; - const int subframe = proc->subframe_rx; - const int frame = proc->frame_rx; + const int subframe = proc->subframe_rx; + const int frame = proc->frame_rx; - if (fp->frame_type == FDD) harq_pid = ((10*frame) + subframe)&7; - else harq_pid = subframe%10; + if (fp->frame_type == FDD) + harq_pid = ((10 * frame) + subframe) & 7; + else + harq_pid = subframe % 10; - for (i=0; iulsch[i]; ulsch_harq = ulsch->harq_processes[harq_pid]; - if (ulsch->rnti>0) LOG_D(PHY,"Frame %d, subframe %d: PUSCH procedures, harq_pid %d, UE %d/%x\n", - frame,subframe,harq_pid,i,ulsch->rnti); + if (ulsch->rnti > 0) + LOG_D (PHY, "Frame %d, subframe %d: PUSCH procedures, harq_pid %d, UE %d/%x\n", frame, subframe, harq_pid, i, ulsch->rnti); - if ((ulsch) && - (ulsch->rnti>0) && - (ulsch_harq->status == ACTIVE) && - (ulsch_harq->frame == frame) && - (ulsch_harq->subframe == subframe) && - (ulsch_harq->handled == 0)) { + if ((ulsch) && (ulsch->rnti > 0) && (ulsch_harq->status == ACTIVE) && (ulsch_harq->frame == frame) && (ulsch_harq->subframe == subframe) && (ulsch_harq->handled == 0)) { // UE has ULSCH scheduling - for (int rb=0; - rb<=ulsch_harq->nb_rb; - rb++) { - int rb2 = rb+ulsch_harq->first_rb; - eNB->rb_mask_ul[rb2>>5] |= (1<<(rb2&31)); + for (int rb = 0; rb <= ulsch_harq->nb_rb; rb++) { + int rb2 = rb + ulsch_harq->first_rb; + eNB->rb_mask_ul[rb2 >> 5] |= (1 << (rb2 & 31)); } - LOG_D(PHY,"[eNB %d] frame %d, subframe %d: Scheduling ULSCH Reception for UE %d \n", - eNB->Mod_id, - frame, - subframe, - i); + LOG_D (PHY, "[eNB %d] frame %d, subframe %d: Scheduling ULSCH Reception for UE %d \n", eNB->Mod_id, frame, subframe, i); - nPRS = fp->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[subframe<<1]; + nPRS = fp->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[subframe << 1]; - ulsch->cyclicShift = (ulsch_harq->n_DMRS2 + - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift + - nPRS)%12; + ulsch->cyclicShift = (ulsch_harq->n_DMRS2 + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift + nPRS) % 12; - LOG_D(PHY, - "[eNB %d][PUSCH %d] Frame %d Subframe %d Demodulating PUSCH: dci_alloc %d, rar_alloc %d, round %d, first_rb %d, nb_rb %d, Qm %d, TBS %d, rv %d, cyclic_shift %d (n_DMRS2 %d, cyclicShift_common %d, nprs %d), O_ACK %d, beta_cqi %d \n", - eNB->Mod_id,harq_pid,frame,subframe, - ulsch_harq->dci_alloc, - ulsch_harq->rar_alloc, - ulsch_harq->round, - ulsch_harq->first_rb, - ulsch_harq->nb_rb, - ulsch_harq->Qm, - ulsch_harq->TBS, - ulsch_harq->rvidx, - ulsch->cyclicShift, - ulsch_harq->n_DMRS2, - fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift, - nPRS, - ulsch_harq->O_ACK, - ulsch->beta_offset_cqi_times8); + LOG_D (PHY, + "[eNB %d][PUSCH %d] Frame %d Subframe %d Demodulating PUSCH: dci_alloc %d, rar_alloc %d, round %d, first_rb %d, nb_rb %d, Qm %d, TBS %d, rv %d, cyclic_shift %d (n_DMRS2 %d, cyclicShift_common %d, nprs %d), O_ACK %d, beta_cqi %d \n", + eNB->Mod_id, harq_pid, frame, subframe, + ulsch_harq->dci_alloc, + ulsch_harq->rar_alloc, + ulsch_harq->round, + ulsch_harq->first_rb, + ulsch_harq->nb_rb, + ulsch_harq->Qm, + ulsch_harq->TBS, + ulsch_harq->rvidx, ulsch->cyclicShift, ulsch_harq->n_DMRS2, fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift, nPRS, ulsch_harq->O_ACK, ulsch->beta_offset_cqi_times8); - start_meas(&eNB->ulsch_demodulation_stats); + start_meas (&eNB->ulsch_demodulation_stats); - rx_ulsch(eNB,proc, i); + rx_ulsch (eNB, proc, i); - stop_meas(&eNB->ulsch_demodulation_stats); + stop_meas (&eNB->ulsch_demodulation_stats); - start_meas(&eNB->ulsch_decoding_stats); + start_meas (&eNB->ulsch_decoding_stats); - ret = ulsch_decoding(eNB,proc, - i, - 0, // control_only_flag - ulsch_harq->V_UL_DAI, - ulsch_harq->nb_rb>20 ? 1 : 0); + ret = ulsch_decoding (eNB, proc, i, 0, // control_only_flag + ulsch_harq->V_UL_DAI, ulsch_harq->nb_rb > 20 ? 1 : 0); - stop_meas(&eNB->ulsch_decoding_stats); + stop_meas (&eNB->ulsch_decoding_stats); - LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d RNTI %x RX power (%d,%d) N0 (%d,%d) dB ACK (%d,%d), decoding iter %d\n", - eNB->Mod_id,harq_pid, - frame,subframe, - ulsch->rnti, - dB_fixed(eNB->pusch_vars[i]->ulsch_power[0]), - dB_fixed(eNB->pusch_vars[i]->ulsch_power[1]), - 20,//eNB->measurements.n0_power_dB[0], - 20,//eNB->measurements.n0_power_dB[1], - ulsch_harq->o_ACK[0], - ulsch_harq->o_ACK[1], - ret); + LOG_D (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d RNTI %x RX power (%d,%d) N0 (%d,%d) dB ACK (%d,%d), decoding iter %d\n", eNB->Mod_id, harq_pid, frame, subframe, ulsch->rnti, dB_fixed (eNB->pusch_vars[i]->ulsch_power[0]), dB_fixed (eNB->pusch_vars[i]->ulsch_power[1]), 20, //eNB->measurements.n0_power_dB[0], + 20, //eNB->measurements.n0_power_dB[1], + ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1], ret); //compute the expected ULSCH RX power (for the stats) - ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB(eNB,i,harq_pid, 0); // 0 means bw_factor is not considered + ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB (eNB, i, harq_pid, 0); // 0 means bw_factor is not considered if (ulsch_harq->cqi_crc_status == 1) { #ifdef DEBUG_PHY_PROC //if (((frame%10) == 0) || (frame < 50)) - print_CQI(ulsch_harq->o,ulsch_harq->uci_format,0,fp->N_RB_DL); + print_CQI (ulsch_harq->o, ulsch_harq->uci_format, 0, fp->N_RB_DL); #endif - fill_ulsch_cqi_indication(eNB,frame,subframe, - ulsch_harq, - ulsch->rnti); + fill_ulsch_cqi_indication (eNB, frame, subframe, ulsch_harq, ulsch->rnti); } - if (ret == (1+MAX_TURBO_ITERATIONS)) { - T(T_ENB_PHY_ULSCH_UE_NACK, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(ulsch->rnti), - T_INT(harq_pid)); + if (ret == (1 + MAX_TURBO_ITERATIONS)) { + T (T_ENB_PHY_ULSCH_UE_NACK, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (ulsch->rnti), T_INT (harq_pid)); - fill_crc_indication(eNB,i,frame,subframe,1); // indicate NAK to MAC - fill_rx_indication(eNB,i,frame,subframe); // indicate SDU to MAC + fill_crc_indication (eNB, i, frame, subframe, 1); // indicate NAK to MAC + fill_rx_indication (eNB, i, frame, subframe); // indicate SDU to MAC - LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", - eNB->Mod_id,harq_pid, - frame,subframe, i, - ulsch_harq->round-1, - ulsch->Mlimit, - ulsch_harq->o_ACK[0], - ulsch_harq->o_ACK[1]); - if (ulsch_harq->round >= 3) { - ulsch_harq->status = SCH_IDLE; - ulsch_harq->handled = 0; - ulsch->harq_mask &= ~(1 << harq_pid); - ulsch_harq->round = 0; - } + LOG_D (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", + eNB->Mod_id, harq_pid, frame, subframe, i, ulsch_harq->round - 1, ulsch->Mlimit, ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1]); + if (ulsch_harq->round >= 3) { + ulsch_harq->status = SCH_IDLE; + ulsch_harq->handled = 0; + ulsch->harq_mask &= ~(1 << harq_pid); + ulsch_harq->round = 0; + } #if defined(MESSAGE_CHART_GENERATOR_PHY) - MSC_LOG_RX_DISCARDED_MESSAGE( - MSC_PHY_ENB,MSC_PHY_UE, - NULL,0, - "%05u:%02u ULSCH received rnti %x harq id %u round %d", - frame,subframe, - ulsch->rnti,harq_pid, - ulsch_harq->round-1 - ); + MSC_LOG_RX_DISCARDED_MESSAGE (MSC_PHY_ENB, MSC_PHY_UE, NULL, 0, "%05u:%02u ULSCH received rnti %x harq id %u round %d", frame, subframe, ulsch->rnti, harq_pid, ulsch_harq->round - 1); #endif /* Mark the HARQ process to release it later if max transmission reached @@ -1408,579 +1126,580 @@ void pusch_procedures(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc) * locally in PHY. */ ulsch_harq->handled = 1; - } // ulsch in error + } // ulsch in error else { - fill_crc_indication(eNB,i,frame,subframe,0); // indicate ACK to MAC - fill_rx_indication(eNB,i,frame,subframe); // indicate SDU to MAC + fill_crc_indication (eNB, i, frame, subframe, 0); // indicate ACK to MAC + fill_rx_indication (eNB, i, frame, subframe); // indicate SDU to MAC ulsch_harq->status = SCH_IDLE; - ulsch->harq_mask &= ~(1 << harq_pid); + ulsch->harq_mask &= ~(1 << harq_pid); - T(T_ENB_PHY_ULSCH_UE_ACK, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(ulsch->rnti), - T_INT(harq_pid)); + T (T_ENB_PHY_ULSCH_UE_ACK, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (ulsch->rnti), T_INT (harq_pid)); #if defined(MESSAGE_CHART_GENERATOR_PHY) - MSC_LOG_RX_MESSAGE( - MSC_PHY_ENB,MSC_PHY_UE, - NULL,0, - "%05u:%02u ULSCH received rnti %x harq id %u", - frame,subframe, - ulsch->rnti,harq_pid - ); + MSC_LOG_RX_MESSAGE (MSC_PHY_ENB, MSC_PHY_UE, NULL, 0, "%05u:%02u ULSCH received rnti %x harq id %u", frame, subframe, ulsch->rnti, harq_pid); #endif #ifdef DEBUG_PHY_PROC #ifdef DEBUG_ULSCH - LOG_D(PHY,"[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:",frame,subframe, - harq_pid,ulsch_harq->TBS>>3); + LOG_D (PHY, "[eNB] Frame %d, Subframe %d : ULSCH SDU (RX harq_pid %d) %d bytes:", frame, subframe, harq_pid, ulsch_harq->TBS >> 3); - for (j=0; jTBS>>3; j++) - LOG_T(PHY,"%x.",ulsch->harq_processes[harq_pid]->b[j]); + for (j = 0; j < ulsch_harq->TBS >> 3; j++) + LOG_T (PHY, "%x.", ulsch->harq_processes[harq_pid]->b[j]); - LOG_T(PHY,"\n"); + LOG_T (PHY, "\n"); #endif #endif - } // ulsch not in error + } // ulsch not in error - if (ulsch_harq->O_ACK>0) fill_ulsch_harq_indication(eNB,ulsch_harq,ulsch->rnti,frame,subframe,ulsch->bundling); + if (ulsch_harq->O_ACK > 0) + fill_ulsch_harq_indication (eNB, ulsch_harq, ulsch->rnti, frame, subframe, ulsch->bundling); - LOG_D(PHY,"[eNB %d] Frame %d subframe %d: received ULSCH harq_pid %d for UE %d, ret = %d, CQI CRC Status %d, ACK %d,%d, ulsch_errors %d/%d\n", - eNB->Mod_id,frame,subframe, - harq_pid, - i, - ret, - ulsch_harq->cqi_crc_status, - ulsch_harq->o_ACK[0], - ulsch_harq->o_ACK[1], - eNB->UE_stats[i].ulsch_errors[harq_pid], - eNB->UE_stats[i].ulsch_decoding_attempts[harq_pid][0]); - } // if ((ulsch) && - // (ulsch->rnti>0) && - // (ulsch_harq->status == ACTIVE)) - else if ((ulsch) && - (ulsch->rnti>0) && - (ulsch_harq->status == ACTIVE) && - (ulsch_harq->frame == frame) && - (ulsch_harq->subframe == subframe) && - (ulsch_harq->handled == 1)) { + LOG_D (PHY, "[eNB %d] Frame %d subframe %d: received ULSCH harq_pid %d for UE %d, ret = %d, CQI CRC Status %d, ACK %d,%d, ulsch_errors %d/%d\n", + eNB->Mod_id, frame, subframe, + harq_pid, i, ret, ulsch_harq->cqi_crc_status, ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1], eNB->UE_stats[i].ulsch_errors[harq_pid], eNB->UE_stats[i].ulsch_decoding_attempts[harq_pid][0]); + } // if ((ulsch) && + // (ulsch->rnti>0) && + // (ulsch_harq->status == ACTIVE)) + else if ((ulsch) && (ulsch->rnti > 0) && (ulsch_harq->status == ACTIVE) && (ulsch_harq->frame == frame) && (ulsch_harq->subframe == subframe) && (ulsch_harq->handled == 1)) { // this harq process is stale, kill it, this 1024 frames later (10s), consider reducing that ulsch_harq->status = SCH_IDLE; ulsch_harq->handled = 0; - ulsch->harq_mask &= ~(1 << harq_pid); - LOG_W(PHY,"Removing stale ULSCH config for UE %x harq_pid %d (harq_mask is now 0x%2.2x)\n", - ulsch->rnti, harq_pid, ulsch->harq_mask); + ulsch->harq_mask &= ~(1 << harq_pid); + LOG_W (PHY, "Removing stale ULSCH config for UE %x harq_pid %d (harq_mask is now 0x%2.2x)\n", ulsch->rnti, harq_pid, ulsch->harq_mask); } - } // for (i=0; iproc; + eNB_proc_t *proc = &eNB->proc; proc->tdp.eNB = eNB; - proc->instance_cnt_td = -1; - - pthread_mutex_init( &proc->mutex_td, NULL); - pthread_cond_init( &proc->cond_td, NULL); + proc->instance_cnt_td = -1; - pthread_create(&proc->pthread_td, attr_td, td_thread, (void*)&proc->tdp); + pthread_mutex_init (&proc->mutex_td, NULL); + pthread_cond_init (&proc->cond_td, NULL); + + pthread_create (&proc->pthread_td, attr_td, td_thread, (void *) &proc->tdp); } -extern void *te_thread(void*); +extern void *te_thread (void *); -void init_te_thread(PHY_VARS_eNB *eNB,pthread_attr_t *attr_te) { +void +init_te_thread (PHY_VARS_eNB * eNB, pthread_attr_t * attr_te) +{ - eNB_proc_t *proc = &eNB->proc; + eNB_proc_t *proc = &eNB->proc; proc->tep.eNB = eNB; - proc->instance_cnt_te = -1; - - pthread_mutex_init( &proc->mutex_te, NULL); - pthread_cond_init( &proc->cond_te, NULL); + proc->instance_cnt_te = -1; - printf("Creating te_thread\n"); - pthread_create(&proc->pthread_te, attr_te, te_thread, (void*)&proc->tep); + pthread_mutex_init (&proc->mutex_te, NULL); + pthread_cond_init (&proc->cond_te, NULL); + + printf ("Creating te_thread\n"); + pthread_create (&proc->pthread_te, attr_te, te_thread, (void *) &proc->tep); } -void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe) +void +fill_rx_indication (PHY_VARS_eNB * eNB, int UE_id, int frame, int subframe) { nfapi_rx_indication_pdu_t *pdu; - int timing_advance_update; - int sync_pos; + int timing_advance_update; + int sync_pos; - uint32_t harq_pid = subframe2harq_pid(&eNB->frame_parms, - frame,subframe); + uint32_t harq_pid = subframe2harq_pid (&eNB->frame_parms, + frame, subframe); - pthread_mutex_lock(&eNB->UL_INFO_mutex); - pdu = &eNB->UL_INFO.rx_ind.rx_pdu_list[eNB->UL_INFO.rx_ind.number_of_pdus]; + pthread_mutex_lock (&eNB->UL_INFO_mutex); + pdu = &eNB->UL_INFO.rx_ind.rx_pdu_list[eNB->UL_INFO.rx_ind.number_of_pdus]; // pdu->rx_ue_information.handle = eNB->ulsch[UE_id]->handle; - pdu->rx_ue_information.rnti = eNB->ulsch[UE_id]->rnti; - pdu->rx_indication_rel8.length = eNB->ulsch[UE_id]->harq_processes[harq_pid]->TBS>>3; - pdu->rx_indication_rel8.offset = 0; // filled in at the end of the UL_INFO formation - pdu->data = eNB->ulsch[UE_id]->harq_processes[harq_pid]->b; + pdu->rx_ue_information.rnti = eNB->ulsch[UE_id]->rnti; + pdu->rx_indication_rel8.length = eNB->ulsch[UE_id]->harq_processes[harq_pid]->TBS >> 3; + pdu->rx_indication_rel8.offset = 0; // filled in at the end of the UL_INFO formation + pdu->data = eNB->ulsch[UE_id]->harq_processes[harq_pid]->b; // estimate timing advance for MAC - sync_pos = lte_est_timing_advance_pusch(eNB,UE_id); - timing_advance_update = sync_pos - eNB->frame_parms.nb_prefix_samples/4; //to check + sync_pos = lte_est_timing_advance_pusch (eNB, UE_id); + timing_advance_update = sync_pos - eNB->frame_parms.nb_prefix_samples / 4; //to check // if (timing_advance_update > 10) { dump_ulsch(eNB,frame,subframe,UE_id); exit(-1);} // if (timing_advance_update < -10) { dump_ulsch(eNB,frame,subframe,UE_id); exit(-1);} switch (eNB->frame_parms.N_RB_DL) { - case 6: /* nothing to do */ break; - case 15: timing_advance_update /= 2; break; - case 25: timing_advance_update /= 4; break; - case 50: timing_advance_update /= 8; break; - case 75: timing_advance_update /= 12; break; - case 100: timing_advance_update /= 16; break; - default: abort(); + case 6: /* nothing to do */ + break; + case 15: + timing_advance_update /= 2; + break; + case 25: + timing_advance_update /= 4; + break; + case 50: + timing_advance_update /= 8; + break; + case 75: + timing_advance_update /= 12; + break; + case 100: + timing_advance_update /= 16; + break; + default: + abort (); } // put timing advance command in 0..63 range timing_advance_update += 31; - if (timing_advance_update < 0) timing_advance_update = 0; - if (timing_advance_update > 63) timing_advance_update = 63; + if (timing_advance_update < 0) + timing_advance_update = 0; + if (timing_advance_update > 63) + timing_advance_update = 63; pdu->rx_indication_rel8.timing_advance = timing_advance_update; // estimate UL_CQI for MAC (from antenna port 0 only) - int SNRtimes10 = dB_fixed_times10(eNB->pusch_vars[UE_id]->ulsch_power[0]) - - 10*max(eNB->measurements.n0_subband_power_tot_dB[0], - eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); + int SNRtimes10 = dB_fixed_times10 (eNB->pusch_vars[UE_id]->ulsch_power[0]) - 10 * max (eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL - 1]); - if (SNRtimes10 < -640) pdu->rx_indication_rel8.ul_cqi=0; - else if (SNRtimes10 > 635) pdu->rx_indication_rel8.ul_cqi=255; - else pdu->rx_indication_rel8.ul_cqi=(640+SNRtimes10)/5; + if (SNRtimes10 < -640) + pdu->rx_indication_rel8.ul_cqi = 0; + else if (SNRtimes10 > 635) + pdu->rx_indication_rel8.ul_cqi = 255; + else + pdu->rx_indication_rel8.ul_cqi = (640 + SNRtimes10) / 5; - LOG_D(PHY,"[PUSCH %d] Filling RX_indication with SNR %d (%d), timing_advance %d (update %d)\n", - harq_pid,SNRtimes10,pdu->rx_indication_rel8.ul_cqi,pdu->rx_indication_rel8.timing_advance, - timing_advance_update); + LOG_D (PHY, "[PUSCH %d] Filling RX_indication with SNR %d (%d), timing_advance %d (update %d)\n", + harq_pid, SNRtimes10, pdu->rx_indication_rel8.ul_cqi, pdu->rx_indication_rel8.timing_advance, timing_advance_update); eNB->UL_INFO.rx_ind.number_of_pdus++; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); } -void release_harq(PHY_VARS_eNB *eNB,int UE_id,int tb,uint16_t frame,uint8_t subframe,uint16_t mask) { +void +release_harq (PHY_VARS_eNB * eNB, int UE_id, int tb, uint16_t frame, uint8_t subframe, uint16_t mask) +{ - LTE_eNB_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; - LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; - int harq_pid; - int subframe_tx; - int M,m; + LTE_eNB_DLSCH_t *dlsch0 = NULL, *dlsch1 = NULL; + LTE_DL_eNB_HARQ_t *dlsch0_harq = NULL, *dlsch1_harq = NULL; + int harq_pid; + int subframe_tx; + int M, m; - AssertFatal(UE_id!=-1,"no existing dlsch context\n"); - AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); + AssertFatal (UE_id != -1, "no existing dlsch context\n"); + AssertFatal (UE_id < NUMBER_OF_UE_MAX, "returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n", UE_id, NUMBER_OF_UE_MAX); dlsch0 = eNB->dlsch[UE_id][0]; dlsch1 = eNB->dlsch[UE_id][1]; - if (eNB->frame_parms.frame_type == FDD) { - subframe_tx = (subframe+6)%10; + if (eNB->frame_parms.frame_type == FDD) { + subframe_tx = (subframe + 6) % 10; harq_pid = dlsch0->harq_ids[subframe_tx]; - AssertFatal((harq_pid>=0) && (harq_pid<10),"harq_pid %d not in 0...9\n",harq_pid); - dlsch0_harq = dlsch0->harq_processes[harq_pid]; - dlsch1_harq = dlsch1->harq_processes[harq_pid]; - AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n"); + AssertFatal ((harq_pid >= 0) && (harq_pid < 10), "harq_pid %d not in 0...9\n", harq_pid); + dlsch0_harq = dlsch0->harq_processes[harq_pid]; + dlsch1_harq = dlsch1->harq_processes[harq_pid]; + AssertFatal (dlsch0_harq != NULL, "dlsch0_harq is null\n"); dlsch0_harq->status = SCH_IDLE; /*if ((dlsch1_harq == NULL)|| - ((dlsch1_harq!=NULL)&& - (dlsch1_harq->status == SCH_IDLE)))*/ - dlsch0->harq_mask &= ~(1<rnti); + ((dlsch1_harq!=NULL)&& + (dlsch1_harq->status == SCH_IDLE))) */ + dlsch0->harq_mask &= ~(1 << harq_pid); + LOG_D (PHY, "Frame %d, subframe %d: Releasing harq %d for UE %x\n", frame, subframe, harq_pid, dlsch0->rnti); - } - else { // release all processes in the bundle that was acked, based on mask - // This is at most 4 for multiplexing and 9 for bundling/special bundling - M=ul_ACK_subframe2_M(&eNB->frame_parms, - subframe); + } else { // release all processes in the bundle that was acked, based on mask + // This is at most 4 for multiplexing and 9 for bundling/special bundling + M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe); - for (m=0; mframe_parms, - subframe, - m); - if (((1< 0) { - harq_pid = dlsch0->harq_ids[subframe_tx]; - if ((harq_pid>=0) && (harq_pid<10)) { - dlsch0_harq = dlsch0->harq_processes[harq_pid]; - dlsch1_harq = dlsch1->harq_processes[harq_pid]; - AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n"); - - dlsch0_harq->status = SCH_IDLE; - if ((dlsch1_harq == NULL)|| - ((dlsch1_harq!=NULL)&& - (dlsch1_harq->status == SCH_IDLE))) - dlsch0->harq_mask &= ~(1<frame_parms, subframe, m); + if (((1 << m) & mask) > 0) { + harq_pid = dlsch0->harq_ids[subframe_tx]; + if ((harq_pid >= 0) && (harq_pid < 10)) { + dlsch0_harq = dlsch0->harq_processes[harq_pid]; + dlsch1_harq = dlsch1->harq_processes[harq_pid]; + AssertFatal (dlsch0_harq != NULL, "dlsch0_harq is null\n"); + + dlsch0_harq->status = SCH_IDLE; + if ((dlsch1_harq == NULL) || ((dlsch1_harq != NULL) && (dlsch1_harq->status == SCH_IDLE))) + dlsch0->harq_mask &= ~(1 << harq_pid); + } } } } } -int getM(PHY_VARS_eNB *eNB,int frame,int subframe) { +int +getM (PHY_VARS_eNB * eNB, int frame, int subframe) +{ - int M,Mtx=0; - LTE_eNB_DLSCH_t *dlsch0=NULL,*dlsch1=NULL; - LTE_DL_eNB_HARQ_t *dlsch0_harq=NULL,*dlsch1_harq=NULL; - int harq_pid; - int subframe_tx; - int m; + int M, Mtx = 0; + LTE_eNB_DLSCH_t *dlsch0 = NULL, *dlsch1 = NULL; + LTE_DL_eNB_HARQ_t *dlsch0_harq = NULL, *dlsch1_harq = NULL; + int harq_pid; + int subframe_tx; + int m; - M=ul_ACK_subframe2_M(&eNB->frame_parms, - subframe); - - for (m=0; mframe_parms, - subframe, - m); + M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe); + + for (m = 0; m < M; m++) { + subframe_tx = ul_ACK_subframe2_dl_subframe (&eNB->frame_parms, subframe, m); harq_pid = dlsch0->harq_ids[subframe_tx]; - if (harq_pid>=0 && harq_pid<10) { - dlsch0_harq = dlsch0->harq_processes[harq_pid]; - dlsch1_harq = dlsch1->harq_processes[harq_pid]; - AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n"); - if (dlsch0_harq->status == ACTIVE|| - (dlsch1_harq!=NULL && dlsch1_harq->status == ACTIVE)) Mtx ++; + if (harq_pid >= 0 && harq_pid < 10) { + dlsch0_harq = dlsch0->harq_processes[harq_pid]; + dlsch1_harq = dlsch1->harq_processes[harq_pid]; + AssertFatal (dlsch0_harq != NULL, "dlsch0_harq is null\n"); + if (dlsch0_harq->status == ACTIVE || (dlsch1_harq != NULL && dlsch1_harq->status == ACTIVE)) + Mtx++; } } - return(Mtx); + return (Mtx); } -void fill_ulsch_cqi_indication(PHY_VARS_eNB *eNB,uint16_t frame,uint8_t subframe,LTE_UL_eNB_HARQ_t *ulsch_harq,uint16_t rnti) { +void +fill_ulsch_cqi_indication (PHY_VARS_eNB * eNB, uint16_t frame, uint8_t subframe, LTE_UL_eNB_HARQ_t * ulsch_harq, uint16_t rnti) +{ - pthread_mutex_lock(&eNB->UL_INFO_mutex); - nfapi_cqi_indication_pdu_t *pdu = &eNB->UL_INFO.cqi_ind.cqi_pdu_list[eNB->UL_INFO.cqi_ind.number_of_cqis]; + pthread_mutex_lock (&eNB->UL_INFO_mutex); + nfapi_cqi_indication_pdu_t *pdu = &eNB->UL_INFO.cqi_ind.cqi_pdu_list[eNB->UL_INFO.cqi_ind.number_of_cqis]; nfapi_cqi_indication_raw_pdu_t *raw_pdu = &eNB->UL_INFO.cqi_ind.cqi_raw_pdu_list[eNB->UL_INFO.cqi_ind.number_of_cqis]; pdu->rx_ue_information.rnti = rnti; - if (ulsch_harq->cqi_crc_status != 1) pdu->cqi_indication_rel9.data_offset = 0; - else pdu->cqi_indication_rel9.data_offset = 1; // fill in after all cqi_indications have been generated when non-zero + if (ulsch_harq->cqi_crc_status != 1) + pdu->cqi_indication_rel9.data_offset = 0; + else + pdu->cqi_indication_rel9.data_offset = 1; // fill in after all cqi_indications have been generated when non-zero // by default set O to rank 1 value - pdu->cqi_indication_rel9.length = (ulsch_harq->Or1>>3) + ((ulsch_harq->Or1&7) > 0 ? 1 : 0); - pdu->cqi_indication_rel9.ri[0] = 0; + pdu->cqi_indication_rel9.length = (ulsch_harq->Or1 >> 3) + ((ulsch_harq->Or1 & 7) > 0 ? 1 : 0); + pdu->cqi_indication_rel9.ri[0] = 0; // if we have RI bits, set them and if rank2 overwrite O - if (ulsch_harq->O_RI>0) { + if (ulsch_harq->O_RI > 0) { pdu->cqi_indication_rel9.ri[0] = ulsch_harq->o_RI[0]; - if (ulsch_harq->o_RI[0] == 2) pdu->cqi_indication_rel9.length = (ulsch_harq->Or2>>3) + ((ulsch_harq->Or2&7) > 0 ? 1 : 0); + if (ulsch_harq->o_RI[0] == 2) + pdu->cqi_indication_rel9.length = (ulsch_harq->Or2 >> 3) + ((ulsch_harq->Or2 & 7) > 0 ? 1 : 0); pdu->cqi_indication_rel9.timing_advance = 0; } - + pdu->cqi_indication_rel9.number_of_cc_reported = 1; - pdu->ul_cqi_information.channel = 1; // PUSCH - memcpy((void*)raw_pdu->pdu,ulsch_harq->o,pdu->cqi_indication_rel9.length); + pdu->ul_cqi_information.channel = 1; // PUSCH + memcpy ((void *) raw_pdu->pdu, ulsch_harq->o, pdu->cqi_indication_rel9.length); eNB->UL_INFO.cqi_ind.number_of_cqis++; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); } -void fill_ulsch_harq_indication(PHY_VARS_eNB *eNB,LTE_UL_eNB_HARQ_t *ulsch_harq,uint16_t rnti, int frame,int subframe,int bundling) +void +fill_ulsch_harq_indication (PHY_VARS_eNB * eNB, LTE_UL_eNB_HARQ_t * ulsch_harq, uint16_t rnti, int frame, int subframe, int bundling) { - int UE_id = find_dlsch(rnti,eNB,SEARCH_EXIST); - AssertFatal(UE_id>=0,"UE_id doesn't exist\n"); + int UE_id = find_dlsch (rnti, eNB, SEARCH_EXIST); + AssertFatal (UE_id >= 0, "UE_id doesn't exist\n"); - pthread_mutex_lock(&eNB->UL_INFO_mutex); - nfapi_harq_indication_pdu_t *pdu = &eNB->UL_INFO.harq_ind.harq_pdu_list[eNB->UL_INFO.harq_ind.number_of_harqs]; - int M; - int i; + pthread_mutex_lock (&eNB->UL_INFO_mutex); + nfapi_harq_indication_pdu_t *pdu = &eNB->UL_INFO.harq_ind.harq_pdu_list[eNB->UL_INFO.harq_ind.number_of_harqs]; + int M; + int i; - pdu->instance_length = 0; // don't know what to do with this + pdu->instance_length = 0; // don't know what to do with this // pdu->rx_ue_information.handle = handle; - pdu->rx_ue_information.rnti = rnti; + pdu->rx_ue_information.rnti = rnti; if (eNB->frame_parms.frame_type == FDD) { pdu->harq_indication_fdd_rel13.mode = 0; pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; - for (i=0;iO_ACK;i++) { - AssertFatal(ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n",i,ulsch_harq->o_ACK[i]); + for (i = 0; i < ulsch_harq->O_ACK; i++) { + AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]); - pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 2-ulsch_harq->o_ACK[i]; + pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 2 - ulsch_harq->o_ACK[i]; // release DLSCH if needed - if (ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,i,frame,subframe,0xffff); + if (ulsch_harq->o_ACK[i] == 1) + release_harq (eNB, UE_id, i, frame, subframe, 0xffff); #if T_TRACER /* TODO: get correct harq pid */ if (ulsch_harq->o_ACK[i] != 1) - T(T_ENB_PHY_DLSCH_UE_NACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); + T (T_ENB_PHY_DLSCH_UE_NACK, T_INT (0), T_INT (frame), T_INT (subframe), T_INT (rnti), T_INT (eNB->dlsch[UE_id][0]->harq_ids[(subframe + 6) % 10])); else - T(T_ENB_PHY_DLSCH_UE_ACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); + T (T_ENB_PHY_DLSCH_UE_ACK, T_INT (0), T_INT (frame), T_INT (subframe), T_INT (rnti), T_INT (eNB->dlsch[UE_id][0]->harq_ids[(subframe + 6) % 10])); #endif } - } - else { // TDD - M=ul_ACK_subframe2_M(&eNB->frame_parms, - subframe); + } else { // TDD + M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe); - pdu->harq_indication_fdd_rel13.mode = 1-bundling; + pdu->harq_indication_fdd_rel13.mode = 1 - bundling; pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; - for (i=0;iO_ACK;i++) { - AssertFatal(ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n",i,ulsch_harq->o_ACK[i]); + for (i = 0; i < ulsch_harq->O_ACK; i++) { + AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]); - pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = 2-ulsch_harq->o_ACK[i]; + pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = 2 - ulsch_harq->o_ACK[i]; // release DLSCH if needed - if (ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,i,frame,subframe,0xffff); - if (M==1 && ulsch_harq->O_ACK==1 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); - else if (M==1 && ulsch_harq->O_ACK==2 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,i,frame,subframe,0xffff); - else if (M>1 && ulsch_harq->o_ACK[i] == 1) { - // spatial bundling - release_harq(eNB,UE_id,0,frame,subframe,1<o_ACK[i] == 1) + release_harq (eNB, UE_id, i, frame, subframe, 0xffff); + if (M == 1 && ulsch_harq->O_ACK == 1 && ulsch_harq->o_ACK[i] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + else if (M == 1 && ulsch_harq->O_ACK == 2 && ulsch_harq->o_ACK[i] == 1) + release_harq (eNB, UE_id, i, frame, subframe, 0xffff); + else if (M > 1 && ulsch_harq->o_ACK[i] == 1) { + // spatial bundling + release_harq (eNB, UE_id, 0, frame, subframe, 1 << i); + release_harq (eNB, UE_id, 1, frame, subframe, 1 << i); } - } + } } eNB->UL_INFO.harq_ind.number_of_harqs++; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); } -void fill_uci_harq_indication(PHY_VARS_eNB *eNB, - LTE_eNB_UCI *uci, - int frame, - int subframe, - uint8_t *harq_ack, - uint8_t tdd_mapping_mode, - uint16_t tdd_multiplexing_mask) { +void +fill_uci_harq_indication (PHY_VARS_eNB * eNB, LTE_eNB_UCI * uci, int frame, int subframe, uint8_t * harq_ack, uint8_t tdd_mapping_mode, uint16_t tdd_multiplexing_mask) +{ - int UE_id=find_dlsch(uci->rnti,eNB,SEARCH_EXIST); - AssertFatal(UE_id>=0,"UE_id doesn't exist\n"); + int UE_id = find_dlsch (uci->rnti, eNB, SEARCH_EXIST); + AssertFatal (UE_id >= 0, "UE_id doesn't exist\n"); - pthread_mutex_lock(&eNB->UL_INFO_mutex); - nfapi_harq_indication_pdu_t *pdu = &eNB->UL_INFO.harq_ind.harq_pdu_list[eNB->UL_INFO.harq_ind.number_of_harqs]; + pthread_mutex_lock (&eNB->UL_INFO_mutex); + nfapi_harq_indication_pdu_t *pdu = &eNB->UL_INFO.harq_ind.harq_pdu_list[eNB->UL_INFO.harq_ind.number_of_harqs]; - pdu->instance_length = 0; // don't know what to do with this + pdu->instance_length = 0; // don't know what to do with this // pdu->rx_ue_information.handle = handle; - pdu->rx_ue_information.rnti = uci->rnti; + pdu->rx_ue_information.rnti = uci->rnti; // estimate UL_CQI for MAC (from antenna port 0 only) - int SNRtimes10 = dB_fixed_times10(uci->stat) - 10*max(eNB->measurements.n0_subband_power_tot_dB[0], - eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL-1]); + int SNRtimes10 = dB_fixed_times10 (uci->stat) - 10 * max (eNB->measurements.n0_subband_power_tot_dB[0], + eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL - 1]); - if (SNRtimes10 < -100) LOG_I(PHY,"uci->stat %d \n",uci->stat); + if (SNRtimes10 < -100) + LOG_I (PHY, "uci->stat %d \n", uci->stat); - if (SNRtimes10 < -640) pdu->ul_cqi_information.ul_cqi=0; - else if (SNRtimes10 > 635) pdu->ul_cqi_information.ul_cqi=255; - else pdu->ul_cqi_information.ul_cqi=(640+SNRtimes10)/5; + if (SNRtimes10 < -640) + pdu->ul_cqi_information.ul_cqi = 0; + else if (SNRtimes10 > 635) + pdu->ul_cqi_information.ul_cqi = 255; + else + pdu->ul_cqi_information.ul_cqi = (640 + SNRtimes10) / 5; pdu->ul_cqi_information.channel = 0; if (eNB->frame_parms.frame_type == FDD) { if (uci->pucch_fmt == pucch_format1a) { - pdu->harq_indication_fdd_rel13.mode = 0; + pdu->harq_indication_fdd_rel13.mode = 0; pdu->harq_indication_fdd_rel13.number_of_ack_nack = 1; - - AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]); + + AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n", harq_ack[0]); pdu->harq_indication_fdd_rel13.harq_tb_n[0] = harq_ack[0]; // release DLSCH if needed - if (harq_ack[0] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); + if (harq_ack[0] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); #if T_TRACER if (harq_ack[0] != 1) - T(T_ENB_PHY_DLSCH_UE_NACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(uci->rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); + T (T_ENB_PHY_DLSCH_UE_NACK, T_INT (0), T_INT (frame), T_INT (subframe), T_INT (uci->rnti), T_INT (eNB->dlsch[UE_id][0]->harq_ids[(subframe + 6) % 10])); else - T(T_ENB_PHY_DLSCH_UE_ACK, T_INT(0), T_INT(frame), T_INT(subframe), - T_INT(uci->rnti), T_INT(eNB->dlsch[UE_id][0]->harq_ids[(subframe+6)%10])); + T (T_ENB_PHY_DLSCH_UE_ACK, T_INT (0), T_INT (frame), T_INT (subframe), T_INT (uci->rnti), T_INT (eNB->dlsch[UE_id][0]->harq_ids[(subframe + 6) % 10])); #endif - } - else if (uci->pucch_fmt == pucch_format1b) { - pdu->harq_indication_fdd_rel13.mode = 0; + } else if (uci->pucch_fmt == pucch_format1b) { + pdu->harq_indication_fdd_rel13.mode = 0; pdu->harq_indication_fdd_rel13.number_of_ack_nack = 2; - AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n",harq_ack[0]); - AssertFatal(harq_ack[1] == 1 || harq_ack[1] == 2 || harq_ack[1] == 4, "harq_ack[1] is %d, should be 0,1 or 4\n",harq_ack[1]); + AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n", harq_ack[0]); + AssertFatal (harq_ack[1] == 1 || harq_ack[1] == 2 || harq_ack[1] == 4, "harq_ack[1] is %d, should be 0,1 or 4\n", harq_ack[1]); pdu->harq_indication_fdd_rel13.harq_tb_n[0] = harq_ack[0]; - pdu->harq_indication_fdd_rel13.harq_tb_n[1] = harq_ack[1]; + pdu->harq_indication_fdd_rel13.harq_tb_n[1] = harq_ack[1]; // release DLSCH if needed - if (harq_ack[0] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); - if (harq_ack[1] == 1) release_harq(eNB,UE_id,1,frame,subframe,0xffff); - } - else AssertFatal(1==0,"only format 1a/b for now, received %d\n",uci->pucch_fmt); - } - else { // TDD + if (harq_ack[0] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + if (harq_ack[1] == 1) + release_harq (eNB, UE_id, 1, frame, subframe, 0xffff); + } else + AssertFatal (1 == 0, "only format 1a/b for now, received %d\n", uci->pucch_fmt); + } else { // TDD - AssertFatal(tdd_mapping_mode==0 || tdd_mapping_mode==1 || tdd_mapping_mode==2, - "Illegal tdd_mapping_mode %d\n",tdd_mapping_mode); + AssertFatal (tdd_mapping_mode == 0 || tdd_mapping_mode == 1 || tdd_mapping_mode == 2, "Illegal tdd_mapping_mode %d\n", tdd_mapping_mode); - pdu->harq_indication_tdd_rel13.mode = tdd_mapping_mode; + pdu->harq_indication_tdd_rel13.mode = tdd_mapping_mode; switch (tdd_mapping_mode) { - case 0: // bundling + case 0: // bundling if (uci->pucch_fmt == pucch_format1a) { - pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; - AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]); - pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0]; - // release all bundled DLSCH if needed - if (harq_ack[0] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); - } - else if (uci->pucch_fmt == pucch_format1b) { - pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2; - AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n",harq_ack[0]); - AssertFatal(harq_ack[1] == 1 || harq_ack[1] == 2 || harq_ack[1] == 4, "harq_ack[1] is %d, should be 0,1 or 4\n",harq_ack[1]); - pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0]; - pdu->harq_indication_tdd_rel13.harq_data[1].bundling.value_0 = harq_ack[1]; - // release all DLSCH if needed - if (harq_ack[0] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); - if (harq_ack[1] == 1) release_harq(eNB,UE_id,1,frame,subframe,0xffff); + pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; + AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n", harq_ack[0]); + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0]; + // release all bundled DLSCH if needed + if (harq_ack[0] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + } else if (uci->pucch_fmt == pucch_format1b) { + pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2; + AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n", harq_ack[0]); + AssertFatal (harq_ack[1] == 1 || harq_ack[1] == 2 || harq_ack[1] == 4, "harq_ack[1] is %d, should be 0,1 or 4\n", harq_ack[1]); + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = harq_ack[0]; + pdu->harq_indication_tdd_rel13.harq_data[1].bundling.value_0 = harq_ack[1]; + // release all DLSCH if needed + if (harq_ack[0] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + if (harq_ack[1] == 1) + release_harq (eNB, UE_id, 1, frame, subframe, 0xffff); } break; - case 1: // multiplexing - AssertFatal(uci->pucch_fmt == pucch_format1b,"uci->pucch_format %d is not format1b\n",uci->pucch_fmt); - - if (uci->num_pucch_resources == 1 && uci->pucch_fmt == pucch_format1a) { - pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; - AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n",harq_ack[0]); - pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0]; - // release all DLSCH if needed - if (harq_ack[0] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); - } - else if (uci->num_pucch_resources == 1 && uci->pucch_fmt == pucch_format1b) { - pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2; - AssertFatal(harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n",harq_ack[0]); - AssertFatal(harq_ack[1] == 1 || harq_ack[1] == 2 || harq_ack[1] == 4, "harq_ack[1] is %d, should be 0,1 or 4\n",harq_ack[1]); - pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0]; - pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1]; - // release all DLSCH if needed - if (harq_ack[0] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff); - if (harq_ack[1] == 1) release_harq(eNB,UE_id,1,frame,subframe,0xffff); - } - else { // num_pucch_resources (M) > 1 - pdu->harq_indication_tdd_rel13.number_of_ack_nack = uci->num_pucch_resources; + case 1: // multiplexing + AssertFatal (uci->pucch_fmt == pucch_format1b, "uci->pucch_format %d is not format1b\n", uci->pucch_fmt); - pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0]; - pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1]; - if (uci->num_pucch_resources == 3) pdu->harq_indication_tdd_rel13.harq_data[2].multiplex.value_0 = harq_ack[2]; - if (uci->num_pucch_resources == 4) pdu->harq_indication_tdd_rel13.harq_data[3].multiplex.value_0 = harq_ack[3]; - // spatial-bundling in this case so release both HARQ if necessary - release_harq(eNB,UE_id,0,frame,subframe,tdd_multiplexing_mask); - release_harq(eNB,UE_id,1,frame,subframe,tdd_multiplexing_mask); + if (uci->num_pucch_resources == 1 && uci->pucch_fmt == pucch_format1a) { + pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; + AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[0] == 4, "harq_ack[0] is %d, should be 1,2 or 4\n", harq_ack[0]); + pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0]; + // release all DLSCH if needed + if (harq_ack[0] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + } else if (uci->num_pucch_resources == 1 && uci->pucch_fmt == pucch_format1b) { + pdu->harq_indication_tdd_rel13.number_of_ack_nack = 2; + AssertFatal (harq_ack[0] == 1 || harq_ack[0] == 2 || harq_ack[1] == 4, "harq_ack[0] is %d, should be 0,1 or 4\n", harq_ack[0]); + AssertFatal (harq_ack[1] == 1 || harq_ack[1] == 2 || harq_ack[1] == 4, "harq_ack[1] is %d, should be 0,1 or 4\n", harq_ack[1]); + pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0]; + pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1]; + // release all DLSCH if needed + if (harq_ack[0] == 1) + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + if (harq_ack[1] == 1) + release_harq (eNB, UE_id, 1, frame, subframe, 0xffff); + } else { // num_pucch_resources (M) > 1 + pdu->harq_indication_tdd_rel13.number_of_ack_nack = uci->num_pucch_resources; + + pdu->harq_indication_tdd_rel13.harq_data[0].multiplex.value_0 = harq_ack[0]; + pdu->harq_indication_tdd_rel13.harq_data[1].multiplex.value_0 = harq_ack[1]; + if (uci->num_pucch_resources == 3) + pdu->harq_indication_tdd_rel13.harq_data[2].multiplex.value_0 = harq_ack[2]; + if (uci->num_pucch_resources == 4) + pdu->harq_indication_tdd_rel13.harq_data[3].multiplex.value_0 = harq_ack[3]; + // spatial-bundling in this case so release both HARQ if necessary + release_harq (eNB, UE_id, 0, frame, subframe, tdd_multiplexing_mask); + release_harq (eNB, UE_id, 1, frame, subframe, tdd_multiplexing_mask); } break; - case 2: // special bundling (SR collision) + case 2: // special bundling (SR collision) pdu->harq_indication_tdd_rel13.number_of_ack_nack = 1; - int tdd_config5_sf2scheds=0; - if (eNB->frame_parms.tdd_config==5) tdd_config5_sf2scheds = getM(eNB,frame,subframe); - + int tdd_config5_sf2scheds = 0; + if (eNB->frame_parms.tdd_config == 5) + tdd_config5_sf2scheds = getM (eNB, frame, subframe); + switch (harq_ack[0]) { case 0: - break; - case 1: // check if M=1,4,7 - if (uci->num_pucch_resources == 1 || uci->num_pucch_resources == 4 || - tdd_config5_sf2scheds == 1 || tdd_config5_sf2scheds == 4 || tdd_config5_sf2scheds == 7) { - release_harq(eNB,UE_id,0,frame,subframe,0xffff); - release_harq(eNB,UE_id,1,frame,subframe,0xffff); - } - break; - case 2: // check if M=2,5,8 - if (uci->num_pucch_resources == 2 || tdd_config5_sf2scheds == 2 || - tdd_config5_sf2scheds == 5 || tdd_config5_sf2scheds == 8) { - release_harq(eNB,UE_id,0,frame,subframe,0xffff); - release_harq(eNB,UE_id,1,frame,subframe,0xffff); - } - break; - case 3: // check if M=3,6,9 - if (uci->num_pucch_resources == 3 || tdd_config5_sf2scheds == 3 || - tdd_config5_sf2scheds == 6 || tdd_config5_sf2scheds == 9) { - release_harq(eNB,UE_id,0,frame,subframe,0xffff); - release_harq(eNB,UE_id,1,frame,subframe,0xffff); - } - break; + break; + case 1: // check if M=1,4,7 + if (uci->num_pucch_resources == 1 || uci->num_pucch_resources == 4 || tdd_config5_sf2scheds == 1 || tdd_config5_sf2scheds == 4 || tdd_config5_sf2scheds == 7) { + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + release_harq (eNB, UE_id, 1, frame, subframe, 0xffff); + } + break; + case 2: // check if M=2,5,8 + if (uci->num_pucch_resources == 2 || tdd_config5_sf2scheds == 2 || tdd_config5_sf2scheds == 5 || tdd_config5_sf2scheds == 8) { + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + release_harq (eNB, UE_id, 1, frame, subframe, 0xffff); + } + break; + case 3: // check if M=3,6,9 + if (uci->num_pucch_resources == 3 || tdd_config5_sf2scheds == 3 || tdd_config5_sf2scheds == 6 || tdd_config5_sf2scheds == 9) { + release_harq (eNB, UE_id, 0, frame, subframe, 0xffff); + release_harq (eNB, UE_id, 1, frame, subframe, 0xffff); + } + break; } break; } - } //TDD + } //TDD eNB->UL_INFO.harq_ind.number_of_harqs++; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); } -void fill_crc_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe,uint8_t crc_flag) { +void +fill_crc_indication (PHY_VARS_eNB * eNB, int UE_id, int frame, int subframe, uint8_t crc_flag) +{ - pthread_mutex_lock(&eNB->UL_INFO_mutex); - nfapi_crc_indication_pdu_t *pdu = &eNB->UL_INFO.crc_ind.crc_pdu_list[eNB->UL_INFO.crc_ind.number_of_crcs]; + pthread_mutex_lock (&eNB->UL_INFO_mutex); + nfapi_crc_indication_pdu_t *pdu = &eNB->UL_INFO.crc_ind.crc_pdu_list[eNB->UL_INFO.crc_ind.number_of_crcs]; - pdu->instance_length = 0; // don't know what to do with this + pdu->instance_length = 0; // don't know what to do with this // pdu->rx_ue_information.handle = handle; - pdu->rx_ue_information.rnti = eNB->ulsch[UE_id]->rnti; - pdu->crc_indication_rel8.crc_flag = crc_flag; + pdu->rx_ue_information.rnti = eNB->ulsch[UE_id]->rnti; + pdu->crc_indication_rel8.crc_flag = crc_flag; eNB->UL_INFO.crc_ind.number_of_crcs++; - pthread_mutex_unlock(&eNB->UL_INFO_mutex); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); } -void phy_procedures_eNB_uespec_RX(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,const relaying_type_t r_type) +void +phy_procedures_eNB_uespec_RX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, const relaying_type_t r_type) { //RX processing for ue-specific resources (i - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; - const int subframe = proc->subframe_rx; - const int frame = proc->frame_rx; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + const int subframe = proc->subframe_rx; + const int frame = proc->frame_rx; - if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)!=SF_UL)) return; + if ((fp->frame_type == TDD) && (subframe_select (fp, subframe) != SF_UL)) + return; - T(T_ENB_PHY_UL_TICK, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe)); + T (T_ENB_PHY_UL_TICK, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe)); /* TODO: use correct rxdata */ - T(T_ENB_PHY_INPUT_SIGNAL, T_INT(eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(0), - T_BUFFER(&eNB->RU_list[0]->common.rxdata[0][subframe*eNB->frame_parms.samples_per_tti], - eNB->frame_parms.samples_per_tti * 4)); + T (T_ENB_PHY_INPUT_SIGNAL, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (0), + T_BUFFER (&eNB->RU_list[0]->common.rxdata[0][subframe * eNB->frame_parms.samples_per_tti], eNB->frame_parms.samples_per_tti * 4)); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC, 1 ); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC, 1); - LOG_D(PHY,"[eNB %d] Frame %d: Doing phy_procedures_eNB_uespec_RX(%d)\n",eNB->Mod_id,frame, subframe); + LOG_D (PHY, "[eNB %d] Frame %d: Doing phy_procedures_eNB_uespec_RX(%d)\n", eNB->Mod_id, frame, subframe); - eNB->rb_mask_ul[0]=0; - eNB->rb_mask_ul[1]=0; - eNB->rb_mask_ul[2]=0; - eNB->rb_mask_ul[3]=0; + eNB->rb_mask_ul[0] = 0; + eNB->rb_mask_ul[1] = 0; + eNB->rb_mask_ul[2] = 0; + eNB->rb_mask_ul[3] = 0; // Fix me here, these should be locked - eNB->UL_INFO.rx_ind.number_of_pdus = 0; + eNB->UL_INFO.rx_ind.number_of_pdus = 0; eNB->UL_INFO.crc_ind.number_of_crcs = 0; // Call SRS first since all others depend on presence of SRS or lack thereof - srs_procedures(eNB,proc); + srs_procedures (eNB, proc); eNB->first_run_I0_measurements = 0; - uci_procedures(eNB,proc); + uci_procedures (eNB, proc); - pusch_procedures(eNB,proc); + pusch_procedures (eNB, proc); - lte_eNB_I0_measurements(eNB, - subframe, - 0, - eNB->first_run_I0_measurements); + lte_eNB_I0_measurements (eNB, subframe, 0, eNB->first_run_I0_measurements); - int min_I0=1000,max_I0=0; - if ((frame==0) && (subframe==2)) { - for (int i=0;iframe_parms.N_RB_UL;i++) { - if (i==(eNB->frame_parms.N_RB_UL>>1) - 1) i+=2; - - if (eNB->measurements.n0_subband_power_tot_dB[i]measurements.n0_subband_power_tot_dB[i]; - if (eNB->measurements.n0_subband_power_tot_dB[i]>max_I0) max_I0 = eNB->measurements.n0_subband_power_tot_dB[i]; + int min_I0 = 1000, max_I0 = 0; + if ((frame == 0) && (subframe == 2)) { + for (int i = 0; i < eNB->frame_parms.N_RB_UL; i++) { + if (i == (eNB->frame_parms.N_RB_UL >> 1) - 1) + i += 2; + + if (eNB->measurements.n0_subband_power_tot_dB[i] < min_I0) + min_I0 = eNB->measurements.n0_subband_power_tot_dB[i]; + if (eNB->measurements.n0_subband_power_tot_dB[i] > max_I0) + max_I0 = eNB->measurements.n0_subband_power_tot_dB[i]; } - LOG_I(PHY,"max_I0 %d, min_I0 %d\n",max_I0,min_I0); + LOG_I (PHY, "max_I0 %d, min_I0 %d\n", max_I0, min_I0); } - - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC, 0 ); - stop_meas(&eNB->phy_proc_rx); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_ENB_RX_UESPEC, 0); + + stop_meas (&eNB->phy_proc_rx); } - - - - diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index a876dfe3eb..26df2ea9c9 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -55,180 +55,181 @@ #include "pdcp.h" #if defined(ENABLE_ITTI) -# include "intertask_interface.h" +#include "intertask_interface.h" #endif -#include "SIMULATION/TOOLS/defs.h" // for taus +#include "SIMULATION/TOOLS/defs.h" // for taus #include "T.h" -void add_msg3(module_id_t module_idP,int CC_id, RA_TEMPLATE *RA_template, frame_t frameP, sub_frame_t subframeP) { +void +add_msg3 (module_id_t module_idP, int CC_id, RA_TEMPLATE * RA_template, frame_t frameP, sub_frame_t subframeP) +{ - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = &eNB->common_channels[CC_id]; - uint8_t j; - nfapi_ul_config_request_t *ul_req; - nfapi_ul_config_request_pdu_t *ul_config_pdu; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = &eNB->common_channels[CC_id]; + uint8_t j; + nfapi_ul_config_request_t *ul_req; + nfapi_ul_config_request_pdu_t *ul_config_pdu; nfapi_ul_config_request_body_t *ul_req_body; - nfapi_hi_dci0_request_body_t *hi_dci0_req; - nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; + nfapi_hi_dci0_request_body_t *hi_dci0_req; + nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; - uint8_t rvseq[4] = {0,2,3,1}; + uint8_t rvseq[4] = { 0, 2, 3, 1 }; - hi_dci0_req = &eNB->HI_DCI0_req[CC_id].hi_dci0_request_body; - ul_req = &eNB->UL_req_tmp[CC_id][RA_template->Msg3_subframe]; - ul_req_body = &ul_req->ul_config_request_body; - AssertFatal(RA_template->RA_active == TRUE,"RA is not active for RA %X\n",RA_template->rnti); + hi_dci0_req = &eNB->HI_DCI0_req[CC_id].hi_dci0_request_body; + ul_req = &eNB->UL_req_tmp[CC_id][RA_template->Msg3_subframe]; + ul_req_body = &ul_req->ul_config_request_body; + AssertFatal (RA_template->RA_active == TRUE, "RA is not active for RA %X\n", RA_template->rnti); #ifdef Rel14 - if (RA_template->rach_resource_type>0) { - LOG_D(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d CE level %d is active, Msg3 in (%d,%d)\n", - module_idP,frameP,subframeP,CC_id,RA_template->rach_resource_type-1, - RA_template->Msg3_frame,RA_template->Msg3_subframe); - LOG_D(MAC,"Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d)\n", - frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe,RA_template->msg3_nb_rb,RA_template->msg3_round); + if (RA_template->rach_resource_type > 0) { + LOG_D (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d CE level %d is active, Msg3 in (%d,%d)\n", + module_idP, frameP, subframeP, CC_id, RA_template->rach_resource_type - 1, RA_template->Msg3_frame, RA_template->Msg3_subframe); + LOG_D (MAC, "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d)\n", + frameP, subframeP, RA_template->Msg3_frame, RA_template->Msg3_subframe, RA_template->msg3_nb_rb, RA_template->msg3_round); - ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; - - memset((void*)ul_config_pdu,0,sizeof(nfapi_ul_config_request_pdu_t)); - ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; - ul_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_ul_config_ulsch_pdu)); - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = narrowband_to_first_rb(cc,RA_template->msg34_narrowband)+RA_template->msg3_first_rb; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = RA_template->msg3_nb_rb; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = rvseq[RA_template->msg3_round]; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = ((10*RA_template->Msg3_frame)+RA_template->Msg3_subframe)&7; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL(RA_template->msg3_mcs, - RA_template->msg3_nb_rb); + ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; + + memset ((void *) ul_config_pdu, 0, sizeof (nfapi_ul_config_request_pdu_t)); + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_ulsch_pdu)); + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = narrowband_to_first_rb (cc, RA_template->msg34_narrowband) + RA_template->msg3_first_rb; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = RA_template->msg3_nb_rb; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = rvseq[RA_template->msg3_round]; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = ((10 * RA_template->Msg3_frame) + RA_template->Msg3_subframe) & 7; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL (RA_template->msg3_mcs, RA_template->msg3_nb_rb); // Re13 fields - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.ue_type = RA_template->rach_resource_type>2 ? 2 : 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.total_number_of_repetitions = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.repetition_number = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.initial_transmission_sf_io = (RA_template->Msg3_frame*10)+RA_template->Msg3_subframe; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.ue_type = RA_template->rach_resource_type > 2 ? 2 : 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.total_number_of_repetitions = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.repetition_number = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel13.initial_transmission_sf_io = (RA_template->Msg3_frame * 10) + RA_template->Msg3_subframe; ul_req_body->number_of_pdus++; - } // if (RA_template->rach_resource_type>0) { + } // if (RA_template->rach_resource_type>0) { else #endif - { - LOG_D(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA is active, Msg3 in (%d,%d)\n", - module_idP,frameP,subframeP,CC_id,RA_template->Msg3_frame,RA_template->Msg3_subframe); - - LOG_D(MAC,"Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d,%d)\n", - frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe, - RA_template->msg3_nb_rb,RA_template->msg3_first_rb,RA_template->msg3_round); - - ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; - - memset((void*)ul_config_pdu,0,sizeof(nfapi_ul_config_request_pdu_t)); - ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; - ul_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_ul_config_ulsch_pdu)); - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = RA_template->msg3_first_rb; - AssertFatal(RA_template->msg3_nb_rb > 0, "nb_rb = 0\n"); - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = RA_template->msg3_nb_rb; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = rvseq[RA_template->msg3_round]; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = subframe2harqpid(cc,RA_template->Msg3_frame,RA_template->Msg3_subframe); - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL(10,RA_template->msg3_nb_rb); - ul_req_body->number_of_pdus++; + { + LOG_D (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA is active, Msg3 in (%d,%d)\n", module_idP, frameP, subframeP, CC_id, RA_template->Msg3_frame, RA_template->Msg3_subframe); + + LOG_D (MAC, "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d,%d)\n", + frameP, subframeP, RA_template->Msg3_frame, RA_template->Msg3_subframe, RA_template->msg3_nb_rb, RA_template->msg3_first_rb, RA_template->msg3_round); + + ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; + + memset ((void *) ul_config_pdu, 0, sizeof (nfapi_ul_config_request_pdu_t)); + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_ulsch_pdu)); + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = RA_template->rnti; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = RA_template->msg3_first_rb; + AssertFatal (RA_template->msg3_nb_rb > 0, "nb_rb = 0\n"); + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = RA_template->msg3_nb_rb; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.modulation_type = 2; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.cyclic_shift_2_for_drms = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_enabled_flag = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = rvseq[RA_template->msg3_round]; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = subframe2harqpid (cc, RA_template->Msg3_frame, RA_template->Msg3_subframe); + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.size = get_TBS_UL (10, RA_template->msg3_nb_rb); + ul_req_body->number_of_pdus++; + // save UL scheduling information for preprocessor + for (j = 0; j < RA_template->msg3_nb_rb; j++) + cc->vrb_map_UL[RA_template->msg3_first_rb + j] = 1; + + + if (RA_template->msg3_round != 0) { // program HI too + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci + hi_dci0_req->number_of_hi]; + memset ((void *) hi_dci0_pdu, 0, sizeof (nfapi_hi_dci0_request_pdu_t)); + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_HI_PDU_TYPE; + hi_dci0_pdu->pdu_size = 2 + sizeof (nfapi_hi_dci0_hi_pdu); + hi_dci0_pdu->hi_pdu.hi_pdu_rel8.resource_block_start = RA_template->msg3_first_rb; + hi_dci0_pdu->hi_pdu.hi_pdu_rel8.cyclic_shift_2_for_drms = 0; + hi_dci0_pdu->hi_pdu.hi_pdu_rel8.hi_value = 0; + hi_dci0_req->number_of_hi++; // save UL scheduling information for preprocessor - for (j=0;jmsg3_nb_rb;j++) cc->vrb_map_UL[RA_template->msg3_first_rb+j]=1; - - - if (RA_template->msg3_round != 0) { // program HI too - hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; - memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); - hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_HI_PDU_TYPE; - hi_dci0_pdu->pdu_size = 2+sizeof(nfapi_hi_dci0_hi_pdu); - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.resource_block_start = RA_template->msg3_first_rb; - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.cyclic_shift_2_for_drms = 0; - hi_dci0_pdu->hi_pdu.hi_pdu_rel8.hi_value = 0; - hi_dci0_req->number_of_hi++; - // save UL scheduling information for preprocessor - for (j=0;jmsg3_nb_rb;j++) cc->vrb_map_UL[RA_template->msg3_first_rb+j]=1; - - LOG_D(MAC,"[eNB %d][PUSCH-RA %x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) RA (mcs %d, first rb %d, nb_rb %d,round %d)\n", - module_idP,RA_template->rnti,CC_id,frameP,subframeP,10, - 1,1, - RA_template->msg3_round-1); - } // if (RA_template->msg3_round != 0) { // program HI too - } // non-BL/CE UE case + for (j = 0; j < RA_template->msg3_nb_rb; j++) + cc->vrb_map_UL[RA_template->msg3_first_rb + j] = 1; + + LOG_D (MAC, "[eNB %d][PUSCH-RA %x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) RA (mcs %d, first rb %d, nb_rb %d,round %d)\n", + module_idP, RA_template->rnti, CC_id, frameP, subframeP, 10, 1, 1, RA_template->msg3_round - 1); + } // if (RA_template->msg3_round != 0) { // program HI too + } // non-BL/CE UE case } -void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t subframeP,RA_TEMPLATE *RA_template) { +void +generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, RA_TEMPLATE * RA_template) +{ - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - - uint8_t *vrb_map; - int first_rb; - int N_RB_DL; - nfapi_dl_config_request_pdu_t *dl_config_pdu; - nfapi_tx_request_pdu_t *TX_req; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + + uint8_t *vrb_map; + int first_rb; + int N_RB_DL; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_tx_request_pdu_t *TX_req; nfapi_dl_config_request_body_t *dl_req; - vrb_map = cc[CC_idP].vrb_map; - dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); + vrb_map = cc[CC_idP].vrb_map; + dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + N_RB_DL = to_prb (cc[CC_idP].mib->message.dl_Bandwidth); #ifdef Rel14 - int rmax = 0; - int rep = 0; - int reps = 0; - int num_nb = 0; + int rmax = 0; + int rep = 0; + int reps = 0; + int num_nb = 0; - first_rb = 0; + first_rb = 0; struct PRACH_ConfigSIB_v1310 *ext4_prach; PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; - PRACH_ParametersCE_r13_t *p[4]={NULL,NULL,NULL,NULL}; + PRACH_ParametersCE_r13_t *p[4] = { NULL, NULL, NULL, NULL }; - uint16_t absSF = (10*frameP)+subframeP; - uint16_t absSF_Msg2 = (10*RA_template->Msg2_frame)+RA_template->Msg2_subframe; + uint16_t absSF = (10 * frameP) + subframeP; + uint16_t absSF_Msg2 = (10 * RA_template->Msg2_frame) + RA_template->Msg2_subframe; + + if (absSF > absSF_Msg2) + return; // we're not ready yet, need to be to start == - if (absSF>absSF_Msg2) return; // we're not ready yet, need to be to start == - if (cc[CC_idP].radioResourceConfigCommon_BR) { - ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; - + switch (prach_ParametersListCE_r13->list.count) { case 4: - p[3]=prach_ParametersListCE_r13->list.array[3]; + p[3] = prach_ParametersListCE_r13->list.array[3]; case 3: - p[2]=prach_ParametersListCE_r13->list.array[2]; + p[2] = prach_ParametersListCE_r13->list.array[2]; case 2: - p[1]=prach_ParametersListCE_r13->list.array[1]; + p[1] = prach_ParametersListCE_r13->list.array[1]; case 1: - p[0]=prach_ParametersListCE_r13->list.array[0]; + p[0] = prach_ParametersListCE_r13->list.array[0]; break; default: - AssertFatal(1==0,"Illegal count for prach_ParametersListCE_r13 %d\n",(int)prach_ParametersListCE_r13->list.count); + AssertFatal (1 == 0, "Illegal count for prach_ParametersListCE_r13 %d\n", (int) prach_ParametersListCE_r13->list.count); break; } } if (RA_template->rach_resource_type > 0) { - + // This uses an MPDCCH Type 2 common allocation according to Section 9.1.5 36-213 // Parameters: // p=2+4 PRB set (number of PRB pairs 3) @@ -236,369 +237,351 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t // if CELevel = 0,1 => Table 9.1.5-1b for MPDCCH candidates // if CELevel = 2,3 => Table 9.1.5-2b for MPDCCH candidates // distributed transmission - + // rmax from SIB2 information - AssertFatal(rmax<9,"rmax>8!\n"); - rmax = 1<rach_resource_type-1]->mpdcch_NumRepetition_RA_r13; + AssertFatal (rmax < 9, "rmax>8!\n"); + rmax = 1 << p[RA_template->rach_resource_type - 1]->mpdcch_NumRepetition_RA_r13; // choose r1 by default for RAR (Table 9.1.5-5) - rep = 0; + rep = 0; // get actual repetition count from Table 9.1.5-3 - reps = (rmax<=8)?(1<>(3-rep)); + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); // get narrowband according to higher-layer config - num_nb = p[RA_template->rach_resource_type-1]->mpdcch_NarrowbandsToMonitor_r13.list.count; - RA_template->msg2_narrowband = *p[RA_template->rach_resource_type-1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index%num_nb]; - first_rb = narrowband_to_first_rb(&cc[CC_idP],RA_template->msg2_narrowband); - - if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2,-1)>0)){ + num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; + RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index % num_nb]; + first_rb = narrowband_to_first_rb (&cc[CC_idP], RA_template->msg2_narrowband); + + if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { // MPDCCH configuration for RAR - LOG_D(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming MPDCCH %d repetitions\n", - module_idP,frameP,subframeP,reps); - - - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13!=NULL, - "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP*10)+subframeP; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6,0,6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming MPDCCH %d repetitions\n", module_idP, frameP, subframeP, reps); + + + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; RA_template->msg2_mpdcch_repetition_cnt++; dl_req->number_pdu++; - RA_template->Msg2_subframe = (RA_template->Msg2_subframe+9)%10; + RA_template->Msg2_subframe = (RA_template->Msg2_subframe + 9) % 10; - } //repetition_count==0 && SF condition met - if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions + } //repetition_count==0 && SF condition met + if (RA_template->msg2_mpdcch_repetition_cnt > 0) { // we're in a stream of repetitions - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", - module_idP,frameP,subframeP,RA_template->msg2_mpdcch_repetition_cnt); - if (RA_template->msg2_mpdcch_repetition_cnt==reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config==NULL) { // FDD case - // wait 2 subframes for PDSCH transmission - if (subframeP>7) RA_template->Msg2_frame = (frameP+1)&1023; - else RA_template->Msg2_frame = frameP; - RA_template->Msg2_subframe = (subframeP+2)%10; // +2 is the "n+x" from Section 7.1.11 in 36.213 - } - else { - AssertFatal(1==0,"TDD case not done yet\n"); - } - }// mpdcch_repetition_count == reps + if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP > 7) + RA_template->Msg2_frame = (frameP + 1) & 1023; + else + RA_template->Msg2_frame = frameP; + RA_template->Msg2_subframe = (subframeP + 2) % 10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, programmed Msg2 for %d.%d\n", module_idP, frameP, subframeP, RA_template->Msg2_frame,RA_template->Msg2_subframe); + } else { + AssertFatal (1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps else { - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", - module_idP,frameP,subframeP,RA_template->msg2_mpdcch_repetition_cnt); - RA_template->msg2_mpdcch_repetition_cnt++; + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", module_idP, frameP, subframeP, RA_template->msg2_mpdcch_repetition_cnt); + RA_template->msg2_mpdcch_repetition_cnt++; } if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - // Program PDSCH - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH %d\n", - module_idP,frameP,subframeP); - RA_template->generate_rar = 0; - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,6); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + // Program PDSCH + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH %d\n", module_idP, frameP, subframeP); + RA_template->generate_rar = 0; - // Rel10 fields - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - // Rel13 fields - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10*frameP)+subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - // Program UL processing for Msg3, same as regular LTE - get_Msg3alloc(&cc[CC_idP],subframeP,frameP,&RA_template->Msg3_frame,&RA_template->Msg3_subframe); - add_msg3(module_idP,CC_idP, RA_template,frameP,subframeP); - fill_rar_br(eNB,CC_idP,RA_template,frameP,subframeP,cc[CC_idP].RAR_pdu.payload,RA_template->rach_resource_type-1); - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP<<4)+subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = 7; - TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV (N_RB_DL, first_rb, 6); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + // Rel10 fields + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + // Rel13 fields + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2;; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // Program UL processing for Msg3, same as regular LTE + get_Msg3alloc (&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + add_msg3 (module_idP, CC_idP, RA_template, frameP, subframeP); + fill_rar_br (eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 7; + TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; } - } - - } - else + } + + } else #endif - { + { - if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { - LOG_I(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generating RAR DCI, RA_active %d format 1A (%d,%d))\n", - module_idP, CC_idP, frameP, subframeP, - RA_template->RA_active, - - RA_template->RA_dci_fmt1, - RA_template->RA_dci_size_bits1); + if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { + LOG_I (MAC, "[eNB %d] CC_id %d Frame %d, subframeP %d: Generating RAR DCI, RA_active %d format 1A (%d,%d))\n", + module_idP, CC_idP, frameP, subframeP, RA_template->RA_active, RA_template->RA_dci_fmt1, RA_template->RA_dci_size_bits1); - // Allocate 4 PRBS starting in RB 0 - first_rb = 0; - vrb_map[first_rb] = 1; - vrb_map[first_rb+1] = 1; - vrb_map[first_rb+2] = 1; - vrb_map[first_rb+3] = 1; - - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dci_dl_pdu)); - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1A; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = 4; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 2; // RA-RNTI : see Table 4-10 from SCF082 - nFAPI specifications - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = 0; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // no TPC - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = 0; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.virtual_resource_block_assignment_flag = 0; - - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,4); + // Allocate 4 PRBS starting in RB 0 + first_rb = 0; + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; - // This checks if the above DCI allocation is feasible in current subframe - if (!CCE_allocation_infeasible(module_idP,CC_idP,0,subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level,RA_template->RA_rnti)) { - LOG_D(MAC,"Frame %d: Subframe %d : Adding common DCI for RA_RNTI %x\n", - frameP,subframeP,RA_template->RA_rnti); - dl_req->number_dci++; - dl_req->number_pdu++; - - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,4); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - dl_req->number_pdu++; - - // Program UL processing for Msg3 - get_Msg3alloc(&cc[CC_idP],subframeP,frameP,&RA_template->Msg3_frame,&RA_template->Msg3_subframe); - LOG_D(MAC,"Frame %d, Subframe %d: Setting Msg3 reception for Frame %d Subframe %d\n", - frameP,subframeP,RA_template->Msg3_frame,RA_template->Msg3_subframe); - - fill_rar(module_idP,CC_idP,frameP,cc[CC_idP].RAR_pdu.payload,N_RB_DL,7); - add_msg3(module_idP,CC_idP, RA_template,frameP,subframeP); + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dci_dl_pdu)); + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.dci_format = NFAPI_DL_DCI_FORMAT_1A; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level = 4; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type = 2; // RA-RNTI : see Table 4-10 from SCF082 - nFAPI specifications + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.transmission_power = 6000; // equal to RS power - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP<<4)+subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = 7; - TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; - } // PDCCH CCE allocation is feasible - } // Msg2 frame/subframe condition - } // else BL/CE + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process = 0; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.tpc = 1; // no TPC + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.new_data_indicator_1 = 1; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.mcs_1 = 0; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.redundancy_version_1 = 0; + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.virtual_resource_block_assignment_flag = 0; + + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding = getRIV (N_RB_DL, first_rb, 4); + + // This checks if the above DCI allocation is feasible in current subframe + if (!CCE_allocation_infeasible (module_idP, CC_idP, 0, subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, RA_template->RA_rnti)) { + LOG_D (MAC, "Frame %d: Subframe %d : Adding common DCI for RA_RNTI %x\n", frameP, subframeP, RA_template->RA_rnti); + dl_req->number_dci++; + dl_req->number_pdu++; + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->RA_rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV (N_RB_DL, first_rb, 4); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + dl_req->number_pdu++; + + // Program UL processing for Msg3 + get_Msg3alloc (&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); + LOG_D (MAC, "Frame %d, Subframe %d: Setting Msg3 reception for Frame %d Subframe %d\n", frameP, subframeP, RA_template->Msg3_frame, RA_template->Msg3_subframe); + + fill_rar (module_idP, CC_idP, frameP, cc[CC_idP].RAR_pdu.payload, N_RB_DL, 7); + add_msg3 (module_idP, CC_idP, RA_template, frameP, subframeP); + + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = 7; + TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + } // PDCCH CCE allocation is feasible + } // Msg2 frame/subframe condition + } // else BL/CE } -void generate_Msg4(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t subframeP,RA_TEMPLATE *RA_template){ +void +generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, RA_TEMPLATE * RA_template) +{ - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - int16_t rrc_sdu_length; - int UE_id = -1; - uint16_t msg4_padding; - uint16_t msg4_post_padding; - uint16_t msg4_header; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + int16_t rrc_sdu_length; + int UE_id = -1; + uint16_t msg4_padding; + uint16_t msg4_post_padding; + uint16_t msg4_header; - uint8_t *vrb_map; - int first_rb; - int N_RB_DL; - nfapi_dl_config_request_pdu_t *dl_config_pdu; - nfapi_ul_config_request_pdu_t *ul_config_pdu; - nfapi_tx_request_pdu_t *TX_req; - UE_list_t *UE_list=&eNB->UE_list; + uint8_t *vrb_map; + int first_rb; + int N_RB_DL; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_ul_config_request_pdu_t *ul_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + UE_list_t *UE_list = &eNB->UE_list; nfapi_dl_config_request_body_t *dl_req; nfapi_ul_config_request_body_t *ul_req; - uint8_t lcid; - uint8_t offset; + uint8_t lcid; + uint8_t offset; #ifdef Rel14 - int rmax = 0; - int rep = 0; - int reps = 0; + int rmax = 0; + int rep = 0; + int reps = 0; - first_rb = 0; + first_rb = 0; struct PRACH_ConfigSIB_v1310 *ext4_prach; struct PUCCH_ConfigCommon_v1310 *ext4_pucch; PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; struct N1PUCCH_AN_InfoList_r13 *pucch_N1PUCCH_AN_InfoList_r13; - PRACH_ParametersCE_r13_t *p[4]={NULL,NULL,NULL,NULL}; - int pucchreps[4]={1,1,1,1}; - int n1pucchan[4]={0,0,0,0}; + PRACH_ParametersCE_r13_t *p[4] = { NULL, NULL, NULL, NULL }; + int pucchreps[4] = { 1, 1, 1, 1 }; + int n1pucchan[4] = { 0, 0, 0, 0 }; if (cc[CC_idP].radioResourceConfigCommon_BR) { - ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; - ext4_pucch = cc[CC_idP].radioResourceConfigCommon_BR->ext4->pucch_ConfigCommon_v1310; - prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; + ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + ext4_pucch = cc[CC_idP].radioResourceConfigCommon_BR->ext4->pucch_ConfigCommon_v1310; + prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; pucch_N1PUCCH_AN_InfoList_r13 = ext4_pucch->n1PUCCH_AN_InfoList_r13; - AssertFatal(prach_ParametersListCE_r13!=NULL,"prach_ParametersListCE_r13 is null\n"); - AssertFatal(pucch_N1PUCCH_AN_InfoList_r13!=NULL,"pucch_N1PUCCH_AN_InfoList_r13 is null\n"); + AssertFatal (prach_ParametersListCE_r13 != NULL, "prach_ParametersListCE_r13 is null\n"); + AssertFatal (pucch_N1PUCCH_AN_InfoList_r13 != NULL, "pucch_N1PUCCH_AN_InfoList_r13 is null\n"); // check to verify CE-Level compatibility in SIB2_BR - AssertFatal(prach_ParametersListCE_r13->list.count == pucch_N1PUCCH_AN_InfoList_r13->list.count, - "prach_ParametersListCE_r13->list.count!= pucch_N1PUCCH_AN_InfoList_r13->list.count\n"); + AssertFatal (prach_ParametersListCE_r13->list.count == pucch_N1PUCCH_AN_InfoList_r13->list.count, "prach_ParametersListCE_r13->list.count!= pucch_N1PUCCH_AN_InfoList_r13->list.count\n"); switch (prach_ParametersListCE_r13->list.count) { case 4: - p[3] = prach_ParametersListCE_r13->list.array[3]; - n1pucchan[3] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[3]; - AssertFatal(ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13!=NULL,"pucch_NumRepetitionCE_Msg4_Level3 shouldn't be NULL\n"); - pucchreps[3] = (int)(4<<*ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13); - + p[3] = prach_ParametersListCE_r13->list.array[3]; + n1pucchan[3] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[3]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level3 shouldn't be NULL\n"); + pucchreps[3] = (int) (4 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13); + case 3: - p[2] = prach_ParametersListCE_r13->list.array[2]; - n1pucchan[2] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[2]; - AssertFatal(ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13!=NULL,"pucch_NumRepetitionCE_Msg4_Level2 shouldn't be NULL\n"); - pucchreps[2] = (int)(4<<*ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13); + p[2] = prach_ParametersListCE_r13->list.array[2]; + n1pucchan[2] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[2]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level2 shouldn't be NULL\n"); + pucchreps[2] = (int) (4 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13); case 2: - p[1] =prach_ParametersListCE_r13->list.array[1]; - n1pucchan[1] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[1]; - AssertFatal(ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13!=NULL,"pucch_NumRepetitionCE_Msg4_Level1 shouldn't be NULL\n"); - pucchreps[1] = (int)(1<<*ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13); + p[1] = prach_ParametersListCE_r13->list.array[1]; + n1pucchan[1] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[1]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level1 shouldn't be NULL\n"); + pucchreps[1] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13); case 1: - p[0] = prach_ParametersListCE_r13->list.array[0]; - n1pucchan[0] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[0]; - AssertFatal(ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13!=NULL,"pucch_NumRepetitionCE_Msg4_Level0 shouldn't be NULL\n"); - pucchreps[0] = (int)(1<<*ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13); + p[0] = prach_ParametersListCE_r13->list.array[0]; + n1pucchan[0] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[0]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level0 shouldn't be NULL\n"); + pucchreps[0] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13); default: - AssertFatal(1==0,"Illegal count for prach_ParametersListCE_r13 %d\n",prach_ParametersListCE_r13->list.count); + AssertFatal (1 == 0, "Illegal count for prach_ParametersListCE_r13 %d\n", prach_ParametersListCE_r13->list.count); } } #endif - vrb_map = cc[CC_idP].vrb_map; - - dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); + vrb_map = cc[CC_idP].vrb_map; + + dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + N_RB_DL = to_prb (cc[CC_idP].mib->message.dl_Bandwidth); + + UE_id = find_UE_id (module_idP, RA_template->rnti); + AssertFatal (UE_id >= 0, "Can't find UE for t-crnti\n"); - UE_id = find_UE_id(module_idP,RA_template->rnti); - AssertFatal(UE_id>=0,"Can't find UE for t-crnti\n"); - // set HARQ process round to 0 for this UE - - if (cc->tdd_Config) RA_template->harq_pid = ((frameP*10)+subframeP)%10; - else RA_template->harq_pid = ((frameP*10)+subframeP)&7; - + if (cc->tdd_Config) + RA_template->harq_pid = ((frameP * 10) + subframeP) % 10; + else + RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; + + // Get RRCConnectionSetup for Piggyback - rrc_sdu_length = mac_rrc_data_req(module_idP, - CC_idP, - frameP, - CCCH, - 1, // 1 transport block - &cc[CC_idP].CCCH_pdu.payload[0], - ENB_FLAG_YES, - module_idP, - 0); // not used in this case - - AssertFatal(rrc_sdu_length>0, - "[MAC][eNB Scheduler] CCCH not allocated\n"); - - - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", - module_idP, CC_idP, frameP, subframeP,UE_id, rrc_sdu_length); - - + rrc_sdu_length = mac_rrc_data_req (module_idP, CC_idP, frameP, CCCH, 1, // 1 transport block + &cc[CC_idP].CCCH_pdu.payload[0], ENB_FLAG_YES, module_idP, 0); // not used in this case + + AssertFatal (rrc_sdu_length > 0, "[MAC][eNB Scheduler] CCCH not allocated\n"); + + + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length); + + #ifdef Rel14 - if (RA_template->rach_resource_type>0) { - + if (RA_template->rach_resource_type > 0) { + // Generate DCI + repetitions first // This uses an MPDCCH Type 2 allocation according to Section 9.1.5 36-213, Type2 common allocation according to Table 7.1-8 (36-213) // Parameters: @@ -607,694 +590,647 @@ void generate_Msg4(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t // if CELevel = 0,1 => Table 9.1.5-1b for MPDCCH candidates // if CELevel = 2,3 => Table 9.1.5-2b for MPDCCH candidates // distributed transmission - + // rmax from SIB2 information - rmax = p[RA_template->rach_resource_type-1]->mpdcch_NumRepetition_RA_r13; - AssertFatal(rmax>=4,"choose rmax>=4 for enough repeititions, or reduce rep to 1 or 2\n"); + rmax = p[RA_template->rach_resource_type - 1]->mpdcch_NumRepetition_RA_r13; + AssertFatal (rmax >= 4, "choose rmax>=4 for enough repeititions, or reduce rep to 1 or 2\n"); // choose r3 by default for Msg4 (this is ok from table 9.1.5-3 for rmax = >=4, if we choose rmax <4 it has to be less - rep = 2; + rep = 2; // get actual repetition count from Table 9.1.5-3 - reps = (rmax<=8)?(1<>(3-rep)); + reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); // get first narrowband - first_rb = narrowband_to_first_rb(&cc[CC_idP],RA_template->msg34_narrowband); + first_rb = narrowband_to_first_rb (&cc[CC_idP], RA_template->msg34_narrowband); - if ((RA_template->msg4_mpdcch_repetition_cnt == 0) && - (mpdcch_sf_condition(eNB,CC_idP,frameP,subframeP,rmax,TYPE2,-1)>0)){ + if ((RA_template->msg4_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { // MPDCCH configuration for RAR - - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_mpdcch_pdu)); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg34_narrowband; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; - AssertFatal(cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13!=NULL, - "cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 0; // t-C-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; /// Check this is still N_id_cell for type2 common - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP*10)+subframeP; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV(6,0,6);// check if not getRIV(N_RB_DL,first_rb,6); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of Msg4, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = RA_template->harq_pid; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1;// N1A_PRB=3; => 208 bits - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg34_narrowband; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; + AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 0; // t-C-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; /// Check this is still N_id_cell for type2 common + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); // check if not getRIV(N_RB_DL,first_rb,6); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of Msg4, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = RA_template->harq_pid; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3; => 208 bits + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; RA_template->msg4_mpdcch_repetition_cnt++; dl_req->number_pdu++; - - } //repetition_count==0 && SF condition met - else if (RA_template->msg4_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - RA_template->msg4_mpdcch_repetition_cnt++; - if (RA_template->msg4_mpdcch_repetition_cnt==reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config==NULL) { // FDD case - // wait 2 subframes for PDSCH transmission - if (subframeP>7) RA_template->Msg4_frame = (frameP+1)&1023; - else RA_template->Msg4_frame = frameP; - RA_template->Msg4_subframe = (subframeP+2)%10; - } - else { - AssertFatal(1==0,"TDD case not done yet\n"); - } - } // mpdcch_repetition_count == reps + + } //repetition_count==0 && SF condition met + else if (RA_template->msg4_mpdcch_repetition_cnt > 0) { // we're in a stream of repetitions + RA_template->msg4_mpdcch_repetition_cnt++; + if (RA_template->msg4_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + // wait 2 subframes for PDSCH transmission + if (subframeP > 7) + RA_template->Msg4_frame = (frameP + 1) & 1023; + else + RA_template->Msg4_frame = frameP; + RA_template->Msg4_subframe = (subframeP + 2) % 10; + } else { + AssertFatal (1 == 0, "TDD case not done yet\n"); + } + } // mpdcch_repetition_count == reps if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { - - // Program PDSCH - - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 BR with RRC Piggyback (ce_level %d RNTI %x)\n", - module_idP, CC_idP, frameP, subframeP,RA_template->rach_resource_type-1,RA_template->rnti); - AssertFatal(1==0,"Msg4 generation not finished for BL/CE UE\n"); - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset((void*)dl_config_pdu,0,sizeof(nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV(N_RB_DL,first_rb,6); // check that this isn't getRIV(6,0,6) - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1;// first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB==1 ) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize(cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB==1 ) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + // Program PDSCH - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10*frameP)+subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - RA_template->generate_Msg4=0; - RA_template->wait_ack_Msg4=1; + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 BR with RRC Piggyback (ce_level %d RNTI %x)\n", + module_idP, CC_idP, frameP, subframeP, RA_template->rach_resource_type - 1, RA_template->rnti); - lcid=0; - - UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; - msg4_header = 1+6+1; // CR header, CR CE, SDU header - - if ((RA_template->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { - msg4_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header; - msg4_post_padding = 0; - } else { - msg4_padding = 0; - msg4_post_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header -1; - } - - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", - module_idP,CC_idP,frameP,subframeP,RA_template->msg4_TBsize,rrc_sdu_length,msg4_header,msg4_padding,msg4_post_padding); - DevAssert( UE_id != UE_INDEX_INVALID ); // FIXME not sure how to gracefully return - // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] - offset = generate_dlsch_header((unsigned char*)eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0], - 1, //num_sdus - (unsigned short*)&rrc_sdu_length, // - &lcid, // sdu_lcid - 255, // no drx - 31, // no timing advance - RA_template->cont_res_id, // contention res id - msg4_padding, // no padding - msg4_post_padding); - - memcpy((void*)&eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0][(unsigned char)offset], - &cc[CC_idP].CCCH_pdu.payload[0], - rrc_sdu_length); - - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP<<4)+subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = rrc_sdu_length; - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = rrc_sdu_length; - TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0]; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + AssertFatal (1 == 0, "Msg4 generation not finished for BL/CE UE\n"); + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV (N_RB_DL, first_rb, 6); // check that this isn't getRIV(6,0,6) + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - // Program ACK/NAK for Msg4 PDSCH - int absSF = (RA_template->Msg3_frame*10)+RA_template->Msg3_subframe; - // see Section 10.2 from 36.213 - int ackNAK_absSF = absSF + reps + 4; - AssertFatal(reps>2,"Have to handle programming of ACK when PDSCH repetitions is > 2\n"); - ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF%10].ul_config_request_body; - ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; - ul_config_pdu->pdu_size = (uint8_t)(2+sizeof(nfapi_ul_config_uci_harq_pdu)); - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.handle = 0; // don't know how to use this - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti = RA_template->rnti; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.empty_symbols = 0; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions = pucchreps[RA_template->rach_resource_type-1]; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.repetition_number = 0; - // Note need to keep sending this across reptitions!!!! Not really for PUCCH, to ask small-cell forum, we'll see for the other messages, maybe parameters change across repetitions and FAPI has to provide for that - if (cc[CC_idP].tdd_Config==NULL) { // FDD case - ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel8_fdd.n_pucch_1_0 = n1pucchan[RA_template->rach_resource_type-1]; - // NOTE: How to fill in the rest of the n_pucch_1_0 information 213 Section 10.1.2.1 in the general case - // = N_ECCE_q + Delta_ARO + n1pucchan[ce_level] - // higher in the MPDCCH configuration, N_ECCE_q is hard-coded to 0, and harq resource offset to 0 => - // Delta_ARO = 0 from Table 10.1.2.1-1 - ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel8_fdd.harq_size = 1; // 1-bit ACK/NAK - } - else { - AssertFatal(1==0,"PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n"); - } - ul_req->number_of_pdus++; - T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_idP), T_INT(RA_template->rnti), T_INT(frameP), T_INT(subframeP), - T_INT(0 /*harq_pid always 0?*/), T_BUFFER(&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); - - if (opt_enabled==1) { - trace_pdu(1, (uint8_t *)eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0], - rrc_sdu_length, UE_id, 3, UE_RNTI(module_idP, UE_id), - eNB->frame, eNB->subframe,0,0); - LOG_D(OPT,"[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", - module_idP, CC_idP, frameP, UE_RNTI(module_idP,UE_id), rrc_sdu_length); - } - } // Msg4 frame/subframe - } // msg4_mpdcch_repetition_count - } // rach_resource_type > 0 + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + RA_template->generate_Msg4 = 0; + RA_template->wait_ack_Msg4 = 1; + + lcid = 0; + + UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; + msg4_header = 1 + 6 + 1; // CR header, CR CE, SDU header + + if ((RA_template->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { + msg4_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header; + msg4_post_padding = 0; + } else { + msg4_padding = 0; + msg4_post_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header - 1; + } + + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", + module_idP, CC_idP, frameP, subframeP, RA_template->msg4_TBsize, rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); + DevAssert (UE_id != UE_INDEX_INVALID); // FIXME not sure how to gracefully return + // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] + offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus + (unsigned short *) &rrc_sdu_length, // + &lcid, // sdu_lcid + 255, // no drx + 31, // no timing advance + RA_template->cont_res_id, // contention res id + msg4_padding, // no padding + msg4_post_padding); + + memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], rrc_sdu_length); + + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = rrc_sdu_length; + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = rrc_sdu_length; + TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + + // Program ACK/NAK for Msg4 PDSCH + int absSF = (RA_template->Msg3_frame * 10) + RA_template->Msg3_subframe; + // see Section 10.2 from 36.213 + int ackNAK_absSF = absSF + reps + 4; + AssertFatal (reps > 2, "Have to handle programming of ACK when PDSCH repetitions is > 2\n"); + ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; + ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_uci_harq_pdu)); + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.handle = 0; // don't know how to use this + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti = RA_template->rnti; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.empty_symbols = 0; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions = pucchreps[RA_template->rach_resource_type - 1]; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.repetition_number = 0; + // Note need to keep sending this across reptitions!!!! Not really for PUCCH, to ask small-cell forum, we'll see for the other messages, maybe parameters change across repetitions and FAPI has to provide for that + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel8_fdd.n_pucch_1_0 = n1pucchan[RA_template->rach_resource_type - 1]; + // NOTE: How to fill in the rest of the n_pucch_1_0 information 213 Section 10.1.2.1 in the general case + // = N_ECCE_q + Delta_ARO + n1pucchan[ce_level] + // higher in the MPDCCH configuration, N_ECCE_q is hard-coded to 0, and harq resource offset to 0 => + // Delta_ARO = 0 from Table 10.1.2.1-1 + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel8_fdd.harq_size = 1; // 1-bit ACK/NAK + } else { + AssertFatal (1 == 0, "PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n"); + } + ul_req->number_of_pdus++; + T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_idP), T_INT (RA_template->rnti), T_INT (frameP), T_INT (subframeP), + T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); + + if (opt_enabled == 1) { + trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); + LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), rrc_sdu_length); + } + } // Msg4 frame/subframe + } // msg4_mpdcch_repetition_count + } // rach_resource_type > 0 else #endif - { // This is normal LTE case - if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 with RRC Piggyback (RNTI %x)\n", - module_idP, CC_idP, frameP, subframeP,RA_template->rnti); - - /// Choose first 4 RBs for Msg4, should really check that these are free! - first_rb=0; - - vrb_map[first_rb] = 1; - vrb_map[first_rb+1] = 1; - vrb_map[first_rb+2] = 1; - vrb_map[first_rb+3] = 1; - - - // Compute MCS/TBS for 3 PRB (coded on 4 vrb) - msg4_header = 1+6+1; // CR header, CR CE, SDU header - - if ((rrc_sdu_length+msg4_header) <= 22) { - RA_template->msg4_mcs = 4; - RA_template->msg4_TBsize = 22; - } else if ((rrc_sdu_length+msg4_header) <= 28) { - RA_template->msg4_mcs = 5; - RA_template->msg4_TBsize = 28; - } else if ((rrc_sdu_length+msg4_header) <= 32) { - RA_template->msg4_mcs = 6; - RA_template->msg4_TBsize = 32; - } else if ((rrc_sdu_length+msg4_header) <= 41) { - RA_template->msg4_mcs = 7; - RA_template->msg4_TBsize = 41; - } else if ((rrc_sdu_length+msg4_header) <= 49) { - RA_template->msg4_mcs = 8; - RA_template->msg4_TBsize = 49; - } else if ((rrc_sdu_length+msg4_header) <= 57) { - RA_template->msg4_mcs = 9; - RA_template->msg4_TBsize = 57; - } + { // This is normal LTE case + if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 with RRC Piggyback (RNTI %x)\n", module_idP, CC_idP, frameP, subframeP, RA_template->rnti); - fill_nfapi_dl_dci_1A(dl_config_pdu, - 4, // aggregation_level - RA_template->rnti, // rnti - 1, // rnti_type, CRNTI - RA_template->harq_pid, // harq_process - 1, // tpc, none - getRIV(N_RB_DL,first_rb,4), // resource_block_coding - RA_template->msg4_mcs, // mcs - 1, // ndi - 0, // rv - 0); // vrb_flag - LOG_D(MAC,"Frame %d, subframe %d: Msg4 DCI pdu_num %d (rnti %x,rnti_type %d,harq_pid %d, resource_block_coding (%p) %d\n", - frameP, - subframeP, - dl_req->number_pdu, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process, - &dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding); - AssertFatal(dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding < 8192, - "resource_block_coding %u < 8192\n", - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding); - if (!CCE_allocation_infeasible(module_idP,CC_idP,1, - subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, - RA_template->rnti)) { - dl_req->number_dci++; - dl_req->number_pdu++; - - RA_template->generate_Msg4=0; - RA_template->wait_ack_Msg4=1; - - // increment Absolute subframe by 8 for Msg4 retransmission - LOG_D(MAC,"Frame %d, Subframe %d: Preparing for Msg4 retransmission currently %d.%d\n", - frameP,subframeP,RA_template->Msg4_frame,RA_template->Msg4_subframe); - if (RA_template->Msg4_subframe > 1) RA_template->Msg4_frame++; - RA_template->Msg4_frame&=1023; - RA_template->Msg4_subframe = (RA_template->Msg4_subframe+8)%10; - LOG_D(MAC,"Frame %d, Subframe %d: Msg4 retransmission in %d.%d\n", - frameP,subframeP,RA_template->Msg4_frame,RA_template->Msg4_subframe); - lcid=0; - - // put HARQ process round to 0 - if (cc->tdd_Config) RA_template->harq_pid = ((frameP*10)+subframeP)%10; - else RA_template->harq_pid = ((frameP*10)+subframeP)&7; - UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; - - if ((RA_template->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { - msg4_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header; - msg4_post_padding = 0; - } else { - msg4_padding = 0; - msg4_post_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header -1; - } - - LOG_D(MAC,"[eNB %d][RAPROC] CC_idP %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", - module_idP,CC_idP,frameP,subframeP,RA_template->msg4_TBsize,rrc_sdu_length,msg4_header,msg4_padding,msg4_post_padding); - DevAssert( UE_id != UE_INDEX_INVALID ); // FIXME not sure how to gracefully return - // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] - offset = generate_dlsch_header((unsigned char*)eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0], - 1, //num_sdus - (unsigned short*)&rrc_sdu_length, // - &lcid, // sdu_lcid - 255, // no drx - 31, // no timing advance - RA_template->cont_res_id, // contention res id - msg4_padding, // no padding - msg4_post_padding); - - memcpy((void*)&eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0][(unsigned char)offset], - &cc[CC_idP].CCCH_pdu.payload[0], - rrc_sdu_length); - - // DLSCH Config - fill_nfapi_dlsch_config(eNB, - dl_req, - RA_template->msg4_TBsize, - eNB->pdu_index[CC_idP], - RA_template->rnti, - 2, // resource_allocation_type : format 1A/1B/1D - 0, // virtual_resource_block_assignment_flag : localized - getRIV(N_RB_DL,first_rb,4), // resource_block_coding : RIV, 4 PRB - 2, // modulation: QPSK - 0, // redundancy version - 1, // transport_blocks - 0, // transport_block_to_codeword_swap_flag (0) - (cc->p_eNB==1 ) ? 0 : 1, // transmission_scheme - 1, // number of layers - 1, // number of subbands - //0, // codebook index - 1, // ue_category_capacity - 4, // pa: 0 dB - 0, // delta_power_offset_index - 0, // ngap - 1, // NPRB = 3 like in DCI - (cc->p_eNB==1 ) ? 1 : 2, // transmission mode - 1, // num_bf_prb_per_subband - 1); // num_bf_vector - LOG_D(MAC,"Filled DLSCH config, pdu number %d, non-dci pdu_index %d\n",dl_req->number_pdu,eNB->pdu_index[CC_idP]); + /// Choose first 4 RBs for Msg4, should really check that these are free! + first_rb = 0; - // DL request - eNB->TX_req[CC_idP].sfn_sf = fill_nfapi_tx_req(&eNB->TX_req[CC_idP].tx_request_body, - (frameP*10)+subframeP, - rrc_sdu_length, - eNB->pdu_index[CC_idP], - eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0]); - eNB->pdu_index[CC_idP]++; + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; - LOG_D(MAC,"Filling UCI ACK/NAK information, cce_idx %d\n",dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); - // Program PUCCH1a for ACK/NAK - // Program ACK/NAK for Msg4 PDSCH - fill_nfapi_uci_acknak(module_idP, - CC_idP, - RA_template->rnti, - (frameP*10)+subframeP, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); - - T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_idP), T_INT(RA_template->rnti), T_INT(frameP), T_INT(subframeP), - T_INT(0 /*harq_pid always 0?*/), T_BUFFER(&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); - - if (opt_enabled==1) { - trace_pdu(1, (uint8_t *)eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char)UE_id].payload[0], - rrc_sdu_length, UE_id, 3, UE_RNTI(module_idP, UE_id), - eNB->frame, eNB->subframe,0,0); - LOG_D(OPT,"[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", - module_idP, CC_idP, frameP, UE_RNTI(module_idP,UE_id), rrc_sdu_length); - } - - } // CCE Allocation feasible - } // msg4 frame/subframe - } // else rach_resource_type + // Compute MCS/TBS for 3 PRB (coded on 4 vrb) + msg4_header = 1 + 6 + 1; // CR header, CR CE, SDU header + + if ((rrc_sdu_length + msg4_header) <= 22) { + RA_template->msg4_mcs = 4; + RA_template->msg4_TBsize = 22; + } else if ((rrc_sdu_length + msg4_header) <= 28) { + RA_template->msg4_mcs = 5; + RA_template->msg4_TBsize = 28; + } else if ((rrc_sdu_length + msg4_header) <= 32) { + RA_template->msg4_mcs = 6; + RA_template->msg4_TBsize = 32; + } else if ((rrc_sdu_length + msg4_header) <= 41) { + RA_template->msg4_mcs = 7; + RA_template->msg4_TBsize = 41; + } else if ((rrc_sdu_length + msg4_header) <= 49) { + RA_template->msg4_mcs = 8; + RA_template->msg4_TBsize = 49; + } else if ((rrc_sdu_length + msg4_header) <= 57) { + RA_template->msg4_mcs = 9; + RA_template->msg4_TBsize = 57; + } + + fill_nfapi_dl_dci_1A (dl_config_pdu, 4, // aggregation_level + RA_template->rnti, // rnti + 1, // rnti_type, CRNTI + RA_template->harq_pid, // harq_process + 1, // tpc, none + getRIV (N_RB_DL, first_rb, 4), // resource_block_coding + RA_template->msg4_mcs, // mcs + 1, // ndi + 0, // rv + 0); // vrb_flag + LOG_D (MAC, "Frame %d, subframe %d: Msg4 DCI pdu_num %d (rnti %x,rnti_type %d,harq_pid %d, resource_block_coding (%p) %d\n", + frameP, + subframeP, + dl_req->number_pdu, + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti, + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.rnti_type, + dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.harq_process, &dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding); + AssertFatal (dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding < 8192, "resource_block_coding %u < 8192\n", dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.resource_block_coding); + if (!CCE_allocation_infeasible (module_idP, CC_idP, 1, subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, RA_template->rnti)) { + dl_req->number_dci++; + dl_req->number_pdu++; + + RA_template->generate_Msg4 = 0; + RA_template->wait_ack_Msg4 = 1; + + // increment Absolute subframe by 8 for Msg4 retransmission + LOG_D (MAC, "Frame %d, Subframe %d: Preparing for Msg4 retransmission currently %d.%d\n", frameP, subframeP, RA_template->Msg4_frame, RA_template->Msg4_subframe); + if (RA_template->Msg4_subframe > 1) + RA_template->Msg4_frame++; + RA_template->Msg4_frame &= 1023; + RA_template->Msg4_subframe = (RA_template->Msg4_subframe + 8) % 10; + LOG_D (MAC, "Frame %d, Subframe %d: Msg4 retransmission in %d.%d\n", frameP, subframeP, RA_template->Msg4_frame, RA_template->Msg4_subframe); + lcid = 0; + + // put HARQ process round to 0 + if (cc->tdd_Config) + RA_template->harq_pid = ((frameP * 10) + subframeP) % 10; + else + RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; + UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; + + if ((RA_template->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { + msg4_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header; + msg4_post_padding = 0; + } else { + msg4_padding = 0; + msg4_post_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header - 1; + } + + LOG_D (MAC, "[eNB %d][RAPROC] CC_idP %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", + module_idP, CC_idP, frameP, subframeP, RA_template->msg4_TBsize, rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); + DevAssert (UE_id != UE_INDEX_INVALID); // FIXME not sure how to gracefully return + // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] + offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus + (unsigned short *) &rrc_sdu_length, // + &lcid, // sdu_lcid + 255, // no drx + 31, // no timing advance + RA_template->cont_res_id, // contention res id + msg4_padding, // no padding + msg4_post_padding); + + memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], rrc_sdu_length); + + // DLSCH Config + fill_nfapi_dlsch_config (eNB, dl_req, RA_template->msg4_TBsize, eNB->pdu_index[CC_idP], RA_template->rnti, 2, // resource_allocation_type : format 1A/1B/1D + 0, // virtual_resource_block_assignment_flag : localized + getRIV (N_RB_DL, first_rb, 4), // resource_block_coding : RIV, 4 PRB + 2, // modulation: QPSK + 0, // redundancy version + 1, // transport_blocks + 0, // transport_block_to_codeword_swap_flag (0) + (cc->p_eNB == 1) ? 0 : 1, // transmission_scheme + 1, // number of layers + 1, // number of subbands + //0, // codebook index + 1, // ue_category_capacity + 4, // pa: 0 dB + 0, // delta_power_offset_index + 0, // ngap + 1, // NPRB = 3 like in DCI + (cc->p_eNB == 1) ? 1 : 2, // transmission mode + 1, // num_bf_prb_per_subband + 1); // num_bf_vector + LOG_D (MAC, "Filled DLSCH config, pdu number %d, non-dci pdu_index %d\n", dl_req->number_pdu, eNB->pdu_index[CC_idP]); + + // DL request + eNB->TX_req[CC_idP].sfn_sf = fill_nfapi_tx_req (&eNB->TX_req[CC_idP].tx_request_body, + (frameP * 10) + subframeP, rrc_sdu_length, eNB->pdu_index[CC_idP], eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]); + eNB->pdu_index[CC_idP]++; + + LOG_D (MAC, "Filling UCI ACK/NAK information, cce_idx %d\n", dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); + // Program PUCCH1a for ACK/NAK + // Program ACK/NAK for Msg4 PDSCH + fill_nfapi_uci_acknak (module_idP, CC_idP, RA_template->rnti, (frameP * 10) + subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); + + + T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_idP), T_INT (RA_template->rnti), T_INT (frameP), T_INT (subframeP), + T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); + + if (opt_enabled == 1) { + trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); + LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), rrc_sdu_length); + } + + } // CCE Allocation feasible + } // msg4 frame/subframe + } // else rach_resource_type } -void check_Msg4_retransmission(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t subframeP,RA_TEMPLATE *RA_template) { - - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - int UE_id = -1; - uint8_t *vrb_map; - int first_rb; - int N_RB_DL; - nfapi_dl_config_request_pdu_t *dl_config_pdu; - UE_list_t *UE_list=&eNB->UE_list; +void +check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, RA_TEMPLATE * RA_template) +{ + + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + int UE_id = -1; + uint8_t *vrb_map; + int first_rb; + int N_RB_DL; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + UE_list_t *UE_list = &eNB->UE_list; nfapi_dl_config_request_body_t *dl_req; - int round; + int round; /* -#ifdef Rel14 - COMMON_channels_t *cc = eNB->common_channels; + #ifdef Rel14 + COMMON_channels_t *cc = eNB->common_channels; - int rmax = 0; - int rep = 0; - int reps = 0; + int rmax = 0; + int rep = 0; + int reps = 0; - first_rb = 0; - struct PRACH_ConfigSIB_v1310 *ext4_prach; - PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; - PRACH_ParametersCE_r13_t *p[4]; + first_rb = 0; + struct PRACH_ConfigSIB_v1310 *ext4_prach; + PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; + PRACH_ParametersCE_r13_t *p[4]; - if (cc[CC_idP].radioResourceConfigCommon_BR) { + if (cc[CC_idP].radioResourceConfigCommon_BR) { - ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; - prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; - - switch (prach_ParametersListCE_r13->list.count) { - case 4: - p[3]=prach_ParametersListCE_r13->list.array[3]; - case 3: - p[2]=prach_ParametersListCE_r13->list.array[2]; - case 2: - p[1]=prach_ParametersListCE_r13->list.array[1]; - case 1: - p[0]=prach_ParametersListCE_r13->list.array[0]; - default: - AssertFatal(1==0,"Illegal count for prach_ParametersListCE_r13 %d\n",prach_ParametersListCE_r13->list.count); - } - } -#endif - */ + ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; + + switch (prach_ParametersListCE_r13->list.count) { + case 4: + p[3]=prach_ParametersListCE_r13->list.array[3]; + case 3: + p[2]=prach_ParametersListCE_r13->list.array[2]; + case 2: + p[1]=prach_ParametersListCE_r13->list.array[1]; + case 1: + p[0]=prach_ParametersListCE_r13->list.array[0]; + default: + AssertFatal(1==0,"Illegal count for prach_ParametersListCE_r13 %d\n",prach_ParametersListCE_r13->list.count); + } + } + #endif + */ // check HARQ status and retransmit if necessary - - UE_id = find_UE_id(module_idP,RA_template->rnti); - AssertFatal(UE_id>=0,"Can't find UE for t-crnti\n"); + + UE_id = find_UE_id (module_idP, RA_template->rnti); + AssertFatal (UE_id >= 0, "Can't find UE for t-crnti\n"); round = UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid]; - vrb_map = cc[CC_idP].vrb_map; - - dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); - - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n", - module_idP,CC_idP,frameP,subframeP,RA_template->harq_pid,round); + vrb_map = cc[CC_idP].vrb_map; + + dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + N_RB_DL = to_prb (cc[CC_idP].mib->message.dl_Bandwidth); + + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n", module_idP, CC_idP, frameP, subframeP, RA_template->harq_pid, round); + + if (round != 8) { - if (round!=8) { - #ifdef Rel14 - if (RA_template->rach_resource_type>0) { - AssertFatal(1==0,"Msg4 Retransmissions not handled yet for BL/CE UEs\n"); - } - else -#endif - { - if ( (RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { - - //RA_template->wait_ack_Msg4++; - // we have to schedule a retransmission - - first_rb=0; - vrb_map[first_rb] = 1; - vrb_map[first_rb+1] = 1; - vrb_map[first_rb+2] = 1; - vrb_map[first_rb+3] = 1; - - fill_nfapi_dl_dci_1A(dl_config_pdu, - 4, // aggregation_level - RA_template->rnti, // rnti - 1, // rnti_type, CRNTI - RA_template->harq_pid, // harq_process - 1, // tpc, none - getRIV(N_RB_DL,first_rb,4), // resource_block_coding - RA_template->msg4_mcs, // mcs - 1, // ndi - round&3, // rv - 0); // vrb_flag - - if (!CCE_allocation_infeasible(module_idP,CC_idP,1,subframeP,dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level,RA_template->rnti)) { - dl_req->number_dci++; - dl_req->number_pdu++; - - LOG_D(MAC,"msg4 retransmission for rnti %x (round %d) fsf %d/%d\n", RA_template->rnti, round, frameP, subframeP); - // DLSCH Config - fill_nfapi_dlsch_config(eNB, - dl_req, - RA_template->msg4_TBsize, - -1 /* retransmission, no pdu_index */, - RA_template->rnti, - 2, // resource_allocation_type : format 1A/1B/1D - 0, // virtual_resource_block_assignment_flag : localized - getRIV(N_RB_DL,first_rb,4), // resource_block_coding : RIV, 4 PRB - 2, // modulation: QPSK - round&3, // redundancy version - 1, // transport_blocks - 0, // transport_block_to_codeword_swap_flag (0) - (cc->p_eNB==1 ) ? 0 : 1, // transmission_scheme - 1, // number of layers - 1, // number of subbands - //0, // codebook index - 1, // ue_category_capacity - 4, // pa: 0 dB - 0, // delta_power_offset_index - 0, // ngap - 1, // NPRB = 3 like in DCI - (cc->p_eNB==1 ) ? 1 : 2, // transmission mode - 1, // num_bf_prb_per_subband - 1); // num_bf_vector - } - else - LOG_D(MAC,"msg4 retransmission for rnti %x (round %d) fsf %d/%d CCE allocation failed!\n", RA_template->rnti, round, frameP, subframeP); - - - // Program PUCCH1a for ACK/NAK - + if (RA_template->rach_resource_type > 0) { + AssertFatal (1 == 0, "Msg4 Retransmissions not handled yet for BL/CE UEs\n"); + } else +#endif + { + if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { - fill_nfapi_uci_acknak(module_idP,CC_idP, - RA_template->rnti, - (frameP*10)+subframeP, - dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); - - // prepare frame for retransmission - if (RA_template->Msg4_subframe>1) RA_template->Msg4_frame++; - RA_template->Msg4_frame&=1023; - RA_template->Msg4_subframe=(RA_template->Msg4_subframe+8)%10; + //RA_template->wait_ack_Msg4++; + // we have to schedule a retransmission - LOG_W(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Msg4 not acknowledged, adding ue specific dci (rnti %x) for RA (Msg4 Retransmission round %d in %d.%d)\n", - module_idP,CC_idP,frameP,subframeP,RA_template->rnti,round,RA_template->Msg4_frame,RA_template->Msg4_subframe); + first_rb = 0; + vrb_map[first_rb] = 1; + vrb_map[first_rb + 1] = 1; + vrb_map[first_rb + 2] = 1; + vrb_map[first_rb + 3] = 1; - } // Msg4 frame/subframe - } // regular LTE case + fill_nfapi_dl_dci_1A (dl_config_pdu, 4, // aggregation_level + RA_template->rnti, // rnti + 1, // rnti_type, CRNTI + RA_template->harq_pid, // harq_process + 1, // tpc, none + getRIV (N_RB_DL, first_rb, 4), // resource_block_coding + RA_template->msg4_mcs, // mcs + 1, // ndi + round & 3, // rv + 0); // vrb_flag + + if (!CCE_allocation_infeasible (module_idP, CC_idP, 1, subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.aggregation_level, RA_template->rnti)) { + dl_req->number_dci++; + dl_req->number_pdu++; + + LOG_D (MAC, "msg4 retransmission for rnti %x (round %d) fsf %d/%d\n", RA_template->rnti, round, frameP, subframeP); + // DLSCH Config + fill_nfapi_dlsch_config (eNB, dl_req, RA_template->msg4_TBsize, -1 /* retransmission, no pdu_index */ , + RA_template->rnti, 2, // resource_allocation_type : format 1A/1B/1D + 0, // virtual_resource_block_assignment_flag : localized + getRIV (N_RB_DL, first_rb, 4), // resource_block_coding : RIV, 4 PRB + 2, // modulation: QPSK + round & 3, // redundancy version + 1, // transport_blocks + 0, // transport_block_to_codeword_swap_flag (0) + (cc->p_eNB == 1) ? 0 : 1, // transmission_scheme + 1, // number of layers + 1, // number of subbands + //0, // codebook index + 1, // ue_category_capacity + 4, // pa: 0 dB + 0, // delta_power_offset_index + 0, // ngap + 1, // NPRB = 3 like in DCI + (cc->p_eNB == 1) ? 1 : 2, // transmission mode + 1, // num_bf_prb_per_subband + 1); // num_bf_vector + } else + LOG_D (MAC, "msg4 retransmission for rnti %x (round %d) fsf %d/%d CCE allocation failed!\n", RA_template->rnti, round, frameP, subframeP); + + + // Program PUCCH1a for ACK/NAK + + + fill_nfapi_uci_acknak (module_idP, CC_idP, RA_template->rnti, (frameP * 10) + subframeP, dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); + + // prepare frame for retransmission + if (RA_template->Msg4_subframe > 1) + RA_template->Msg4_frame++; + RA_template->Msg4_frame &= 1023; + RA_template->Msg4_subframe = (RA_template->Msg4_subframe + 8) % 10; + + LOG_W (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Msg4 not acknowledged, adding ue specific dci (rnti %x) for RA (Msg4 Retransmission round %d in %d.%d)\n", + module_idP, CC_idP, frameP, subframeP, RA_template->rnti, round, RA_template->Msg4_frame, RA_template->Msg4_subframe); + + } // Msg4 frame/subframe + } // regular LTE case } else { - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d : Msg4 acknowledged\n",module_idP,CC_idP,frameP,subframeP); - RA_template->wait_ack_Msg4=0; - RA_template->RA_active=FALSE; - UE_id = find_UE_id(module_idP,RA_template->rnti); - DevAssert( UE_id != -1 ); - eNB->UE_list.UE_template[UE_PCCID(module_idP,UE_id)][UE_id].configured=TRUE; + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d : Msg4 acknowledged\n", module_idP, CC_idP, frameP, subframeP); + RA_template->wait_ack_Msg4 = 0; + RA_template->RA_active = FALSE; + UE_id = find_UE_id (module_idP, RA_template->rnti); + DevAssert (UE_id != -1); + eNB->UE_list.UE_template[UE_PCCID (module_idP, UE_id)][UE_id].configured = TRUE; } -} +} -void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP) +void +schedule_RA (module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) { - int CC_id; - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - RA_TEMPLATE *RA_template; - uint8_t i; + int CC_id; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + RA_TEMPLATE *RA_template; + uint8_t i; - start_meas(&eNB->schedule_ra); + start_meas (&eNB->schedule_ra); - for (CC_id=0; CC_idRA_active == TRUE) { - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)\n", - module_idP,frameP,subframeP,CC_id,i,RA_template->generate_rar,RA_template->generate_Msg4,RA_template->wait_ack_Msg4, RA_template->rnti); + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)\n", + module_idP, frameP, subframeP, CC_id, i, RA_template->generate_rar, RA_template->generate_Msg4, RA_template->wait_ack_Msg4, RA_template->rnti); - if (RA_template->generate_rar == 1) generate_Msg2(module_idP,CC_id,frameP,subframeP,RA_template); - else if (RA_template->generate_Msg4 == 1) generate_Msg4(module_idP,CC_id,frameP,subframeP,RA_template); - else if (RA_template->wait_ack_Msg4==1) check_Msg4_retransmission(module_idP,CC_id,frameP,subframeP,RA_template); + if (RA_template->generate_rar == 1) + generate_Msg2 (module_idP, CC_id, frameP, subframeP, RA_template); + else if (RA_template->generate_Msg4 == 1) + generate_Msg4 (module_idP, CC_id, frameP, subframeP, RA_template); + else if (RA_template->wait_ack_Msg4 == 1) + check_Msg4_retransmission (module_idP, CC_id, frameP, subframeP, RA_template); - } // RA_active == TRUE - } // for i=0 .. N_RA_PROC-1 - } // CC_id - - stop_meas(&eNB->schedule_ra); + } // RA_active == TRUE + } // for i=0 .. N_RA_PROC-1 + } // CC_id + + stop_meas (&eNB->schedule_ra); } // handles the event of MSG1 reception -void initiate_ra_proc(module_id_t module_idP, - int CC_id, - frame_t frameP, - sub_frame_t subframeP, - uint16_t preamble_index, - int16_t timing_offset, - uint16_t ra_rnti +void +initiate_ra_proc (module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t subframeP, uint16_t preamble_index, int16_t timing_offset, uint16_t ra_rnti #ifdef Rel14 - , - uint8_t rach_resource_type + , uint8_t rach_resource_type #endif - ) + ) { - uint8_t i; + uint8_t i; - COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_id]; - RA_TEMPLATE *RA_template = &cc->RA_template[0]; + COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_id]; + RA_TEMPLATE *RA_template = &cc->RA_template[0]; struct PRACH_ConfigSIB_v1310 *ext4_prach = NULL; PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13 = NULL; if (cc->radioResourceConfigCommon_BR && cc->radioResourceConfigCommon_BR->ext4) { - ext4_prach=cc->radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; - prach_ParametersListCE_r13= &ext4_prach->prach_ParametersListCE_r13; + ext4_prach = cc->radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; } - LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d\n",module_idP,CC_id,frameP,subframeP,preamble_index); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, subframeP, preamble_index); #ifdef Rel14 - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n",module_idP,CC_id,frameP,subframeP,rach_resource_type); + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n", module_idP, CC_id, frameP, subframeP, rach_resource_type); #endif - if (prach_ParametersListCE_r13 && - prach_ParametersListCE_r13->list.countlist.count); + if (prach_ParametersListCE_r13 && prach_ParametersListCE_r13->list.count < rach_resource_type) { + LOG_E (MAC, "[eNB %d][RAPROC] CC_id %d Received impossible PRACH resource type %d, only %d CE levels configured\n", + module_idP, CC_id, rach_resource_type, (int) prach_ParametersListCE_r13->list.count); return; } - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC,1); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC,0); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 1); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 0); - for (i=0; i5)?1:0); - RA_template[i].Msg2_subframe = (subframeP+4)%10; + RA_template[i].Msg2_frame = frameP + ((subframeP > 5) ? 1 : 0); + RA_template[i].Msg2_subframe = (subframeP + 4) % 10; /* TODO: find better procedure to allocate RNTI */ do { - RA_template[i].rnti = taus(); + RA_template[i].rnti = taus (); loop++; } while (loop != 100 && /* TODO: this is not correct, the rnti may be in use without * being in the MAC yet. To be refined. */ - !(find_UE_id(module_idP, RA_template[i].rnti) == -1 && + !(find_UE_id (module_idP, RA_template[i].rnti) == -1 && /* 1024 and 60000 arbirarily chosen, not coming from standard */ RA_template[i].rnti >= 1024 && RA_template[i].rnti < 60000)); - if (loop == 100) { printf("%s:%d:%s: FATAL ERROR! contact the authors\n", __FILE__, __LINE__, __FUNCTION__); abort(); } - RA_template[i].RA_rnti = ra_rnti; + if (loop == 100) { + printf ("%s:%d:%s: FATAL ERROR! contact the authors\n", __FILE__, __LINE__, __FUNCTION__); + abort (); + } + RA_template[i].RA_rnti = ra_rnti; RA_template[i].preamble_index = preamble_index; - LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Activating RAR generation in Frame %d, subframe %d for process %d, rnti %x, RA_active %d\n", - module_idP,CC_id,frameP, - RA_template[i].Msg2_frame, - RA_template[i].Msg2_subframe, - i,RA_template[i].rnti, - RA_template[i].RA_active); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d Activating RAR generation in Frame %d, subframe %d for process %d, rnti %x, RA_active %d\n", + module_idP, CC_id, frameP, RA_template[i].Msg2_frame, RA_template[i].Msg2_subframe, i, RA_template[i].rnti, RA_template[i].RA_active); return; } } - LOG_E(MAC,"[eNB %d][RAPROC] FAILURE: CC_id %d Frame %d Initiating RA procedure for preamble index %d\n",module_idP,CC_id,frameP,preamble_index); + LOG_E (MAC, "[eNB %d][RAPROC] FAILURE: CC_id %d Frame %d Initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, preamble_index); } -void cancel_ra_proc(module_id_t module_idP, int CC_id, frame_t frameP, rnti_t rnti) +void +cancel_ra_proc (module_id_t module_idP, int CC_id, frame_t frameP, rnti_t rnti) { - unsigned char i; - RA_TEMPLATE *RA_template = (RA_TEMPLATE *)&RC.mac[module_idP]->common_channels[CC_id].RA_template[0]; + unsigned char i; + RA_TEMPLATE *RA_template = (RA_TEMPLATE *) & RC.mac[module_idP]->common_channels[CC_id].RA_template[0]; - MSC_LOG_EVENT(MSC_PHY_ENB, "RA Cancelling procedure ue %"PRIx16" ", rnti); - LOG_D(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d Cancelling RA procedure for UE rnti %x\n",module_idP,CC_id,frameP,rnti); + MSC_LOG_EVENT (MSC_PHY_ENB, "RA Cancelling procedure ue %" PRIx16 " ", rnti); + LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d Cancelling RA procedure for UE rnti %x\n", module_idP, CC_id, frameP, rnti); - for (i=0; i Date: Sun, 5 Nov 2017 05:19:40 -0800 Subject: [PATCH 076/125] debugging for MPDCCH --- openair1/PHY/LTE_TRANSPORT/dci.c | 4 +- openair1/PHY/LTE_TRANSPORT/edci.c | 92 +++++++++++++++++++++++--- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 6 +- 3 files changed, 88 insertions(+), 14 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index 1bea8db59a..84c3b2bcec 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -210,6 +210,7 @@ uint8_t *generate_dci0(uint8_t *dci, uint8_t *e, uint8_t DCI_LENGTH, uint8_t aggregation_level, + uint8_r bitsperCCE, uint16_t rnti) { @@ -230,7 +231,7 @@ uint8_t *generate_dci0(uint8_t *dci, "generate_dci FATAL, illegal aggregation_level %d\n",aggregation_level); - coded_bits = 72 * aggregation_level; + coded_bits = bitsperCCE * aggregation_level; /* @@ -2293,6 +2294,7 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols, e+(72*dci_alloc[i].firstCCE), dci_alloc[i].dci_length, dci_alloc[i].L, + 72, dci_alloc[i].rnti); } } diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 49a60ae9e8..6d67d87bdd 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -96,16 +96,18 @@ void mpdcch_scrambling(LTE_DL_FRAME_PARMS *frame_parms, } } -// this table is the allocation of modulated MPDCCH format 5 symbols to REs -// There are in total 36 REs/ECCE * 4 ECCE/PRB_pair = 144 REs in total/PRB_pair, total is 168 REs => 24 REs for DMRS -// For format 5 there are 6 PRB pairs => 864 REs for 24 total ECCE -static uint16_t mpdcch5tab[864]; +// this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 +// start symbol is symbol 1 and L'=24 => all 6 PRBs in the set +// 9 symbols without DMRS = 9*12*6 REs = 648 REs +// 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs +// Total = 648+216 = 864 REs = 1728 bits +static uint16_t mpdcch5ss1tab[864]; -void init_mpdcch5tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { +void init_mpdcch5ss1p107108tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { int l,k,kmod,re; LOG_I(PHY,"Inititalizing mpdcch5tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=0,re=0;l<14;l++) { + for (l=1,re=0;l<14;l++) { for (k=0;k<72;k++){ kmod = k % 12; if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || @@ -116,9 +118,74 @@ void init_mpdcch5tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { AssertFatal(re==864,"RE count not equal to 864\n"); } +// this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 +// start symbol is symbol 2 and L'=24 => all 6 PRBs in the set +// 8 symbols without DMRS = 9*12*6 REs = 576 REs +// 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs +// Total = 576+216 = 792 REs = 1584 bits +static uint16_t mpdcch5ss2tab[864]; + +void init_mpdcch5ss2p107108tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { + int l,k,kmod,re; + + LOG_I(PHY,"Inititalizing mpdcch5tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l=2,re=0;l<14;l++) { + for (k=0;k<72;k++){ + kmod = k % 12; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) + mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + } + } +} +// this table is the allocation of modulated MPDCCH format 3 symbols to REs, antenna ports 107,108 +// with start symbol 1, using L'=16 => first 4 PRBs in the set +// 8 symbols without DMRS = 9*12*4 REs = 432 REs +// 4 symbols with DMRS (3 REs stolen per symbol = 4*9*4 REs = 144 REs +// Total = 432+144 = 576 = 16CCE*36RE/CCE +static uint16_t mpdcch3ss1tab[864]; + +void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { + int l,k,kmod,re; + + LOG_I(PHY,"Inititalizing mpdcch3ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l=1,re=0;l<14;l++) { + for (k=0;k<48;k++){ + kmod = k % 12; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) + mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + } + } + AssertFatal(re==864,"RE count not equal to 864\n"); +} + +// this table is the allocation of modulated MPDCCH format 2 symbols to REs, antenna ports 107,108 +// with start symbol 1, using L'=8 => last 2 PRBs in the set +// 8 symbols without DMRS = 9*12*2 REs = 216 REs +// 4 symbols with DMRS (3 REs stolen per symbol = 4*9*2 REs = 72 REs +// Total = 216+72 = 288 = 8CCE*36RE/CCE +static uint16_t mpdcch2ss1tab[864]; + +void init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { + int l,k,kmod,re; + + LOG_I(PHY,"Inititalizing mpdcch3ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l=1,re=0;l<14;l++) { + for (k=0;k<48;k++){ + kmod = k % 12; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) + mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + } + } + AssertFatal(re==864,"RE count not equal to 864\n"); +} + extern uint8_t *generate_dci0(uint8_t *dci, uint8_t *e, uint8_t DCI_LENGTH, + uint8_t bitsperCCE, uint8_t aggregation_level, uint16_t rnti); @@ -130,7 +197,15 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe,int16_t amp,in LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; int i; int gain_lin_QPSK; + uint8_t bitsperCCE; + if (mpdcch->start_symbol == 1) + bitsperCCE = 72; + else if (mpdcch->start_symbol == 2) + bitsperCCE = 66; + else if (mpdcch->start_symbol == 3) + bitsperCCE = 60; + for (i=0;inum_dci;i++) { mdci = &mpdcch->mdci_alloc[i]; @@ -150,11 +225,12 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe,int16_t amp,in generate_dci0(mdci->dci_pdu, mpdcch->e+(72*mdci->firstCCE), mdci->dci_length, + bitsperCCE, mdci->L, mdci->rnti); - coded_bits = 72 * mdci->L; + coded_bits = bitsperCCE * mdci->L; // scrambling uint16_t absSF = (frame*10)+subframe; @@ -166,7 +242,7 @@ void generate_mdci_top(PHY_VARS_eNB *eNB, int frame, int subframe,int16_t amp,in mpdcch_scrambling(fp, mdci, absSF, - mpdcch->e+(72*mdci->firstCCE), + mpdcch->e+(bitsperCCE*mdci->firstCCE), coded_bits); // Modulation for PDCCH diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index a876dfe3eb..158d49bbbd 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -304,20 +304,16 @@ void generate_Msg2(module_id_t module_idP,int CC_idP,frame_t frameP,sub_frame_t dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; RA_template->msg2_mpdcch_repetition_cnt++; dl_req->number_pdu++; - RA_template->Msg2_subframe = (RA_template->Msg2_subframe+9)%10; - } //repetition_count==0 && SF condition met if (RA_template->msg2_mpdcch_repetition_cnt>0) { // we're in a stream of repetitions - LOG_I(MAC,"[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", - module_idP,frameP,subframeP,RA_template->msg2_mpdcch_repetition_cnt); - if (RA_template->msg2_mpdcch_repetition_cnt==reps) { // this is the last mpdcch repetition if (cc[CC_idP].tdd_Config==NULL) { // FDD case // wait 2 subframes for PDSCH transmission if (subframeP>7) RA_template->Msg2_frame = (frameP+1)&1023; else RA_template->Msg2_frame = frameP; RA_template->Msg2_subframe = (subframeP+2)%10; // +2 is the "n+x" from Section 7.1.11 in 36.213 + LOG_I(MAC,"[eNB %d][RAPROC] SFN %d.%d : Set Msg2 in %d.%d\n",frameP,subframeP,RA_template->Msg2_frame,RA_template->Msg2_subframe); } else { AssertFatal(1==0,"TDD case not done yet\n"); From d135627884817b37f8f6ef80195fb6209259332f Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 5 Nov 2017 12:27:46 -0800 Subject: [PATCH 077/125] integration of mpdcch format 2,3,5, wired for format 5 only. integration of mpdcch dmrs signals. --- openair1/PHY/INIT/lte_init.c | 2 +- openair1/PHY/LTE_TRANSPORT/dci.c | 2 +- openair1/PHY/LTE_TRANSPORT/edci.c | 245 ++++++++++++++++++++++++----- openair1/PHY/LTE_TRANSPORT/proto.h | 2 +- 4 files changed, 213 insertions(+), 38 deletions(-) diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c index 1108bdc1ff..3925c255d0 100755 --- a/openair1/PHY/INIT/lte_init.c +++ b/openair1/PHY/INIT/lte_init.c @@ -229,7 +229,7 @@ phy_config_request (PHY_Config_t * phy_config) fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[3], fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig, fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag, fp->frame_type, RC.eNB[Mod_id][CC_id]->X_u_br[0]); - init_mpdcch5tab_normal_regular_subframe_evenNRBDL (RC.eNB[Mod_id][CC_id],3); + init_mpdcch(RC.eNB[Mod_id][CC_id]); } } #endif diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index 84c3b2bcec..c89189ec03 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -210,7 +210,7 @@ uint8_t *generate_dci0(uint8_t *dci, uint8_t *e, uint8_t DCI_LENGTH, uint8_t aggregation_level, - uint8_r bitsperCCE, + uint8_t bitsperCCE, uint16_t rnti) { diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index aa57f58b11..2d871b2221 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -102,18 +102,22 @@ mpdcch_scrambling (LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, uint16 // 9 symbols without DMRS = 9*12*6 REs = 648 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs // Total = 648+216 = 864 REs = 1728 bits -static uint16_t mpdcch5ss1tab[864]; +static uint16_t mpdcch5ss1p107108tab[864]; +static uint16_t mpdcch5ss1p109110tab[864]; -void init_mpdcch5ss1p107108tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { +void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { int l,k,kmod,re; - LOG_I(PHY,"Inititalizing mpdcch5tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + LOG_I(PHY,"Inititalizing mpdcchss15tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); for (l=1,re=0;l<14;l++) { for (k=0;k<72;k++){ kmod = k % 12; if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) - mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { + mpdcch5ss1p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch5ss1p107108tab[re]=1+mpdcch5ss1p109110tab[re]; + re++; + } } } AssertFatal(re==864,"RE count not equal to 864\n"); @@ -121,44 +125,78 @@ void init_mpdcch5ss1p107108tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *e // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 // start symbol is symbol 2 and L'=24 => all 6 PRBs in the set -// 8 symbols without DMRS = 9*12*6 REs = 576 REs +// 8 symbols without DMRS = 8*12*6 REs = 576 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs // Total = 576+216 = 792 REs = 1584 bits -static uint16_t mpdcch5ss2tab[864]; - -void init_mpdcch5ss2p107108tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { +static uint16_t mpdcch5ss2p107108tab[792]; +static uint16_t mpdcch5ss2p109110tab[792]; +void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { int l,k,kmod,re; - LOG_I(PHY,"Inititalizing mpdcch5tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + LOG_I(PHY,"Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); for (l=2,re=0;l<14;l++) { for (k=0;k<72;k++){ kmod = k % 12; if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) - mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { + mpdcch5ss2p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch5ss2p107108tab[re]=1+mpdcch5ss2p109110tab[re]; + re++; + } } } + AssertFatal(re==792,"RE count not equal to 792\n"); } + +// this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 +// start symbol is symbol 3 and L'=24 => all 6 PRBs in the set +// 7 symbols without DMRS = 7*12*6 REs = 504 REs +// 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs +// Total = 504+216 = 720 REs = 1440 bits +static uint16_t mpdcch5ss3p107108tab[720]; +static uint16_t mpdcch5ss3p109110tab[720]; +void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { + int l,k,kmod,re; + + LOG_I(PHY,"Inititalizing mpdcch5ss3tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l=3,re=0;l<14;l++) { + for (k=0;k<72;k++){ + kmod = k % 12; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { + mpdcch5ss3p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch5ss3p107108tab[re]=1+mpdcch5ss3p109110tab[re]; + re++; + } + } + } + AssertFatal(re==720,"RE count not equal to 792\n"); +} + // this table is the allocation of modulated MPDCCH format 3 symbols to REs, antenna ports 107,108 // with start symbol 1, using L'=16 => first 4 PRBs in the set // 8 symbols without DMRS = 9*12*4 REs = 432 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*4 REs = 144 REs // Total = 432+144 = 576 = 16CCE*36RE/CCE -static uint16_t mpdcch3ss1tab[864]; +static uint16_t mpdcch3ss1p107108tab[576]; +static uint16_t mpdcch3ss1p109110tab[576]; void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { int l,k,kmod,re; - LOG_I(PHY,"Inititalizing mpdcch3ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + LOG_I(PHY,"Inititalizing mpdcch3ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); for (l=1,re=0;l<14;l++) { for (k=0;k<48;k++){ kmod = k % 12; if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) - mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { + mpdcch3ss1p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch3ss1p107108tab[re]=1+mpdcch3ss1p109110tab[re]; + re++; + } } } - AssertFatal(re==864,"RE count not equal to 864\n"); + AssertFatal(re==576,"RE count not equal to 864\n"); } // this table is the allocation of modulated MPDCCH format 2 symbols to REs, antenna ports 107,108 @@ -166,23 +204,29 @@ void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { // 8 symbols without DMRS = 9*12*2 REs = 216 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*2 REs = 72 REs // Total = 216+72 = 288 = 8CCE*36RE/CCE -static uint16_t mpdcch2ss1tab[864]; - +static uint16_t mpdcch2ss1p107108tab[288]; +static uint16_t mpdcch2ss1p109110tab[288]; void init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { int l,k,kmod,re; - LOG_I(PHY,"Inititalizing mpdcch3ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + LOG_I(PHY,"Inititalizing mpdcch2ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); for (l=1,re=0;l<14;l++) { for (k=0;k<48;k++){ kmod = k % 12; if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) - mpdcch5tab[re++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { + mpdcch2ss1p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch2ss1p107108tab[re]=1+mpdcch2ss1p109110tab[re]; + re++; + } } } - AssertFatal(re==864,"RE count not equal to 864\n"); + AssertFatal(re==288,"RE count not equal to 288\n"); } + + + extern uint8_t *generate_dci0(uint8_t *dci, uint8_t *e, uint8_t DCI_LENGTH, @@ -190,6 +234,27 @@ extern uint8_t *generate_dci0(uint8_t *dci, uint8_t aggregation_level, uint16_t rnti); + +uint16_t mpdcch_dmrs_tab[12*6]; + +void init_mpdcch_dmrs_tab(uint16_t oss) { + + int re = 5*oss; + int pos = 0; + + for (int symb=0;symb<4;symb++) { + for (int prb=0;prb<6;prb++,re+=12) { + mpdcch_dmrs_tab[pos++] = re; + mpdcch_dmrs_tab[pos++] = re+5; + mpdcch_dmrs_tab[pos++] = re+10; + } + if (symb == 0) re=6*oss; + else if (symb == 1) re=12*oss; + else if (symb == 2) re=13*oss; + } + +} + void generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF) { @@ -201,18 +266,20 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int int i; int gain_lin_QPSK; uint8_t bitsperCCE; + uint16_t *mpdcchtab; + + uint32_t x1, x2, s = 0; + uint8_t Nacc = 4; + uint16_t j0, j, idelta; + uint16_t i0; + + int off; + + // Assumption: only handle a single MPDCCH per narrowband - if (mpdcch->start_symbol == 1) - bitsperCCE = 72; - else if (mpdcch->start_symbol == 2) - bitsperCCE = 66; - else if (mpdcch->start_symbol == 3) - bitsperCCE = 60; - for (i=0;inum_dci;i++) { mdci = &mpdcch->mdci_alloc[i]; - AssertFatal (fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n"); AssertFatal (fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n"); AssertFatal (mdci->L <= 24, "L is %d\n", mdci->L); @@ -221,12 +288,47 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int AssertFatal (mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); AssertFatal (mdci->reps > 0, "mdci->reps==0\n"); - // 9 REs/EREG * 4 EREG/ECCE => 36 REs/ECCE => 72 bits/ECCE, so same as regular PDCCH channel encoding + // These are to avoid unimplemented things + AssertFatal (mdci->reps == 1, "number of repetitions (%d) must be one for now\n",mdci->reps); + AssertFatal (mdci->ce_mode != 1, "CE mode B not activataed yet\n"); + AssertFatal (mdci->L != 24, "Only 2+4 and aggregation 24 for now\n"); + i0 = mdci->i0; + // antenna index + int a_index = mdci->rnti & 3; + + if ((mdci->start_symbol == 1) && (a_index<2)) { + mpdcchtab = mpdcch5ss1p107108tab; + bitsperCCE = 72; + } + else if ((mdci->start_symbol == 1) && (a_index>1)) { + mpdcchtab = mpdcch5ss1p109110tab; + bitsperCCE = 72; + } + else if ((mdci->start_symbol == 2) && (a_index<2)) { + mpdcchtab = mpdcch5ss2p107108tab; + bitsperCCE = 66; + } + else if ((mdci->start_symbol == 2) && (a_index>1)) { + mpdcchtab = mpdcch5ss2p109110tab; + bitsperCCE = 66; + } + else if ((mdci->start_symbol == 3) && (a_index<2)) { + mpdcchtab = mpdcch5ss2p107108tab; + bitsperCCE = 60; + } + else if ((mdci->start_symbol == 3) && (a_index<2)) { + mpdcchtab = mpdcch5ss2p109110tab; + bitsperCCE = 60; + } + else + AssertFatal(1==0,"Illegal combination start_symbol %d, a_index %d\n",mdci->start_symbol,a_index); + + // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing generate_dci0(mdci->dci_pdu, - mpdcch->e+(72*mdci->firstCCE), + mpdcch->e+(bitsperCCE*mdci->firstCCE), mdci->dci_length, bitsperCCE, mdci->L, @@ -261,8 +363,27 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int // first RE of narrowband // mpdcchtab5 below contains the mapping from each coded symbol to relative RE avoiding the DMRS + int nb_i0; + switch (fp->N_RB_DL) { - int re_offset = fp->first_carrier_offset + 1 + ((fp->N_RB_DL == 100) ? 1 : 0) + mdci->narrowband * 12 * 6; + case 6: + case 25: + nb_i0=0; + break; + case 15: + case 50: + case 75: + nb_i0=1; + break; + case 100: + nb_i0=2; + break; + default: + AssertFatal(1==0,"Illegal N_RB_DL %d\n",fp->N_RB_DL); + break; + } + + int re_offset = fp->first_carrier_offset + (12*nb_i0) + mdci->narrowband * 12 * 6; if (re_offset > fp->ofdm_symbol_size) re_offset -= (fp->ofdm_symbol_size - 1); int32_t *txF = &txdataF[0][re_offset]; @@ -274,10 +395,64 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int e_ptr++; ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; e_ptr++; - txF[mpdcch5tab[i + (36 * mdci->firstCCE)]] = yIQ; + txF[mpdcchtab[i + ((bitsperCCE>>1) * mdci->firstCCE)]] = yIQ; + LOG_I(PHY,"mpdcch pos %d: %d => (%d,%d)\n",i,mpdcchtab[i + ((bitsperCCE>>2) * mdci->firstCCE)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); } + if (a_index>1) off=0; + else off=1; + + // pilot scrambling initiatlization (note: this is for a single repetition) + + // x1 is set in lte_gold_generic + + // rule for BL/CE UEs from Section 6.10.3A.1 in 36.211 + + if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI + Nacc = fp->frame_type == FDD ? 4 : 10; + else + Nacc = 1; + + if (fp->frame_type == FDD || Nacc == 1) + idelta = 0; + else + idelta = Nacc - 2; + + j0 = (i0 + idelta) / Nacc; + j = (i - i0) / Nacc; + + + + uint32_t a = ((((j0 + j) * Nacc) % 10)+1); + uint32_t b = ((mdci->dmrs_scrambling_init<<1)+1) << 16; + x2 = a*b; + LOG_I(PHY,"mpdcch_dmrs cinit %d\n",x2); + + // add MPDCCH pilots + int reset = 1; + for (i=0; i < (24*6) ; i+=2) { + if ((i & 0x1f) == 0) { + s = lte_gold_generic (&x1, &x2, reset); + reset = 0; + } + ((int16_t *) & yIQ)[0] = (((s>>(i & 0x1f))&1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + ((int16_t *) & yIQ)[1] = (((s>>((i+1) & 0x1f))&1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + txF[off+mpdcch_dmrs_tab[(i>>1)]] = yIQ; + LOG_I(PHY,"mpdcch_dmrs pos %d: %d => (%d,%d)\n",i,mpdcch_dmrs_tab[(i>>1)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); + } } + + +} + +void init_mpdcch(PHY_VARS_eNB *eNB) { + + init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch_dmrs_tab(eNB->frame_parms.ofdm_symbol_size); } #endif diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index 6a27811036..8fa2f0ca22 100755 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -1678,7 +1678,7 @@ void init_ul_hopping(LTE_DL_FRAME_PARMS *frame_parms); int init_ue_paging_info(PHY_VARS_UE *ue, long defaultPagingCycle, long nB); #ifdef Rel14 -void init_mpdcch5tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB,int l_MPDCCH_start); +void init_mpdcch(PHY_VARS_eNB *eNB); #endif int32_t compareints (const void * a, const void * b); From 71dbefe981c3743cbf08e71acb394d2fe8a16aee Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Thu, 16 Nov 2017 06:15:45 +0100 Subject: [PATCH 078/125] activated debugging traces for Msg2 MPDCCH/PDSCH --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 42 ++++---- openair1/PHY/LTE_TRANSPORT/edci.c | 100 ++++++++++++------ openair1/SCHED/fapi_l1.c | 8 +- openair1/SCHED/phy_procedures_lte_eNb.c | 19 +++- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 10 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 10 +- 6 files changed, 123 insertions(+), 66 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 08f090a60c..4b912fa47c 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -2193,14 +2193,14 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1A_5MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; ((DCI6_1A_5MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_1A_5MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_1A_5MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1A_5MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; ((DCI6_1A_5MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; ((DCI6_1A_5MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; ((DCI6_1A_5MHz_t *) dci_pdu)->rv = rel13->redundancy_version; ((DCI6_1A_5MHz_t *) dci_pdu)->TPC = rel13->tpc; ((DCI6_1A_5MHz_t *) dci_pdu)->srs_req = rel13->srs_request; ((DCI6_1A_5MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1A_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_1A_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; break; case 50: @@ -2209,14 +2209,17 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1A_10MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; ((DCI6_1A_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_1A_10MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_1A_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1A_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels); ((DCI6_1A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; ((DCI6_1A_10MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; ((DCI6_1A_10MHz_t *) dci_pdu)->rv = rel13->redundancy_version; ((DCI6_1A_10MHz_t *) dci_pdu)->TPC = rel13->tpc; ((DCI6_1A_10MHz_t *) dci_pdu)->srs_req = rel13->srs_request; ((DCI6_1A_10MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_1A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; + + LOG_I(PHY,"Frame %d, Subframe %d : Programming Format 6-1A DCI, mcs %d, rballoc %x, dci_rep r%d, L %d, narrowband %d, start_symbol %d\n", + frame,subframe,rel13->mcs,rel13->resource_block_coding,1+rel13->dci_subframe_repetition_number,rel13->aggregation_level,rel13->mpdcch_narrow_band,dci_alloc->start_symbol); break; case 100: dci_alloc->dci_length = sizeof_DCI6_1A_20MHz_t; @@ -2224,14 +2227,14 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1A_20MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; ((DCI6_1A_20MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_1A_20MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_1A_20MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1A_20MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; ((DCI6_1A_20MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; ((DCI6_1A_20MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; ((DCI6_1A_20MHz_t *) dci_pdu)->rv = rel13->redundancy_version; ((DCI6_1A_20MHz_t *) dci_pdu)->TPC = rel13->tpc; ((DCI6_1A_20MHz_t *) dci_pdu)->srs_req = rel13->srs_request; ((DCI6_1A_20MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1A_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_1A_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; break; } break; @@ -2245,11 +2248,11 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1B_5MHz_t *) dci_pdu)->type = 1; ((DCI6_1B_5MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_1B_5MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_1B_5MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1B_5MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; ((DCI6_1B_5MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; ((DCI6_1B_5MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; ((DCI6_1B_5MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1B_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_1B_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; break; case 50: @@ -2257,22 +2260,22 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1B_10MHz_t *) dci_pdu)->type = 1; ((DCI6_1B_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_1B_10MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_1B_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1B_10MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; ((DCI6_1B_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; ((DCI6_1B_10MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; ((DCI6_1B_10MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1B_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_1B_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; break; case 100: dci_alloc->dci_length = sizeof_DCI6_1B_20MHz_t; ((DCI6_1B_20MHz_t *) dci_pdu)->type = 1; ((DCI6_1B_20MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_1B_20MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_1B_20MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); + ((DCI6_1B_20MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; ((DCI6_1B_20MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; ((DCI6_1B_20MHz_t *) dci_pdu)->ndi = rel13->new_data_indicator; ((DCI6_1B_20MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; - ((DCI6_1B_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_1B_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; break; } case 12: // Format 6-2 @@ -2288,8 +2291,8 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_2_paging_5MHz_t *) dci_pdu)->type = 1; ((DCI6_2_paging_5MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_2_paging_5MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_2_paging_5MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); - ((DCI6_2_paging_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_2_paging_5MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; + ((DCI6_2_paging_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; } break; @@ -2302,8 +2305,8 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_2_paging_10MHz_t *) dci_pdu)->type = 1; ((DCI6_2_paging_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_2_paging_10MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_2_paging_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); - ((DCI6_2_paging_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_2_paging_10MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; + ((DCI6_2_paging_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; } break; @@ -2316,8 +2319,8 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_2_paging_20MHz_t *) dci_pdu)->type = 1; ((DCI6_2_paging_20MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; ((DCI6_2_paging_20MHz_t *) dci_pdu)->mcs = rel13->mcs; - ((DCI6_2_paging_20MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels - 1); - ((DCI6_2_paging_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number - 1; + ((DCI6_2_paging_20MHz_t *) dci_pdu)->rep = rel13->pdsch_reptition_levels; + ((DCI6_2_paging_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; } break; @@ -2330,6 +2333,7 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * // printf("DCI: Setting subframe_tx for subframe %d\n",subframe); dlsch0->subframe_tx[(subframe + 2) % 10] = 1; + LOG_I(PHY,"PDSCH : resource_block_coding %x",rel13->resource_block_coding); conv_eMTC_rballoc (rel13->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); @@ -2366,7 +2370,9 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0_harq->frame = (subframe >= 8) ? ((frame + 1) & 1023) : frame; dlsch0_harq->subframe = (subframe + 2) % 10; + dlsch0_harq->pdsch_start = rel13->start_symbol; + LOG_I(PHY,"Setting DLSCH harq %d to active for %d.%d\n",rel13->harq_process,dlsch0_harq->frame,dlsch0_harq->subframe); dlsch0->rnti = rel13->rnti; diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 2d871b2221..5687bd721e 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -106,21 +106,32 @@ static uint16_t mpdcch5ss1p107108tab[864]; static uint16_t mpdcch5ss1p109110tab[864]; void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re; + int l,k,kmod,re107108=0,re109110=0; LOG_I(PHY,"Inititalizing mpdcchss15tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=1,re=0;l<14;l++) { + + for (l=1;l<14;l++) { for (k=0;k<72;k++){ kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { - mpdcch5ss1p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch5ss1p107108tab[re]=1+mpdcch5ss1p109110tab[re]; - re++; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13))|| + (kmod==2) || (kmod==3) || (kmod==4) || + (kmod==7) || (kmod==8) || (kmod==9)) { + mpdcch5ss1p109110tab[re109110]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch5ss1p107108tab[re107108]=mpdcch5ss1p109110tab[re109110]; + re107108++; + re109110++; + printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); + } + else if ((kmod==0)||(kmod==5)||(kmod==10)) { + mpdcch5ss1p109110tab[re109110++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + } + else if ((kmod==1)||(kmod==6)||(kmod==11)) { + mpdcch5ss1p107108tab[re107108++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); } } } - AssertFatal(re==864,"RE count not equal to 864\n"); + AssertFatal(re107108==864,"RE count not equal to 864 (%d)\n",re107108); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -131,21 +142,31 @@ void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { static uint16_t mpdcch5ss2p107108tab[792]; static uint16_t mpdcch5ss2p109110tab[792]; void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re; + int l,k,kmod,re107108=0,re109110=0; LOG_I(PHY,"Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=2,re=0;l<14;l++) { + for (l=2;l<14;l++) { for (k=0;k<72;k++){ kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { - mpdcch5ss2p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch5ss2p107108tab[re]=1+mpdcch5ss2p109110tab[re]; - re++; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13))|| + (kmod==2) || (kmod==3) || (kmod==4) || + (kmod==7) || (kmod==8) || (kmod==9)) { + mpdcch5ss2p109110tab[re109110]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch5ss2p107108tab[re107108]=mpdcch5ss2p109110tab[re109110]; + re107108++; + re109110++; + printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); + } + else if ((kmod==0)||(kmod==5)||(kmod==10)) { + mpdcch5ss2p109110tab[re109110++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + } + else if ((kmod==1)||(kmod==6)||(kmod==11)) { + mpdcch5ss2p107108tab[re107108++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); } } } - AssertFatal(re==792,"RE count not equal to 792\n"); + AssertFatal(re107108==792,"RE count not equal to 792\n"); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -156,21 +177,31 @@ void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { static uint16_t mpdcch5ss3p107108tab[720]; static uint16_t mpdcch5ss3p109110tab[720]; void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re; + int l,k,kmod,re107108=0,re109110=0; LOG_I(PHY,"Inititalizing mpdcch5ss3tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=3,re=0;l<14;l++) { + for (l=3;l<14;l++) { for (k=0;k<72;k++){ kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { - mpdcch5ss3p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch5ss3p107108tab[re]=1+mpdcch5ss3p109110tab[re]; - re++; + if (((l!=5) && (l!=6) && (l!=12) && (l!=13))|| + (kmod==2) || (kmod==3) || (kmod==4) || + (kmod==7) || (kmod==8) || (kmod==9)) { + mpdcch5ss3p109110tab[re109110]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + mpdcch5ss3p107108tab[re107108]=mpdcch5ss3p109110tab[re109110]; + re107108++; + re109110++; + printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); + } + else if ((kmod==0)||(kmod==5)||(kmod==10)) { + mpdcch5ss3p109110tab[re109110++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + } + else if ((kmod==1)||(kmod==6)||(kmod==11)) { + mpdcch5ss3p107108tab[re107108++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; + printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); } } } - AssertFatal(re==720,"RE count not equal to 792\n"); + AssertFatal(re107108==720,"RE count not equal to 792\n"); } // this table is the allocation of modulated MPDCCH format 3 symbols to REs, antenna ports 107,108 @@ -211,7 +242,7 @@ void init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { LOG_I(PHY,"Inititalizing mpdcch2ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); for (l=1,re=0;l<14;l++) { - for (k=0;k<48;k++){ + for (k=0;k<24;k++){ kmod = k % 12; if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { @@ -277,6 +308,8 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int // Assumption: only handle a single MPDCCH per narrowband + LOG_I(PHY,"generate_mdci_top: num_dci %d\n",mpdcch->num_dci); + for (i=0;inum_dci;i++) { mdci = &mpdcch->mdci_alloc[i]; @@ -286,13 +319,13 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int AssertFatal (fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "Only N_RB_DL=50,100 for MPDCCH\n"); // Force MPDDCH format 5 AssertFatal (mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); - AssertFatal (mdci->reps > 0, "mdci->reps==0\n"); // These are to avoid unimplemented things - AssertFatal (mdci->reps == 1, "number of repetitions (%d) must be one for now\n",mdci->reps); - AssertFatal (mdci->ce_mode != 1, "CE mode B not activataed yet\n"); - AssertFatal (mdci->L != 24, "Only 2+4 and aggregation 24 for now\n"); + AssertFatal (mdci->ce_mode == 1, "CE mode (%d) B not activated yet\n",mdci->ce_mode); + AssertFatal (mdci->L == 24, "Only 2+4 and aggregation 24 for now\n"); + LOG_I(PHY,"mdci %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d \n", + i,mdci->rnti,mdci->L,mdci->number_of_prb_pairs,mdci->ce_mode,mdci->i0,mdci->start_symbol); i0 = mdci->i0; // antenna index int a_index = mdci->rnti & 3; @@ -330,8 +363,8 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int generate_dci0(mdci->dci_pdu, mpdcch->e+(bitsperCCE*mdci->firstCCE), mdci->dci_length, - bitsperCCE, mdci->L, + bitsperCCE, mdci->rnti); @@ -340,7 +373,7 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int // scrambling uint16_t absSF = (frame * 10) + subframe; - AssertFatal (absSF < 1024, "Absolute subframe %d = %d*10 + %d > 1023\n", absSF, frame, subframe); + AssertFatal (absSF < 10240, "Absolute subframe %d = %d*10 + %d > 10239\n", absSF, frame, subframe); mpdcch_scrambling(fp, mdci, @@ -396,7 +429,8 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; e_ptr++; txF[mpdcchtab[i + ((bitsperCCE>>1) * mdci->firstCCE)]] = yIQ; - LOG_I(PHY,"mpdcch pos %d: %d => (%d,%d)\n",i,mpdcchtab[i + ((bitsperCCE>>2) * mdci->firstCCE)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); + //LOG_I(PHY,"Frame %d, subframe %d: mpdcch pos %d: %d => (%d,%d)\n", + // frame,subframe,i,mpdcchtab[i + ((bitsperCCE>>2) * mdci->firstCCE)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); } if (a_index>1) off=0; @@ -438,7 +472,7 @@ generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int ((int16_t *) & yIQ)[0] = (((s>>(i & 0x1f))&1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; ((int16_t *) & yIQ)[1] = (((s>>((i+1) & 0x1f))&1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; txF[off+mpdcch_dmrs_tab[(i>>1)]] = yIQ; - LOG_I(PHY,"mpdcch_dmrs pos %d: %d => (%d,%d)\n",i,mpdcch_dmrs_tab[(i>>1)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); + LOG_I(PHY,"mpdcch_dmrs pos %d: %d => (%d,%d)\n",i,off+mpdcch_dmrs_tab[(i>>1)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); } } diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 3be6f4b987..960437b935 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -238,13 +238,13 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, AssertFatal(sdu!=NULL,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d\n", proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid, dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index); - if (rel8->rnti != 0xFFFF) LOG_D(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d\n", + if (rel8->rnti != 0xFFFF) LOG_I(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d\n", proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid); if (codeword_index == 0) dlsch0_harq->pdu = sdu; else dlsch1_harq->pdu = sdu; } else { - if (rel8->rnti != 0xFFFF) LOG_D(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round %d, rnti %x, UE_id %d, harq_pid %d\n", + if (rel8->rnti != 0xFFFF) LOG_I(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round %d, rnti %x, UE_id %d, harq_pid %d\n", proc->frame_tx,proc->subframe_tx,dlsch0_harq->round, rel8->rnti,UE_id,harq_pid); } @@ -616,7 +616,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) eNB->phich_vars[subframe&1].num_hi = 0; - LOG_D(PHY,"NFAPI: Frame %d, Subframe %d (ul_subframe %d): received %d dl_pdu, %d tx_req, %d hi_dci0_config_req, %d UL_config \n", + LOG_I(PHY,"NFAPI: Frame %d, Subframe %d (ul_subframe %d): received %d dl_pdu, %d tx_req, %d hi_dci0_config_req, %d UL_config \n", frame,subframe,ul_subframe,number_dl_pdu,TX_req->tx_request_body.number_of_pdus,number_hi_dci0_pdu,number_ul_pdu); @@ -636,7 +636,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) } for (i=0;idl_config_request_body.dl_config_pdu_list[i]; - LOG_D(PHY,"NFAPI: dl_pdu %d : type %d\n",i,dl_config_pdu->pdu_type); + LOG_I(PHY,"NFAPI: dl_pdu %d : type %d\n",i,dl_config_pdu->pdu_type); switch (dl_config_pdu->pdu_type) { case NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE: handle_nfapi_dci_dl_pdu(eNB,proc,dl_config_pdu); diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 14618d7828..a6ed5b6d10 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -299,6 +299,9 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type int8_t UE_id = 0; uint8_t num_pdcch_symbols = 0; uint8_t num_dci = 0; +#ifdef Rel14 + uint8_t num_mdci = 0; +#endif uint8_t ul_subframe; uint32_t ul_frame; LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; @@ -391,7 +394,14 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PDCCH_TX, 0); - +#ifdef Rel14 + num_mdci = eNB->mpdcch_vars[subframe &1].num_dci; + if (num_mdci > 0) { + LOG_I (PHY, "[eNB %" PRIu8 "] Frame %d, subframe %d: Calling generate_mdci_top (mpdcch) (num_dci %" PRIu8 ")\n", eNB->Mod_id, frame, subframe, num_mdci); + + generate_mdci_top (eNB, frame, subframe, AMP, eNB->common_vars.txdataF); + } +#endif // Now scan UE specific DLSCH LTE_eNB_DLSCH_t *dlsch0, *dlsch1; for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { @@ -404,6 +414,13 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type harq_pid = dlsch0->harq_ids[subframe]; AssertFatal (harq_pid >= 0, "harq_pid is negative\n"); // generate pdsch + LOG_I(PHY,"SFN %d.%d: DLSCH for rnti %x is active, harq_pid %d => SFN %d.%d\n", + frame, + subframe, + dlsch0->rnti, + harq_pid, + dlsch0->harq_processes[harq_pid]->frame, + dlsch0->harq_processes[harq_pid]->subframe); if ((dlsch0->harq_processes[harq_pid]->status == ACTIVE) && (dlsch0->harq_processes[harq_pid]->frame == frame) && (dlsch0->harq_processes[harq_pid]->subframe == subframe)) pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 26df2ea9c9..2a5375579e 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -252,7 +252,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { // MPDCCH configuration for RAR - LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming MPDCCH %d repetitions\n", module_idP, frameP, subframeP, reps); + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2 for CE Level %d, Programming MPDCCH %d repetitions\n", module_idP, frameP, subframeP, RA_template->rach_resource_type-1,reps); memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); @@ -266,14 +266,14 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 2; // RA-RNTI dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); // Note: still to be checked if it should not be (getRIV(N_RB_DL,first_rb,6)) : Check nFAPI specifications and what is done L1 with this parameter + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6) | (RA_template->msg2_narrowband<<5); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; @@ -616,7 +616,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 16; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 0; // t-C-RNTI dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; @@ -1155,7 +1155,7 @@ initiate_ra_proc (module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t } LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, subframeP, preamble_index); #ifdef Rel14 - LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n", module_idP, CC_id, frameP, subframeP, rach_resource_type); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n", module_idP, CC_id, frameP, subframeP, rach_resource_type); #endif if (prach_ParametersListCE_r13 && prach_ParametersListCE_r13->list.count < rach_resource_type) { diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 475ad3af6d..0ae7ffac96 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -17,7 +17,7 @@ eNBs = mobile_country_code = "208"; - mobile_network_code = "93"; + mobile_network_code = "92"; tr_s_preference = "local_mac" @@ -186,13 +186,13 @@ eNBs = #PRACH Config prach_root = 89; - prach_config_index = 3; + prach_config_index = 0; prach_high_speed = "DISABLE"; - prach_zero_correlation = 12; - prach_freq_offset = 2; + prach_zero_correlation = 1; + prach_freq_offset = 1; #PDSCH Config Common - pdsch_referenceSignalPower = 12; # was -27 + pdsch_referenceSignalPower = -27 pdsch_p_b = 0; From 97097a8c4900511a8806970f081e910dc6fef9ce Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Thu, 16 Nov 2017 09:35:39 +0100 Subject: [PATCH 079/125] more debugging for RA procedures for eMTC --- openair1/PHY/LTE_TRANSPORT/edci.c | 2 +- openair1/SCHED/fapi_l1.c | 4 +++- openair2/LAYER2/MAC/defs.h | 1 + openair2/LAYER2/MAC/eNB_scheduler_RA.c | 8 ++++++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 5687bd721e..d8d0f88254 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -290,7 +290,7 @@ void generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF) { - LTE_eNB_MPDCCH *mpdcch= &eNB->mpdcch_vars[subframe&2]; + LTE_eNB_MPDCCH *mpdcch= &eNB->mpdcch_vars[subframe&1]; mDCI_ALLOC_t *mdci; int coded_bits; LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 960437b935..374cccb239 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -614,7 +614,9 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) eNB->pdcch_vars[subframe&1].num_pdcch_symbols = DL_req->dl_config_request_body.number_pdcch_ofdm_symbols; eNB->pdcch_vars[subframe&1].num_dci = 0; eNB->phich_vars[subframe&1].num_hi = 0; - +#ifdef Rel14 + eNB->mpdcch_vars[subframe&1].num_dci = 0; +#endif LOG_I(PHY,"NFAPI: Frame %d, Subframe %d (ul_subframe %d): received %d dl_pdu, %d tx_req, %d hi_dci0_config_req, %d UL_config \n", frame,subframe,ul_subframe,number_dl_pdu,TX_req->tx_request_body.number_of_pdus,number_hi_dci0_pdu,number_ul_pdu); diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 10867b4e8f..a18191f8cf 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -917,6 +917,7 @@ typedef struct { #ifdef Rel14 uint8_t rach_resource_type; uint8_t msg2_mpdcch_repetition_cnt; + uint8_t msg2_mpdcch_done; uint8_t msg4_mpdcch_repetition_cnt; uint8_t msg2_narrowband; uint8_t msg34_narrowband; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 2a5375579e..88ab9b1d39 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -251,6 +251,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s first_rb = narrowband_to_first_rb (&cc[CC_idP], RA_template->msg2_narrowband); if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { + RA_template->msg2_mpdcch_done = 0; // MPDCCH configuration for RAR LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2 for CE Level %d, Programming MPDCCH %d repetitions\n", module_idP, frameP, subframeP, RA_template->rach_resource_type-1,reps); @@ -308,7 +309,9 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s if (RA_template->msg2_mpdcch_repetition_cnt > 0) { // we're in a stream of repetitions - if (RA_template->msg2_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition + if ((RA_template->msg2_mpdcch_repetition_cnt == reps)&& + (RA_template->msg2_mpdcch_done == 0)){ // this is the last mpdcch repetition + RA_template->msg2_mpdcch_done = 1; if (cc[CC_idP].tdd_Config == NULL) { // FDD case // wait 2 subframes for PDSCH transmission if (subframeP > 7) @@ -329,7 +332,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s if ((RA_template->Msg2_frame == frameP) && (RA_template->Msg2_subframe == subframeP)) { // Program PDSCH - LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH %d\n", module_idP, frameP, subframeP); + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH\n", module_idP, frameP, subframeP); RA_template->generate_rar = 0; dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; @@ -373,6 +376,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s add_msg3 (module_idP, CC_idP, RA_template, frameP, subframeP); fill_rar_br (eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); // DL request + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming TX Req %d\n", module_idP, frameP, subframeP); eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble From 2d97eb4b34e5230b758afa98c2fb9fe4689f8562 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 19 Nov 2017 12:09:52 +0100 Subject: [PATCH 080/125] more debugging of RA procedure for eMTC --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 24 +- openair1/PHY/LTE_TRANSPORT/edci.c | 666 ++++++++++++------------ openair1/SCHED/fapi_l1.c | 12 +- openair1/SCHED/phy_procedures_lte_eNb.c | 31 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 8 +- 5 files changed, 368 insertions(+), 373 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 4b912fa47c..a75976a512 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -1065,7 +1065,7 @@ fill_dci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, DCI_ALLOC_t * dc dlsch0->subframe_tx[subframe] = 1; if (dlsch0->rnti != rel8->rnti) { // if rnti of dlsch is not the same as in the config, this is a new entry dlsch0_harq->round = 0; - dlsch0->harq_mask = 0; + dlsch0->harq_mask =0; } if ((dlsch0->harq_mask & (1 << rel8->harq_process)) > 0) { if (rel8->new_data_indicator_1 != dlsch0_harq->ndi) @@ -2353,30 +2353,42 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0_harq->dl_power_off = 1; - dlsch0->active = 1; - dlsch0->harq_mask |= (1 << rel13->harq_process); + dlsch0->subframe_tx[subframe] = 1; + if (dlsch0->rnti != rel13->rnti) { // if rnti of dlsch is not the same as in the config, this is a new entry + dlsch0_harq->round = 0; + dlsch0->harq_mask =0; + } + if ((dlsch0->harq_mask & (1 << rel13->harq_process)) > 0) { + if (rel13->new_data_indicator != dlsch0_harq->ndi) + dlsch0_harq->round = 0; + } else { // process is inactive, so activate and set round to 0 + dlsch0_harq->round = 0; + } + dlsch0_harq->ndi = rel13->new_data_indicator; if (dlsch0_harq->round == 0) { dlsch0_harq->status = ACTIVE; - // printf("Setting DLSCH process %d to ACTIVE\n",rel8->harq_process); + // MCS and TBS don't change across HARQ rounds - dlsch0_harq->mcs = rel13->mcs; dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; } + dlsch0->active = 1; + dlsch0->harq_mask |= (1 << rel13->harq_process); dlsch0->harq_ids[(subframe + 2) % 10] = rel13->harq_process; dlsch0_harq->frame = (subframe >= 8) ? ((frame + 1) & 1023) : frame; dlsch0_harq->subframe = (subframe + 2) % 10; + dlsch0->harq_ids[dlsch0_harq->subframe] = rel13->harq_process; dlsch0_harq->pdsch_start = rel13->start_symbol; LOG_I(PHY,"Setting DLSCH harq %d to active for %d.%d\n",rel13->harq_process,dlsch0_harq->frame,dlsch0_harq->subframe); dlsch0->rnti = rel13->rnti; - + dlsch0_harq->Qm = get_Qm(rel13->mcs); diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index d8d0f88254..7629e8c52c 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -49,52 +49,50 @@ //#define DEBUG_PHY #ifdef Rel14 -void -generate_edci_top (PHY_VARS_eNB * eNB, int frame, int subframe) +void generate_edci_top(PHY_VARS_eNB * eNB, int frame, int subframe) { } -void -mpdcch_scrambling (LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, uint16_t i, uint8_t * e, uint32_t length) +void mpdcch_scrambling(LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, uint16_t i, uint8_t * e, uint32_t length) { - int n; - uint8_t reset; - uint32_t x1, x2, s = 0; - uint8_t Nacc = 4; - uint16_t j0, j, idelta; - uint16_t i0 = mdci->i0; + int n; + uint8_t reset; + uint32_t x1, x2, s = 0; + uint8_t Nacc = 4; + uint16_t j0, j, idelta; + uint16_t i0 = mdci->i0; - // Note: we could actually not do anything if i-i0 < Nacc, save it for later + // Note: we could actually not do anything if i-i0 < Nacc, save it for later - reset = 1; - // x1 is set in lte_gold_generic + reset = 1; + // x1 is set in lte_gold_generic - if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI - Nacc = frame_parms->frame_type == FDD ? 4 : 10; - else - Nacc = 1; + if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI + Nacc = frame_parms->frame_type == FDD ? 4 : 10; + else + Nacc = 1; - if (frame_parms->frame_type == FDD || Nacc == 1) - idelta = 0; - else - idelta = Nacc - 2; + if (frame_parms->frame_type == FDD || Nacc == 1) + idelta = 0; + else + idelta = Nacc - 2; - j0 = (i0 + idelta) / Nacc; - j = (i - i0) / Nacc; + j0 = (i0 + idelta) / Nacc; + j = (i - i0) / Nacc; - // rule for BL/CE UEs from Section 6.8.B2 in 36.211 - x2 = ((((j0 + j) * Nacc) % 10) << 9) + mdci->dmrs_scrambling_init; + // rule for BL/CE UEs from Section 6.8.B2 in 36.211 + x2 = ((((j0 + j) * Nacc) % 10) << 9) + mdci->dmrs_scrambling_init; - for (n = 0; n < length; n++) { - if ((i & 0x1f) == 0) { - s = lte_gold_generic (&x1, &x2, reset); - //printf("lte_gold[%d]=%x\n",i,s); - reset = 0; + for (n = 0; n < length; n++) { + if ((i & 0x1f) == 0) { + s = lte_gold_generic(&x1, &x2, reset); + //printf("lte_gold[%d]=%x\n",i,s); + reset = 0; + } + e[i] = (e[i] & 1) ^ ((s >> (i & 0x1f)) & 1); } - e[i] = (e[i] & 1) ^ ((s >> (i & 0x1f)) & 1); - } } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -105,33 +103,30 @@ mpdcch_scrambling (LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, uint16 static uint16_t mpdcch5ss1p107108tab[864]; static uint16_t mpdcch5ss1p109110tab[864]; -void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re107108=0,re109110=0; +void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) +{ + int l, k, kmod, re107108 = 0, re109110 = 0; - LOG_I(PHY,"Inititalizing mpdcchss15tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + LOG_I(PHY, "Inititalizing mpdcchss15tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=1;l<14;l++) { - for (k=0;k<72;k++){ - kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13))|| - (kmod==2) || (kmod==3) || (kmod==4) || - (kmod==7) || (kmod==8) || (kmod==9)) { - mpdcch5ss1p109110tab[re109110]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch5ss1p107108tab[re107108]=mpdcch5ss1p109110tab[re109110]; - re107108++; - re109110++; - printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); - } - else if ((kmod==0)||(kmod==5)||(kmod==10)) { - mpdcch5ss1p109110tab[re109110++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - } - else if ((kmod==1)||(kmod==6)||(kmod==11)) { - mpdcch5ss1p107108tab[re107108++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); - } + for (l = 1; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { + mpdcch5ss1p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + mpdcch5ss1p107108tab[re107108] = mpdcch5ss1p109110tab[re109110]; + re107108++; + re109110++; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { + mpdcch5ss1p109110tab[re109110++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + } else if ((kmod == 1) || (kmod == 6) || (kmod == 11)) { + mpdcch5ss1p107108tab[re107108++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + } + } } - } - AssertFatal(re107108==864,"RE count not equal to 864 (%d)\n",re107108); + AssertFatal(re107108 == 864, "RE count not equal to 864 (%d)\n", re107108); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -141,32 +136,29 @@ void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { // Total = 576+216 = 792 REs = 1584 bits static uint16_t mpdcch5ss2p107108tab[792]; static uint16_t mpdcch5ss2p109110tab[792]; -void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re107108=0,re109110=0; +void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) +{ + int l, k, kmod, re107108 = 0, re109110 = 0; - LOG_I(PHY,"Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=2;l<14;l++) { - for (k=0;k<72;k++){ - kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13))|| - (kmod==2) || (kmod==3) || (kmod==4) || - (kmod==7) || (kmod==8) || (kmod==9)) { - mpdcch5ss2p109110tab[re109110]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch5ss2p107108tab[re107108]=mpdcch5ss2p109110tab[re109110]; - re107108++; - re109110++; - printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); - } - else if ((kmod==0)||(kmod==5)||(kmod==10)) { - mpdcch5ss2p109110tab[re109110++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - } - else if ((kmod==1)||(kmod==6)||(kmod==11)) { - mpdcch5ss2p107108tab[re107108++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); - } + LOG_I(PHY, "Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 2; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { + mpdcch5ss2p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + mpdcch5ss2p107108tab[re107108] = mpdcch5ss2p109110tab[re109110]; + re107108++; + re109110++; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { + mpdcch5ss2p109110tab[re109110++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + } else if ((kmod == 1) || (kmod == 6) || (kmod == 11)) { + mpdcch5ss2p107108tab[re107108++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + } + } } - } - AssertFatal(re107108==792,"RE count not equal to 792\n"); + AssertFatal(re107108 == 792, "RE count not equal to 792\n"); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -176,32 +168,29 @@ void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { // Total = 504+216 = 720 REs = 1440 bits static uint16_t mpdcch5ss3p107108tab[720]; static uint16_t mpdcch5ss3p109110tab[720]; -void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re107108=0,re109110=0; +void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) +{ + int l, k, kmod, re107108 = 0, re109110 = 0; - LOG_I(PHY,"Inititalizing mpdcch5ss3tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=3;l<14;l++) { - for (k=0;k<72;k++){ - kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13))|| - (kmod==2) || (kmod==3) || (kmod==4) || - (kmod==7) || (kmod==8) || (kmod==9)) { - mpdcch5ss3p109110tab[re109110]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch5ss3p107108tab[re107108]=mpdcch5ss3p109110tab[re109110]; - re107108++; - re109110++; - printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); - } - else if ((kmod==0)||(kmod==5)||(kmod==10)) { - mpdcch5ss3p109110tab[re109110++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - } - else if ((kmod==1)||(kmod==6)||(kmod==11)) { - mpdcch5ss3p107108tab[re107108++]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - printf("l %d, k %d (kmod %d) => re %d\n",l,k,kmod,re107108); - } + LOG_I(PHY, "Inititalizing mpdcch5ss3tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 3; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { + mpdcch5ss3p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + mpdcch5ss3p107108tab[re107108] = mpdcch5ss3p109110tab[re109110]; + re107108++; + re109110++; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { + mpdcch5ss3p109110tab[re109110++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + } else if ((kmod == 1) || (kmod == 6) || (kmod == 11)) { + mpdcch5ss3p107108tab[re107108++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + } + } } - } - AssertFatal(re107108==720,"RE count not equal to 792\n"); + AssertFatal(re107108 == 720, "RE count not equal to 792\n"); } // this table is the allocation of modulated MPDCCH format 3 symbols to REs, antenna ports 107,108 @@ -212,22 +201,22 @@ void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { static uint16_t mpdcch3ss1p107108tab[576]; static uint16_t mpdcch3ss1p109110tab[576]; -void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re; +void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) +{ + int l, k, kmod, re; - LOG_I(PHY,"Inititalizing mpdcch3ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=1,re=0;l<14;l++) { - for (k=0;k<48;k++){ - kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { - mpdcch3ss1p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch3ss1p107108tab[re]=1+mpdcch3ss1p109110tab[re]; - re++; - } + LOG_I(PHY, "Inititalizing mpdcch3ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 1, re = 0; l < 14; l++) { + for (k = 0; k < 48; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) { + mpdcch3ss1p109110tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + mpdcch3ss1p107108tab[re] = 1 + mpdcch3ss1p109110tab[re]; + re++; + } + } } - } - AssertFatal(re==576,"RE count not equal to 864\n"); + AssertFatal(re == 576, "RE count not equal to 864\n"); } // this table is the allocation of modulated MPDCCH format 2 symbols to REs, antenna ports 107,108 @@ -237,256 +226,241 @@ void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { // Total = 216+72 = 288 = 8CCE*36RE/CCE static uint16_t mpdcch2ss1p107108tab[288]; static uint16_t mpdcch2ss1p109110tab[288]; -void init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB *eNB) { - int l,k,kmod,re; +void init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) +{ + int l, k, kmod, re; - LOG_I(PHY,"Inititalizing mpdcch2ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l=1,re=0;l<14;l++) { - for (k=0;k<24;k++){ - kmod = k % 12; - if (((l!=5) && (l!=6) && (l!=12) && (l!=13)) || - (((l==5)||(l==6)||(l==12)||(l==13))&&(kmod!=0)&&(kmod!=5)&&(kmod!=10))) { - mpdcch2ss1p109110tab[re]=(l*eNB->frame_parms.ofdm_symbol_size)+k; - mpdcch2ss1p107108tab[re]=1+mpdcch2ss1p109110tab[re]; - re++; - } + LOG_I(PHY, "Inititalizing mpdcch2ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 1, re = 0; l < 14; l++) { + for (k = 0; k < 24; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) { + mpdcch2ss1p109110tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + mpdcch2ss1p107108tab[re] = 1 + mpdcch2ss1p109110tab[re]; + re++; + } + } } - } - AssertFatal(re==288,"RE count not equal to 288\n"); + AssertFatal(re == 288, "RE count not equal to 288\n"); } -extern uint8_t *generate_dci0(uint8_t *dci, - uint8_t *e, - uint8_t DCI_LENGTH, - uint8_t bitsperCCE, - uint8_t aggregation_level, - uint16_t rnti); +extern uint8_t *generate_dci0(uint8_t * dci, uint8_t * e, uint8_t DCI_LENGTH, uint8_t bitsperCCE, uint8_t aggregation_level, uint16_t rnti); -uint16_t mpdcch_dmrs_tab[12*6]; +uint16_t mpdcch_dmrs_tab[12 * 6]; -void init_mpdcch_dmrs_tab(uint16_t oss) { - - int re = 5*oss; - int pos = 0; - - for (int symb=0;symb<4;symb++) { - for (int prb=0;prb<6;prb++,re+=12) { - mpdcch_dmrs_tab[pos++] = re; - mpdcch_dmrs_tab[pos++] = re+5; - mpdcch_dmrs_tab[pos++] = re+10; - } - if (symb == 0) re=6*oss; - else if (symb == 1) re=12*oss; - else if (symb == 2) re=13*oss; - } - -} - -void -generate_mdci_top (PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF) +void init_mpdcch_dmrs_tab(uint16_t oss) { - LTE_eNB_MPDCCH *mpdcch= &eNB->mpdcch_vars[subframe&1]; - mDCI_ALLOC_t *mdci; - int coded_bits; - LTE_DL_FRAME_PARMS *fp=&eNB->frame_parms; - int i; - int gain_lin_QPSK; - uint8_t bitsperCCE; - uint16_t *mpdcchtab; + int re = 5 * oss; + int pos = 0; - uint32_t x1, x2, s = 0; - uint8_t Nacc = 4; - uint16_t j0, j, idelta; - uint16_t i0; - - int off; - - // Assumption: only handle a single MPDCCH per narrowband - - LOG_I(PHY,"generate_mdci_top: num_dci %d\n",mpdcch->num_dci); - - for (i=0;inum_dci;i++) { - mdci = &mpdcch->mdci_alloc[i]; - - AssertFatal (fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n"); - AssertFatal (fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n"); - AssertFatal (mdci->L <= 24, "L is %d\n", mdci->L); - AssertFatal (fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "Only N_RB_DL=50,100 for MPDCCH\n"); - // Force MPDDCH format 5 - AssertFatal (mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); - - // These are to avoid unimplemented things - AssertFatal (mdci->ce_mode == 1, "CE mode (%d) B not activated yet\n",mdci->ce_mode); - AssertFatal (mdci->L == 24, "Only 2+4 and aggregation 24 for now\n"); - - LOG_I(PHY,"mdci %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d \n", - i,mdci->rnti,mdci->L,mdci->number_of_prb_pairs,mdci->ce_mode,mdci->i0,mdci->start_symbol); - i0 = mdci->i0; - // antenna index - int a_index = mdci->rnti & 3; - - if ((mdci->start_symbol == 1) && (a_index<2)) { - mpdcchtab = mpdcch5ss1p107108tab; - bitsperCCE = 72; - } - else if ((mdci->start_symbol == 1) && (a_index>1)) { - mpdcchtab = mpdcch5ss1p109110tab; - bitsperCCE = 72; - } - else if ((mdci->start_symbol == 2) && (a_index<2)) { - mpdcchtab = mpdcch5ss2p107108tab; - bitsperCCE = 66; - } - else if ((mdci->start_symbol == 2) && (a_index>1)) { - mpdcchtab = mpdcch5ss2p109110tab; - bitsperCCE = 66; - } - else if ((mdci->start_symbol == 3) && (a_index<2)) { - mpdcchtab = mpdcch5ss2p107108tab; - bitsperCCE = 60; - } - else if ((mdci->start_symbol == 3) && (a_index<2)) { - mpdcchtab = mpdcch5ss2p109110tab; - bitsperCCE = 60; - } - else - AssertFatal(1==0,"Illegal combination start_symbol %d, a_index %d\n",mdci->start_symbol,a_index); - - - // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing - - generate_dci0(mdci->dci_pdu, - mpdcch->e+(bitsperCCE*mdci->firstCCE), - mdci->dci_length, - mdci->L, - bitsperCCE, - mdci->rnti); - - - coded_bits = bitsperCCE * mdci->L; - - // scrambling - uint16_t absSF = (frame * 10) + subframe; - - AssertFatal (absSF < 10240, "Absolute subframe %d = %d*10 + %d > 10239\n", absSF, frame, subframe); - - mpdcch_scrambling(fp, - mdci, - absSF, - mpdcch->e+(bitsperCCE*mdci->firstCCE), - coded_bits); - - // Modulation for PDCCH - if (fp->nb_antenna_ports_eNB == 1) - gain_lin_QPSK = (int16_t) ((amp * ONE_OVER_SQRT2_Q15) >> 15); - else - gain_lin_QPSK = amp / 2; - - uint8_t *e_ptr = mpdcch->e; - - // if (mdci->transmission_type==0) nprime=mdci->rnti&3; // for Localized 2+4 we use 6.8B.5 rule - // map directly to one antenna port for now - // Note: aside from the antenna port mapping, there is no difference between localized and distributed transmission for MPDCCH format 5 - - // first RE of narrowband - // mpdcchtab5 below contains the mapping from each coded symbol to relative RE avoiding the DMRS - - int nb_i0; - switch (fp->N_RB_DL) { - - case 6: - case 25: - nb_i0=0; - break; - case 15: - case 50: - case 75: - nb_i0=1; - break; - case 100: - nb_i0=2; - break; - default: - AssertFatal(1==0,"Illegal N_RB_DL %d\n",fp->N_RB_DL); - break; + for (int symb = 0; symb < 4; symb++) { + for (int prb = 0; prb < 6; prb++, re += 12) { + mpdcch_dmrs_tab[pos++] = re; + mpdcch_dmrs_tab[pos++] = re + 5; + mpdcch_dmrs_tab[pos++] = re + 10; + } + if (symb == 0) + re = 6 * oss; + else if (symb == 1) + re = 12 * oss; + else if (symb == 2) + re = 13 * oss; } - int re_offset = fp->first_carrier_offset + (12*nb_i0) + mdci->narrowband * 12 * 6; - if (re_offset > fp->ofdm_symbol_size) - re_offset -= (fp->ofdm_symbol_size - 1); - int32_t *txF = &txdataF[0][re_offset]; - int32_t yIQ; +} - for (i = 0; i < (coded_bits >> 1); i++) { - // QPSK modulation to yIQ - ((int16_t *) & yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - e_ptr++; - ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - e_ptr++; - txF[mpdcchtab[i + ((bitsperCCE>>1) * mdci->firstCCE)]] = yIQ; - //LOG_I(PHY,"Frame %d, subframe %d: mpdcch pos %d: %d => (%d,%d)\n", - // frame,subframe,i,mpdcchtab[i + ((bitsperCCE>>2) * mdci->firstCCE)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); +void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF) +{ + + LTE_eNB_MPDCCH *mpdcch = &eNB->mpdcch_vars[subframe & 1]; + mDCI_ALLOC_t *mdci; + int coded_bits; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + int i; + int gain_lin_QPSK; + uint8_t bitsperCCE; + uint16_t *mpdcchtab; + + uint32_t x1, x2, s = 0; + uint8_t Nacc = 4; + uint16_t j0, j, idelta; + uint16_t i0; + + int off; + + // Assumption: only handle a single MPDCCH per narrowband + + LOG_I(PHY, "generate_mdci_top: num_dci %d\n", mpdcch->num_dci); + + for (i = 0; i < mpdcch->num_dci; i++) { + mdci = &mpdcch->mdci_alloc[i]; + + AssertFatal(fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n"); + AssertFatal(fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n"); + AssertFatal(mdci->L <= 24, "L is %d\n", mdci->L); + AssertFatal(fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "Only N_RB_DL=50,100 for MPDCCH\n"); + // Force MPDDCH format 5 + AssertFatal(mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); + + // These are to avoid unimplemented things + AssertFatal(mdci->ce_mode == 1, "CE mode (%d) B not activated yet\n", mdci->ce_mode); + AssertFatal(mdci->L == 24, "Only 2+4 and aggregation 24 for now\n"); + + LOG_I(PHY, "mdci %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d \n", i, mdci->rnti, mdci->L, mdci->number_of_prb_pairs, mdci->ce_mode, mdci->i0, mdci->start_symbol); + i0 = mdci->i0; + // antenna index + int a_index = mdci->rnti & 3; + + if ((mdci->start_symbol == 1) && (a_index < 2)) { + mpdcchtab = mpdcch5ss1p107108tab; + bitsperCCE = 72; + } else if ((mdci->start_symbol == 1) && (a_index > 1)) { + mpdcchtab = mpdcch5ss1p109110tab; + bitsperCCE = 72; + } else if ((mdci->start_symbol == 2) && (a_index < 2)) { + mpdcchtab = mpdcch5ss2p107108tab; + bitsperCCE = 66; + } else if ((mdci->start_symbol == 2) && (a_index > 1)) { + mpdcchtab = mpdcch5ss2p109110tab; + bitsperCCE = 66; + } else if ((mdci->start_symbol == 3) && (a_index < 2)) { + mpdcchtab = mpdcch5ss2p107108tab; + bitsperCCE = 60; + } else if ((mdci->start_symbol == 3) && (a_index < 2)) { + mpdcchtab = mpdcch5ss2p109110tab; + bitsperCCE = 60; + } else + AssertFatal(1 == 0, "Illegal combination start_symbol %d, a_index %d\n", mdci->start_symbol, a_index); + + + // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing + + generate_dci0(mdci->dci_pdu, mpdcch->e + (bitsperCCE * mdci->firstCCE), mdci->dci_length, mdci->L, bitsperCCE, mdci->rnti); + + + coded_bits = bitsperCCE * mdci->L; + + // scrambling + uint16_t absSF = (frame * 10) + subframe; + + AssertFatal(absSF < 10240, "Absolute subframe %d = %d*10 + %d > 10239\n", absSF, frame, subframe); + + mpdcch_scrambling(fp, mdci, absSF, mpdcch->e + (bitsperCCE * mdci->firstCCE), coded_bits); + + // Modulation for PDCCH + if (fp->nb_antenna_ports_eNB == 1) + gain_lin_QPSK = (int16_t) ((amp * ONE_OVER_SQRT2_Q15) >> 15); + else + gain_lin_QPSK = amp / 2; + + uint8_t *e_ptr = mpdcch->e; + + // if (mdci->transmission_type==0) nprime=mdci->rnti&3; // for Localized 2+4 we use 6.8B.5 rule + // map directly to one antenna port for now + // Note: aside from the antenna port mapping, there is no difference between localized and distributed transmission for MPDCCH format 5 + + // first RE of narrowband + // mpdcchtab5 below contains the mapping from each coded symbol to relative RE avoiding the DMRS + + int nb_i0; + switch (fp->N_RB_DL) { + + case 6: + case 25: + nb_i0 = 0; + break; + case 15: + case 50: + case 75: + nb_i0 = 1; + break; + case 100: + nb_i0 = 2; + break; + default: + AssertFatal(1 == 0, "Illegal N_RB_DL %d\n", fp->N_RB_DL); + break; + } + + int re_offset = fp->first_carrier_offset + (12 * nb_i0) + mdci->narrowband * 12 * 6; + if (re_offset > fp->ofdm_symbol_size) + re_offset -= (fp->ofdm_symbol_size - 1); + int32_t *txF = &txdataF[0][re_offset]; + int32_t yIQ; + + for (i = 0; i < (coded_bits >> 1); i++) { + // QPSK modulation to yIQ + ((int16_t *) & yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + e_ptr++; + ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + e_ptr++; + txF[mpdcchtab[i + ((bitsperCCE >> 1) * mdci->firstCCE)]] = yIQ; + //LOG_I(PHY,"Frame %d, subframe %d: mpdcch pos %d: %d => (%d,%d)\n", + // frame,subframe,i,mpdcchtab[i + ((bitsperCCE>>2) * mdci->firstCCE)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); + } + + if (a_index > 1) + off = 0; + else + off = 1; + + // pilot scrambling initiatlization (note: this is for a single repetition) + + // x1 is set in lte_gold_generic + + // rule for BL/CE UEs from Section 6.10.3A.1 in 36.211 + + if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI + Nacc = fp->frame_type == FDD ? 4 : 10; + else + Nacc = 1; + + if (fp->frame_type == FDD || Nacc == 1) + idelta = 0; + else + idelta = Nacc - 2; + + j0 = (i0 + idelta) / Nacc; + j = (i - i0) / Nacc; + + + + uint32_t a = ((((j0 + j) * Nacc) % 10) + 1); + uint32_t b = ((mdci->dmrs_scrambling_init << 1) + 1) << 16; + x2 = a * b; + LOG_I(PHY, "mpdcch_dmrs cinit %d\n", x2); + + // add MPDCCH pilots + int reset = 1; + for (i = 0; i < (24 * 6); i += 2) { + if ((i & 0x1f) == 0) { + s = lte_gold_generic(&x1, &x2, reset); + reset = 0; + } + ((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + ((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + txF[off + mpdcch_dmrs_tab[(i >> 1)]] = yIQ; + LOG_D(PHY, "mpdcch_dmrs pos %d: %d => (%d,%d)\n", i, off + mpdcch_dmrs_tab[(i >> 1)], ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]); + } } - if (a_index>1) off=0; - else off=1; - - // pilot scrambling initiatlization (note: this is for a single repetition) - - // x1 is set in lte_gold_generic - - // rule for BL/CE UEs from Section 6.10.3A.1 in 36.211 - - if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI - Nacc = fp->frame_type == FDD ? 4 : 10; - else - Nacc = 1; - - if (fp->frame_type == FDD || Nacc == 1) - idelta = 0; - else - idelta = Nacc - 2; - - j0 = (i0 + idelta) / Nacc; - j = (i - i0) / Nacc; - - - - uint32_t a = ((((j0 + j) * Nacc) % 10)+1); - uint32_t b = ((mdci->dmrs_scrambling_init<<1)+1) << 16; - x2 = a*b; - LOG_I(PHY,"mpdcch_dmrs cinit %d\n",x2); - - // add MPDCCH pilots - int reset = 1; - for (i=0; i < (24*6) ; i+=2) { - if ((i & 0x1f) == 0) { - s = lte_gold_generic (&x1, &x2, reset); - reset = 0; - } - ((int16_t *) & yIQ)[0] = (((s>>(i & 0x1f))&1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - ((int16_t *) & yIQ)[1] = (((s>>((i+1) & 0x1f))&1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - txF[off+mpdcch_dmrs_tab[(i>>1)]] = yIQ; - LOG_I(PHY,"mpdcch_dmrs pos %d: %d => (%d,%d)\n",i,off+mpdcch_dmrs_tab[(i>>1)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); - } - } - } -void init_mpdcch(PHY_VARS_eNB *eNB) { +void init_mpdcch(PHY_VARS_eNB * eNB) +{ - init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch_dmrs_tab(eNB->frame_parms.ofdm_symbol_size); + init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch_dmrs_tab(eNB->frame_parms.ofdm_symbol_size); } #endif diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 374cccb239..b34c360ff9 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -214,7 +214,10 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, dlsch0->i0 = 0xFFFF; #endif + dlsch0->active = 1; harq_pid = dlsch0->harq_ids[proc->subframe_tx]; + dlsch0->harq_mask |= (1<=0) && (harq_pid<8),"harq_pid %d not in 0...7\n",harq_pid); dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; @@ -232,8 +235,11 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, computeRhoB_eNB(&eNB->pdsch_config_dedicated[UE_id],&(eNB->frame_parms.pdsch_config_common),eNB->frame_parms.nb_antenna_ports_eNB,dlsch1,dlsch1_harq->dl_power_off); } +#ifndef Rel14 dlsch0_harq->pdsch_start = eNB->pdcch_vars[proc->subframe_tx & 1].num_pdcch_symbols; - +#else + dlsch0_harq->pdsch_start = rel10->pdsch_start; +#endif if (dlsch0_harq->round==0) { //get pointer to SDU if this a new SDU AssertFatal(sdu!=NULL,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d\n", proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid, @@ -618,7 +624,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) eNB->mpdcch_vars[subframe&1].num_dci = 0; #endif - LOG_I(PHY,"NFAPI: Frame %d, Subframe %d (ul_subframe %d): received %d dl_pdu, %d tx_req, %d hi_dci0_config_req, %d UL_config \n", + LOG_D(PHY,"NFAPI: Frame %d, Subframe %d (ul_subframe %d): received %d dl_pdu, %d tx_req, %d hi_dci0_config_req, %d UL_config \n", frame,subframe,ul_subframe,number_dl_pdu,TX_req->tx_request_body.number_of_pdus,number_hi_dci0_pdu,number_ul_pdu); @@ -638,7 +644,7 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) } for (i=0;idl_config_request_body.dl_config_pdu_list[i]; - LOG_I(PHY,"NFAPI: dl_pdu %d : type %d\n",i,dl_config_pdu->pdu_type); + LOG_D(PHY,"NFAPI: dl_pdu %d : type %d\n",i,dl_config_pdu->pdu_type); switch (dl_config_pdu->pdu_type) { case NFAPI_DL_CONFIG_DCI_DL_PDU_TYPE: handle_nfapi_dci_dl_pdu(eNB,proc,dl_config_pdu); diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index a6ed5b6d10..74005e3166 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -407,27 +407,30 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) { dlsch0 = eNB->dlsch[(uint8_t) UE_id][0]; dlsch1 = eNB->dlsch[(uint8_t) UE_id][1]; - + //if (dlsch0 && (dlsch0->rnti > 0) && (dlsch0->rnti!=0xFFFF)) if ((dlsch0) && (dlsch0->rnti > 0) && (dlsch0->active == 1)) { // get harq_pid harq_pid = dlsch0->harq_ids[subframe]; - AssertFatal (harq_pid >= 0, "harq_pid is negative\n"); + if (harq_pid >=0 && harq_pid < 8) { // generate pdsch - LOG_I(PHY,"SFN %d.%d: DLSCH for rnti %x is active, harq_pid %d => SFN %d.%d\n", - frame, - subframe, - dlsch0->rnti, - harq_pid, - dlsch0->harq_processes[harq_pid]->frame, - dlsch0->harq_processes[harq_pid]->subframe); - if ((dlsch0->harq_processes[harq_pid]->status == ACTIVE) && (dlsch0->harq_processes[harq_pid]->frame == frame) && (dlsch0->harq_processes[harq_pid]->subframe == subframe)) - pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); + if ((dlsch0->rnti !=0xFFFF)) { + LOG_I(PHY,"SFN %d.%d: DLSCH %d for rnti %x is active, harq_pid %d => SFN %d.%d\n", + frame, + subframe, + UE_id, + dlsch0->rnti, + harq_pid, + dlsch0->harq_processes[harq_pid]->frame, + dlsch0->harq_processes[harq_pid]->subframe); + } + if ((dlsch0->harq_processes[harq_pid]->status == ACTIVE) && (dlsch0->harq_processes[harq_pid]->frame == frame) && (dlsch0->harq_processes[harq_pid]->subframe == subframe)) + pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); + } } - else if ((dlsch0) && (dlsch0->rnti > 0) && (dlsch0->active == 0)) { // clear subframe TX flag since UE is not scheduled for PDSCH in this subframe (so that we don't look for PUCCH later) @@ -1078,7 +1081,7 @@ pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) ulsch->cyclicShift = (ulsch_harq->n_DMRS2 + fp->pusch_config_common.ul_ReferenceSignalsPUSCH.cyclicShift + nPRS) % 12; - LOG_D (PHY, + LOG_I (PHY, "[eNB %d][PUSCH %d] Frame %d Subframe %d Demodulating PUSCH: dci_alloc %d, rar_alloc %d, round %d, first_rb %d, nb_rb %d, Qm %d, TBS %d, rv %d, cyclic_shift %d (n_DMRS2 %d, cyclicShift_common %d, nprs %d), O_ACK %d, beta_cqi %d \n", eNB->Mod_id, harq_pid, frame, subframe, ulsch_harq->dci_alloc, @@ -1103,7 +1106,7 @@ pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) stop_meas (&eNB->ulsch_decoding_stats); - LOG_D (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d RNTI %x RX power (%d,%d) N0 (%d,%d) dB ACK (%d,%d), decoding iter %d\n", eNB->Mod_id, harq_pid, frame, subframe, ulsch->rnti, dB_fixed (eNB->pusch_vars[i]->ulsch_power[0]), dB_fixed (eNB->pusch_vars[i]->ulsch_power[1]), 20, //eNB->measurements.n0_power_dB[0], + LOG_I (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d RNTI %x RX power (%d,%d) N0 (%d,%d) dB ACK (%d,%d), decoding iter %d\n", eNB->Mod_id, harq_pid, frame, subframe, ulsch->rnti, dB_fixed (eNB->pusch_vars[i]->ulsch_power[0]), dB_fixed (eNB->pusch_vars[i]->ulsch_power[1]), 20, //eNB->measurements.n0_power_dB[0], 20, //eNB->measurements.n0_power_dB[1], ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1], ret); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 88ab9b1d39..6f15e90c8f 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -85,9 +85,9 @@ add_msg3 (module_id_t module_idP, int CC_id, RA_TEMPLATE * RA_template, frame_t #ifdef Rel14 if (RA_template->rach_resource_type > 0) { - LOG_D (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d CE level %d is active, Msg3 in (%d,%d)\n", + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d CE level %d is active, Msg3 in (%d,%d)\n", module_idP, frameP, subframeP, CC_id, RA_template->rach_resource_type - 1, RA_template->Msg3_frame, RA_template->Msg3_subframe); - LOG_D (MAC, "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d)\n", + LOG_I (MAC, "Frame %d, Subframe %d Adding Msg3 UL Config Request for (%d,%d) : (%d,%d)\n", frameP, subframeP, RA_template->Msg3_frame, RA_template->Msg3_subframe, RA_template->msg3_nb_rb, RA_template->msg3_round); ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; @@ -371,10 +371,10 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; dl_req->number_pdu++; - // Program UL processing for Msg3, same as regular LTE + fill_rar_br (eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1) ; +// Program UL processing for Msg3, same as regular LTE get_Msg3alloc (&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); add_msg3 (module_idP, CC_idP, RA_template, frameP, subframeP); - fill_rar_br (eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1); // DL request LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming TX Req %d\n", module_idP, frameP, subframeP); eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; From 7451f4c9f5c66a0993d218f6750a8d1dc0431143 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 21 Nov 2017 08:00:48 +0100 Subject: [PATCH 081/125] fixed MPDDCH resource element mappings and DMRS scrambling initialization --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 23 +++++++----- openair1/PHY/LTE_TRANSPORT/edci.c | 47 ++++++++++++++++--------- openair1/SCHED/phy_procedures_lte_eNb.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 4 +-- 4 files changed, 48 insertions(+), 28 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index a75976a512..5db9ca9af7 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -2218,8 +2218,8 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1A_10MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; ((DCI6_1A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; - LOG_I(PHY,"Frame %d, Subframe %d : Programming Format 6-1A DCI, mcs %d, rballoc %x, dci_rep r%d, L %d, narrowband %d, start_symbol %d\n", - frame,subframe,rel13->mcs,rel13->resource_block_coding,1+rel13->dci_subframe_repetition_number,rel13->aggregation_level,rel13->mpdcch_narrow_band,dci_alloc->start_symbol); + LOG_I(PHY,"Frame %d, Subframe %d : Programming Format 6-1A DCI, mcs %d, rballoc %x, dci_rep r%d, L %d, narrowband %d, start_symbol %d, TPC %d, ra_flag %d, dci_type %d\n", + frame,subframe,rel13->mcs,rel13->resource_block_coding,1+rel13->dci_subframe_repetition_number,rel13->aggregation_level,rel13->mpdcch_narrow_band,dci_alloc->start_symbol,rel13->tpc,dci_alloc->ra_flag,rel13->rnti_type); break; case 100: dci_alloc->dci_length = sizeof_DCI6_1A_20MHz_t; @@ -2333,7 +2333,7 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * // printf("DCI: Setting subframe_tx for subframe %d\n",subframe); dlsch0->subframe_tx[(subframe + 2) % 10] = 1; - LOG_I(PHY,"PDSCH : resource_block_coding %x",rel13->resource_block_coding); + LOG_I(PHY,"PDSCH : resource_block_coding %x\n",rel13->resource_block_coding); conv_eMTC_rballoc (rel13->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); @@ -2360,7 +2360,7 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0->harq_mask =0; } if ((dlsch0->harq_mask & (1 << rel13->harq_process)) > 0) { - if (rel13->new_data_indicator != dlsch0_harq->ndi) + if ((rel13->new_data_indicator != dlsch0_harq->ndi)||(dci_alloc->ra_flag==1)) dlsch0_harq->round = 0; } else { // process is inactive, so activate and set round to 0 dlsch0_harq->round = 0; @@ -2369,10 +2369,15 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * if (dlsch0_harq->round == 0) { dlsch0_harq->status = ACTIVE; - - // MCS and TBS don't change across HARQ rounds - dlsch0_harq->TBS = TBStable[get_I_TBS (dlsch0_harq->mcs)][dlsch0_harq->nb_rb - 1]; - + dlsch0_harq->mcs = rel13->mcs; + if (dci_alloc->ra_flag == 0) // get TBS from table using mcs and nb_rb + dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][dlsch0_harq->nb_rb-1]; + else if (rel13->tpc == 0) //N1A_PRB=2, get TBS from table using mcs and nb_rb=2 + dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][1]; + else if (rel13->tpc == 1) //N1A_PRB=3, get TBS from table using mcs and nb_rb=3 + dlsch0_harq->TBS = TBStable[get_I_TBS(dlsch0_harq->mcs)][2]; + + LOG_I(PHY,"TBS = %d(%d)\n",dlsch0_harq->TBS,dlsch0_harq->mcs); } dlsch0->active = 1; dlsch0->harq_mask |= (1 << rel13->harq_process); @@ -2384,7 +2389,7 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0->harq_ids[dlsch0_harq->subframe] = rel13->harq_process; dlsch0_harq->pdsch_start = rel13->start_symbol; - LOG_I(PHY,"Setting DLSCH harq %d to active for %d.%d\n",rel13->harq_process,dlsch0_harq->frame,dlsch0_harq->subframe); + LOG_I(PHY,"Setting DLSCH harq %d round %d to active for %d.%d\n",rel13->harq_process,dlsch0_harq->round,dlsch0_harq->frame,dlsch0_harq->subframe); dlsch0->rnti = rel13->rnti; diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 7629e8c52c..e5a93c09de 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -84,7 +84,8 @@ void mpdcch_scrambling(LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, ui // rule for BL/CE UEs from Section 6.8.B2 in 36.211 x2 = ((((j0 + j) * Nacc) % 10) << 9) + mdci->dmrs_scrambling_init; - + LOG_I(PHY,"MPDCCH cinit = %x (mdci->dmrs_scrambling_init = %d)\n", + x2,mdci->dmrs_scrambling_init); for (n = 0; n < length; n++) { if ((i & 0x1f) == 0) { s = lte_gold_generic(&x1, &x2, reset); @@ -139,26 +140,33 @@ static uint16_t mpdcch5ss2p109110tab[792]; void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) { int l, k, kmod, re107108 = 0, re109110 = 0; - + int nushift = eNB->frame_parms.Nid_cell % 6; + int nushiftp3 = (eNB->frame_parms.Nid_cell+3) % 6; + // NOTE : THIS IS FOR TM1 ONLY FOR NOW!!!!!!! LOG_I(PHY, "Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); for (l = 2; l < 14; l++) { for (k = 0; k < 72; k++) { kmod = k % 12; - if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { + if ((((l == 4)||(l==11)) && (kmod != nushiftp3) && (kmod != (nushiftp3+6))) || + ((l == 7) && (kmod != nushift) &&(kmod != (nushift+6)))) { // CS RS + mpdcch5ss2p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + mpdcch5ss2p107108tab[re107108] = mpdcch5ss2p109110tab[re109110]; + re107108++; + re109110++; + printf("CSRS: l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); + + } + if (((l!=4)&&(l!=7)&&(l!=11)) && + (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9))) { mpdcch5ss2p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; mpdcch5ss2p107108tab[re107108] = mpdcch5ss2p109110tab[re109110]; re107108++; re109110++; printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { - mpdcch5ss2p109110tab[re109110++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - } else if ((kmod == 1) || (kmod == 6) || (kmod == 11)) { - mpdcch5ss2p107108tab[re107108++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); } } } - AssertFatal(re107108 == 792, "RE count not equal to 792\n"); + AssertFatal(re107108 == 684, "RE count not equal to 684\n"); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -295,6 +303,10 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, // Assumption: only handle a single MPDCCH per narrowband + int nsymb = (fp->Ncp==0) ? 14:12; + + int symbol_offset = (uint32_t)fp->ofdm_symbol_size*(subframe*nsymb); + LOG_I(PHY, "generate_mdci_top: num_dci %d\n", mpdcch->num_dci); for (i = 0; i < mpdcch->num_dci; i++) { @@ -310,11 +322,10 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, // These are to avoid unimplemented things AssertFatal(mdci->ce_mode == 1, "CE mode (%d) B not activated yet\n", mdci->ce_mode); AssertFatal(mdci->L == 24, "Only 2+4 and aggregation 24 for now\n"); - - LOG_I(PHY, "mdci %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d \n", i, mdci->rnti, mdci->L, mdci->number_of_prb_pairs, mdci->ce_mode, mdci->i0, mdci->start_symbol); + int a_index = mdci->rnti & 3; + LOG_I(PHY, "mdci %d, length %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d Ant %d\n", i, mdci->dci_length,mdci->rnti, mdci->L, mdci->number_of_prb_pairs, mdci->ce_mode, mdci->i0, mdci->start_symbol,(a_index<2)?107:109); i0 = mdci->i0; // antenna index - int a_index = mdci->rnti & 3; if ((mdci->start_symbol == 1) && (a_index < 2)) { mpdcchtab = mpdcch5ss1p107108tab; @@ -390,7 +401,7 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int re_offset = fp->first_carrier_offset + (12 * nb_i0) + mdci->narrowband * 12 * 6; if (re_offset > fp->ofdm_symbol_size) re_offset -= (fp->ofdm_symbol_size - 1); - int32_t *txF = &txdataF[0][re_offset]; + int32_t *txF = &txdataF[0][symbol_offset+re_offset]; int32_t yIQ; for (i = 0; i < (coded_bits >> 1); i++) { @@ -426,17 +437,19 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, idelta = Nacc - 2; j0 = (i0 + idelta) / Nacc; - j = (i - i0) / Nacc; + j = (absSF - i0) / Nacc; uint32_t a = ((((j0 + j) * Nacc) % 10) + 1); uint32_t b = ((mdci->dmrs_scrambling_init << 1) + 1) << 16; x2 = a * b; - LOG_I(PHY, "mpdcch_dmrs cinit %d\n", x2); + x2 = x2 + 2; + LOG_I(PHY, "mpdcch_dmrs cinit %x (a=%d,b=%d,i0=%d,j0=%d)\n", x2,a,b,i0,j0); // add MPDCCH pilots int reset = 1; + //gain_lin_QPSK*=2; for (i = 0; i < (24 * 6); i += 2) { if ((i & 0x1f) == 0) { s = lte_gold_generic(&x1, &x2, reset); @@ -444,7 +457,9 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, } ((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; ((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - txF[off + mpdcch_dmrs_tab[(i >> 1)]] = yIQ; + txF[mpdcch_dmrs_tab[(i >> 1)]] = yIQ; + txF[mpdcch_dmrs_tab[1+(i >> 1)]] = yIQ; + LOG_D(PHY, "mpdcch_dmrs pos %d: %d => (%d,%d)\n", i, off + mpdcch_dmrs_tab[(i >> 1)], ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]); } } diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 74005e3166..9f3b962ef9 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -535,7 +535,7 @@ prach_procedures (PHY_VARS_eNB * eNB, eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind]; // eNB->preamble_list_br[ind].preamble_rel8.preamble = max_preamble[ind]; // note: fid is implicitly 0 here, this is the rule for eMTC RA-RNTI from 36.321, Section 5.1.4 - eNB->preamble_list_br[ind].preamble_rel8.rnti = 1 + subframe + (eNB->prach_vars_br.first_frame[ce_level] % 40); + eNB->preamble_list_br[ind].preamble_rel8.rnti = 1 + subframe + (60*(eNB->prach_vars_br.first_frame[ce_level] % 40)); eNB->preamble_list_br[ind].instance_length = 0; //don't know exactly what this is eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type = 1 + ce_level; // CE Level LOG_D (PHY, "Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 6f15e90c8f..a707b40cdf 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -275,7 +275,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6) | (RA_template->msg2_narrowband<<5); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 1; // adjust according to size of RAR, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; @@ -286,7 +286,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3 (36.212); => 208 bits for mcs=4, choose mcs according t message size TBD + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 0; // N1A_PRB=2 (36.212); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; From 7db69e3ad57988f04cc636b9ce303b62afce81a8 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 21 Nov 2017 17:24:51 +0100 Subject: [PATCH 082/125] MPDCCH resource element fix --- openair1/PHY/LTE_TRANSPORT/edci.c | 4 ++-- openair1/SCHED/phy_procedures_lte_eNb.c | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index e5a93c09de..1b5c7eeab8 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -449,7 +449,7 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, // add MPDCCH pilots int reset = 1; - //gain_lin_QPSK*=2; + gain_lin_QPSK*=2; for (i = 0; i < (24 * 6); i += 2) { if ((i & 0x1f) == 0) { s = lte_gold_generic(&x1, &x2, reset); @@ -458,7 +458,7 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, ((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; ((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; txF[mpdcch_dmrs_tab[(i >> 1)]] = yIQ; - txF[mpdcch_dmrs_tab[1+(i >> 1)]] = yIQ; + txF[1+mpdcch_dmrs_tab[(i >> 1)]] = yIQ; LOG_D(PHY, "mpdcch_dmrs pos %d: %d => (%d,%d)\n", i, off + mpdcch_dmrs_tab[(i >> 1)], ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]); } diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 9f3b962ef9..8199f26053 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -399,7 +399,9 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type if (num_mdci > 0) { LOG_I (PHY, "[eNB %" PRIu8 "] Frame %d, subframe %d: Calling generate_mdci_top (mpdcch) (num_dci %" PRIu8 ")\n", eNB->Mod_id, frame, subframe, num_mdci); - generate_mdci_top (eNB, frame, subframe, AMP, eNB->common_vars.txdataF); + generate_mdci_top (eNB, frame, subframe, AMP*3/4, eNB->common_vars.txdataF); + //write_output("/tmp/mpdcch.m","mpdcch_txF",(void*)&eNB->common_vars.txdataF[0][subframe*14*1024],14*1024,1,1); + //exit(-1); } #endif // Now scan UE specific DLSCH From dd695beb5e06864252bee808fe5fedd60ad1253c Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 26 Nov 2017 03:22:29 -0800 Subject: [PATCH 083/125] functions up to Msg3 reception. Still a bug in decoding, signal is perfect, but decoding fails. probably an issue in the descrambling --- openair1/PHY/LTE_TRANSPORT/dci.c | 36 +- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 30 +- openair1/PHY/LTE_TRANSPORT/edci.c | 640 +++++++++--------- openair1/PHY/LTE_TRANSPORT/mdci.h | 8 +- openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c | 2 +- openair1/SCHED/phy_procedures_lte_eNb.c | 144 ++-- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 18 +- openair2/LAYER2/MAC/rar_tools.c | 18 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 12 +- 9 files changed, 453 insertions(+), 455 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index c89189ec03..db1de9be2c 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -177,9 +177,9 @@ void dci_encoding(uint8_t *a, #endif // encode dci -#ifdef DEBUG_DCI_ENCODING - printf("Doing DCI encoding for %d bits, e %p, rnti %x\n",A,e,rnti); -#endif + //#ifdef DEBUG_DCI_ENCODING + if (E>1000) printf("Doing DCI encoding for %d bits, e %p, rnti %x\n",A,e,rnti); + //#endif memset((void *)d,LTE_NULL,96); @@ -197,42 +197,25 @@ void dci_encoding(uint8_t *a, #endif RCC = sub_block_interleaving_cc(D,d+96,w); -#ifdef DEBUG_DCI_ENCODING - printf("Doing DCI rate matching for %d channel bits, RCC %d, e %p\n",E,RCC,e); -#endif + //#ifdef DEBUG_DCI_ENCODING + if (E>1000) printf("Doing DCI rate matching for %d channel bits, RCC %d, e %p\n",E,RCC,e); + //#endif lte_rate_matching_cc(RCC,E,w,e); + } uint8_t *generate_dci0(uint8_t *dci, uint8_t *e, uint8_t DCI_LENGTH, - uint8_t aggregation_level, - uint8_t bitsperCCE, + uint16_t coded_bits, uint16_t rnti) { - uint16_t coded_bits; uint8_t dci_flip[8]; - AssertFatal((aggregation_level==1) || - (aggregation_level==2) || - (aggregation_level==4) || - (aggregation_level==8) -#ifdef Rel14 // Added for EPDCCH/MPDCCH - || - (aggregation_level==16) || - (aggregation_level==24) || - (aggregation_level==32) -#endif - , - "generate_dci FATAL, illegal aggregation_level %d\n",aggregation_level); - - - coded_bits = bitsperCCE * aggregation_level; - /* #ifdef DEBUG_DCI_ENCODING @@ -2293,8 +2276,7 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols, e_ptr = generate_dci0(dci_alloc[i].dci_pdu, e+(72*dci_alloc[i].firstCCE), dci_alloc[i].dci_length, - dci_alloc[i].L, - 72, + 72*dci_alloc[i].L, dci_alloc[i].rnti); } } diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 5db9ca9af7..4b4bff3426 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -164,12 +164,11 @@ int8_t delta_PUSCH_acc[4] = { -1, 0, 1, 3 }; int8_t *delta_PUCCH_lut = delta_PUSCH_acc; void -conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) +conv_eMTC_rballoc (uint8_t narrowband,uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) { - int narrowband = resource_block_coding >> 5; - int RIV = resource_block_coding & 31; + int RIV = resource_block_coding; int N_NB_DL = N_RB_DL / 6; int i0 = (N_RB_DL >> 1) - (3 * N_NB_DL); int first_rb = (6 * narrowband) + i0; @@ -177,6 +176,8 @@ conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * int ind = first_rb >> 5; int ind_mod = first_rb & 31; + AssertFatal(RIV<32,"RIV is %d > 31\n"); + if (((N_RB_DL & 1) > 0) && (narrowband >= (N_NB_DL >> 1))) first_rb++; rb_alloc[0] = 0; @@ -2208,6 +2209,7 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1A_10MHz_t *) dci_pdu)->type = 1; ((DCI6_1A_10MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; ((DCI6_1A_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; + ((DCI6_1A_10MHz_t *) dci_pdu)->narrowband = rel13->mpdcch_narrow_band; ((DCI6_1A_10MHz_t *) dci_pdu)->mcs = rel13->mcs; ((DCI6_1A_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels); ((DCI6_1A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; @@ -2218,8 +2220,22 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * ((DCI6_1A_10MHz_t *) dci_pdu)->harq_ack_off = rel13->harq_resource_offset; ((DCI6_1A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; - LOG_I(PHY,"Frame %d, Subframe %d : Programming Format 6-1A DCI, mcs %d, rballoc %x, dci_rep r%d, L %d, narrowband %d, start_symbol %d, TPC %d, ra_flag %d, dci_type %d\n", - frame,subframe,rel13->mcs,rel13->resource_block_coding,1+rel13->dci_subframe_repetition_number,rel13->aggregation_level,rel13->mpdcch_narrow_band,dci_alloc->start_symbol,rel13->tpc,dci_alloc->ra_flag,rel13->rnti_type); + LOG_I(PHY,"Frame %d, Subframe %d : Programming Format 6-1A DCI, type %d, hopping %d, narrowband %d, rballoc %x, mcs %d, rep %d, harq_pid %d, ndi %d, rv %d, TPC %d, srs_req %d, harq_ack_off %d, dci_rep r%d => %x\n", + frame,subframe, + ((DCI6_1A_10MHz_t *) dci_pdu)->type, + ((DCI6_1A_10MHz_t *) dci_pdu)->hopping, + ((DCI6_1A_10MHz_t *) dci_pdu)->narrowband, + ((DCI6_1A_10MHz_t *) dci_pdu)->rballoc, + ((DCI6_1A_10MHz_t *) dci_pdu)->mcs, + ((DCI6_1A_10MHz_t *) dci_pdu)->rep, + ((DCI6_1A_10MHz_t *) dci_pdu)->harq_pid, + ((DCI6_1A_10MHz_t *) dci_pdu)->ndi, + ((DCI6_1A_10MHz_t *) dci_pdu)->rv, + ((DCI6_1A_10MHz_t *) dci_pdu)->TPC, + ((DCI6_1A_10MHz_t *) dci_pdu)->srs_req, + ((DCI6_1A_10MHz_t *) dci_pdu)->harq_ack_off, + ((DCI6_1A_10MHz_t *) dci_pdu)->dci_rep, + ((uint32_t*)dci_pdu)[0]); break; case 100: dci_alloc->dci_length = sizeof_DCI6_1A_20MHz_t; @@ -2335,7 +2351,9 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0->subframe_tx[(subframe + 2) % 10] = 1; LOG_I(PHY,"PDSCH : resource_block_coding %x\n",rel13->resource_block_coding); - conv_eMTC_rballoc (rel13->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); + conv_eMTC_rballoc (rel13->mpdcch_narrow_band,rel13->resource_block_coding, + fp->N_RB_DL, + dlsch0_harq->rb_alloc); dlsch0_harq->nb_rb = RIV2nb_rb_LUT6[rel13->resource_block_coding & 31]; // this is the 6PRB RIV diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 1b5c7eeab8..60e4b6f1dc 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -19,16 +19,16 @@ * contact@openairinterface.org */ -/*! \file PHY/LTE_TRANSPORT/dci.c -* \brief Implements PDCCH physical channel TX/RX procedures (36.211) and DCI encoding/decoding (36.212/36.213). Current LTE compliance V8.6 2009-03. -* \author R. Knopp -* \date 2011 -* \version 0.1 -* \company Eurecom -* \email: knopp@eurecom.fr -* \note -* \warning -*/ +/*! \file PHY/LTE_TRANSPORT/edci.c + * \brief Implements M/EPDCCH physical channel TX/RX procedures (36.211). + * \author R. Knopp + * \date 2011 + * \version 0.1 + * \company Eurecom + * \email: knopp@eurecom.fr + * \note + * \warning + */ #ifdef USER_MODE #include #include @@ -56,44 +56,46 @@ void generate_edci_top(PHY_VARS_eNB * eNB, int frame, int subframe) void mpdcch_scrambling(LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, uint16_t i, uint8_t * e, uint32_t length) { - int n; - uint8_t reset; - uint32_t x1, x2, s = 0; - uint8_t Nacc = 4; - uint16_t j0, j, idelta; - uint16_t i0 = mdci->i0; + int n; + uint8_t reset; + uint32_t x1, x2, s = 0; + uint8_t Nacc = 4; + uint16_t j0, j, idelta; + uint16_t i0 = mdci->i0; - // Note: we could actually not do anything if i-i0 < Nacc, save it for later + // Note: we could actually not do anything if i-i0 < Nacc, save it for later - reset = 1; - // x1 is set in lte_gold_generic + reset = 1; + // x1 is set in lte_gold_generic - if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI - Nacc = frame_parms->frame_type == FDD ? 4 : 10; - else - Nacc = 1; + if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI + Nacc = frame_parms->frame_type == FDD ? 4 : 10; + else + Nacc = 1; - if (frame_parms->frame_type == FDD || Nacc == 1) - idelta = 0; - else - idelta = Nacc - 2; + if (frame_parms->frame_type == FDD || Nacc == 1) + idelta = 0; + else + idelta = Nacc - 2; - j0 = (i0 + idelta) / Nacc; - j = (i - i0) / Nacc; + j0 = (i0 + idelta) / Nacc; + j = (i - i0) / Nacc; - // rule for BL/CE UEs from Section 6.8.B2 in 36.211 - x2 = ((((j0 + j) * Nacc) % 10) << 9) + mdci->dmrs_scrambling_init; - LOG_I(PHY,"MPDCCH cinit = %x (mdci->dmrs_scrambling_init = %d)\n", - x2,mdci->dmrs_scrambling_init); - for (n = 0; n < length; n++) { - if ((i & 0x1f) == 0) { - s = lte_gold_generic(&x1, &x2, reset); - //printf("lte_gold[%d]=%x\n",i,s); - reset = 0; - } - e[i] = (e[i] & 1) ^ ((s >> (i & 0x1f)) & 1); + // rule for BL/CE UEs from Section 6.8.B2 in 36.211 + x2 = ((((j0 + j) * Nacc) % 10) << 9) + mdci->dmrs_scrambling_init; + LOG_I(PHY,"MPDCCH cinit = %x (mdci->dmrs_scrambling_init = %d), scrambling %d encoded DCI bits\n", + x2,mdci->dmrs_scrambling_init,length); + for (n = 0; n < length; n++) { + if ((n & 0x1f) == 0) { + s = lte_gold_generic(&x1, &x2, reset); + //printf("lte_gold[%d]=%x\n",i,s); + reset = 0; } + + e[n] = (e[n] & 1) ^ ((s >> (n & 0x1f)) & 1); + + } } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -101,33 +103,27 @@ void mpdcch_scrambling(LTE_DL_FRAME_PARMS * frame_parms, mDCI_ALLOC_t * mdci, ui // 9 symbols without DMRS = 9*12*6 REs = 648 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs // Total = 648+216 = 864 REs = 1728 bits -static uint16_t mpdcch5ss1p107108tab[864]; -static uint16_t mpdcch5ss1p109110tab[864]; +static uint16_t mpdcch5ss1tab[864]; void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) { - int l, k, kmod, re107108 = 0, re109110 = 0; + int l, k, kmod, re=0; - LOG_I(PHY, "Inititalizing mpdcchss15tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + LOG_I(PHY, "Inititalizing mpdcchss15tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l = 1; l < 14; l++) { - for (k = 0; k < 72; k++) { - kmod = k % 12; - if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { - mpdcch5ss1p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - mpdcch5ss1p107108tab[re107108] = mpdcch5ss1p109110tab[re109110]; - re107108++; - re109110++; - printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { - mpdcch5ss1p109110tab[re109110++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - } else if ((kmod == 1) || (kmod == 6) || (kmod == 11)) { - mpdcch5ss1p107108tab[re107108++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - } - } + for (l = 1; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { + mpdcch5ss1tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + re++; + printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re); + } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { + mpdcch5ss1tab[re++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + } } - AssertFatal(re107108 == 864, "RE count not equal to 864 (%d)\n", re107108); + } + AssertFatal(re == 864, "RE count not equal to 864 (%d)\n", re); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -135,38 +131,31 @@ void init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) // 8 symbols without DMRS = 8*12*6 REs = 576 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs // Total = 576+216 = 792 REs = 1584 bits -static uint16_t mpdcch5ss2p107108tab[792]; -static uint16_t mpdcch5ss2p109110tab[792]; +static uint16_t mpdcch5ss2tab[792]; + void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) { - int l, k, kmod, re107108 = 0, re109110 = 0; - int nushift = eNB->frame_parms.Nid_cell % 6; - int nushiftp3 = (eNB->frame_parms.Nid_cell+3) % 6; - // NOTE : THIS IS FOR TM1 ONLY FOR NOW!!!!!!! - LOG_I(PHY, "Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l = 2; l < 14; l++) { - for (k = 0; k < 72; k++) { - kmod = k % 12; - if ((((l == 4)||(l==11)) && (kmod != nushiftp3) && (kmod != (nushiftp3+6))) || - ((l == 7) && (kmod != nushift) &&(kmod != (nushift+6)))) { // CS RS - mpdcch5ss2p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - mpdcch5ss2p107108tab[re107108] = mpdcch5ss2p109110tab[re109110]; - re107108++; - re109110++; - printf("CSRS: l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - - } - if (((l!=4)&&(l!=7)&&(l!=11)) && - (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9))) { - mpdcch5ss2p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - mpdcch5ss2p107108tab[re107108] = mpdcch5ss2p109110tab[re109110]; - re107108++; - re109110++; - printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - } - } + int l, k, kmod, re=0; + int nushift = eNB->frame_parms.Nid_cell % 6; + int nushiftp3 = (eNB->frame_parms.Nid_cell+3) % 6; + // NOTE : THIS IS FOR TM1 ONLY FOR NOW!!!!!!! + LOG_I(PHY, "Inititalizing mpdcch5ss2tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 2; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if ((((l == 4)||(l==11)) && (kmod != nushiftp3) && (kmod != (nushiftp3+6))) || + ((l == 7) && (kmod != nushift) &&(kmod != (nushift+6)))) { // CS RS + mpdcch5ss2tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + re++; + } + if (((l!=4)&&(l!=7)&&(l!=11)) && + (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9))) { + mpdcch5ss2tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + re++; + } } - AssertFatal(re107108 == 684, "RE count not equal to 684\n"); + } + AssertFatal(re == 684, "RE count not equal to 684\n"); } // this table is the allocation of modulated MPDCCH format 5 symbols to REs, antenna ports 107,108 @@ -174,31 +163,24 @@ void init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) // 7 symbols without DMRS = 7*12*6 REs = 504 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*6 REs = 216 REs // Total = 504+216 = 720 REs = 1440 bits -static uint16_t mpdcch5ss3p107108tab[720]; -static uint16_t mpdcch5ss3p109110tab[720]; +static uint16_t mpdcch5ss3tab[720]; void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) { - int l, k, kmod, re107108 = 0, re109110 = 0; + int l, k, kmod, re=0; - LOG_I(PHY, "Inititalizing mpdcch5ss3tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l = 3; l < 14; l++) { - for (k = 0; k < 72; k++) { - kmod = k % 12; - if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { - mpdcch5ss3p109110tab[re109110] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - mpdcch5ss3p107108tab[re107108] = mpdcch5ss3p109110tab[re109110]; - re107108++; - re109110++; - printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { - mpdcch5ss3p109110tab[re109110++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - } else if ((kmod == 1) || (kmod == 6) || (kmod == 11)) { - mpdcch5ss3p107108tab[re107108++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - printf("l %d, k %d (kmod %d) => re %d\n", l, k, kmod, re107108); - } - } + LOG_I(PHY, "Inititalizing mpdcch5ss3tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 3; l < 14; l++) { + for (k = 0; k < 72; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (kmod == 2) || (kmod == 3) || (kmod == 4) || (kmod == 7) || (kmod == 8) || (kmod == 9)) { + mpdcch5ss3tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + re++; + } else if ((kmod == 0) || (kmod == 5) || (kmod == 10)) { + mpdcch5ss3tab[re++] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + } } - AssertFatal(re107108 == 720, "RE count not equal to 792\n"); + } + AssertFatal(re == 720, "RE count not equal to 792\n"); } // this table is the allocation of modulated MPDCCH format 3 symbols to REs, antenna ports 107,108 @@ -206,25 +188,23 @@ void init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) // 8 symbols without DMRS = 9*12*4 REs = 432 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*4 REs = 144 REs // Total = 432+144 = 576 = 16CCE*36RE/CCE -static uint16_t mpdcch3ss1p107108tab[576]; -static uint16_t mpdcch3ss1p109110tab[576]; +static uint16_t mpdcch3ss1tab[576]; void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) { - int l, k, kmod, re; + int l, k, kmod, re=0; - LOG_I(PHY, "Inititalizing mpdcch3ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l = 1, re = 0; l < 14; l++) { - for (k = 0; k < 48; k++) { - kmod = k % 12; - if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) { - mpdcch3ss1p109110tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - mpdcch3ss1p107108tab[re] = 1 + mpdcch3ss1p109110tab[re]; - re++; - } - } + LOG_I(PHY, "Inititalizing mpdcch3ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 1, re = 0; l < 14; l++) { + for (k = 0; k < 48; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) { + mpdcch3ss1tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + re++; + } } - AssertFatal(re == 576, "RE count not equal to 864\n"); + } + AssertFatal(re == 576, "RE count not equal to 864\n"); } // this table is the allocation of modulated MPDCCH format 2 symbols to REs, antenna ports 107,108 @@ -232,30 +212,29 @@ void init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) // 8 symbols without DMRS = 9*12*2 REs = 216 REs // 4 symbols with DMRS (3 REs stolen per symbol = 4*9*2 REs = 72 REs // Total = 216+72 = 288 = 8CCE*36RE/CCE -static uint16_t mpdcch2ss1p107108tab[288]; -static uint16_t mpdcch2ss1p109110tab[288]; +static uint16_t mpdcch2ss1tab[288]; + void init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(PHY_VARS_eNB * eNB) { - int l, k, kmod, re; + int l, k, kmod, re=0; - LOG_I(PHY, "Inititalizing mpdcch2ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); - for (l = 1, re = 0; l < 14; l++) { - for (k = 0; k < 24; k++) { - kmod = k % 12; - if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) { - mpdcch2ss1p109110tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; - mpdcch2ss1p107108tab[re] = 1 + mpdcch2ss1p109110tab[re]; - re++; - } - } + LOG_I(PHY, "Inititalizing mpdcch2ss1tab for normal prefix, normal prefix, no PSS/SSS/PBCH, even N_RB_DL\n"); + for (l = 1, re = 0; l < 14; l++) { + for (k = 0; k < 24; k++) { + kmod = k % 12; + if (((l != 5) && (l != 6) && (l != 12) && (l != 13)) || (((l == 5) || (l == 6) || (l == 12) || (l == 13)) && (kmod != 0) && (kmod != 5) && (kmod != 10))) { + mpdcch2ss1tab[re] = (l * eNB->frame_parms.ofdm_symbol_size) + k; + re++; + } } - AssertFatal(re == 288, "RE count not equal to 288\n"); + } + AssertFatal(re == 288, "RE count not equal to 288\n"); } -extern uint8_t *generate_dci0(uint8_t * dci, uint8_t * e, uint8_t DCI_LENGTH, uint8_t bitsperCCE, uint8_t aggregation_level, uint16_t rnti); +extern uint8_t *generate_dci0(uint8_t * dci, uint8_t * e, uint8_t DCI_LENGTH, uint16_t coded_bits, uint16_t rnti); uint16_t mpdcch_dmrs_tab[12 * 6]; @@ -263,219 +242,246 @@ uint16_t mpdcch_dmrs_tab[12 * 6]; void init_mpdcch_dmrs_tab(uint16_t oss) { - int re = 5 * oss; - int pos = 0; + int re = 5 * oss; + int pos = 0; - for (int symb = 0; symb < 4; symb++) { - for (int prb = 0; prb < 6; prb++, re += 12) { - mpdcch_dmrs_tab[pos++] = re; - mpdcch_dmrs_tab[pos++] = re + 5; - mpdcch_dmrs_tab[pos++] = re + 10; - } - if (symb == 0) - re = 6 * oss; - else if (symb == 1) - re = 12 * oss; - else if (symb == 2) - re = 13 * oss; + for (int symb = 0; symb < 4; symb++) { + for (int prb = 0; prb < 6; prb++, re += 12) { + mpdcch_dmrs_tab[pos++] = re; + mpdcch_dmrs_tab[pos++] = re + 5; + mpdcch_dmrs_tab[pos++] = re + 10; } + if (symb == 0) + re = 6 * oss; + else if (symb == 1) + re = 12 * oss; + else if (symb == 2) + re = 13 * oss; + } } void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF) { - LTE_eNB_MPDCCH *mpdcch = &eNB->mpdcch_vars[subframe & 1]; - mDCI_ALLOC_t *mdci; - int coded_bits; - LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; - int i; - int gain_lin_QPSK; - uint8_t bitsperCCE; - uint16_t *mpdcchtab; + LTE_eNB_MPDCCH *mpdcch = &eNB->mpdcch_vars[subframe & 1]; + mDCI_ALLOC_t *mdci; + int coded_bits; + LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; + int i; + int gain_lin_QPSK; + uint8_t bitsperCCE; + uint16_t *mpdcchtab; - uint32_t x1, x2, s = 0; - uint8_t Nacc = 4; - uint16_t j0, j, idelta; - uint16_t i0; + uint32_t x1, x2, s = 0; + uint8_t Nacc = 4; + uint16_t j0, j, idelta; + uint16_t i0; - int off; + int off; - // Assumption: only handle a single MPDCCH per narrowband + // Assumption: only handle a single MPDCCH per narrowband - int nsymb = (fp->Ncp==0) ? 14:12; + int nsymb = (fp->Ncp==0) ? 14:12; - int symbol_offset = (uint32_t)fp->ofdm_symbol_size*(subframe*nsymb); + int symbol_offset = (uint32_t)fp->ofdm_symbol_size*(subframe*nsymb); - LOG_I(PHY, "generate_mdci_top: num_dci %d\n", mpdcch->num_dci); + int wp[2][4] = {{1,1,1,1},{1,-1,1,-1}}; + int *w; - for (i = 0; i < mpdcch->num_dci; i++) { - mdci = &mpdcch->mdci_alloc[i]; + LOG_I(PHY, "generate_mdci_top: num_dci %d\n", mpdcch->num_dci); - AssertFatal(fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n"); - AssertFatal(fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n"); - AssertFatal(mdci->L <= 24, "L is %d\n", mdci->L); - AssertFatal(fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "Only N_RB_DL=50,100 for MPDCCH\n"); - // Force MPDDCH format 5 - AssertFatal(mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); + for (i = 0; i < mpdcch->num_dci; i++) { + mdci = &mpdcch->mdci_alloc[i]; - // These are to avoid unimplemented things - AssertFatal(mdci->ce_mode == 1, "CE mode (%d) B not activated yet\n", mdci->ce_mode); - AssertFatal(mdci->L == 24, "Only 2+4 and aggregation 24 for now\n"); - int a_index = mdci->rnti & 3; - LOG_I(PHY, "mdci %d, length %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d Ant %d\n", i, mdci->dci_length,mdci->rnti, mdci->L, mdci->number_of_prb_pairs, mdci->ce_mode, mdci->i0, mdci->start_symbol,(a_index<2)?107:109); - i0 = mdci->i0; - // antenna index + AssertFatal(fp->frame_type == FDD, "TDD is not yet supported for MPDCCH\n"); + AssertFatal(fp->Ncp == NORMAL, "Extended Prefix not yet supported for MPDCCH\n"); + AssertFatal(mdci->L <= 24, "L is %d\n", mdci->L); + AssertFatal(fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "Only N_RB_DL=50,100 for MPDCCH\n"); + // Force MPDDCH format 5 + AssertFatal(mdci->number_of_prb_pairs == 6, "2 or 4 PRB pairs not support yet for MPDCCH\n"); - if ((mdci->start_symbol == 1) && (a_index < 2)) { - mpdcchtab = mpdcch5ss1p107108tab; - bitsperCCE = 72; - } else if ((mdci->start_symbol == 1) && (a_index > 1)) { - mpdcchtab = mpdcch5ss1p109110tab; - bitsperCCE = 72; - } else if ((mdci->start_symbol == 2) && (a_index < 2)) { - mpdcchtab = mpdcch5ss2p107108tab; - bitsperCCE = 66; - } else if ((mdci->start_symbol == 2) && (a_index > 1)) { - mpdcchtab = mpdcch5ss2p109110tab; - bitsperCCE = 66; - } else if ((mdci->start_symbol == 3) && (a_index < 2)) { - mpdcchtab = mpdcch5ss2p107108tab; - bitsperCCE = 60; - } else if ((mdci->start_symbol == 3) && (a_index < 2)) { - mpdcchtab = mpdcch5ss2p109110tab; - bitsperCCE = 60; - } else - AssertFatal(1 == 0, "Illegal combination start_symbol %d, a_index %d\n", mdci->start_symbol, a_index); + // These are to avoid unimplemented things + AssertFatal(mdci->ce_mode == 1, "CE mode (%d) B not activated yet\n", mdci->ce_mode); + AssertFatal(mdci->L == 24, "Only 2+4 and aggregation 24 for now\n"); + int a_index=mdci->rnti & 3; + i0 = mdci->i0; + // antenna index - // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing + if (mdci->start_symbol == 1) { + mpdcchtab = mpdcch5ss1tab; + coded_bits = 756*2; + } else if (mdci->start_symbol == 2) { + mpdcchtab = mpdcch5ss2tab; + coded_bits=684*2; + } else if (mdci->start_symbol == 3) { + mpdcchtab = mpdcch5ss3tab; + coded_bits = 612*2; + } else + AssertFatal(1 == 0, "Illegal combination start_symbol %d, a_index %d\n", mdci->start_symbol, a_index); - generate_dci0(mdci->dci_pdu, mpdcch->e + (bitsperCCE * mdci->firstCCE), mdci->dci_length, mdci->L, bitsperCCE, mdci->rnti); + LOG_I(PHY, "mdci %d, length %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d ,coded_bits %d\n", + i, mdci->dci_length,mdci->rnti, + mdci->L, mdci->number_of_prb_pairs, + mdci->ce_mode, mdci->i0, mdci->start_symbol, + coded_bits); + // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing - coded_bits = bitsperCCE * mdci->L; - - // scrambling - uint16_t absSF = (frame * 10) + subframe; - - AssertFatal(absSF < 10240, "Absolute subframe %d = %d*10 + %d > 10239\n", absSF, frame, subframe); - - mpdcch_scrambling(fp, mdci, absSF, mpdcch->e + (bitsperCCE * mdci->firstCCE), coded_bits); - - // Modulation for PDCCH - if (fp->nb_antenna_ports_eNB == 1) - gain_lin_QPSK = (int16_t) ((amp * ONE_OVER_SQRT2_Q15) >> 15); - else - gain_lin_QPSK = amp / 2; - - uint8_t *e_ptr = mpdcch->e; - - // if (mdci->transmission_type==0) nprime=mdci->rnti&3; // for Localized 2+4 we use 6.8B.5 rule - // map directly to one antenna port for now - // Note: aside from the antenna port mapping, there is no difference between localized and distributed transmission for MPDCCH format 5 - - // first RE of narrowband - // mpdcchtab5 below contains the mapping from each coded symbol to relative RE avoiding the DMRS - - int nb_i0; - switch (fp->N_RB_DL) { - - case 6: - case 25: - nb_i0 = 0; - break; - case 15: - case 50: - case 75: - nb_i0 = 1; - break; - case 100: - nb_i0 = 2; - break; - default: - AssertFatal(1 == 0, "Illegal N_RB_DL %d\n", fp->N_RB_DL); - break; - } - - int re_offset = fp->first_carrier_offset + (12 * nb_i0) + mdci->narrowband * 12 * 6; - if (re_offset > fp->ofdm_symbol_size) - re_offset -= (fp->ofdm_symbol_size - 1); - int32_t *txF = &txdataF[0][symbol_offset+re_offset]; - int32_t yIQ; - - for (i = 0; i < (coded_bits >> 1); i++) { - // QPSK modulation to yIQ - ((int16_t *) & yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - e_ptr++; - ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - e_ptr++; - txF[mpdcchtab[i + ((bitsperCCE >> 1) * mdci->firstCCE)]] = yIQ; - //LOG_I(PHY,"Frame %d, subframe %d: mpdcch pos %d: %d => (%d,%d)\n", - // frame,subframe,i,mpdcchtab[i + ((bitsperCCE>>2) * mdci->firstCCE)],((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); - } - - if (a_index > 1) - off = 0; - else - off = 1; - - // pilot scrambling initiatlization (note: this is for a single repetition) - - // x1 is set in lte_gold_generic - - // rule for BL/CE UEs from Section 6.10.3A.1 in 36.211 - - if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI - Nacc = fp->frame_type == FDD ? 4 : 10; - else - Nacc = 1; - - if (fp->frame_type == FDD || Nacc == 1) - idelta = 0; - else - idelta = Nacc - 2; - - j0 = (i0 + idelta) / Nacc; - j = (absSF - i0) / Nacc; + generate_dci0(mdci->dci_pdu, mpdcch->e, mdci->dci_length, coded_bits, mdci->rnti); - uint32_t a = ((((j0 + j) * Nacc) % 10) + 1); - uint32_t b = ((mdci->dmrs_scrambling_init << 1) + 1) << 16; - x2 = a * b; - x2 = x2 + 2; - LOG_I(PHY, "mpdcch_dmrs cinit %x (a=%d,b=%d,i0=%d,j0=%d)\n", x2,a,b,i0,j0); + // scrambling + uint16_t absSF = (frame * 10) + subframe; - // add MPDCCH pilots - int reset = 1; - gain_lin_QPSK*=2; - for (i = 0; i < (24 * 6); i += 2) { - if ((i & 0x1f) == 0) { - s = lte_gold_generic(&x1, &x2, reset); - reset = 0; - } - ((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - ((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; - txF[mpdcch_dmrs_tab[(i >> 1)]] = yIQ; - txF[1+mpdcch_dmrs_tab[(i >> 1)]] = yIQ; + AssertFatal(absSF < 10240, "Absolute subframe %d = %d*10 + %d > 10239\n", absSF, frame, subframe); - LOG_D(PHY, "mpdcch_dmrs pos %d: %d => (%d,%d)\n", i, off + mpdcch_dmrs_tab[(i >> 1)], ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]); - } + mpdcch_scrambling(fp, mdci, absSF, mpdcch->e, coded_bits); + + // Modulation for PDCCH + if (fp->nb_antenna_ports_eNB == 1) + gain_lin_QPSK = (int16_t) ((amp * ONE_OVER_SQRT2_Q15) >> 15); + else + gain_lin_QPSK = amp / 2; + + uint8_t *e_ptr = mpdcch->e; + + // if (mdci->transmission_type==0) nprime=mdci->rnti&3; // for Localized 2+4 we use 6.8B.5 rule + // map directly to one antenna port for now + // Note: aside from the antenna port mapping, there is no difference between localized and distributed transmission for MPDCCH format 5 + + // first RE of narrowband + // mpdcchtab5 below contains the mapping from each coded symbol to relative RE avoiding the DMRS + + int nb_i0; + switch (fp->N_RB_DL) { + + case 6: + case 25: + nb_i0 = 0; + break; + case 15: + case 50: + case 75: + nb_i0 = 1; + break; + case 100: + nb_i0 = 2; + break; + default: + AssertFatal(1 == 0, "Illegal N_RB_DL %d\n", fp->N_RB_DL); + break; } + int re_offset = fp->first_carrier_offset + (12 * nb_i0) + (mdci->narrowband * 12 * 6); + if (re_offset > fp->ofdm_symbol_size) + re_offset -= (fp->ofdm_symbol_size - 1); + int32_t *txF = &txdataF[0][symbol_offset+re_offset]; + int32_t yIQ; + for (i = 0; i < (coded_bits >> 1); i++) { + // QPSK modulation to yIQ + ((int16_t *) & yIQ)[0] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + e_ptr++; + ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + e_ptr++; + txF[mpdcchtab[i]] = yIQ; + LOG_D(PHY,"Frame %d, subframe %d: mpdcch pos %d (%d,%d) => (%d,%d)\n", + frame,subframe,i,mpdcchtab[i]+re_offset,mpdcchtab[i]/fp->ofdm_symbol_size, + ((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); + } + + if (mdci->transmission_type == 1) w=0; // distributed + else w = wp[a_index&1]; + + // pilot scrambling initiatlization (note: this is for a single repetition) + + // x1 is set in lte_gold_generic + + // rule for BL/CE UEs from Section 6.10.3A.1 in 36.211 + + if ((mdci->rnti == 0xFFFE) || (mdci->ce_mode == 2)) // CEModeB Note: also for mdci->rnti==SC_RNTI + Nacc = fp->frame_type == FDD ? 4 : 10; + else + Nacc = 1; + + if (fp->frame_type == FDD || Nacc == 1) + idelta = 0; + else + idelta = Nacc - 2; + + j0 = (i0 + idelta) / Nacc; + j = (absSF - i0) / Nacc; + + + + uint32_t a = ((((j0 + j) * Nacc) % 10) + 1); + uint32_t b = ((mdci->dmrs_scrambling_init << 1) + 1) << 16; + x2 = a * b; + x2 = x2 + 2; + LOG_I(PHY, "mpdcch_dmrs cinit %x (a=%d,b=%d,i0=%d,j0=%d)\n", x2,a,b,i0,j0); + + // add MPDCCH pilots + int reset = 1; + + int first_prb = (mdci->narrowband*6) + nb_i0; + int last_prb = (mdci->narrowband*6) + nb_i0 + 5; + int soffset[4] = {5,6,12,13}; + + + for (int lprime=0,i=0;lprime<4;lprime++) { + for (int nprb=0;nprb<110;nprb++) { + if (nprbN_RB_DL) { + re_offset = fp->first_carrier_offset + (12 * nprb); + if (re_offset > fp->ofdm_symbol_size) + re_offset -= (fp->ofdm_symbol_size - 1); + txF = &txdataF[0][symbol_offset + re_offset + fp->ofdm_symbol_size*soffset[lprime]]; + } + for (int mprime=0;mprime<3;mprime++,i++) { + + if ((i & 0x1f) == 0) { + s = lte_gold_generic(&x1, &x2, reset); + reset = 0; + } + + // select PRBs corresponding to narrowband + if ((nprb>= first_prb) && + (nprb<= last_prb)) { + ((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + ((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + if (mdci->transmission_type==1) { // same thing on both 107 and 109 + txF[(5*mprime)] = yIQ; + txF[1+(5*mprime)] = yIQ; + } + else { // put on selected antenna port with w sequence + if (((mprime+nprb)&1) == 0) + txF[off+(5*mprime)] = yIQ*w[lprime]; + else + txF[off+(5*mprime)] = yIQ*w[3-lprime]; + } + + LOG_I(PHY, "mpdcch_dmrs pos (dist %d, l %d,nprb %d,mprime %d) %d => (%d,%d)\n", + mdci->transmission_type, soffset[lprime],nprb,mprime, + re_offset + fp->ofdm_symbol_size*soffset[lprime]+(5*mprime), + ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]); + } // narrowband condition + } // RE (m') loop + } // nprb loop + } // symbol (l') loop + } // num_dci loop } void init_mpdcch(PHY_VARS_eNB * eNB) { - init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(eNB); - init_mpdcch_dmrs_tab(eNB->frame_parms.ofdm_symbol_size); + init_mpdcch5ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch5ss2tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch5ss3tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch3ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch2ss1tab_normal_regular_subframe_evenNRBDL(eNB); + init_mpdcch_dmrs_tab(eNB->frame_parms.ofdm_symbol_size); } #endif diff --git a/openair1/PHY/LTE_TRANSPORT/mdci.h b/openair1/PHY/LTE_TRANSPORT/mdci.h index 1e278f8011..b2b0d3edce 100755 --- a/openair1/PHY/LTE_TRANSPORT/mdci.h +++ b/openair1/PHY/LTE_TRANSPORT/mdci.h @@ -135,7 +135,7 @@ typedef struct DCI6_0A_10MHz DCI6_0A_10MHz_t; /// basic DCI Format Type 6-1A (10 MHz, FDD primary carrier, 24 bits, 5 bit format, TM!=9,TM!=6, no scheduling enhancement) struct DCI6_1A_10MHz { /// padding to fill 32-bit word - uint32_t padding:4; + uint32_t padding:3; /// DCI subframe repetition number uint32_t dci_rep:2; /// HARQ-ACK resource offset @@ -154,8 +154,10 @@ struct DCI6_1A_10MHz { uint32_t rep:2; /// Modulation and Coding Scheme and Redundancy Version uint32_t mcs:4; - /// Resource block assignment (assignment flag = 0 for 10 MHz, ceil(log2(floor(N_RB_DL/6)))+5) - uint32_t rballoc:8; + /// Resource block assignment + uint32_t rballoc:5; + /// narroband index log2(floor(N_RB_DL/6))) bits + uint32_t narrowband:3; /// Frequency hopping flag uint32_t hopping:1; /// 0/1A differentiator diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c index f885bf8eb3..0bd2f522d7 100755 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c @@ -904,7 +904,7 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, //#ifdef DEBUG_ULSCH_DECODING - LOG_D(PHY,"Frame %d, Subframe %d: ulsch_decoding (Nid_cell %d, rnti %x, x2 %x): A %d, round %d, RV %d, O_r1 %d, O_RI %d, O_ACK %d, G %d\n", + LOG_I(PHY,"Frame %d, Subframe %d: ulsch_decoding (Nid_cell %d, rnti %x, x2 %x): A %d, round %d, RV %d, O_r1 %d, O_RI %d, O_ACK %d, G %d\n", proc->frame_rx,subframe, frame_parms->Nid_cell,ulsch->rnti,x2, A, diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 8199f26053..f092886ec2 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -76,11 +76,11 @@ pmch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, PHY_VARS_RN * rn, r // if mcch is active, send regardless of the node type: eNB or RN // when mcch is active, MAC sched does not allow MCCH and MTCH multiplexing /* - mch_pduP = mac_xface->get_mch_sdu(eNB->Mod_id, - eNB->CC_id, - proc->frame_tx, - subframe); - */ + mch_pduP = mac_xface->get_mch_sdu(eNB->Mod_id, + eNB->CC_id, + proc->frame_tx, + subframe); + */ switch (r_type) { case no_relay: if ((mch_pduP->Pdu_size > 0) && (mch_pduP->sync_area == 0)) // TEST: only transmit mcch for sync area 0 @@ -212,23 +212,7 @@ pdsch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, int harq_pid, LTE_ LOG_I (PHY, "[eNB %" PRIu8 "][PDSCH %" PRIx16 "/%" PRIu8 "] Frame %d, subframe %d: Generating PDSCH/DLSCH with input size = %" PRIu16 ", pdsch_start %d, G %d, nb_rb %" PRIu16 ", rb0 %x, rb1 %x, TBS %" - PRIu16 ", pmi_alloc %" PRIx64 ", rv %" PRIu8 " (round %" PRIu8 ")\n", eNB->Mod_id, dlsch->rnti, harq_pid, frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, get_G (fp, - dlsch_harq-> - nb_rb, - dlsch_harq-> - rb_alloc, - dlsch_harq-> - Qm, - dlsch_harq-> - Nl, - dlsch_harq-> - pdsch_start, - frame, - subframe, - dlsch_harq-> - mimo_mode == - TM7 ? 7 : 0), - dlsch_harq->nb_rb, dlsch_harq->rb_alloc[0], dlsch_harq->rb_alloc[1], dlsch_harq->TBS, pmi2hex_2Ar1 (dlsch_harq->pmi_alloc), dlsch_harq->rvidx, dlsch_harq->round); + PRIu16 ", pmi_alloc %" PRIx64 ", rv %" PRIu8 " (round %" PRIu8 ")\n", eNB->Mod_id, dlsch->rnti, harq_pid, frame, subframe, input_buffer_length, dlsch_harq->pdsch_start, get_G(fp,dlsch_harq->nb_rb,dlsch_harq->rb_alloc,dlsch_harq->Qm,dlsch_harq->Nl,dlsch_harq->pdsch_start,frame,subframe,dlsch_harq->mimo_mode == TM7 ? 7 : 0),dlsch_harq->nb_rb, dlsch_harq->rb_alloc[0], dlsch_harq->rb_alloc[1], dlsch_harq->TBS, pmi2hex_2Ar1 (dlsch_harq->pmi_alloc), dlsch_harq->rvidx, dlsch_harq->round); } #if defined(MESSAGE_CHART_GENERATOR_PHY) MSC_LOG_TX_MESSAGE (MSC_PHY_ENB, MSC_PHY_UE, @@ -397,11 +381,12 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type #ifdef Rel14 num_mdci = eNB->mpdcch_vars[subframe &1].num_dci; if (num_mdci > 0) { - LOG_I (PHY, "[eNB %" PRIu8 "] Frame %d, subframe %d: Calling generate_mdci_top (mpdcch) (num_dci %" PRIu8 ")\n", eNB->Mod_id, frame, subframe, num_mdci); + LOG_I (PHY, "[eNB %" PRIu8 "] Frame %d, subframe %d: Calling generate_mdci_top (mpdcch) (num_dci %" PRIu8 ")\n", eNB->Mod_id, frame, subframe, num_mdci); - generate_mdci_top (eNB, frame, subframe, AMP*3/4, eNB->common_vars.txdataF); - //write_output("/tmp/mpdcch.m","mpdcch_txF",(void*)&eNB->common_vars.txdataF[0][subframe*14*1024],14*1024,1,1); - //exit(-1); + generate_mdci_top (eNB, frame, subframe, AMP, eNB->common_vars.txdataF); + + /* write_output("/tmp/mpdcch.m","mpdcch_txF",(void*)&eNB->common_vars.txdataF[0][subframe*14*1024],14*1024,1,1); + exit(-1);*/ } #endif // Now scan UE specific DLSCH @@ -415,19 +400,19 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type // get harq_pid harq_pid = dlsch0->harq_ids[subframe]; if (harq_pid >=0 && harq_pid < 8) { - // generate pdsch + // generate pdsch if ((dlsch0->rnti !=0xFFFF)) { LOG_I(PHY,"SFN %d.%d: DLSCH %d for rnti %x is active, harq_pid %d => SFN %d.%d\n", - frame, - subframe, - UE_id, - dlsch0->rnti, - harq_pid, - dlsch0->harq_processes[harq_pid]->frame, - dlsch0->harq_processes[harq_pid]->subframe); + frame, + subframe, + UE_id, + dlsch0->rnti, + harq_pid, + dlsch0->harq_processes[harq_pid]->frame, + dlsch0->harq_processes[harq_pid]->subframe); } if ((dlsch0->harq_processes[harq_pid]->status == ACTIVE) && (dlsch0->harq_processes[harq_pid]->frame == frame) && (dlsch0->harq_processes[harq_pid]->subframe == subframe)) - pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); + pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); } @@ -456,7 +441,7 @@ prach_procedures (PHY_VARS_eNB * eNB, #ifdef Rel14 int br_flag #endif - ) + ) { uint16_t max_preamble[4], max_preamble_energy[4], max_preamble_delay[4]; uint16_t i; @@ -471,13 +456,13 @@ prach_procedures (PHY_VARS_eNB * eNB, pthread_mutex_unlock (&eNB->UL_INFO_mutex); } else #endif - { - pthread_mutex_lock (&eNB->UL_INFO_mutex); - eNB->UL_INFO.rach_ind.number_of_preambles = 0; - pthread_mutex_unlock (&eNB->UL_INFO_mutex); - subframe = eNB->proc.subframe_prach; - frame = eNB->proc.frame_prach; - } + { + pthread_mutex_lock (&eNB->UL_INFO_mutex); + eNB->UL_INFO.rach_ind.number_of_preambles = 0; + pthread_mutex_unlock (&eNB->UL_INFO_mutex); + subframe = eNB->proc.subframe_prach; + frame = eNB->proc.frame_prach; + } RU_t *ru; int aa = 0; int ru_aa; @@ -505,7 +490,7 @@ prach_procedures (PHY_VARS_eNB * eNB, #ifdef Rel14 , br_flag #endif - ); + ); #ifdef DEBUG_PHY_PROC LOG_I (PHY, "[RAPROC] Frame %d, subframe %d : Most likely preamble %d, energy %d dB delay %d\n", frame, subframe, max_preamble[0], max_preamble_energy[0] / 10, max_preamble_delay[0]); @@ -528,7 +513,7 @@ prach_procedures (PHY_VARS_eNB * eNB, (eNB->prach_vars_br.repetition_number[ce_level]== eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) { - */ + */ if (eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] == 1) { if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { @@ -548,46 +533,46 @@ prach_procedures (PHY_VARS_eNB * eNB, eNB->preamble_list_br[ind].preamble_rel8.preamble, eNB->preamble_list_br[ind].preamble_rel8.rnti, eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type); } /* - ind++; - } - } */// ce_level + ind++; + } + } */// ce_level } } else #endif - { - if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { + { + if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { - LOG_D (PHY, "[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", - eNB->Mod_id, eNB->CC_id, frame, subframe, max_preamble[0], max_preamble_energy[0] / 10, max_preamble_energy[0] % 10, max_preamble_delay[0]); + LOG_D (PHY, "[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", + eNB->Mod_id, eNB->CC_id, frame, subframe, max_preamble[0], max_preamble_energy[0] / 10, max_preamble_energy[0] % 10, max_preamble_delay[0]); - T (T_ENB_PHY_INITIATE_RA_PROCEDURE, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (max_preamble[0]), T_INT (max_preamble_energy[0]), T_INT (max_preamble_delay[0])); + T (T_ENB_PHY_INITIATE_RA_PROCEDURE, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (max_preamble[0]), T_INT (max_preamble_energy[0]), T_INT (max_preamble_delay[0])); - pthread_mutex_lock (&eNB->UL_INFO_mutex); + pthread_mutex_lock (&eNB->UL_INFO_mutex); - eNB->UL_INFO.rach_ind.number_of_preambles = 1; - eNB->UL_INFO.rach_ind.preamble_list = eNB->preamble_list; + eNB->UL_INFO.rach_ind.number_of_preambles = 1; + eNB->UL_INFO.rach_ind.preamble_list = eNB->preamble_list; - eNB->preamble_list[0].preamble_rel8.timing_advance = max_preamble_delay[0]; - eNB->preamble_list[0].preamble_rel8.preamble = max_preamble[0]; - eNB->preamble_list[0].preamble_rel8.rnti = 1 + subframe; // note: fid is implicitly 0 here - eNB->preamble_list[0].preamble_rel13.rach_resource_type = 0; - eNB->preamble_list[0].instance_length = 0; //don't know exactly what this is + eNB->preamble_list[0].preamble_rel8.timing_advance = max_preamble_delay[0]; + eNB->preamble_list[0].preamble_rel8.preamble = max_preamble[0]; + eNB->preamble_list[0].preamble_rel8.rnti = 1 + subframe; // note: fid is implicitly 0 here + eNB->preamble_list[0].preamble_rel13.rach_resource_type = 0; + eNB->preamble_list[0].instance_length = 0; //don't know exactly what this is - LOG_D (PHY, "Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", - eNB->preamble_list[0].preamble_rel8.timing_advance, - eNB->preamble_list[0].preamble_rel8.preamble, eNB->preamble_list[0].preamble_rel8.rnti, eNB->preamble_list[0].preamble_rel13.rach_resource_type); - pthread_mutex_unlock (&eNB->UL_INFO_mutex); + LOG_D (PHY, "Filling NFAPI indication for RACH : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + eNB->preamble_list[0].preamble_rel8.timing_advance, + eNB->preamble_list[0].preamble_rel8.preamble, eNB->preamble_list[0].preamble_rel8.rnti, eNB->preamble_list[0].preamble_rel13.rach_resource_type); + pthread_mutex_unlock (&eNB->UL_INFO_mutex); - } // max_preamble_energy > prach_I0 + 100 - else { - eNB->measurements.prach_I0 = ((eNB->measurements.prach_I0 * 900) >> 10) + ((max_preamble_energy[0] * 124) >> 10); - if (frame == 0) - LOG_I (PHY, "prach_I0 = %d.%d dB\n", eNB->measurements.prach_I0 / 10, eNB->measurements.prach_I0 % 10); - if (eNB->prach_energy_counter < 100) - eNB->prach_energy_counter++; - } - } // else br_flag + } // max_preamble_energy > prach_I0 + 100 + else { + eNB->measurements.prach_I0 = ((eNB->measurements.prach_I0 * 900) >> 10) + ((max_preamble_energy[0] * 124) >> 10); + if (frame == 0) + LOG_I (PHY, "prach_I0 = %d.%d dB\n", eNB->measurements.prach_I0 / 10, eNB->measurements.prach_I0 % 10); + if (eNB->prach_energy_counter < 100) + eNB->prach_energy_counter++; + } + } // else br_flag VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_PRACH_RX, 0); } @@ -652,7 +637,7 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) { LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; uint8_t SR_payload = 0, pucch_b0b1[4][2] = { {0, 0}, {0, 0}, {0, 0}, {0, 0} }, harq_ack[4] = { - 0, 0, 0, 0}; + 0, 0, 0, 0}; int32_t metric[4] = { 0, 0, 0, 0 }, metric_SR = 0, max_metric; const int subframe = proc->subframe_rx; const int frame = proc->frame_rx; @@ -1130,8 +1115,11 @@ pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) fill_crc_indication (eNB, i, frame, subframe, 1); // indicate NAK to MAC fill_rx_indication (eNB, i, frame, subframe); // indicate SDU to MAC - LOG_D (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", + LOG_I (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", eNB->Mod_id, harq_pid, frame, subframe, i, ulsch_harq->round - 1, ulsch->Mlimit, ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1]); + dump_ulsch(eNB,frame,subframe,i); + exit(-1); + if (ulsch_harq->round >= 3) { ulsch_harq->status = SCH_IDLE; ulsch_harq->handled = 0; @@ -1329,8 +1317,8 @@ release_harq (PHY_VARS_eNB * eNB, int UE_id, int tb, uint16_t frame, uint8_t sub dlsch0_harq->status = SCH_IDLE; /*if ((dlsch1_harq == NULL)|| - ((dlsch1_harq!=NULL)&& - (dlsch1_harq->status == SCH_IDLE))) */ + ((dlsch1_harq!=NULL)&& + (dlsch1_harq->status == SCH_IDLE))) */ dlsch0->harq_mask &= ~(1 << harq_pid); LOG_D (PHY, "Frame %d, subframe %d: Releasing harq %d for UE %x\n", frame, subframe, harq_pid, dlsch0->rnti); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index a707b40cdf..1eed3de5bb 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -247,7 +247,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); // get narrowband according to higher-layer config num_nb = p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.count; - RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index % num_nb]; + RA_template->msg2_narrowband = *p[RA_template->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[RA_template->preamble_index % num_nb]-1; first_rb = narrowband_to_first_rb (&cc[CC_idP], RA_template->msg2_narrowband); if ((RA_template->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { @@ -274,8 +274,9 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6) | (RA_template->msg2_narrowband<<5); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 1; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = RA_template->msg2_narrowband; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 0; // adjust according to size of RAR, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; @@ -286,7 +287,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 0; // N1A_PRB=2 (36.212); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3 (36.212) => 56 bits dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; @@ -371,7 +372,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; dl_req->number_pdu++; - fill_rar_br (eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1) ; + fill_rar_br (eNB, CC_idP, RA_template, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, RA_template->rach_resource_type - 1) ; // Program UL processing for Msg3, same as regular LTE get_Msg3alloc (&cc[CC_idP], subframeP, frameP, &RA_template->Msg3_frame, &RA_template->Msg3_subframe); add_msg3 (module_idP, CC_idP, RA_template, frameP, subframeP); @@ -628,7 +629,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); // check if not getRIV(N_RB_DL,first_rb,6); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of Msg4, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 0; // adjust according to size of Msg4, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; @@ -639,7 +640,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3; => 208 bits + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3; => dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; @@ -1160,13 +1161,14 @@ initiate_ra_proc (module_id_t module_idP, int CC_id, frame_t frameP, sub_frame_t LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d Initiating RA procedure for preamble index %d\n", module_idP, CC_id, frameP, subframeP, preamble_index); #ifdef Rel14 LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, Subframe %d PRACH resource type %d\n", module_idP, CC_id, frameP, subframeP, rach_resource_type); -#endif + if (prach_ParametersListCE_r13 && prach_ParametersListCE_r13->list.count < rach_resource_type) { LOG_E (MAC, "[eNB %d][RAPROC] CC_id %d Received impossible PRACH resource type %d, only %d CE levels configured\n", module_idP, CC_id, rach_resource_type, (int) prach_ParametersListCE_r13->list.count); return; } +#endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 1); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME (VCD_SIGNAL_DUMPER_FUNCTIONS_INITIATE_RA_PROC, 0); diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index e5de10a464..9294832a01 100755 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -139,7 +139,7 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, uint8_t *rar = (uint8_t *)(dlsch_buffer+1); int i; - uint8_t nb,rballoc,reps; + uint8_t rballoc,reps; uint8_t mcs,TPC,ULdelay,cqireq,mpdcch_nb_index; int input_buffer_length; @@ -158,7 +158,7 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, // Copy the Msg2 narrowband RA_template->msg34_narrowband = RA_template->msg2_narrowband; - RA_template->msg3_first_rb = ce_level; + RA_template->msg3_first_rb = 0; RA_template->msg3_nb_rb = 2; if (ce_level<2) { //CE Level 0,1, CEmodeA @@ -170,24 +170,24 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, rar[5] = (uint8_t)(RA_template->rnti&0xff); //cc->RA_template[ra_idx].timing_offset = 0; - nb = 0; reps = 0; - mcs = 7; + RA_template->msg3_mcs = 7; TPC = 3; // no power increase ULdelay = 0; cqireq = 0; mpdcch_nb_index = 0; - rballoc = mac_computeRIV(6,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); // one PRB only for UL Grant in position 1+ce_level within Narrowband + rballoc = mac_computeRIV(6,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); + unsigned int buffer = 0; - buffer |= N_NB_index << (16 + (4 - N_NB_index)); + buffer |= RA_template->msg34_narrowband << (16 + (4 - N_NB_index)); buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index))); buffer |= ((reps & 0x03) << (10 + (4 - N_NB_index))); - buffer |= ((mcs & 0x07) << (7 + (4 - N_NB_index))); + buffer |= ((RA_template->msg3_mcs & 0x07) << (7 + (4 - N_NB_index))); buffer |= ((TPC & 0x07) << (4 + (4 - N_NB_index))); buffer |= ((cqireq & 0x01) << (3 + (4 - N_NB_index))); buffer |= ((ULdelay & 0x01) << (2 + (4 - N_NB_index))); - buffer |= ((ULdelay & 0x01) << (4 - N_NB_index)); - rar[1] = (buffer>>12) & 0x0F; + buffer |= (mpdcch_nb_index << (4 - N_NB_index)); + rar[1] = (buffer>>16) & 0x0F; rar[2] = (buffer>>8) & 0xFF; rar[3] = buffer&0xFF; } diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 0ae7ffac96..23d4538b06 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -256,7 +256,7 @@ eNBs = numRepetitionPerPreambleAttempt_r13 = "n1"; #0 mpdcch_NumRepetition_RA_r13 = "r1"; #0 prach_HoppingConfig_r13 = "off"; #1 - max_available_narrow_band = [2]; + max_available_narrow_band = [3]; } ); @@ -355,7 +355,7 @@ eNBs = ////////// MME parameters: - mme_ip_address = ( { ipv4 = "192.168.12.26"; + mme_ip_address = ( { ipv4 = "127.0.0.3"; ipv6 = "192:168:30::17"; active = "yes"; preference = "ipv4"; @@ -365,10 +365,10 @@ eNBs = NETWORK_INTERFACES : { - ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; - ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.150/24"; - ENB_INTERFACE_NAME_FOR_S1U = "eth0"; - ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.150/24"; + ENB_INTERFACE_NAME_FOR_S1_MME = "lo"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "127.0.0.2/24"; + ENB_INTERFACE_NAME_FOR_S1U = "lo"; + ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.4/24"; ENB_PORT_FOR_S1U = 2152; # Spec 2152 }; From 500e826c14963c1536d438ba8c145e0684d5d754 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 26 Nov 2017 08:37:23 -0800 Subject: [PATCH 084/125] aligned nDMRS1 parameter in LTE and LTE-M sections of SIB2 until L1 uses LTE-M parameters for PUSCH --- .../GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 23d4538b06..382cc9d2fc 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -204,6 +204,7 @@ eNBs = pusch_groupHoppingEnabled = "ENABLE"; pusch_groupAssignment = 0; pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; # PUCCH Config Common pucch_delta_shift = 1; @@ -307,7 +308,6 @@ eNBs = rach_preamblesGroupAConfig = "DISABLE"; - pusch_nDMRS1 = 0; phich_duration = "NORMAL"; phich_resource = "ONESIXTH"; srs_enable = "DISABLE"; From 3a2f4c797adc840ac9bb3056297f138e4cf628f4 Mon Sep 17 00:00:00 2001 From: sharma Date: Wed, 29 Nov 2017 07:54:41 +0100 Subject: [PATCH 085/125] debugging of Msg4 --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 13 +- openair1/PHY/LTE_TRANSPORT/defs.h | 2 + openair1/PHY/LTE_TRANSPORT/edci.c | 7 +- openair1/SCHED/fapi_l1.c | 4 +- openair1/SCHED/phy_procedures_lte_eNb.c | 6 +- openair2/LAYER2/MAC/defs.h | 5 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 342 ++++++++++++------------ openair2/LAYER2/MAC/rar_tools.c | 6 +- openair2/RRC/LITE/rrc_eNB.c | 1 + 9 files changed, 205 insertions(+), 181 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 4b4bff3426..5a27a4dd06 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -2168,9 +2168,6 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci_alloc->dmrs_scrambling_init = rel13->drms_scrambling_init; dci_alloc->i0 = rel13->initial_transmission_sf_io; - dci_alloc->ra_flag = 0; - if (rel13->rnti_type == 2) - dci_alloc->ra_flag = 1; UE_id = find_dlsch (rel13->rnti, eNB, SEARCH_EXIST_OR_FREE); AssertFatal (UE_id != -1, "no free or exiting dlsch_context\n"); @@ -2178,6 +2175,14 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0 = eNB->dlsch[UE_id][0]; dlsch0_harq = dlsch0->harq_processes[rel13->harq_process]; + dci_alloc->ra_flag = 0; + dlsch0->ra_flag = 0; + + if (rel13->rnti_type == 2) { + dci_alloc->ra_flag = 1; + dlsch0->ra_flag = 1; + } + AssertFatal (fp->frame_type == FDD, "TDD is not supported yet for eMTC\n"); AssertFatal (fp->N_RB_DL == 25 || fp->N_RB_DL == 50 || fp->N_RB_DL == 100, "eMTC only with N_RB_DL = 25,50,100\n"); @@ -2400,10 +2405,10 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0->active = 1; dlsch0->harq_mask |= (1 << rel13->harq_process); - dlsch0->harq_ids[(subframe + 2) % 10] = rel13->harq_process; dlsch0_harq->frame = (subframe >= 8) ? ((frame + 1) & 1023) : frame; dlsch0_harq->subframe = (subframe + 2) % 10; + LOG_I(PHY,"Setting DLSCH harq_ids[%d] to %d\n",dlsch0_harq->subframe,dlsch0->harq_ids[dlsch0_harq->subframe]); dlsch0->harq_ids[dlsch0_harq->subframe] = rel13->harq_process; dlsch0_harq->pdsch_start = rel13->start_symbol; diff --git a/openair1/PHY/LTE_TRANSPORT/defs.h b/openair1/PHY/LTE_TRANSPORT/defs.h index 5ba9e48006..fb42e39a6c 100755 --- a/openair1/PHY/LTE_TRANSPORT/defs.h +++ b/openair1/PHY/LTE_TRANSPORT/defs.h @@ -273,6 +273,8 @@ typedef struct { uint16_t rnti; /// Active flag for baseband transmitter processing uint8_t active; + /// flag to indicate that this DLSCH is for RAR + uint8_t ra_flag; /// HARQ process mask, indicates which processes are currently active uint16_t harq_mask; /// Indicator of TX activation per subframe. Used during PUCCH detection for ACK/NAK. diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 60e4b6f1dc..932408ad0a 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -388,9 +388,10 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; e_ptr++; txF[mpdcchtab[i]] = yIQ; + /* LOG_D(PHY,"Frame %d, subframe %d: mpdcch pos %d (%d,%d) => (%d,%d)\n", frame,subframe,i,mpdcchtab[i]+re_offset,mpdcchtab[i]/fp->ofdm_symbol_size, - ((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]); + ((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]);*/ } if (mdci->transmission_type == 1) w=0; // distributed @@ -461,11 +462,11 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, else txF[off+(5*mprime)] = yIQ*w[3-lprime]; } - + /* LOG_I(PHY, "mpdcch_dmrs pos (dist %d, l %d,nprb %d,mprime %d) %d => (%d,%d)\n", mdci->transmission_type, soffset[lprime],nprb,mprime, re_offset + fp->ofdm_symbol_size*soffset[lprime]+(5*mprime), - ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]); + ((int16_t *) & yIQ)[0], ((int16_t *) & yIQ)[1]);*/ } // narrowband condition } // RE (m') loop } // nprb loop diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index b34c360ff9..b8dc008aa2 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -218,7 +218,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, harq_pid = dlsch0->harq_ids[proc->subframe_tx]; dlsch0->harq_mask |= (1<=0) && (harq_pid<8),"harq_pid %d not in 0...7\n",harq_pid); + AssertFatal((harq_pid>=0) && (harq_pid<8),"subframe %d: harq_pid %d not in 0...7\n",proc->subframe_tx,harq_pid); dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; AssertFatal(dlsch0_harq!=NULL,"dlsch_harq is null\n"); @@ -381,7 +381,7 @@ void handle_uci_harq_information(PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci,nfapi_ul_co uci->n_pucch_3[0] = harq_information->harq_information_rel9_fdd.n_pucch_1_0; uci->n_pucch_3[1] = harq_information->harq_information_rel11.n_pucch_2_0; } - else AssertFatal(1==0,"unsupported HARQ mode %d\n",harq_information->harq_information_rel9_fdd.ack_nack_mode); + else AssertFatal(1==0,"unsupported FDD HARQ mode %d size %d\n",harq_information->harq_information_rel9_fdd.ack_nack_mode,harq_information->harq_information_rel9_fdd.harq_size); } else { // TDD uci->num_pucch_resources = harq_information->harq_information_rel10_tdd.number_of_pucch_resources; diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index f092886ec2..9339ebc49a 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -265,9 +265,9 @@ pdsch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, int harq_pid, LTE_ stop_meas (&eNB->dlsch_modulation_stats); dlsch->active = 0; - dlsch_harq->round++; - if (dlsch->rnti == 0xFFFF) - dlsch->harq_mask = 0; + + if (dlsch->rnti == 0xFFFF || dlsch->ra_flag == 1) dlsch->harq_mask = 0; // clear the harq mask for SI and RA-RNTI + else dlsch_harq->round++; //increment the round index for CRNTI and t-CRNTI } diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index a18191f8cf..267392d684 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -914,13 +914,16 @@ typedef struct { int msg4_TBsize; /// MCS used for Msg4 int msg4_mcs; + /// size off piggybacked RRC SDU + uint8_t msg4_rrc_sdu_length; #ifdef Rel14 uint8_t rach_resource_type; uint8_t msg2_mpdcch_repetition_cnt; uint8_t msg2_mpdcch_done; uint8_t msg4_mpdcch_repetition_cnt; + uint8_t msg4_mpdcch_done; uint8_t msg2_narrowband; - uint8_t msg34_narrowband; + uint32_t msg34_narrowband; #endif } RA_TEMPLATE; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 1eed3de5bb..468fd27bc0 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -274,10 +274,9 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = RA_template->msg2_narrowband; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 0; // adjust according to size of RAR, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; @@ -325,7 +324,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s AssertFatal (1 == 0, "TDD case not done yet\n"); } } // mpdcch_repetition_count == reps - else { + else if (RA_template->msg2_mpdcch_done == 0) { LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, MPDCCH repetition %d\n", module_idP, frameP, subframeP, RA_template->msg2_mpdcch_repetition_cnt); RA_template->msg2_mpdcch_repetition_cnt++; } @@ -484,7 +483,6 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s eNB_MAC_INST *eNB = RC.mac[module_idP]; COMMON_channels_t *cc = eNB->common_channels; - int16_t rrc_sdu_length; int UE_id = -1; uint16_t msg4_padding; uint16_t msg4_post_padding; @@ -544,13 +542,14 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s case 2: p[1] = prach_ParametersListCE_r13->list.array[1]; n1pucchan[1] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[1]; - AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level1 shouldn't be NULL\n"); + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level1 shouldn't be NULL\n"); pucchreps[1] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13); case 1: p[0] = prach_ParametersListCE_r13->list.array[0]; n1pucchan[0] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[0]; - AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level0 shouldn't be NULL\n"); + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level0 shouldn't be NULL\n"); pucchreps[0] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13); + break; default: AssertFatal (1 == 0, "Illegal count for prach_ParametersListCE_r13 %d\n", prach_ParametersListCE_r13->list.count); } @@ -574,14 +573,6 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; - // Get RRCConnectionSetup for Piggyback - rrc_sdu_length = mac_rrc_data_req (module_idP, CC_idP, frameP, CCCH, 1, // 1 transport block - &cc[CC_idP].CCCH_pdu.payload[0], ENB_FLAG_YES, module_idP, 0); // not used in this case - - AssertFatal (rrc_sdu_length > 0, "[MAC][eNB Scheduler] CCCH not allocated\n"); - - - LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, rrc_sdu_length); #ifdef Rel14 @@ -597,19 +588,28 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s // distributed transmission // rmax from SIB2 information - rmax = p[RA_template->rach_resource_type - 1]->mpdcch_NumRepetition_RA_r13; - AssertFatal (rmax >= 4, "choose rmax>=4 for enough repeititions, or reduce rep to 1 or 2\n"); + rmax = 1<rach_resource_type - 1]->mpdcch_NumRepetition_RA_r13; + // choose r3 by default for Msg4 (this is ok from table 9.1.5-3 for rmax = >=4, if we choose rmax <4 it has to be less - rep = 2; + rep = 0; // get actual repetition count from Table 9.1.5-3 reps = (rmax <= 8) ? (1 << rep) : (rmax >> (3 - rep)); // get first narrowband first_rb = narrowband_to_first_rb (&cc[CC_idP], RA_template->msg34_narrowband); if ((RA_template->msg4_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { - // MPDCCH configuration for RAR - + // Get RRCConnectionSetup for Piggyback + RA_template->msg4_rrc_sdu_length = mac_rrc_data_req (module_idP, CC_idP, frameP, CCCH, 1, // 1 transport block + &cc[CC_idP].CCCH_pdu.payload[0], ENB_FLAG_YES, module_idP, 0); // not used in this case + + AssertFatal (RA_template->msg4_rrc_sdu_length > 0, "[MAC][eNB Scheduler] CCCH not allocated\n"); + + + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, RA_template->msg4_rrc_sdu_length); + + // MPDCCH configuration for Msg4 + RA_template->msg4_mpdcch_done=0; memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); @@ -623,14 +623,14 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 0; // t-C-RNTI - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->RA_rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->rnti; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; /// Check this is still N_id_cell for type2 common dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); // check if not getRIV(N_RB_DL,first_rb,6); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 0; // adjust according to size of Msg4, 208 bits with N1A_PRB=3 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 4; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of Msg4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 0 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = RA_template->harq_pid; @@ -640,7 +640,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 1; // N1A_PRB=3; => + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 3; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; @@ -657,143 +657,153 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; RA_template->msg4_mpdcch_repetition_cnt++; dl_req->number_pdu++; - + RA_template->msg4_TBsize = get_TBS_DL(dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs, + 6); } //repetition_count==0 && SF condition met - else if (RA_template->msg4_mpdcch_repetition_cnt > 0) { // we're in a stream of repetitions - RA_template->msg4_mpdcch_repetition_cnt++; + + if ((RA_template->msg4_mpdcch_repetition_cnt > 0)&& + (RA_template->msg4_mpdcch_done==0)) { // we're in a stream of repetitions if (RA_template->msg4_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition - if (cc[CC_idP].tdd_Config == NULL) { // FDD case + RA_template->msg4_mpdcch_done = 1; + if (cc[CC_idP].tdd_Config == NULL) { // FDD case // wait 2 subframes for PDSCH transmission if (subframeP > 7) RA_template->Msg4_frame = (frameP + 1) & 1023; else RA_template->Msg4_frame = frameP; RA_template->Msg4_subframe = (subframeP + 2) % 10; + LOG_I(MAC,"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Set Msg4 PDSCH in %d.%d\n", + module_idP, CC_idP, frameP, subframeP, RA_template->Msg4_frame,RA_template->Msg4_subframe); } else { AssertFatal (1 == 0, "TDD case not done yet\n"); } - } // mpdcch_repetition_count == reps - if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { - - // Program PDSCH - - LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 BR with RRC Piggyback (ce_level %d RNTI %x)\n", - module_idP, CC_idP, frameP, subframeP, RA_template->rach_resource_type - 1, RA_template->rnti); - - AssertFatal (1 == 0, "Msg4 generation not finished for BL/CE UE\n"); - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); - dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; - dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->rnti; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV (N_RB_DL, first_rb, 6); // check that this isn't getRIV(6,0,6) - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; - // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; - - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; - - RA_template->generate_Msg4 = 0; - RA_template->wait_ack_Msg4 = 1; - - lcid = 0; - - UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; - msg4_header = 1 + 6 + 1; // CR header, CR CE, SDU header - - if ((RA_template->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { - msg4_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header; - msg4_post_padding = 0; - } else { - msg4_padding = 0; - msg4_post_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header - 1; - } - - LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", - module_idP, CC_idP, frameP, subframeP, RA_template->msg4_TBsize, rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); - DevAssert (UE_id != UE_INDEX_INVALID); // FIXME not sure how to gracefully return - // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] - offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus - (unsigned short *) &rrc_sdu_length, // - &lcid, // sdu_lcid - 255, // no drx - 31, // no timing advance - RA_template->cont_res_id, // contention res id - msg4_padding, // no padding - msg4_post_padding); - - memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], rrc_sdu_length); - - // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; - TX_req->pdu_length = rrc_sdu_length; - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; - TX_req->num_segments = 1; - TX_req->segments[0].segment_length = rrc_sdu_length; - TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; - - // Program ACK/NAK for Msg4 PDSCH - int absSF = (RA_template->Msg3_frame * 10) + RA_template->Msg3_subframe; - // see Section 10.2 from 36.213 - int ackNAK_absSF = absSF + reps + 4; - AssertFatal (reps > 2, "Have to handle programming of ACK when PDSCH repetitions is > 2\n"); - ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; - ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; - - ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; - ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_uci_harq_pdu)); - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.handle = 0; // don't know how to use this - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti = RA_template->rnti; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.empty_symbols = 0; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions = pucchreps[RA_template->rach_resource_type - 1]; - ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.repetition_number = 0; - // Note need to keep sending this across reptitions!!!! Not really for PUCCH, to ask small-cell forum, we'll see for the other messages, maybe parameters change across repetitions and FAPI has to provide for that - if (cc[CC_idP].tdd_Config == NULL) { // FDD case - ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel8_fdd.n_pucch_1_0 = n1pucchan[RA_template->rach_resource_type - 1]; - // NOTE: How to fill in the rest of the n_pucch_1_0 information 213 Section 10.1.2.1 in the general case - // = N_ECCE_q + Delta_ARO + n1pucchan[ce_level] - // higher in the MPDCCH configuration, N_ECCE_q is hard-coded to 0, and harq resource offset to 0 => - // Delta_ARO = 0 from Table 10.1.2.1-1 - ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel8_fdd.harq_size = 1; // 1-bit ACK/NAK - } else { - AssertFatal (1 == 0, "PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n"); - } - ul_req->number_of_pdus++; - T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_idP), T_INT (RA_template->rnti), T_INT (frameP), T_INT (subframeP), - T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); - - if (opt_enabled == 1) { - trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); - LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), rrc_sdu_length); - } - } // Msg4 frame/subframe - } // msg4_mpdcch_repetition_count + } + else if (RA_template->msg4_mpdcch_done==0) + RA_template->msg4_mpdcch_repetition_cnt++; + } +// mpdcch_repetition_count == reps + else if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { + + // Program PDSCH + + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 BR with RRC Piggyback (ce_level %d RNTI %x)\n", + module_idP, CC_idP, frameP, subframeP, RA_template->rach_resource_type - 1, RA_template->rnti); + + + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = RA_template->rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV (N_RB_DL, first_rb, 6); // check that this isn't getRIV(6,0,6) + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + RA_template->generate_Msg4 = 0; + RA_template->wait_ack_Msg4 = 1; + + lcid = 0; + + UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; + msg4_header = 1 + 6 + 1; // CR header, CR CE, SDU header + AssertFatal((RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header)>=0, + "msg4_TBS %d is too small, change mcs to increase by %d bytes\n",RA_template->msg4_TBsize,RA_template->msg4_rrc_sdu_length+msg4_header-RA_template->msg4_TBsize); + if ((RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header) <= 2) { + msg4_padding = RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header; + msg4_post_padding = 0; + } else { + msg4_padding = 0; + msg4_post_padding = RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header - 1; + } + + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", + module_idP, CC_idP, frameP, subframeP, RA_template->msg4_TBsize, RA_template->msg4_rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); + DevAssert (UE_id != UE_INDEX_INVALID); // FIXME not sure how to gracefully return + // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] + offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus + (unsigned short *) &RA_template->msg4_rrc_sdu_length, // + &lcid, // sdu_lcid + 255, // no drx + 31, // no timing advance + RA_template->cont_res_id, // contention res id + msg4_padding, // no padding + msg4_post_padding); + + memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], RA_template->msg4_rrc_sdu_length); + + // DL request + eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; + TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + TX_req->pdu_length = RA_template->msg4_TBsize; + TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = RA_template->msg4_TBsize; + TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]; + eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + + // Program ACK/NAK for Msg4 PDSCH + int absSF = (RA_template->Msg3_frame * 10) + RA_template->Msg3_subframe; + // see Section 10.2 from 36.213 + int ackNAK_absSF = absSF + reps + 4; + AssertFatal (reps == 1, "Have to handle programming of ACK when PDSCH repetitions is > 1\n"); + ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; + ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_uci_harq_pdu)); + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.handle = 0; // don't know how to use this + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti = RA_template->rnti; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.ue_type = (RA_template->rach_resource_type < 3) ? 1 : 2; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.empty_symbols = 0; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions = pucchreps[RA_template->rach_resource_type - 1]; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.repetition_number = 0; + // Note need to keep sending this across reptitions!!!! Not really for PUCCH, to ask small-cell forum, we'll see for the other messages, maybe parameters change across repetitions and FAPI has to provide for that + if (cc[CC_idP].tdd_Config == NULL) { // FDD case + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel9_fdd.n_pucch_1_0 = n1pucchan[RA_template->rach_resource_type - 1]; + // NOTE: How to fill in the rest of the n_pucch_1_0 information 213 Section 10.1.2.1 in the general case + // = N_ECCE_q + Delta_ARO + n1pucchan[ce_level] + // higher in the MPDCCH configuration, N_ECCE_q is hard-coded to 0, and harq resource offset to 0 => + // Delta_ARO = 0 from Table 10.1.2.1-1 + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel9_fdd.harq_size = 1; // 1-bit ACK/NAK + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel9_fdd.number_of_pucch_resources = 1; + } else { + AssertFatal (1 == 0, "PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n"); + } + ul_req->number_of_pdus++; + T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_idP), T_INT (RA_template->rnti), T_INT (frameP), T_INT (subframeP), + T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); + + if (opt_enabled == 1) { + trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], RA_template->msg4_rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); + LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), RA_template->msg4_rrc_sdu_length); + } + } // Msg4 frame/subframe } // rach_resource_type > 0 else #endif @@ -813,22 +823,22 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s // Compute MCS/TBS for 3 PRB (coded on 4 vrb) msg4_header = 1 + 6 + 1; // CR header, CR CE, SDU header - if ((rrc_sdu_length + msg4_header) <= 22) { + if ((RA_template->msg4_rrc_sdu_length + msg4_header) <= 22) { RA_template->msg4_mcs = 4; RA_template->msg4_TBsize = 22; - } else if ((rrc_sdu_length + msg4_header) <= 28) { + } else if ((RA_template->msg4_rrc_sdu_length + msg4_header) <= 28) { RA_template->msg4_mcs = 5; RA_template->msg4_TBsize = 28; - } else if ((rrc_sdu_length + msg4_header) <= 32) { + } else if ((RA_template->msg4_rrc_sdu_length + msg4_header) <= 32) { RA_template->msg4_mcs = 6; RA_template->msg4_TBsize = 32; - } else if ((rrc_sdu_length + msg4_header) <= 41) { + } else if ((RA_template->msg4_rrc_sdu_length + msg4_header) <= 41) { RA_template->msg4_mcs = 7; RA_template->msg4_TBsize = 41; - } else if ((rrc_sdu_length + msg4_header) <= 49) { + } else if ((RA_template->msg4_rrc_sdu_length + msg4_header) <= 49) { RA_template->msg4_mcs = 8; RA_template->msg4_TBsize = 49; - } else if ((rrc_sdu_length + msg4_header) <= 57) { + } else if ((RA_template->msg4_rrc_sdu_length + msg4_header) <= 57) { RA_template->msg4_mcs = 9; RA_template->msg4_TBsize = 57; } @@ -874,20 +884,20 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; UE_list->UE_sched_ctrl[UE_id].round[CC_idP][RA_template->harq_pid] = 0; - if ((RA_template->msg4_TBsize - rrc_sdu_length - msg4_header) <= 2) { - msg4_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header; + if ((RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header) <= 2) { + msg4_padding = RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header; msg4_post_padding = 0; } else { msg4_padding = 0; - msg4_post_padding = RA_template->msg4_TBsize - rrc_sdu_length - msg4_header - 1; + msg4_post_padding = RA_template->msg4_TBsize - RA_template->msg4_rrc_sdu_length - msg4_header - 1; } LOG_D (MAC, "[eNB %d][RAPROC] CC_idP %d Frame %d subframeP %d Msg4 : TBS %d, sdu_len %d, msg4_header %d, msg4_padding %d, msg4_post_padding %d\n", - module_idP, CC_idP, frameP, subframeP, RA_template->msg4_TBsize, rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); + module_idP, CC_idP, frameP, subframeP, RA_template->msg4_TBsize, RA_template->msg4_rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); DevAssert (UE_id != UE_INDEX_INVALID); // FIXME not sure how to gracefully return // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus - (unsigned short *) &rrc_sdu_length, // + (unsigned short *) &RA_template->msg4_rrc_sdu_length, // &lcid, // sdu_lcid 255, // no drx 31, // no timing advance @@ -895,7 +905,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s msg4_padding, // no padding msg4_post_padding); - memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], rrc_sdu_length); + memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], RA_template->msg4_rrc_sdu_length); // DLSCH Config fill_nfapi_dlsch_config (eNB, dl_req, RA_template->msg4_TBsize, eNB->pdu_index[CC_idP], RA_template->rnti, 2, // resource_allocation_type : format 1A/1B/1D @@ -921,7 +931,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s // DL request eNB->TX_req[CC_idP].sfn_sf = fill_nfapi_tx_req (&eNB->TX_req[CC_idP].tx_request_body, - (frameP * 10) + subframeP, rrc_sdu_length, eNB->pdu_index[CC_idP], eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]); + (frameP * 10) + subframeP, RA_template->msg4_rrc_sdu_length, eNB->pdu_index[CC_idP], eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]); eNB->pdu_index[CC_idP]++; LOG_D (MAC, "Filling UCI ACK/NAK information, cce_idx %d\n", dl_config_pdu->dci_dl_pdu.dci_dl_pdu_rel8.cce_idx); @@ -934,8 +944,8 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], RA_template->msg4_TBsize)); if (opt_enabled == 1) { - trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); - LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), rrc_sdu_length); + trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], RA_template->msg4_rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); + LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), RA_template->msg4_rrc_sdu_length); } } // CCE Allocation feasible @@ -1011,7 +1021,9 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s #ifdef Rel14 if (RA_template->rach_resource_type > 0) { - AssertFatal (1 == 0, "Msg4 Retransmissions not handled yet for BL/CE UEs\n"); + if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { + AssertFatal (1 == 0, "Msg4 Retransmissions not handled yet for BL/CE UEs\n"); + } } else #endif { diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index 9294832a01..1c83bf5e9d 100755 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -139,8 +139,8 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, uint8_t *rar = (uint8_t *)(dlsch_buffer+1); int i; - uint8_t rballoc,reps; - uint8_t mcs,TPC,ULdelay,cqireq,mpdcch_nb_index; + uint32_t rballoc,reps; + uint32_t mcs,TPC,ULdelay,cqireq,mpdcch_nb_index; int input_buffer_length; @@ -178,7 +178,7 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, mpdcch_nb_index = 0; rballoc = mac_computeRIV(6,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); - unsigned int buffer = 0; + uint32_t buffer = 0; buffer |= RA_template->msg34_narrowband << (16 + (4 - N_NB_index)); buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index))); buffer |= ((reps & 0x03) << (10 + (4 - N_NB_index))); diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 7b551c194f..559f58ab4b 100755 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -3778,6 +3778,7 @@ rrc_eNB_generate_RRCConnectionSetup( SRB_configList = &ue_context_pP->ue_context.SRB_configList; #ifdef Rel14 if (is_mtc) { + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size = do_RRCConnectionSetup_BR(ctxt_pP, ue_context_pP, CC_id, From 18d996ebd60ad007d69ad3d23c6a224887d403b1 Mon Sep 17 00:00:00 2001 From: sharma Date: Sun, 3 Dec 2017 00:08:04 +0100 Subject: [PATCH 086/125] addition of UL scheduler for eMTC --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 149 ++++++++ openair1/PHY/LTE_TRANSPORT/edci.c | 7 +- openair1/PHY/LTE_TRANSPORT/mdci.h | 16 +- openair1/PHY/LTE_TRANSPORT/proto.h | 6 +- openair1/PHY/LTE_TRANSPORT/pucch.c | 46 ++- openair1/SCHED/fapi_l1.c | 41 +- openair1/SCHED/phy_procedures_lte_eNb.c | 40 +- openair2/LAYER2/MAC/defs.h | 2 + openair2/LAYER2/MAC/eNB_scheduler.c | 4 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 43 ++- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 3 +- .../LAYER2/MAC/eNB_scheduler_primitives.c | 2 +- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 358 +++++++++++++++++- openair2/LAYER2/MAC/pre_processor.c | 2 + openair2/RRC/LITE/MESSAGES/asn1_msg.c | 5 +- openair2/RRC/LITE/rrc_common.c | 8 +- openair2/RRC/LITE/rrc_eNB.c | 1 + 17 files changed, 647 insertions(+), 86 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 5a27a4dd06..6059ac8aa7 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -2583,6 +2583,155 @@ fill_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, DCI_ALLOC_t * dci_alloc, } } +#ifdef Rel14 +void +fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci_alloc, nfapi_hi_dci0_mpdcch_dci_pdu * pdu) +{ + LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; + nfapi_hi_dci0_mpdcch_dci_pdu_rel13_t *rel13 = &pdu->mpdcch_dci_pdu_rel13; + + uint32_t cqi_req = rel13->csi_request; + uint32_t dai = rel13->dl_assignment_index; + uint32_t TPC = rel13->tpc; + uint32_t mcs = rel13->mcs; + uint32_t hopping = rel13->frequency_hopping_flag; + uint32_t rballoc = computeRIV (6, + rel13->resource_block_start, + rel13->number_of_resource_blocks); + + uint32_t ndi = rel13->new_data_indication; + +#ifdef T_TRACER + T (T_ENB_PHY_ULSCH_UE_DCI, T_INT (eNB->Mod_id), T_INT (proc->frame_tx), T_INT (proc->subframe_tx), + T_INT (rel13->rnti), T_INT (((proc->frame_tx * 10 + proc->subframe_tx + 4) % 8) /* TODO: correct harq pid */ ), + T_INT (mcs), T_INT (-1 /* TODO: remove round? */ ), + T_INT (rel13->resource_block_start), + T_INT (rel13->number_of_resource_blocks), + T_INT (get_TBS_UL (mcs, rel13->number_of_resource_blocks) * 8), T_INT (rel13->aggregation_level), T_INT (rel13->cce_index)); +#endif + + void *dci_pdu = (void *) dci_alloc->dci_pdu; + + AssertFatal(rel13->ce_mode == 1 && rel13->dci_format == 4, "dci format 5 (CE_modeB) not supported yet\n"); + + LOG_D (PHY, "Filling DCI6-0A with cqi %d, mcs %d, hopping %d, rballoc %x (%d,%d) ndi %d TPC %d\n", cqi_req, + mcs, hopping, rballoc, rel13->resource_block_start, rel13->number_of_resource_blocks, ndi, TPC); + + dci_alloc->format = format6_0A; + dci_alloc->firstCCE = rel13->ecce_index; + dci_alloc->L = rel13->aggreagation_level; + dci_alloc->rnti = rel13->rnti; + dci_alloc->harq_pid = rel13->harq_process; + dci_alloc->narrowband = rel13->mpdcch_narrowband; + dci_alloc->number_of_prb_pairs = rel13->number_of_prb_pairs; + dci_alloc->resource_block_assignment = rel13->resource_block_assignment; + dci_alloc->transmission_type = rel13->mpdcch_transmission_type; + dci_alloc->start_symbol = rel13->start_symbol; + dci_alloc->ce_mode = rel13->ce_mode; + dci_alloc->dmrs_scrambling_init = rel13->drms_scrambling_init; + dci_alloc->i0 = rel13->initial_transmission_sf_io; + + + switch (frame_parms->N_RB_DL) { + case 6: + if (frame_parms->frame_type == TDD) { + AssertFatal(1==0,"TDD not supported for eMTC yet\n"); + } else { + AssertFatal(1==0,"6 PRBS not supported for eMTC\n"); + } + + break; + + case 25: + if (frame_parms->frame_type == TDD) { + AssertFatal(1==0,"TDD not supported for eMTC yet\n"); + } else { + dci_alloc->dci_length = sizeof_DCI6_0A_5MHz_t; + ((DCI6_0A_10MHz_t *) dci_pdu)->type = 0; + ((DCI6_0A_10MHz_t *) dci_pdu)->hopping = hopping; + ((DCI6_0A_10MHz_t *) dci_pdu)->rballoc = rballoc; + ((DCI6_0A_10MHz_t *) dci_pdu)->mcs = mcs; + ((DCI6_0A_10MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; + ((DCI6_0A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_0A_10MHz_t *) dci_pdu)->ndi = ndi; + ((DCI6_0A_10MHz_t *) dci_pdu)->rv_idx = rel13->redudency_version; + ((DCI6_0A_10MHz_t *) dci_pdu)->TPC = TPC; + ((DCI6_0A_10MHz_t *) dci_pdu)->csi_req = cqi_req; + ((DCI6_0A_10MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_0A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; + + } + + break; + + case 50: + if (frame_parms->frame_type == TDD) { + AssertFatal(1==0,"TDD not supported for eMTC yet\n"); + } else { + dci_alloc->dci_length = sizeof_DCI6_0A_10MHz_t; + ((DCI6_0A_10MHz_t *) dci_pdu)->type = 0; + ((DCI6_0A_10MHz_t *) dci_pdu)->hopping = hopping; + ((DCI6_0A_10MHz_t *) dci_pdu)->rballoc = rballoc; + ((DCI6_0A_10MHz_t *) dci_pdu)->mcs = mcs; + ((DCI6_0A_10MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; + ((DCI6_0A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_0A_10MHz_t *) dci_pdu)->ndi = ndi; + ((DCI6_0A_10MHz_t *) dci_pdu)->rv_idx = rel13->redudency_version; + ((DCI6_0A_10MHz_t *) dci_pdu)->TPC = TPC; + ((DCI6_0A_10MHz_t *) dci_pdu)->csi_req = cqi_req; + ((DCI6_0A_10MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_0A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; + LOG_I(PHY,"Frame %d, Subframe %d : Programming Format 6-0A DCI, type %d, hopping %d, narrowband %d, rballoc %x, mcs %d, rep %d, harq_pid %d, ndi %d, rv %d, TPC %d, csi_req %d, srs_req %d, dci_rep r%d => %x\n", + proc->frame_tx,proc->subframe_tx, + ((DCI6_0A_10MHz_t *) dci_pdu)->type, + ((DCI6_0A_10MHz_t *) dci_pdu)->hopping, + ((DCI6_0A_10MHz_t *) dci_pdu)->narrowband, + ((DCI6_0A_10MHz_t *) dci_pdu)->rballoc, + ((DCI6_0A_10MHz_t *) dci_pdu)->mcs, + ((DCI6_0A_10MHz_t *) dci_pdu)->rep, + ((DCI6_0A_10MHz_t *) dci_pdu)->harq_pid, + ((DCI6_0A_10MHz_t *) dci_pdu)->ndi, + ((DCI6_0A_10MHz_t *) dci_pdu)->rv_idx, + ((DCI6_0A_10MHz_t *) dci_pdu)->TPC, + ((DCI6_0A_10MHz_t *) dci_pdu)->csi_req, + ((DCI6_0A_10MHz_t *) dci_pdu)->srs_req, + ((DCI6_0A_10MHz_t *) dci_pdu)->dci_rep, + ((uint32_t*)dci_pdu)[0]); + + } + + break; + + case 100: + if (frame_parms->frame_type == TDD) { + AssertFatal(1==0,"TDD not supported for eMTC yet\n"); + } else { + dci_alloc->dci_length = sizeof_DCI6_0A_20MHz_t; + ((DCI6_0A_20MHz_t *) dci_pdu)->type = 0; + ((DCI6_0A_20MHz_t *) dci_pdu)->hopping = hopping; + ((DCI6_0A_20MHz_t *) dci_pdu)->rballoc = rballoc; + ((DCI6_0A_20MHz_t *) dci_pdu)->mcs = rel13->mcs; + ((DCI6_0A_20MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; + ((DCI6_0A_20MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_0A_20MHz_t *) dci_pdu)->ndi = ndi; + ((DCI6_0A_20MHz_t *) dci_pdu)->rv_idx = rel13->redudency_version; + ((DCI6_0A_20MHz_t *) dci_pdu)->TPC = TPC; + ((DCI6_0A_20MHz_t *) dci_pdu)->csi_req = cqi_req; + ((DCI6_0A_20MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_0A_20MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; + } + + //printf("eNB: rb_alloc (20 MHz dci) %d\n",rballoc); + break; + + default: + LOG_E (PHY, "Invalid N_RB_DL %d\n", frame_parms->N_RB_DL); + DevParam (frame_parms->N_RB_DL, 0, 0); + break; + } +} +#endif + void fill_ulsch (PHY_VARS_eNB * eNB, nfapi_ul_config_ulsch_pdu * ulsch_pdu, int frame, int subframe) { diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 932408ad0a..fbc3adc7aa 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -339,7 +339,7 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, AssertFatal(absSF < 10240, "Absolute subframe %d = %d*10 + %d > 10239\n", absSF, frame, subframe); mpdcch_scrambling(fp, mdci, absSF, mpdcch->e, coded_bits); - + // Modulation for PDCCH if (fp->nb_antenna_ports_eNB == 1) gain_lin_QPSK = (int16_t) ((amp * ONE_OVER_SQRT2_Q15) >> 15); @@ -388,15 +388,14 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, ((int16_t *) & yIQ)[1] = (*e_ptr == 1) ? -gain_lin_QPSK : gain_lin_QPSK; e_ptr++; txF[mpdcchtab[i]] = yIQ; - /* - LOG_D(PHY,"Frame %d, subframe %d: mpdcch pos %d (%d,%d) => (%d,%d)\n", + /* + LOG_I(PHY,"Frame %d, subframe %d: mpdcch pos %d (%d,%d) => (%d,%d)\n", frame,subframe,i,mpdcchtab[i]+re_offset,mpdcchtab[i]/fp->ofdm_symbol_size, ((int16_t *) & yIQ)[0],((int16_t *) & yIQ)[1]);*/ } if (mdci->transmission_type == 1) w=0; // distributed else w = wp[a_index&1]; - // pilot scrambling initiatlization (note: this is for a single repetition) // x1 is set in lte_gold_generic diff --git a/openair1/PHY/LTE_TRANSPORT/mdci.h b/openair1/PHY/LTE_TRANSPORT/mdci.h index b2b0d3edce..5068aa072c 100755 --- a/openair1/PHY/LTE_TRANSPORT/mdci.h +++ b/openair1/PHY/LTE_TRANSPORT/mdci.h @@ -89,7 +89,9 @@ struct DCI6_1A_5MHz { /// Modulation and Coding Scheme and Redundancy Version uint32_t mcs:4; /// Resource block assignment (assignment flag = 0 for 5 MHz, ceil(log2(floor(N_RB_DL/6)))+5) - uint32_t rballoc:7; + uint32_t rballoc:5; + /// narroband index log2(floor(N_RB_DL/6))) bits + uint32_t narrowband:2; /// Frequency hopping flag uint32_t hopping:1; /// 0/1A differentiator @@ -122,7 +124,9 @@ struct DCI6_0A_10MHz { /// Modulation and Coding Scheme and Redundancy Version uint32_t mcs:4; /// RB Assignment (ceil(log2(floor(N_RB_UL/6))) + 5 bits) - uint32_t rballoc:8; + uint32_t rballoc:5; + /// narroband index log2(floor(N_RB_DL/6))) bits + uint32_t narrowband:3; /// Hopping flag uint32_t hopping:1; /// type = 0 => DCI Format 0, type = 1 => DCI Format 1A @@ -190,7 +194,9 @@ struct DCI6_0A_20MHz { /// Modulation and Coding Scheme and Redundancy Version uint32_t mcs:4; /// RB Assignment (ceil(log2(floor(N_RB_UL/6))) + 5 bits) - uint32_t rballoc:9; + uint32_t rballoc:5; + /// narroband index log2(floor(N_RB_DL/6))) bits + uint32_t narrowband:4; /// Hopping flag uint32_t hopping:1; /// type = 0 => DCI Format 0, type = 1 => DCI Format 1A @@ -223,7 +229,9 @@ struct DCI6_1A_20MHz { /// Modulation and Coding Scheme and Redundancy Version uint32_t mcs:4; /// Resource block assignment (assignment flag = 0 for 20 MHz, ceil(log2(floor(N_RB_DL/6)))+5) - uint32_t rballoc:9; + uint32_t rballoc:5; + /// narroband index log2(floor(N_RB_DL/6))) bits + uint32_t narrowband:4; /// Frequency hopping flag uint32_t hopping:1; /// 0/1A differentiator diff --git a/openair1/PHY/LTE_TRANSPORT/proto.h b/openair1/PHY/LTE_TRANSPORT/proto.h index 8fa2f0ca22..c39879a771 100755 --- a/openair1/PHY/LTE_TRANSPORT/proto.h +++ b/openair1/PHY/LTE_TRANSPORT/proto.h @@ -2103,7 +2103,11 @@ uint32_t rx_pucch(PHY_VARS_eNB *phy_vars_eNB, uint8_t *payload, int frame, uint8_t subframe, - uint8_t pucch1_thres); + uint8_t pucch1_thres +#ifdef Rel14 + ,uint8_t br_flag + ); +#endif int32_t rx_pucch_emul(PHY_VARS_eNB *phy_vars_eNB, eNB_rxtx_proc_t *proc, diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c index bda998d0fb..d03ac16105 100755 --- a/openair1/PHY/LTE_TRANSPORT/pucch.c +++ b/openair1/PHY/LTE_TRANSPORT/pucch.c @@ -1793,7 +1793,11 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, uint8_t *payload, int frame, uint8_t subframe, - uint8_t pucch1_thres) + uint8_t pucch1_thres +#ifdef Rel14 + ,uint8_t br_flag +#endif + ) { @@ -2057,14 +2061,25 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, //for (j=0,l=0;l<(nsymb-1);l++) { for (j=0,l=0; l>1)) && ((m&1) == 0)) - re_offset = (m*6) + frame_parms->first_carrier_offset; - else if ((l<(nsymb>>1)) && ((m&1) == 1)) - re_offset = frame_parms->first_carrier_offset + (frame_parms->N_RB_DL - (m>>1) - 1)*12; - else if ((m&1) == 0) - re_offset = frame_parms->first_carrier_offset + (frame_parms->N_RB_DL - (m>>1) - 1)*12; +#ifdef Rel14 + if (br_flag > 0 ) { + if ((m&1) == 0) + re_offset = (m*6) + frame_parms->first_carrier_offset; + else + re_offset = frame_parms->first_carrier_offset + (frame_parms->N_RB_DL - (m>>1) - 1)*12; + } else - re_offset = ((m-1)*6) + frame_parms->first_carrier_offset; +#endif + { + if ((l<(nsymb>>1)) && ((m&1) == 0)) + re_offset = (m*6) + frame_parms->first_carrier_offset; + else if ((l<(nsymb>>1)) && ((m&1) == 1)) + re_offset = frame_parms->first_carrier_offset + (frame_parms->N_RB_DL - (m>>1) - 1)*12; + else if ((m&1) == 0) + re_offset = frame_parms->first_carrier_offset + (frame_parms->N_RB_DL - (m>>1) - 1)*12; + else + re_offset = ((m-1)*6) + frame_parms->first_carrier_offset; + } if (re_offset > frame_parms->ofdm_symbol_size) re_offset -= (frame_parms->ofdm_symbol_size); @@ -2159,9 +2174,9 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, printf("[eNB] PUCCH: stat %d, stat_max %d, phase_max %d\n", stat,stat_max,phase_max); #endif -#ifdef DEBUG_PUCCH_RX - LOG_D(PHY,"[eNB] PUCCH fmt1: stat_max : %d, sigma2_dB %d (%d, %d), phase_max : %d\n",dB_fixed(stat_max),sigma2_dB,eNB->measurements.n0_subband_power_tot_dBm[6],pucch1_thres,phase_max); -#endif + //#ifdef DEBUG_PUCCH_RX + LOG_I(PHY,"[eNB] PUCCH fmt1: stat_max : %d, sigma2_dB %d (%d, %d), phase_max : %d\n",dB_fixed(stat_max),sigma2_dB,eNB->measurements.n0_subband_power_tot_dBm[6],pucch1_thres,phase_max); + //#endif eNB->pucch1_stats[UE_id][(subframe<<10)+eNB->pucch1_stats_cnt[UE_id][subframe]] = stat_max; @@ -2368,7 +2383,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, #endif } - + #ifdef DEBUG_PUCCH_RX printf("[eNB] PUCCH subframe %d chest1[%d][%d] => (%d,%d)\n",subframe,aa,re, @@ -2416,9 +2431,10 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, } // aa - LOG_D(PHY,"PUCCH 1a/b: subframe %d : stat %d,%d (pos %d)\n",subframe,stat_re,stat_im, + LOG_I(PHY,"PUCCH 1a/b: SFN.SF %d.%d : stat %d,%d (pos %d)\n", + frame,subframe,stat_re,stat_im, (subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])); - LOG_D(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); + LOG_D(PHY,"PUCCH 1a/b: SFN.SF %d.%d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",frame,subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_re); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 1+2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_im); @@ -2432,7 +2448,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, if (fmt==pucch_format1b) *(1+payload) = (stat_im<0) ? 1 : 2; } else { // insufficient energy on PUCCH so NAK - LOG_I(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); + LOG_D(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); *payload = 4; // DTX ((int16_t*)&eNB->pucch1ab_stats[UE_id][(subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])])[0] = (int16_t)(stat_re); ((int16_t*)&eNB->pucch1ab_stats[UE_id][(subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])])[1] = (int16_t)(stat_im); diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index b8dc008aa2..fddea1a539 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -74,6 +74,15 @@ void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, fill_dci0(eNB,proc,&pdcch_vars->dci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu); } +void handle_nfapi_hi_dci0_mpdcch_dci_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, + nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu) +{ + int idx = proc->subframe_tx&1; + LTE_eNB_PDCCH *pdcch_vars = &eNB->mpdcch_vars[idx]; + // copy dci configuration in to eNB structure + fill_mpdcch_dci0(eNB,proc,&pdcch_vars->dci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu); +} + void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu) { @@ -244,13 +253,13 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, AssertFatal(sdu!=NULL,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d\n", proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid, dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index); - if (rel8->rnti != 0xFFFF) LOG_I(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d\n", + if (rel8->rnti != 0xFFFF) LOG_D(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d\n", proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid); if (codeword_index == 0) dlsch0_harq->pdu = sdu; else dlsch1_harq->pdu = sdu; } else { - if (rel8->rnti != 0xFFFF) LOG_I(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round %d, rnti %x, UE_id %d, harq_pid %d\n", + if (rel8->rnti != 0xFFFF) LOG_D(PHY,"NFAPI: frame %d, subframe %d: programming dlsch for round %d, rnti %x, UE_id %d, harq_pid %d\n", proc->frame_tx,proc->subframe_tx,dlsch0_harq->round, rel8->rnti,UE_id,harq_pid); } @@ -436,7 +445,11 @@ void handle_uci_sr_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request_pdu_t uci->n_pucch_1_0_sr[0] = ul_config_pdu->uci_sr_pdu.sr_information.sr_information_rel8.pucch_index; uci->srs_active = srs_active; uci->active = 1; - +#ifdef Rel14 + uci->ue_type = ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel13.ue_type; + uci->empty_symbols = ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel13.empty_symbols; + uci->total_repetitions = ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel13.total_number_of_repetitions; +#endif LOG_D(PHY,"Programming UCI SR rnti %x, pucch1_0 %d for (%d,%d)\n", uci->rnti,uci->n_pucch_1_0_sr[0],frame,subframe); } @@ -454,7 +467,11 @@ void handle_uci_sr_harq_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request_ uci->n_pucch_1_0_sr[0] = ul_config_pdu->uci_sr_harq_pdu.sr_information.sr_information_rel8.pucch_index; uci->srs_active = srs_active; uci->active = 1; - +#ifdef Rel14 + uci->ue_type = ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel13.ue_type; + uci->empty_symbols = ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel13.empty_symbols; + uci->total_repetitions = ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions; +#endif handle_uci_harq_information(eNB,uci,&ul_config_pdu->uci_sr_harq_pdu.harq_information); } @@ -469,7 +486,11 @@ void handle_uci_harq_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request_pdu uci->type = HARQ; uci->srs_active = srs_active; uci->num_antenna_ports = ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel11.num_ant_ports; - +#ifdef Rel14 + uci->ue_type = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.ue_type; + uci->empty_symbols = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.empty_symbols; + uci->total_repetitions = ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions; +#endif handle_uci_harq_information(eNB,uci,&ul_config_pdu->uci_harq_pdu.harq_information); uci->active=1; @@ -511,7 +532,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) { AssertFatal((UE_id = find_ulsch(ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0, "No existing UE ULSCH for rnti %x\n",rel8->rnti); - LOG_D(PHY,"Applying UL config for UE %d, rnti %x for frame %d, subframe %d\n", + LOG_I(PHY,"Applying UL config for UE %d, rnti %x for frame %d, subframe %d\n", UE_id,rel8->rnti,frame,subframe); fill_ulsch(eNB,&ul_config_pdu->ulsch_pdu,frame,subframe); @@ -547,6 +568,9 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, AssertFatal((UE_id = find_uci(ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti, proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST_OR_FREE))>=0, "No available UE UCI for rnti %x\n",ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti); + LOG_I(PHY,"Applying UL UCI_HARQ config for UE %d, rnti %x for frame %d, subframe %d\n", + UE_id,ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti,frame,subframe); + handle_uci_harq_pdu(eNB,UE_id,ul_config_pdu,frame,subframe,srs_present); } else if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_UCI_CQI_PDU_TYPE) { @@ -720,6 +744,11 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) eNB->pdcch_vars[subframe&1].num_dci++; break; + case NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE: + handle_nfapi_hi_dci0_mpdcch_dci_pdu(eNB,proc,hi_dci0_req_pdu); + eNB->mpdcch_vars[subframe&1].num_dci++; + break; + case NFAPI_HI_DCI0_HI_PDU_TYPE: handle_nfapi_hi_dci0_hi_pdu(eNB,proc,hi_dci0_req_pdu); diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 9339ebc49a..99f23200c8 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -688,8 +688,12 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) metric_SR = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1_0_sr[0], 0, // n2_pucch uci->srs_active, // shortened format - &SR_payload, frame, subframe, PUCCH1_THRES); - LOG_D (PHY, "[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (SR n1pucch is %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, SR_payload, uci->n_pucch_1_0_sr[0]); + &SR_payload, frame, subframe, PUCCH1_THRES +#ifdef Rel14 + ,uci->ue_type +#endif + ); + LOG_I (PHY, "[eNB %d][SR %x] Frame %d subframe %d Checking SR is %d (SR n1pucch is %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, SR_payload, uci->n_pucch_1_0_sr[0]); if (uci->type == SR) { if (SR_payload == 1) { fill_sr_indication (eNB, uci->rnti, frame, subframe, metric_SR); @@ -705,8 +709,12 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) metric[0] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1[0][0], 0, //n2_pucch uci->srs_active, // shortened format - pucch_b0b1[0], frame, subframe, PUCCH1a_THRES); - + pucch_b0b1[0], frame, subframe, PUCCH1a_THRES +#ifdef Rel14 + ,uci->ue_type +#endif + ); + /* cancel SR detection if reception on n1_pucch0 is better than on SR PUCCH resource index, otherwise send it up to MAC */ if (uci->type == HARQ_SR && metric[0] > metric_SR) @@ -717,10 +725,14 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) if (uci->type == HARQ_SR && metric[0] <= metric_SR) { /* when transmitting ACK/NACK on SR PUCCH resource index, SR payload is always 1 */ SR_payload = 1; - - metric[0] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1_0_sr[0], 0, //n2_pucch - uci->srs_active, // shortened format - pucch_b0b1[0], frame, subframe, PUCCH1a_THRES); + + metric[0] = rx_pucch(eNB, uci->pucch_fmt, i, uci->n_pucch_1_0_sr[0], 0, //n2_pucch + uci->srs_active, // shortened format + pucch_b0b1[0], frame, subframe, PUCCH1a_THRES +#ifdef Rel14 + ,uci->ue_type +#endif + ); } @@ -741,7 +753,11 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) metric[0] = rx_pucch (eNB, pucch_format1b, i, uci->n_pucch_1_0_sr[0], 0, //n2_pucch uci->srs_active, // shortened format - pucch_b0b1[0], frame, subframe, PUCCH1a_THRES); + pucch_b0b1[0], frame, subframe, PUCCH1a_THRES +#ifdef Rel14 + ,uci->ue_type +#endif + ); } else { //using assigned pucch resources #ifdef DEBUG_PHY_PROC LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d Checking ACK/NAK M=%d (%d,%d,%d,%d) format %d\n", eNB->Mod_id, @@ -751,7 +767,11 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) for (res = 0; res < uci->num_pucch_resources; res++) metric[res] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1[res][0], 0, // n2_pucch uci->srs_active, // shortened format - pucch_b0b1[res], frame, subframe, PUCCH1a_THRES); + pucch_b0b1[res], frame, subframe, PUCCH1a_THRES +#ifdef Rel14 + ,uci->ue_type +#endif + ); diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 267392d684..9eeb545325 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -916,6 +916,8 @@ typedef struct { int msg4_mcs; /// size off piggybacked RRC SDU uint8_t msg4_rrc_sdu_length; + uint32_t msg4_delay; + #ifdef Rel14 uint8_t rach_resource_type; uint8_t msg2_mpdcch_repetition_cnt; diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index 6bcbc13106..8286e2dfd8 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -246,7 +246,7 @@ void schedule_SR(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) AssertFatal(UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated != NULL, "physicalConfigDedicated is null for UE %d\n",UE_id); // drop the allocation if the UE hasn't send RRCConnectionSetupComplete yet - if (mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP,UE_id)) < RRC_CONNECTED) continue; + // if (mac_eNB_get_rrc_status(module_idP,UE_RNTI(module_idP,UE_id)) < RRC_CONNECTED) continue; if ((SRconfig = UE_list->UE_template[CC_id][UE_id].physicalConfigDedicated->schedulingRequestConfig)!=NULL) { if (SRconfig->present == SchedulingRequestConfig_PR_setup) { @@ -294,7 +294,7 @@ void schedule_SR(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) // drop the allocation because ULSCH with handle it with BSR if (skip_ue==1) continue; - LOG_D(MAC,"Frame %d, Subframe %d : Scheduling SR for UE %d/%x\n",frameP,subframeP,UE_id,UE_list->UE_template[CC_id][UE_id].rnti); + LOG_I(MAC,"Frame %d, Subframe %d : Scheduling SR for UE %d/%x\n",frameP,subframeP,UE_id,UE_list->UE_template[CC_id][UE_id].rnti); // check Rel10 or Rel8 SR #if defined(Rel10) || defined(Rel14) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 468fd27bc0..ab339758b6 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -165,7 +165,7 @@ add_msg3 (module_id_t module_idP, int CC_id, RA_TEMPLATE * RA_template, frame_t for (j = 0; j < RA_template->msg3_nb_rb; j++) cc->vrb_map_UL[RA_template->msg3_first_rb + j] = 1; - LOG_D (MAC, "[eNB %d][PUSCH-RA %x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) RA (mcs %d, first rb %d, nb_rb %d,round %d)\n", + LOG_I (MAC, "[eNB %d][PUSCH-RA %x] CC_id %d Frame %d subframeP %d Scheduled (PHICH) RA (mcs %d, first rb %d, nb_rb %d,round %d)\n", module_idP, RA_template->rnti, CC_id, frameP, subframeP, 10, 1, 1, RA_template->msg3_round - 1); } // if (RA_template->msg3_round != 0) { // program HI too } // non-BL/CE UE case @@ -560,6 +560,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_req = &eNB->DL_req[CC_idP].dl_config_request_body; dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + N_RB_DL = to_prb (cc[CC_idP].mib->message.dl_Bandwidth); UE_id = find_UE_id (module_idP, RA_template->rnti); @@ -573,7 +574,10 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; - + if (RA_template->msg4_delay < 8) { + RA_template->msg4_delay++; + return; + } #ifdef Rel14 if (RA_template->rach_resource_type > 0) { @@ -606,7 +610,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s AssertFatal (RA_template->msg4_rrc_sdu_length > 0, "[MAC][eNB Scheduler] CCCH not allocated\n"); - LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, RA_template->msg4_rrc_sdu_length); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d, dl_req->num_pdu %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, RA_template->msg4_rrc_sdu_length,dl_req->number_pdu); // MPDCCH configuration for Msg4 RA_template->msg4_mpdcch_done=0; @@ -614,33 +618,33 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (RA_template->rach_resource_type > 1) ? 11 : 10; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg34_narrowband; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = RA_template->msg2_narrowband; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; - AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space + AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 0; // t-C-RNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 0; // t-CRNTI dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = RA_template->rnti; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (RA_template->rach_resource_type < 3) ? 1 : 2; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; /// Check this is still N_id_cell for type2 common + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); // check if not getRIV(N_RB_DL,first_rb,6); - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of Msg4 - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 0 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = 0; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = RA_template->harq_pid; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = rep; - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 3; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 3; // N1A_PRB=3 (36.212) => 56 bits dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; @@ -655,6 +659,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + RA_template->msg4_mpdcch_repetition_cnt++; dl_req->number_pdu++; RA_template->msg4_TBsize = get_TBS_DL(dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs, @@ -662,7 +667,9 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s } //repetition_count==0 && SF condition met if ((RA_template->msg4_mpdcch_repetition_cnt > 0)&& - (RA_template->msg4_mpdcch_done==0)) { // we're in a stream of repetitions + (RA_template->msg4_mpdcch_done==0)) { // we're in a stream of repetitions + LOG_I(MAC,"SFN.SF %d.%d : msg4 mpdcch repetition number %d/%d\n", + frameP,subframeP,RA_template->msg4_mpdcch_repetition_cnt,reps); if (RA_template->msg4_mpdcch_repetition_cnt == reps) { // this is the last mpdcch repetition RA_template->msg4_mpdcch_done = 1; if (cc[CC_idP].tdd_Config == NULL) { // FDD case @@ -768,9 +775,9 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; // Program ACK/NAK for Msg4 PDSCH - int absSF = (RA_template->Msg3_frame * 10) + RA_template->Msg3_subframe; + int absSF = (frameP * 10) + subframeP; // see Section 10.2 from 36.213 - int ackNAK_absSF = absSF + reps + 4; + int ackNAK_absSF = absSF + reps + 3; AssertFatal (reps == 1, "Have to handle programming of ACK when PDSCH repetitions is > 1\n"); ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; @@ -1015,7 +1022,7 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; N_RB_DL = to_prb (cc[CC_idP].mib->message.dl_Bandwidth); - LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n", module_idP, CC_idP, frameP, subframeP, RA_template->harq_pid, round); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n", module_idP, CC_idP, frameP, subframeP, RA_template->harq_pid, round); if (round != 8) { @@ -1096,7 +1103,7 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s } // Msg4 frame/subframe } // regular LTE case } else { - LOG_D (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d : Msg4 acknowledged\n", module_idP, CC_idP, frameP, subframeP); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d : Msg4 acknowledged\n", module_idP, CC_idP, frameP, subframeP); RA_template->wait_ack_Msg4 = 0; RA_template->RA_active = FALSE; UE_id = find_UE_id (module_idP, RA_template->rnti); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 7f32165008..0c7b457c6f 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -400,7 +400,8 @@ schedule_SI_BR( vrb_map[first_rb+4] = 1; vrb_map[first_rb+5] = 1; - if ((frameP&1023) < 200) LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", + //if ((frameP&1023) < 200) + LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", module_idP,frameP,subframeP,CC_id,(int)si_Narrowband_r13-1,rvidx, sf_mod_period,(int)si_WindowLength_BR_r13,(int)si_RepetitionPattern_r13, bcch_sdu_length); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 1966d5254e..e44fb518d6 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -3602,7 +3602,7 @@ void SR_indication(module_id_t mod_idP, int cc_idP, frame_t frameP, sub_frame_t if (UE_id != -1) { if (mac_eNB_get_rrc_status(mod_idP,UE_RNTI(mod_idP,UE_id)) < RRC_CONNECTED) - LOG_D(MAC,"[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n",mod_idP,rntiP,frameP,subframeP, UE_id,cc_idP); + LOG_I(MAC,"[eNB %d][SR %x] Frame %d subframeP %d Signaling SR for UE %d on CC_id %d\n",mod_idP,rntiP,frameP,subframeP, UE_id,cc_idP); #if 0 UE_sched_ctrl *sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 957cdf82ac..e589057520 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -793,13 +793,24 @@ void schedule_ulsch(module_id_t module_idP, break; } } + +#ifdef Rel14 + int emtc_active[5]; + memset(emtc_active,0,5*sizeof(int)); + schedule_ulsch_rnti_emtc(module_idP, frameP, subframeP, sched_subframe, emtc_active); +#endif + for (CC_id=0; CC_idschedule_ulsch); } @@ -881,6 +892,8 @@ void schedule_ulsch_rnti(module_id_t module_idP, // loop over all active UEs for (UE_id=UE_list->head_ul; UE_id>=0; UE_id=UE_list->next_ul[UE_id]) { + if (UE_list->UE_template[UE_PCCID(module_idP,UE_id)][UE_id].rach_resource_type > 0) continue; + // don't schedule if Msg4 is not received yet if (UE_list->UE_template[UE_PCCID(module_idP,UE_id)][UE_id].configured==FALSE) { LOG_D(MAC,"[eNB %d] frame %d subfarme %d, UE %d: not configured, skipping UE scheduling \n", @@ -1132,15 +1145,7 @@ abort(); get_TBS_UL(UE_template->mcs_UL[harq_pid], rb_table[rb_table_index]) ); -#ifdef Rel14 - 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_tmp->number_of_pdus], - UE_template->rach_resource_type>2 ? 2 : 1, - 1, //total_number_of_repetitions - 1, //repetition_number - (frameP*10)+subframeP); - } -#endif + ul_req_tmp->number_of_pdus++; eNB->ul_handle++; @@ -1198,15 +1203,6 @@ abort(); 0, // n_srs UE_template->TBS_UL[harq_pid] ); -#ifdef Rel14 - 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_tmp->number_of_pdus], - UE_template->rach_resource_type>2 ? 2 : 1, - 1, //total_number_of_repetitions - 1, //repetition_number - (frameP*10)+subframeP); - } -#endif ul_req_tmp->number_of_pdus++; eNB->ul_handle++; @@ -1244,3 +1240,323 @@ abort(); } // loop over UE_id } // loop of CC_id } + +#ifdef Rel14 +void schedule_ulsch_rnti_emtc(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + unsigned char sched_subframeP, + uint16_t *emtc_active) +{ + int UE_id; + rnti_t rnti = -1; + uint8_t round = 0; + uint8_t harq_pid = 0; + uint8_t status = 0; + uint32_t cqi_req,cshift,ndi,tpc; + int32_t normalized_rx_power; + int32_t target_rx_power=-90; + static int32_t tpc_accumulated=0; + int n; + int CC_id = 0; + int N_RB_UL; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + UE_list_t *UE_list=&eNB->UE_list; + UE_TEMPLATE *UE_template; + UE_sched_ctrl *UE_sched_ctrl; + int sched_frame=frameP; + int rvidx_tab[4] = {0,2,3,1}; + + if (sched_subframePHI_DCI0_req[CC_id].hi_dci0_request_body; + nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; + + nfapi_ul_config_request_body_t *ul_req_tmp = &eNB->UL_req_tmp[CC_id][sched_subframeP].ul_config_request_body; + + // loop over all active UEs + for (UE_id=UE_list->head_ul; UE_id>=0; UE_id=UE_list->next_ul[UE_id]) { + + if (UE_list->UE_template[UE_PCCID(module_idP,UE_id)][UE_id].rach_resource_type == 0) continue; + + // don't schedule if Msg4 is not received yet + if (UE_list->UE_template[UE_PCCID(module_idP,UE_id)][UE_id].configured==FALSE) { + LOG_D(MAC,"[eNB %d] frame %d subfarme %d, UE %d: not configured, skipping UE scheduling \n", + module_idP,frameP,subframeP,UE_id); + continue; + } + + rnti = UE_RNTI(module_idP,UE_id); + + if (rnti==NOT_A_RNTI) { + LOG_W(MAC,"[eNB %d] frame %d subfarme %d, UE %d: no RNTI \n", module_idP,frameP,subframeP,UE_id); + continue; + } + + // loop over all active UL CC_ids for this UE + for (n=0; nnumactiveULCCs[UE_id]; n++) { + // This is the actual CC_id in the list + CC_id = UE_list->ordered_ULCCids[n][UE_id]; + N_RB_UL = to_prb(cc[CC_id].ul_Bandwidth); + + + UE_template = &UE_list->UE_template[CC_id][UE_id]; + UE_sched_ctrl = &UE_list->UE_sched_ctrl[UE_id]; + harq_pid = 0; + round = UE_sched_ctrl->round_UL[CC_id][harq_pid]; + AssertFatal(round<8,"round %d > 7 for UE %d/%x\n",round,UE_id,rnti); + LOG_D(MAC,"[eNB %d] frame %d subframe %d,Checking PUSCH %d for BL/CE UE %d/%x CC %d : aggregation level %d, N_RB_UL %d\n", + module_idP,frameP,subframeP,harq_pid,UE_id,rnti,CC_id, 24,N_RB_UL); + + RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->ul_total_buffer; + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_BO,RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP]); + if (UE_is_to_be_scheduled(module_idP,CC_id,UE_id) > 0 || round > 0)// || ((frameP%10)==0)) + // if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames + { + LOG_I(MAC,"[eNB %d][PUSCH %d] Frame %d subframe %d Scheduling UE %d/%x in round %d(SR %d,UL_inactivity timer %d,UL_failure timer %d,cqi_req_timer %d)\n", + module_idP,harq_pid,frameP,subframeP,UE_id,rnti,round,UE_template->ul_SR, + UE_sched_ctrl->ul_inactivity_timer, + + UE_sched_ctrl->ul_failure_timer, + + UE_sched_ctrl->cqi_req_timer); + // reset the scheduling request + emtc_active[CC_id]=1; + UE_template->ul_SR = 0; + status = mac_eNB_get_rrc_status(module_idP,rnti); + if (status < RRC_CONNECTED) + cqi_req = 0; + else if (UE_sched_ctrl->cqi_req_timer>30) { + cqi_req = 1; + UE_sched_ctrl->cqi_req_timer=0; + } + else + cqi_req = 0; + + //power control + //compute the expected ULSCH RX power (for the stats) + + // this is the normalized RX power and this should be constant (regardless of mcs + normalized_rx_power = UE_sched_ctrl->pusch_snr[CC_id]; + target_rx_power = 178; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + int32_t framex10psubframe = UE_template->pusch_tpc_tx_frame*10+UE_template->pusch_tpc_tx_subframe; + if (((framex10psubframe+10)<=(frameP*10+subframeP)) || //normal case + ((framex10psubframe>(frameP*10+subframeP)) && (((10240-framex10psubframe+frameP*10+subframeP)>=10)))) //frame wrap-around + { + UE_template->pusch_tpc_tx_frame=frameP; + UE_template->pusch_tpc_tx_subframe=subframeP; + if (normalized_rx_power>(target_rx_power+4)) { + tpc = 0; //-1 + tpc_accumulated--; + } else if (normalized_rx_power<(target_rx_power-4)) { + tpc = 2; //+1 + tpc_accumulated++; + } else { + tpc = 1; //0 + } + } else { + tpc = 1; //0 + } + //tpc = 1; + if (tpc!=1) { + LOG_D(MAC,"[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", + module_idP,frameP,subframeP,harq_pid,tpc, + tpc_accumulated,normalized_rx_power,target_rx_power); + } + + // new transmission + if (round==0) { + + ndi = 1-UE_template->oldNDI_UL[harq_pid]; + UE_template->oldNDI_UL[harq_pid]=ndi; + UE_list->eNB_UE_stats[CC_id][UE_id].normalized_rx_power=normalized_rx_power; + UE_list->eNB_UE_stats[CC_id][UE_id].target_rx_power=target_rx_power; + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_mcs1=4; + UE_template->mcs_UL[harq_pid] = 4; + + + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_mcs2=UE_template->mcs_UL[harq_pid]; + // buffer_occupancy = UE_template->ul_total_buffer; + + + + UE_template->TBS_UL[harq_pid] = get_TBS_UL(UE_template->mcs_UL[harq_pid],6); + UE_list->eNB_UE_stats[CC_id][UE_id].total_rbs_used_rx+=6; + UE_list->eNB_UE_stats[CC_id][UE_id].ulsch_TBS=UE_template->TBS_UL[harq_pid]; + // buffer_occupancy -= TBS; + + T(T_ENB_MAC_UE_UL_SCHEDULE, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(0), T_INT(6), + T_INT(UE_template->TBS_UL[harq_pid]), T_INT(ndi)); + + if (mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED) + LOG_D(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d)\n", + module_idP,harq_pid,rnti,CC_id,frameP,subframeP,UE_id,UE_template->mcs_UL[harq_pid], + 0,6, + UE_template->TBS_UL[harq_pid],harq_pid); + + // bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB) + //store for possible retransmission + UE_template->nb_rb_ul[harq_pid] = 6; + UE_template->first_rb_ul[harq_pid] = 0; + + UE_sched_ctrl->ul_scheduled |= (1<head) + VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_SCHEDULED,UE_sched_ctrl->ul_scheduled); + + // adjust total UL buffer status by TBS, wait for UL sdus to do final update + LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]); + if (UE_template->ul_total_buffer > UE_template->TBS_UL[harq_pid]) + UE_template->ul_total_buffer -= UE_template->TBS_UL[harq_pid]; + else + UE_template->ul_total_buffer = 0; + LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer); + // Cyclic shift for DM RS + cshift = 0;// values from 0 to 7 can be used for mapping the cyclic shift (36.211 , Table 5.5.2.1.1-1) + // save it for a potential retransmission + UE_template->cshift[harq_pid] = cshift; + + LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL 6-0A MPDCCH for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP); + AssertFatal (UE_template->physicalConfigDedicated != NULL, + "UE_template->physicalConfigDedicated is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4 != NULL, + "UE_template->physicalConfigDedicated->ext4 is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 != NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present == EPDCCH_Config_r11__config_r11_PR_setup, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present != setup\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 != NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = NULL\n"); + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0]; + AssertFatal(epdcch_setconfig_r11 != NULL, "epdcch_setconfig_r11 is null\n"); + AssertFatal(epdcch_setconfig_r11->ext2!=NULL, "epdcch_setconfig_r11->ext2 is null\n"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13!=NULL, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13!=NULL, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->present==EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13->present is not setup\n"); + AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310!=NULL, + "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present==EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310_PR_setup, + "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present is not setup\n"); + + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; + memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); + + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE; + hi_dci0_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dci_format = (UE_template->rach_resource_type > 1) ? 5 : 4; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ce_mode = (UE_template->rach_resource_type > 1) ? 2 : 1; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mpdcch_narrowband = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13; + + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_prb_pairs = 6; // checked above that it has to be this + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mpdcch_transmission_type = epdcch_setconfig_r11->transmissionType_r11; // distibuted + + AssertFatal(UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11!=NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 is null\n"); + + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.start_symbol = *UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.aggreagation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.rnti_type = 4; // other + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.rnti = rnti; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ce_mode = (UE_template->rach_resource_type < 3) ? 1 : 2; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.drms_scrambling_init = epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.transmission_power = 6000; // 0dB + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_start = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_resource_blocks = 6; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.pusch_repetition_levels = 0; + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13==0, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13->mpdcch_pdsch_HoppingConfig_r13 is not 0\n"); + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.frequency_hopping_flag = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.redudency_version = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.harq_process = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = tpc; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = cqi_req; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ul_inex = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dai_presence_flag = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dl_assignment_index = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.srs_request = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dci_subframe_repetition_number = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tcp_bitmap = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.total_dci_length_include_padding = 29; // hard-coded for 10 MHz + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_tx_antenna_ports = 1; + + eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++; + + + LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP); + + + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], + cqi_req, + cc, + UE_template->physicalConfigDedicated, + get_tmode(module_idP,CC_id,UE_id), + eNB->ul_handle, + rnti, + UE_template->first_rb_ul[harq_pid], // resource_block_start + UE_template->nb_rb_ul[harq_pid], // number_of_resource_blocks + UE_template->mcs_UL[harq_pid], + cshift, // cyclic_shift_2_for_drms + 0, // frequency_hopping_enabled_flag + 0, // frequency_hopping_bits + UE_template->oldNDI_UL[harq_pid], // new_data_indication + rvidx_tab[round&3], // redundancy_version + harq_pid, // harq_process_number + 0, // ul_tx_mode + 0, // current_tx_nb + 0, // n_srs + UE_template->TBS_UL[harq_pid] + ); + fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], + UE_template->rach_resource_type>2 ? 2 : 1, + 1, //total_number_of_repetitions + 1, //repetition_number + (frameP*10)+subframeP); + + + ul_req_tmp->number_of_pdus++; + eNB->ul_handle++; + + add_ue_ulsch_info(module_idP, + CC_id, + UE_id, + subframeP, + S_UL_SCHEDULED); + + LOG_D(MAC,"[eNB %d] CC_id %d Frame %d, subframeP %d: Generated ULSCH DCI for next UE_id %d, format 0\n", module_idP,CC_id,frameP,subframeP,UE_id); + + } + else { // round > 0 => retransmission + T(T_ENB_MAC_UE_UL_SCHEDULE_RETRANSMISSION, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), + T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(0), T_INT(6), + T_INT(round)); + + + fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], + UE_template->rach_resource_type>2 ? 2 : 1, + 1, //total_number_of_repetitions + 1, //repetition_number + (frameP*10)+subframeP); + + ul_req_tmp->number_of_pdus++; + eNB->ul_handle++; + + } + } // UE_is_to_be_scheduled + } // ULCCs + } // loop over UE_id +} +#endif diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c index 612f64fe61..1fb09d63d0 100755 --- a/openair2/LAYER2/MAC/pre_processor.c +++ b/openair2/LAYER2/MAC/pre_processor.c @@ -1131,6 +1131,8 @@ void ulsch_scheduler_pre_processor(module_id_t module_idP, for (i=UE_list->head_ul; i>=0; i=UE_list->next_ul[i]) { + if (UE_list->UE_template[CC_id][UE_id].rach_resource_type > 0) continue; + rnti = UE_RNTI(module_idP,i); if (rnti==NOT_A_RNTI) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 18dd7f15ce..05d87f7b43 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2560,7 +2560,9 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; epdcch_setconfig_r11->ext2 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2)); - epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = NULL; + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 = calloc(1,sizeof(struct EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310)); + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present = EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310_PR_setup; + epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->choice.setup = EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310__setup_n6; epdcch_setconfig_r11->ext2->mpdcch_config_r13 = calloc(1, sizeof(struct EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13)); epdcch_setconfig_r11->ext2->mpdcch_config_r13->present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.csi_NumRepetitionCE_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__csi_NumRepetitionCE_r13_sf1; @@ -2571,6 +2573,7 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 2; ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); + // FIXME allocate physicalConfigDedicated2->ext7 physicalConfigDedicated2->ext7 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7)); diff --git a/openair2/RRC/LITE/rrc_common.c b/openair2/RRC/LITE/rrc_common.c index 0e836f5677..9ae9606127 100755 --- a/openair2/RRC/LITE/rrc_common.c +++ b/openair2/RRC/LITE/rrc_common.c @@ -329,8 +329,11 @@ rrc_rx_tx( check_handovers(ctxt_pP); // counetr, and get the value and aggregate + // check for UL failure RB_FOREACH(ue_context_p, rrc_ue_tree_s, &(RC.rrc[ctxt_pP->module_id]->rrc_ue_head)) { + LOG_I(RRC,"SFN.SN %d.%d => release timer %d/%d\n",ctxt_pP->frame,ctxt_pP->subframe, + ue_context_p->ue_context.ue_release_timer,ue_context_p->ue_context.ue_release_timer_thres); if ((ctxt_pP->frame == 0) && (ctxt_pP->subframe==0)) { if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) { LOG_I(RRC,"UE rnti %x:S-TMSI %x failure timer %d/20000\n", @@ -348,7 +351,7 @@ rrc_rx_tx( ue_context_p->ue_context.ul_failure_timer++; if (ue_context_p->ue_context.ul_failure_timer >= 20000) { // remove UE after 20 seconds after MAC has indicated UL failure - LOG_I(RRC,"Removing UE %x instance\n",ue_context_p->ue_context.rnti); + LOG_I(RRC,"Removing UE %x instance (failure)\n",ue_context_p->ue_context.rnti); ue_to_be_removed = ue_context_p; break; } @@ -357,8 +360,9 @@ rrc_rx_tx( ue_context_p->ue_context.ue_release_timer++; if (ue_context_p->ue_context.ue_release_timer >= ue_context_p->ue_context.ue_release_timer_thres) { - LOG_I(RRC,"Removing UE %x instance\n",ue_context_p->ue_context.rnti); + LOG_I(RRC,"Removing UE %x instance (release timer %d)\n",ue_context_p->ue_context.rnti,ue_context_p->ue_context.ue_release_timer); ue_to_be_removed = ue_context_p; + exit(-1); break; } } diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 559f58ab4b..22aff3299d 100755 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -873,6 +873,7 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s* #endif #endif + LOG_I(RRC,"Removing ue %x (rrc_eNB_free_UE)\n",rnti); rrc_mac_remove_ue(enb_mod_idP,rnti); rrc_rlc_remove_ue(&ctxt); pdcp_remove_UE(&ctxt); From f32355c7ddfd76ab26ab25e9950f8b9527496592 Mon Sep 17 00:00:00 2001 From: sharma Date: Sun, 3 Dec 2017 03:49:29 +0100 Subject: [PATCH 087/125] added handling of narrowbands for ULSCH scheduling --- .../lte_ul_channel_estimation.c | 38 +++++----- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 74 +++++++++++++++++-- openair1/PHY/LTE_TRANSPORT/defs.h | 2 + openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c | 11 ++- .../PHY/LTE_TRANSPORT/ulsch_demodulation.c | 15 ++-- openair1/SCHED/phy_procedures_lte_eNb.c | 14 +++- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 6 +- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 45 +++++++++-- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 5 +- 9 files changed, 160 insertions(+), 50 deletions(-) diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c index b495385612..c86514bc47 100755 --- a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c @@ -46,12 +46,12 @@ int32_t lte_ul_channel_estimation(PHY_VARS_eNB *eNB, int32_t **ul_ch_estimates_time= pusch_vars->drs_ch_estimates_time; int32_t **rxdataF_ext= pusch_vars->rxdataF_ext; int subframe = proc->subframe_rx; - uint8_t harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe); + uint8_t harq_pid; int16_t delta_phase = 0; int16_t *ru1 = ru_90; int16_t *ru2 = ru_90; int16_t current_phase1,current_phase2; - uint16_t N_rb_alloc = eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb; + uint16_t aa,Msc_RS,Msc_RS_idx; uint16_t * Msc_idx_ptr; int k,pilot_pos1 = 3 - frame_parms->Ncp, pilot_pos2 = 10 - 2*frame_parms->Ncp; @@ -65,7 +65,7 @@ int32_t lte_ul_channel_estimation(PHY_VARS_eNB *eNB, uint32_t alpha_ind; uint32_t u=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.grouphop[Ns+(subframe<<1)]; uint32_t v=frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.seqhop[Ns+(subframe<<1)]; - int32_t tmp_estimates[N_rb_alloc*12] __attribute__((aligned(16))); + int symbol_offset,i; @@ -83,7 +83,19 @@ int32_t lte_ul_channel_estimation(PHY_VARS_eNB *eNB, int32x4_t mmtmp0,mmtmp1,mmtmp_re,mmtmp_im; #endif -int32_t temp_in_ifft_0[2048*2] __attribute__((aligned(32))); + int32_t temp_in_ifft_0[2048*2] __attribute__((aligned(32))); + + +#ifdef Rel14 + if (eNB->ulsch[UE_id]->ue_type > 0) harq_pid = 0; + else +#endif + { + harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe); + } + + uint16_t N_rb_alloc = eNB->ulsch[UE_id]->harq_processes[harq_pid]->nb_rb; + int32_t tmp_estimates[N_rb_alloc*12] __attribute__((aligned(16))); Msc_RS = N_rb_alloc*12; @@ -91,24 +103,12 @@ int32_t temp_in_ifft_0[2048*2] __attribute__((aligned(32))); eNB->ulsch[UE_id]->harq_processes[harq_pid]->n_DMRS2 + frame_parms->pusch_config_common.ul_ReferenceSignalsPUSCH.nPRS[(subframe<<1)+Ns]) % 12; -#if defined(USER_MODE) + Msc_idx_ptr = (uint16_t*) bsearch(&Msc_RS, dftsizes, 33, sizeof(uint16_t), compareints); - if (Msc_idx_ptr) - Msc_RS_idx = Msc_idx_ptr - dftsizes; - else { - LOG_E(PHY,"lte_ul_channel_estimation: index for Msc_RS=%d not found\n",Msc_RS); - return(-1); - } + AssertFatal(Msc_idx_ptr!=NULL,"lte_ul_channel_estimation: index for Msc_RS=%d not found\n",Msc_RS); -#else - uint8_t b; - - for (b=0; b<33; b++) - if (Msc_RS==dftsizes[b]) - Msc_RS_idx = b; - -#endif + Msc_RS_idx = Msc_idx_ptr - dftsizes; // LOG_I(PHY,"subframe %d, Ns %d, l %d, Msc_RS = %d, Msc_RS_idx = %d, u %d, v %d, cyclic_shift %d\n",subframe,Ns,l,Msc_RS, Msc_RS_idx,u,v,cyclic_shift); #ifdef DEBUG_CH diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 6059ac8aa7..9825f8a0f0 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -164,11 +164,12 @@ int8_t delta_PUSCH_acc[4] = { -1, 0, 1, 3 }; int8_t *delta_PUCCH_lut = delta_PUSCH_acc; void -conv_eMTC_rballoc (uint8_t narrowband,uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) +conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) { - int RIV = resource_block_coding; + int RIV = resource_block_coding&31; + int narrowband = resource_block_coding>>5; int N_NB_DL = N_RB_DL / 6; int i0 = (N_RB_DL >> 1) - (3 * N_NB_DL); int first_rb = (6 * narrowband) + i0; @@ -2213,8 +2214,8 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci_alloc->dci_length = sizeof_DCI6_1A_10MHz_t; ((DCI6_1A_10MHz_t *) dci_pdu)->type = 1; ((DCI6_1A_10MHz_t *) dci_pdu)->hopping = rel13->frequency_hopping_enabled_flag; - ((DCI6_1A_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding; - ((DCI6_1A_10MHz_t *) dci_pdu)->narrowband = rel13->mpdcch_narrow_band; + ((DCI6_1A_10MHz_t *) dci_pdu)->rballoc = rel13->resource_block_coding&31; + ((DCI6_1A_10MHz_t *) dci_pdu)->narrowband = rel13->resource_block_coding>>5; ((DCI6_1A_10MHz_t *) dci_pdu)->mcs = rel13->mcs; ((DCI6_1A_10MHz_t *) dci_pdu)->rep = (rel13->pdsch_reptition_levels); ((DCI6_1A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; @@ -2356,7 +2357,7 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0->subframe_tx[(subframe + 2) % 10] = 1; LOG_I(PHY,"PDSCH : resource_block_coding %x\n",rel13->resource_block_coding); - conv_eMTC_rballoc (rel13->mpdcch_narrow_band,rel13->resource_block_coding, + conv_eMTC_rballoc (rel13->resource_block_coding, fp->N_RB_DL, dlsch0_harq->rb_alloc); @@ -2584,6 +2585,53 @@ fill_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, DCI_ALLOC_t * dci_alloc, } #ifdef Rel14 +int get_narrowband_index(int N_RB_UL,int rb) { + + switch (N_RB_UL) { + case 6: // 6 PRBs, N_NB=1, i_0=0 + case 25: // 25 PRBs, N_NB=4, i_0=0 + return(rb/6); + break; + case 50: // 50 PRBs, N_NB=8, i_0=1 + case 75: // 75 PRBs, N_NB=12, i_0=1 + case 15: // 15 PRBs, N_NB=2, i_0=1 + AssertFatal(rb>=1,"rb %d is not possible for %d PRBs\n",rb,N_RB_UL); + return((rb-1)/6); + break; + case 100: // 100 PRBs, N_NB=16, i_0=2 + AssertFatal(rb>=2,"rb %d is not possible for %d PRBs\n",rb,N_RB_UL); + return(rb-2/6); + break; + default: + AssertFatal(1==0,"Impossible N_RB_UL %d\n",N_RB_UL); + break; + } + +} + +int get_first_rb_in_narrowband(int N_RB_UL,int rb) { + + switch (N_RB_UL) { + case 6: // 6 PRBs, N_NB=1, i_0=0 + case 25: // 25 PRBs, N_NB=4, i_0=0 + return(rb - 6*(rb/6)); + break; + case 50: // 50 PRBs, N_NB=8, i_0=1 + case 75: // 75 PRBs, N_NB=12, i_0=1 + case 15: // 15 PRBs, N_NB=2, i_0=1 + AssertFatal(rb>=1,"rb %d is not possible for %d PRBs\n",rb,N_RB_UL); + return(rb-1-(6*((rb-1)/6))); + break; + case 100: // 100 PRBs, N_NB=16, i_0=2 + AssertFatal(rb>=2,"rb %d is not possible for %d PRBs\n",rb,N_RB_UL); + return(rb-2-(6*((rb-2)/6))); + break; + default: + AssertFatal(1==0,"Impossible N_RB_UL %d\n",N_RB_UL); + break; + } +} + void fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci_alloc, nfapi_hi_dci0_mpdcch_dci_pdu * pdu) { @@ -2595,8 +2643,9 @@ fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci uint32_t TPC = rel13->tpc; uint32_t mcs = rel13->mcs; uint32_t hopping = rel13->frequency_hopping_flag; + uint32_t narrowband = get_narrowband_index(frame_parms->N_RB_UL,rel13->resource_block_start); uint32_t rballoc = computeRIV (6, - rel13->resource_block_start, + get_first_rb_in_narrowband(frame_parms->N_RB_UL,rel13->resource_block_start), rel13->number_of_resource_blocks); uint32_t ndi = rel13->new_data_indication; @@ -2748,6 +2797,17 @@ fill_ulsch (PHY_VARS_eNB * eNB, nfapi_ul_config_ulsch_pdu * ulsch_pdu, int frame harq_pid = ulsch_pdu->ulsch_pdu_rel8.harq_process_number; + +#ifdef Rel14 + ulsch->ue_type = ulsch_pdu->ulsch_pdu_rel13.ue_type; + AssertFatal(harq_pid ==0, "Harq PID is not zero for BL/CE UE\n"); + + +#else + ulsch->ue_type = 0; +#endif + + ulsch->harq_mask |= 1 << harq_pid; ulsch->harq_processes[harq_pid]->frame = frame; @@ -2810,7 +2870,7 @@ fill_ulsch (PHY_VARS_eNB * eNB, nfapi_ul_config_ulsch_pdu * ulsch_pdu, int frame ulsch->harq_processes[harq_pid]->round++; ulsch->rnti = ulsch_pdu->ulsch_pdu_rel8.rnti; - LOG_D (PHY, "Filling ULSCH %x (UE_id %d) (new_ulsch %d) for Frame %d, Subframe %d : harq_pid %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n", + LOG_I (PHY, "Filling ULSCH %x (UE_id %d) (new_ulsch %d) for Frame %d, Subframe %d : harq_pid %d, first_rb %d, nb_rb %d, rvidx %d, Qm %d, TBS %d, round %d \n", ulsch->rnti, UE_id, new_ulsch, diff --git a/openair1/PHY/LTE_TRANSPORT/defs.h b/openair1/PHY/LTE_TRANSPORT/defs.h index fb42e39a6c..989d6ca0a2 100755 --- a/openair1/PHY/LTE_TRANSPORT/defs.h +++ b/openair1/PHY/LTE_TRANSPORT/defs.h @@ -596,6 +596,8 @@ typedef struct { } LTE_eNB_UCI; typedef struct { + /// UE type (normal, CEModeA, CEModeB) + uint8_t ue_type; /// HARQ process mask, indicates which processes are currently active uint16_t harq_mask; /// Pointers to 8 HARQ processes for the ULSCH diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c index 0bd2f522d7..339b87b1d6 100755 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c @@ -878,11 +878,16 @@ unsigned int ulsch_decoding(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, LTE_UL_eNB_HARQ_t *ulsch_harq; - - harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe); +#ifdef Rel14 + if (ulsch->ue_type>0) harq_pid = 0; + else +#endif + { + harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe); + } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_ENB_ULSCH_DECODING0+harq_pid,1); - + // x1 is set in lte_gold_generic x2 = ((uint32_t)ulsch->rnti<<14) + ((uint32_t)subframe<<9) + frame_parms->Nid_cell; //this is c_init in 36.211 Sec 6.3.1 ulsch_harq = ulsch->harq_processes[harq_pid]; diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c index 795ed5896b..e76974732d 100755 --- a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c +++ b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c @@ -1136,18 +1136,21 @@ void rx_ulsch(PHY_VARS_eNB *eNB, int16_t *llrp; int subframe = proc->subframe_rx; - harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe); +#ifdef Rel14 + if (ulsch[UE_id]->ue_type > 0) harq_pid =0; + else +#endif + { + harq_pid = subframe2harq_pid(frame_parms,proc->frame_rx,subframe); + } Qm = ulsch[UE_id]->harq_processes[harq_pid]->Qm; #ifdef DEBUG_ULSCH printf("rx_ulsch: harq_pid %d, nb_rb %d first_rb %d\n",harq_pid,ulsch[UE_id]->harq_processes[harq_pid]->nb_rb,ulsch[UE_id]->harq_processes[harq_pid]->first_rb); #endif //DEBUG_ULSCH - if (ulsch[UE_id]->harq_processes[harq_pid]->nb_rb == 0) { - LOG_E(PHY,"PUSCH (%d/%x) nb_rb=0!\n", harq_pid,ulsch[UE_id]->rnti); - return; - } - + AssertFatal(ulsch[UE_id]->harq_processes[harq_pid]->nb_rb > 0, + "PUSCH (%d/%x) nb_rb=0!\n", harq_pid,ulsch[UE_id]->rnti); for (l=0; l<(frame_parms->symbols_per_tti-ulsch[UE_id]->harq_processes[harq_pid]->srs_active); l++) { #ifdef DEBUG_ULSCH diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 99f23200c8..da5a5f9391 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1070,6 +1070,8 @@ pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) for (i = 0; i < NUMBER_OF_UE_MAX; i++) { ulsch = eNB->ulsch[i]; + if (ulsch->ue_type > 0) harq_pid = 0; + ulsch_harq = ulsch->harq_processes[harq_pid]; if (ulsch->rnti > 0) LOG_D (PHY, "Frame %d, subframe %d: PUSCH procedures, harq_pid %d, UE %d/%x\n", frame, subframe, harq_pid, i, ulsch->rnti); @@ -1248,8 +1250,16 @@ fill_rx_indication (PHY_VARS_eNB * eNB, int UE_id, int frame, int subframe) int timing_advance_update; int sync_pos; - uint32_t harq_pid = subframe2harq_pid (&eNB->frame_parms, - frame, subframe); + uint32_t harq_pid; + +#ifdef Rel14 + if (eNB->ulsch[UE_id]->ue_type > 0) harq_pid = 0; + else +#endif + { + harq_pid = subframe2harq_pid (&eNB->frame_parms, + frame, subframe); + } pthread_mutex_lock (&eNB->UL_INFO_mutex); pdu = &eNB->UL_INFO.rx_ind.rx_pdu_list[eNB->UL_INFO.rx_ind.number_of_pdus]; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index ab339758b6..5b4cd7cc6b 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -105,7 +105,7 @@ add_msg3 (module_id_t module_idP, int CC_id, RA_TEMPLATE * RA_template, frame_t ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.frequency_hopping_bits = 0; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.new_data_indication = 0; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.redundancy_version = rvseq[RA_template->msg3_round]; - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = ((10 * RA_template->Msg3_frame) + RA_template->Msg3_subframe) & 7; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number = 0; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.ul_tx_mode = 0; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.current_tx_nb = 0; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.n_srs = 1; @@ -274,7 +274,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6) | (RA_template->msg2_narrowband<<5); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 0; // adjust according to size of RAR, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; @@ -632,7 +632,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = cc[CC_idP].physCellId; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB - dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6) | (RA_template->msg2_narrowband<<5); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 4 for now dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = 0; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index e589057520..a92c3419f9 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -104,6 +104,9 @@ void rx_sdu(const module_id_t enb_mod_idP, } if (UE_id!=-1) { +#ifdef Rel14 + if (UE_list->UE_template[CC_idP][UE_id].rach_resource_type > 0) harq_pid=0; +#endif LOG_D(MAC,"[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid], current_rnti, UE_id,ul_cqi); @@ -142,6 +145,11 @@ void rx_sdu(const module_id_t enb_mod_idP, } } else if ((RA_id = find_RA_id(enb_mod_idP,CC_idP,current_rnti))!=-1) { // Check if this is an RA process for the rnti + +#ifdef Rel14 + if (UE_list->UE_template[CC_idP][UE_id].rach_resource_type > 0) harq_pid=0; +#endif + AssertFatal(eNB->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx>1, "maxHARQ %d should be greater than 1\n", (int)eNB->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx); @@ -838,7 +846,7 @@ void schedule_ulsch(module_id_t module_idP, } } - schedule_ulsch_rnti(module_idP, frameP, subframeP, sched_subframe,emtc_active); + schedule_ulsch_rnti(module_idP, frameP, subframeP, sched_subframe,first_rb); stop_meas(&eNB->schedule_ulsch); } @@ -1402,7 +1410,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, // bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB) //store for possible retransmission UE_template->nb_rb_ul[harq_pid] = 6; - UE_template->first_rb_ul[harq_pid] = 0; + UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc, 2); UE_sched_ctrl->ul_scheduled |= (1<head) @@ -1453,7 +1461,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, hi_dci0_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dci_format = (UE_template->rach_resource_type > 1) ? 5 : 4; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ce_mode = (UE_template->rach_resource_type > 1) ? 2 : 1; - hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mpdcch_narrowband = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mpdcch_narrowband = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_prb_pairs = 6; // checked above that it has to be this hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic @@ -1471,13 +1479,14 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.drms_scrambling_init = epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.transmission_power = 6000; // 0dB - hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_start = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_start = UE_template->first_rb_ul[harq_pid]; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_resource_blocks = 6; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.pusch_repetition_levels = 0; - AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13==0, - "epdcch_setconfig_r11->ext2->mpdcch_config_r13->mpdcch_pdsch_HoppingConfig_r13 is not 0\n"); - hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.frequency_hopping_flag = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13; + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13== + EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13->mpdcch_pdsch_HoppingConfig_r13 is not off\n"); + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.frequency_hopping_flag = 1-epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.redudency_version = 0; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = 0; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.harq_process = 0; @@ -1544,7 +1553,27 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(0), T_INT(6), T_INT(round)); - + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], + cqi_req, + cc, + UE_template->physicalConfigDedicated, + get_tmode(module_idP,CC_id,UE_id), + eNB->ul_handle, + rnti, + UE_template->first_rb_ul[harq_pid], // resource_block_start + UE_template->nb_rb_ul[harq_pid], // number_of_resource_blocks + UE_template->mcs_UL[harq_pid], + cshift, // cyclic_shift_2_for_drms + 0, // frequency_hopping_enabled_flag + 0, // frequency_hopping_bits + UE_template->oldNDI_UL[harq_pid], // new_data_indication + rvidx_tab[round&3], // redundancy_version + harq_pid, // harq_process_number + 0, // ul_tx_mode + 0, // current_tx_nb + 0, // n_srs + UE_template->TBS_UL[harq_pid] + ); fill_nfapi_ulsch_config_request_emtc(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], UE_template->rach_resource_type>2 ? 2 : 1, 1, //total_number_of_repetitions diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 05d87f7b43..984cf315b1 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2539,7 +2539,8 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->ext4->epdcch_Config_r11 = calloc(1, sizeof(struct EPDCCH_Config_r11 )); physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.present = EPDCCH_Config_r11__config_r11_PR_setup; physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.subframePatternConfig_r11 = NULL; - physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = NULL; + physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = calloc(1,sizeof(long)); + *physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 = 2; physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToReleaseList_r11 = NULL; @@ -2570,7 +2571,7 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.present = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13_PR_fdd_r13; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_StartSF_UESS_r13.choice.fdd_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_StartSF_UESS_r13__fdd_r13_v1; epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_NumRepetition_r13 = EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_NumRepetition_r13_r1; - epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 2; + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13 = 3; // note: this is narrowband index 2 ASN_SEQUENCE_ADD(physicalConfigDedicated2->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11, epdcch_setconfig_r11); From 3c1c5a1508235fc2d0044f573c474fd8c99e5976 Mon Sep 17 00:00:00 2001 From: sharma Date: Mon, 4 Jun 2018 08:15:16 +0200 Subject: [PATCH 088/125] merge in changes from local copy which were made just prior to Orange Research Day demonstration --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 27 +- openair1/PHY/LTE_TRANSPORT/edci.c | 6 +- openair1/PHY/LTE_TRANSPORT/mdci.h | 14 +- openair1/PHY/LTE_TRANSPORT/pucch.c | 6 +- openair1/SCHED/fapi_l1.c | 6 +- openair1/SCHED/phy_procedures_lte_eNb.c | 45 +- openair2/LAYER2/MAC/defs.h | 5 + openair2/LAYER2/MAC/eNB_scheduler.c | 5 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 44 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 611 +++++++++++++++++- .../LAYER2/MAC/eNB_scheduler_primitives.c | 3 + openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 122 +++- openair2/RRC/LITE/MESSAGES/asn1_msg.c | 2 +- openair2/RRC/LITE/rrc_common.c | 2 +- openair2/RRC/LITE/rrc_eNB.c | 6 +- targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc | 4 - targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp | 330 +++++++++- targets/RT/USER/lte-ru.c | 2 +- 18 files changed, 1140 insertions(+), 100 deletions(-) delete mode 100755 targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc mode change 100755 => 100644 targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index 9825f8a0f0..92784609e9 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -2696,18 +2696,19 @@ fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci AssertFatal(1==0,"TDD not supported for eMTC yet\n"); } else { dci_alloc->dci_length = sizeof_DCI6_0A_5MHz_t; - ((DCI6_0A_10MHz_t *) dci_pdu)->type = 0; - ((DCI6_0A_10MHz_t *) dci_pdu)->hopping = hopping; - ((DCI6_0A_10MHz_t *) dci_pdu)->rballoc = rballoc; - ((DCI6_0A_10MHz_t *) dci_pdu)->mcs = mcs; - ((DCI6_0A_10MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; - ((DCI6_0A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; - ((DCI6_0A_10MHz_t *) dci_pdu)->ndi = ndi; - ((DCI6_0A_10MHz_t *) dci_pdu)->rv_idx = rel13->redudency_version; - ((DCI6_0A_10MHz_t *) dci_pdu)->TPC = TPC; - ((DCI6_0A_10MHz_t *) dci_pdu)->csi_req = cqi_req; - ((DCI6_0A_10MHz_t *) dci_pdu)->srs_req = rel13->srs_request; - ((DCI6_0A_10MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; + ((DCI6_0A_5MHz_t *) dci_pdu)->type = 0; + ((DCI6_0A_5MHz_t *) dci_pdu)->hopping = hopping; + ((DCI6_0A_5MHz_t *) dci_pdu)->rballoc = rballoc; + ((DCI6_0A_5MHz_t *) dci_pdu)->narrowband = narrowband; + ((DCI6_0A_5MHz_t *) dci_pdu)->mcs = mcs; + ((DCI6_0A_5MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; + ((DCI6_0A_5MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; + ((DCI6_0A_5MHz_t *) dci_pdu)->ndi = ndi; + ((DCI6_0A_5MHz_t *) dci_pdu)->rv_idx = rel13->redudency_version; + ((DCI6_0A_5MHz_t *) dci_pdu)->TPC = TPC; + ((DCI6_0A_5MHz_t *) dci_pdu)->csi_req = cqi_req; + ((DCI6_0A_5MHz_t *) dci_pdu)->srs_req = rel13->srs_request; + ((DCI6_0A_5MHz_t *) dci_pdu)->dci_rep = rel13->dci_subframe_repetition_number; } @@ -2721,6 +2722,7 @@ fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci ((DCI6_0A_10MHz_t *) dci_pdu)->type = 0; ((DCI6_0A_10MHz_t *) dci_pdu)->hopping = hopping; ((DCI6_0A_10MHz_t *) dci_pdu)->rballoc = rballoc; + ((DCI6_0A_10MHz_t *) dci_pdu)->narrowband = narrowband; ((DCI6_0A_10MHz_t *) dci_pdu)->mcs = mcs; ((DCI6_0A_10MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; ((DCI6_0A_10MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; @@ -2759,6 +2761,7 @@ fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci ((DCI6_0A_20MHz_t *) dci_pdu)->type = 0; ((DCI6_0A_20MHz_t *) dci_pdu)->hopping = hopping; ((DCI6_0A_20MHz_t *) dci_pdu)->rballoc = rballoc; + ((DCI6_0A_20MHz_t *) dci_pdu)->narrowband = narrowband; ((DCI6_0A_20MHz_t *) dci_pdu)->mcs = rel13->mcs; ((DCI6_0A_20MHz_t *) dci_pdu)->rep = rel13->pusch_repetition_levels; ((DCI6_0A_20MHz_t *) dci_pdu)->harq_pid = rel13->harq_process; diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index fbc3adc7aa..546ff4a4f0 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -321,10 +321,12 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, } else AssertFatal(1 == 0, "Illegal combination start_symbol %d, a_index %d\n", mdci->start_symbol, a_index); - LOG_I(PHY, "mdci %d, length %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, i0 %d, ss %d ,coded_bits %d\n", + LOG_I(PHY, "mdci %d, length %d: rnti %x, L %d, prb_pairs %d, ce_mode %d, transmission type %s, i0 %d, ss %d ,coded_bits %d\n", i, mdci->dci_length,mdci->rnti, mdci->L, mdci->number_of_prb_pairs, - mdci->ce_mode, mdci->i0, mdci->start_symbol, + mdci->ce_mode, + mdci->transmission_type == 1? "dist" : "loc", + mdci->i0, mdci->start_symbol, coded_bits); // Note: We only have to run this every Nacc subframes during repetitions, data and scrambling are constant, but we do it for now to simplify during testing diff --git a/openair1/PHY/LTE_TRANSPORT/mdci.h b/openair1/PHY/LTE_TRANSPORT/mdci.h index 5068aa072c..6c2cb6b19e 100755 --- a/openair1/PHY/LTE_TRANSPORT/mdci.h +++ b/openair1/PHY/LTE_TRANSPORT/mdci.h @@ -56,7 +56,9 @@ struct DCI6_0A_5MHz { /// Modulation and Coding Scheme and Redundancy Version uint32_t mcs:4; /// RB Assignment (ceil(log2(floor(N_RB_UL/6))) + 5 bits) - uint32_t rballoc:7; + uint32_t rballoc:5; + /// narrowband index log2(floor(N_RB_DL/6))) bits + uint32_t narrowband:2; /// Hopping flag uint32_t hopping:1; /// type = 0 => DCI Format 0, type = 1 => DCI Format 1A @@ -90,7 +92,7 @@ struct DCI6_1A_5MHz { uint32_t mcs:4; /// Resource block assignment (assignment flag = 0 for 5 MHz, ceil(log2(floor(N_RB_DL/6)))+5) uint32_t rballoc:5; - /// narroband index log2(floor(N_RB_DL/6))) bits + /// narrowband index log2(floor(N_RB_DL/6))) bits uint32_t narrowband:2; /// Frequency hopping flag uint32_t hopping:1; @@ -125,7 +127,7 @@ struct DCI6_0A_10MHz { uint32_t mcs:4; /// RB Assignment (ceil(log2(floor(N_RB_UL/6))) + 5 bits) uint32_t rballoc:5; - /// narroband index log2(floor(N_RB_DL/6))) bits + /// narrowband index log2(floor(N_RB_DL/6))) bits uint32_t narrowband:3; /// Hopping flag uint32_t hopping:1; @@ -160,7 +162,7 @@ struct DCI6_1A_10MHz { uint32_t mcs:4; /// Resource block assignment uint32_t rballoc:5; - /// narroband index log2(floor(N_RB_DL/6))) bits + /// narrowband index log2(floor(N_RB_DL/6))) bits uint32_t narrowband:3; /// Frequency hopping flag uint32_t hopping:1; @@ -195,7 +197,7 @@ struct DCI6_0A_20MHz { uint32_t mcs:4; /// RB Assignment (ceil(log2(floor(N_RB_UL/6))) + 5 bits) uint32_t rballoc:5; - /// narroband index log2(floor(N_RB_DL/6))) bits + /// narrowband index log2(floor(N_RB_DL/6))) bits uint32_t narrowband:4; /// Hopping flag uint32_t hopping:1; @@ -230,7 +232,7 @@ struct DCI6_1A_20MHz { uint32_t mcs:4; /// Resource block assignment (assignment flag = 0 for 20 MHz, ceil(log2(floor(N_RB_DL/6)))+5) uint32_t rballoc:5; - /// narroband index log2(floor(N_RB_DL/6))) bits + /// narrowband index log2(floor(N_RB_DL/6))) bits uint32_t narrowband:4; /// Frequency hopping flag uint32_t hopping:1; diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c index d03ac16105..8b4e1d8556 100755 --- a/openair1/PHY/LTE_TRANSPORT/pucch.c +++ b/openair1/PHY/LTE_TRANSPORT/pucch.c @@ -2431,9 +2431,9 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, } // aa - LOG_I(PHY,"PUCCH 1a/b: SFN.SF %d.%d : stat %d,%d (pos %d)\n", + LOG_I(PHY,"PUCCH 1a/b: SFN.SF %d.%d : stat %d,%d (pos %d), n1_pucch %d\n", frame,subframe,stat_re,stat_im, - (subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])); + (subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe]),n1_pucch); LOG_D(PHY,"PUCCH 1a/b: SFN.SF %d.%d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",frame,subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); eNB->pucch1ab_stats[UE_id][(subframe<<11) + 2*(eNB->pucch1ab_stats_cnt[UE_id][subframe])] = (stat_re); @@ -2448,7 +2448,7 @@ uint32_t rx_pucch(PHY_VARS_eNB *eNB, if (fmt==pucch_format1b) *(1+payload) = (stat_im<0) ? 1 : 2; } else { // insufficient energy on PUCCH so NAK - LOG_D(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres); + LOG_I(PHY,"PUCCH 1a/b: subframe %d : sigma2_dB %d, stat_max %d, pucch1_thres %d => DTX (n1_pucch %d)\n",subframe,sigma2_dB,dB_fixed(stat_max),pucch1_thres,n1_pucch); *payload = 4; // DTX ((int16_t*)&eNB->pucch1ab_stats[UE_id][(subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])])[0] = (int16_t)(stat_re); ((int16_t*)&eNB->pucch1ab_stats[UE_id][(subframe<<10) + (eNB->pucch1ab_stats_cnt[UE_id][subframe])])[1] = (int16_t)(stat_im); diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index fddea1a539..47fb36824e 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -654,7 +654,11 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) if (ul_subframe<10) { // This means that there is an ul_subframe that can be configured here LOG_D(PHY,"NFAPI: Clearing dci allocations for potential UL\n"); - harq_pid = subframe2harq_pid(fp,ul_frame,ul_subframe); + + if (eNB->ulsch[i]->ue_type == 0) + harq_pid = subframe2harq_pid(fp,ul_frame,ul_subframe); + else + harq_pid = 0; // clear DCI allocation maps for new subframe diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index da5a5f9391..5657a15dba 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -328,7 +328,13 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type /* save old HARQ information needed for PHICH generation */ if (ul_subframe < 10) { // This means that there is a potential UL subframe that will be scheduled here for (i = 0; i < NUMBER_OF_UE_MAX; i++) { - harq_pid = subframe2harq_pid (fp, ul_frame, ul_subframe); +#ifdef Rel14 + if (eNB->ulsch[i]->ue_type >0) harq_pid = 0; + else +#endif + harq_pid = subframe2harq_pid (fp, ul_frame, ul_subframe); + + if (eNB->ulsch[i]) { ulsch_harq = eNB->ulsch[i]->harq_processes[harq_pid]; @@ -410,6 +416,13 @@ phy_procedures_eNB_TX (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, relaying_type harq_pid, dlsch0->harq_processes[harq_pid]->frame, dlsch0->harq_processes[harq_pid]->subframe); + /* + if (dlsch0->harq_processes[harq_pid]->frame > frame) { // remote stale DLSCH + LOG_W(PHY,"Removing stale DLSCH\n"); + dlsch0->active = 0; + dlsch0->harq_processes[harq_pid]->status = SCH_IDLE; + dlsch0->harq_mask &= ~(1 << harq_pid); + }*/ } if ((dlsch0->harq_processes[harq_pid]->status == ACTIVE) && (dlsch0->harq_processes[harq_pid]->frame == frame) && (dlsch0->harq_processes[harq_pid]->subframe == subframe)) pdsch_procedures (eNB, proc, harq_pid, dlsch0, dlsch1, &eNB->UE_stats[(uint32_t) UE_id], 0); @@ -525,7 +538,7 @@ prach_procedures (PHY_VARS_eNB * eNB, eNB->preamble_list_br[ind].preamble_rel8.rnti = 1 + subframe + (60*(eNB->prach_vars_br.first_frame[ce_level] % 40)); eNB->preamble_list_br[ind].instance_length = 0; //don't know exactly what this is eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type = 1 + ce_level; // CE Level - LOG_D (PHY, "Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", + LOG_I (PHY, "Filling NFAPI indication for RACH %d CELevel %d (mask %x) : TA %d, Preamble %d, rnti %x, rach_resource_type %d\n", ind, ce_level, prach_mask, @@ -541,7 +554,7 @@ prach_procedures (PHY_VARS_eNB * eNB, #endif { - if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { + if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 2000)) { LOG_D (PHY, "[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure with preamble %d, energy %d.%d dB, delay %d\n", eNB->Mod_id, eNB->CC_id, frame, subframe, max_preamble[0], max_preamble_energy[0] / 10, max_preamble_energy[0] % 10, max_preamble_delay[0]); @@ -704,7 +717,7 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) } case HARQ: if (fp->frame_type == FDD) { - LOG_D (PHY, "Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n", + LOG_I (PHY, "Frame %d Subframe %d Demodulating PUCCH (UCI %d) for ACK/NAK (uci->pucch_fmt %d,uci->type %d.uci->frame %d, uci->subframe %d): n1_pucch0 %d SR_payload %d\n", frame, subframe, i, uci->pucch_fmt, uci->type, uci->frame, uci->subframe, uci->n_pucch_1[0][0], SR_payload); metric[0] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1[0][0], 0, //n2_pucch @@ -736,7 +749,7 @@ uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) } - LOG_D (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d pucch1a (FDD) payload %d (metric %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, pucch_b0b1[0][0], metric[0]); + LOG_I (PHY, "[eNB %d][PDSCH %x] Frame %d subframe %d pucch1a (FDD) payload %d (metric %d)\n", eNB->Mod_id, uci->rnti, frame, subframe, pucch_b0b1[0][0], metric[0]); uci->stat = metric[0]; fill_uci_harq_indication (eNB, uci, frame, subframe, pucch_b0b1[0], 0, 0xffff); @@ -1122,26 +1135,19 @@ pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) //compute the expected ULSCH RX power (for the stats) ulsch_harq->delta_TF = get_hundred_times_delta_IF_eNB (eNB, i, harq_pid, 0); // 0 means bw_factor is not considered - if (ulsch_harq->cqi_crc_status == 1) { -#ifdef DEBUG_PHY_PROC - //if (((frame%10) == 0) || (frame < 50)) - print_CQI (ulsch_harq->o, ulsch_harq->uci_format, 0, fp->N_RB_DL); -#endif - fill_ulsch_cqi_indication (eNB, frame, subframe, ulsch_harq, ulsch->rnti); - } if (ret == (1 + MAX_TURBO_ITERATIONS)) { T (T_ENB_PHY_ULSCH_UE_NACK, T_INT (eNB->Mod_id), T_INT (frame), T_INT (subframe), T_INT (ulsch->rnti), T_INT (harq_pid)); fill_crc_indication (eNB, i, frame, subframe, 1); // indicate NAK to MAC fill_rx_indication (eNB, i, frame, subframe); // indicate SDU to MAC - - LOG_I (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", + + /*LOG_I (PHY, "[eNB %d][PUSCH %d] frame %d subframe %d UE %d Error receiving ULSCH, round %d/%d (ACK %d,%d)\n", eNB->Mod_id, harq_pid, frame, subframe, i, ulsch_harq->round - 1, ulsch->Mlimit, ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1]); dump_ulsch(eNB,frame,subframe,i); exit(-1); - + */ if (ulsch_harq->round >= 3) { ulsch_harq->status = SCH_IDLE; ulsch_harq->handled = 0; @@ -1190,6 +1196,15 @@ pusch_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) LOG_D (PHY, "[eNB %d] Frame %d subframe %d: received ULSCH harq_pid %d for UE %d, ret = %d, CQI CRC Status %d, ACK %d,%d, ulsch_errors %d/%d\n", eNB->Mod_id, frame, subframe, harq_pid, i, ret, ulsch_harq->cqi_crc_status, ulsch_harq->o_ACK[0], ulsch_harq->o_ACK[1], eNB->UE_stats[i].ulsch_errors[harq_pid], eNB->UE_stats[i].ulsch_decoding_attempts[harq_pid][0]); + + if (ulsch_harq->cqi_crc_status == 1) { +#ifdef DEBUG_PHY_PROC + //if (((frame%10) == 0) || (frame < 50)) + print_CQI (ulsch_harq->o, ulsch_harq->uci_format, 0, fp->N_RB_DL); +#endif + + fill_ulsch_cqi_indication (eNB, frame, subframe, ulsch_harq, ulsch->rnti); + } } // if ((ulsch) && // (ulsch->rnti>0) && // (ulsch_harq->status == ACTIVE)) diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h index 9eeb545325..6af0fd66ca 100755 --- a/openair2/LAYER2/MAC/defs.h +++ b/openair2/LAYER2/MAC/defs.h @@ -650,6 +650,10 @@ typedef struct { uint8_t mcs_UL[8]; /// TBS from last UL scheduling uint8_t TBS_UL[8]; + /// CQI_req from last scheduling + uint8_t oldCQI_UL[8]; + /// TPC from last scheduling + uint8_t oldTPC_UL[8]; /// Flag to indicate UL has been scheduled at least once boolean_t ul_active; /// Flag to indicate UE has been configured (ACK from RRCConnectionSetup received) @@ -816,6 +820,7 @@ typedef struct { int32_t phr_received; uint8_t periodic_ri_received[NFAPI_CC_MAX]; uint8_t aperiodic_ri_received[NFAPI_CC_MAX]; + uint32_t pucch_tpc_accumulated[NFAPI_CC_MAX]; uint8_t pucch1_cqi_update[NFAPI_CC_MAX]; uint8_t pucch1_snr[NFAPI_CC_MAX]; uint8_t pucch2_cqi_update[NFAPI_CC_MAX]; diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index 8286e2dfd8..b126bbd997 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -533,7 +533,10 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP, frame_t frameP, sub_frame schedule_SR(module_idP,frameP,subframeP); // This schedules UCI_CSI in subframeP schedule_CSI(module_idP, frameP, subframeP); - +#ifdef Rel14 + // This schedules DLSCH in subframeP + schedule_ue_spec_br(module_idP,frameP,subframeP); +#endif // This schedules DLSCH in subframeP schedule_ue_spec(module_idP,frameP,subframeP,mbsfn_status); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 5b4cd7cc6b..312a915463 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -264,7 +264,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 @@ -348,7 +348,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc[CC_idP].p_eNB == 1) ? 0 : 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; @@ -356,8 +356,8 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc[CC_idP].mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc[CC_idP].p_eNB == 1) ? 1 : 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; @@ -440,7 +440,7 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc[CC_idP].p_eNB == 1) ? 0 : 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; @@ -448,8 +448,8 @@ generate_Msg2 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc[CC_idP].mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc[CC_idP].p_eNB == 1) ? 1 : 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; @@ -568,7 +568,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s // set HARQ process round to 0 for this UE - if (cc->tdd_Config) + if (cc[CC_idP].tdd_Config) RA_template->harq_pid = ((frameP * 10) + subframeP) % 10; else RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; @@ -582,6 +582,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s #ifdef Rel14 if (RA_template->rach_resource_type > 0) { + RA_template->harq_pid = 0; // Generate DCI + repetitions first // This uses an MPDCCH Type 2 allocation according to Section 9.1.5 36-213, Type2 common allocation according to Table 7.1-8 (36-213) // Parameters: @@ -622,7 +623,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = 1; // imposed (9.1.5 in 213) for Type 2 Common search space - AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_id].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); + AssertFatal (cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 != NULL, "cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13 is null\n"); dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = cc[CC_idP].sib1_v13ext->bandwidthReducedAccessRelatedInfo_r13->startSymbolBR_r13; dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 @@ -710,7 +711,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc->p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc[CC_idP].p_eNB == 1) ? 0 : 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; @@ -718,8 +719,8 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc->mib->message.dl_Bandwidth); // ignored - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc->p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc[CC_idP].mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc[CC_idP].p_eNB == 1) ? 1 : 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; @@ -885,7 +886,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s lcid = 0; // put HARQ process round to 0 - if (cc->tdd_Config) + if (cc[CC_idP].tdd_Config) RA_template->harq_pid = ((frameP * 10) + subframeP) % 10; else RA_template->harq_pid = ((frameP * 10) + subframeP) & 7; @@ -922,7 +923,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s 0, // redundancy version 1, // transport_blocks 0, // transport_block_to_codeword_swap_flag (0) - (cc->p_eNB == 1) ? 0 : 1, // transmission_scheme + (cc[CC_idP].p_eNB == 1) ? 0 : 1, // transmission_scheme 1, // number of layers 1, // number of subbands //0, // codebook index @@ -931,7 +932,7 @@ generate_Msg4 (module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t s 0, // delta_power_offset_index 0, // ngap 1, // NPRB = 3 like in DCI - (cc->p_eNB == 1) ? 1 : 2, // transmission mode + (cc[CC_idP].p_eNB == 1) ? 1 : 2, // transmission mode 1, // num_bf_prb_per_subband 1); // num_bf_vector LOG_D (MAC, "Filled DLSCH config, pdu number %d, non-dci pdu_index %d\n", dl_req->number_pdu, eNB->pdu_index[CC_idP]); @@ -1022,7 +1023,8 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; N_RB_DL = to_prb (cc[CC_idP].mib->message.dl_Bandwidth); - LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d)\n", module_idP, CC_idP, frameP, subframeP, RA_template->harq_pid, round); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Checking if Msg4 for harq_pid %d was acknowledged (round %d) => SFN %d.%d\n", module_idP, CC_idP, frameP, subframeP, RA_template->harq_pid, round, + RA_template->Msg4_frame,RA_template->Msg4_subframe); if (round != 8) { @@ -1031,6 +1033,10 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s if ((RA_template->Msg4_frame == frameP) && (RA_template->Msg4_subframe == subframeP)) { AssertFatal (1 == 0, "Msg4 Retransmissions not handled yet for BL/CE UEs\n"); } + if (round > 0) { + cancel_ra_proc (module_idP, CC_idP, frameP, RA_template->rnti); + rrc_mac_remove_ue(module_idP,RA_template->rnti); + } } else #endif { @@ -1070,7 +1076,7 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s round & 3, // redundancy version 1, // transport_blocks 0, // transport_block_to_codeword_swap_flag (0) - (cc->p_eNB == 1) ? 0 : 1, // transmission_scheme + (cc[CC_idP].p_eNB == 1) ? 0 : 1, // transmission_scheme 1, // number of layers 1, // number of subbands //0, // codebook index @@ -1079,7 +1085,7 @@ check_Msg4_retransmission (module_id_t module_idP, int CC_idP, frame_t frameP, s 0, // delta_power_offset_index 0, // ngap 1, // NPRB = 3 like in DCI - (cc->p_eNB == 1) ? 1 : 2, // transmission mode + (cc[CC_idP].p_eNB == 1) ? 1 : 2, // transmission mode 1, // num_bf_prb_per_subband 1); // num_bf_vector } else @@ -1137,7 +1143,7 @@ schedule_RA (module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) if (RA_template->RA_active == TRUE) { - LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)\n", + LOG_D (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : CC_id %d RA %d is active (generate RAR %d, generate_Msg4 %d, wait_ack_Msg4 %d, rnti %x)\n", module_idP, frameP, subframeP, CC_id, i, RA_template->generate_rar, RA_template->generate_Msg4, RA_template->wait_ack_Msg4, RA_template->rnti); if (RA_template->generate_rar == 1) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 6ab6a2d858..5a553828d3 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -645,7 +645,7 @@ schedule_ue_spec_br( harq_pid = ue_sched_ctl->harq_pid[CC_id]; round = ue_sched_ctl->round[CC_id]; UE_list->eNB_UE_stats[CC_id][UE_id].crnti = rnti; - UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); + UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status = mac_eNB_get_rrc_status(module_idP, rnti);x UE_list->eNB_UE_stats[CC_id][UE_id].harq_pid = harq_pid; UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; @@ -1509,11 +1509,11 @@ schedule_ue_spec_br( //------------------------------------------------------------------------------ void schedule_ue_spec( - module_id_t module_idP, - frame_t frameP, - sub_frame_t subframeP, - int* mbsfn_flag -) + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + int *mbsfn_flag + ) //------------------------------------------------------------------------------ { @@ -1646,6 +1646,8 @@ schedule_ue_spec( ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + if (UE_list->UE_template[CC_id][UE_id].rach_resource_type > 0) continue_flag=1; + if (rnti==NOT_A_RNTI) { LOG_D(MAC,"Cannot find rnti for UE_id %d (num_UEs %d)\n",UE_id,UE_list->num_UEs); continue_flag=1; @@ -1731,7 +1733,7 @@ schedule_ue_spec( UE_list->eNB_UE_stats[CC_id][UE_id].harq_round = round; - if (UE_list->eNB_UE_stats[CC_id][UE_id].rrc_status < RRC_CONNECTED) continue; + sdu_length_total=0; num_sdus=0; @@ -2421,6 +2423,601 @@ schedule_ue_spec( } +#ifdef Rel14 +//------------------------------------------------------------------------------ +void +schedule_ue_spec_br( + module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP + ) { + int CC_id = 0,UE_id; + eNB_MAC_INST *eNB = RC.mac[module_idP]; + COMMON_channels_t *cc = eNB->common_channels; + UE_list_t *UE_list = &eNB->UE_list; + UE_TEMPLATE *UE_template; + UE_sched_ctrl *ue_sched_ctl; + int32_t tpc=1; + int rvseq[4] = {0,2,3,1}; + mac_rlc_status_resp_t rlc_status; + unsigned char header_len_dcch=0, header_len_dcch_tmp=0; + unsigned char header_len_dtch=0, header_len_dtch_tmp=0, header_len_dtch_last=0; + unsigned char ta_len=0; + unsigned char sdu_lcids[NB_RB_MAX],lcid,offset,num_sdus=0; + uint16_t TBS,j,sdu_lengths[NB_RB_MAX],rnti,padding=0,post_padding=0; + unsigned char dlsch_buffer[MAX_DLSCH_PAYLOAD_BYTES]; + int round; + int ta_update; + uint16_t sdu_length_total = 0; + int mcs; + int32_t normalized_rx_power, target_rx_power; + + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_ul_config_request_pdu_t *ul_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + nfapi_dl_config_request_body_t *dl_req; + nfapi_ul_config_request_body_t *ul_req; + + struct PRACH_ConfigSIB_v1310 *ext4_prach; + struct PUCCH_ConfigCommon_v1310 *ext4_pucch; + PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; + struct N1PUCCH_AN_InfoList_r13 *pucch_N1PUCCH_AN_InfoList_r13; + PRACH_ParametersCE_r13_t *p[4] = { NULL, NULL, NULL, NULL }; + int pucchreps[4] = { 1, 1, 1, 1 }; + int n1pucchan[4] = { 0, 0, 0, 0 }; + uint32_t ackNAK_absSF; + int first_rb; + + dl_req = &eNB->DL_req[CC_id].dl_config_request_body; + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + + if ((frameP&1) == 0) return; + + if (cc[CC_id].radioResourceConfigCommon_BR) { + + ext4_prach = cc[CC_id].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + ext4_pucch = cc[CC_id].radioResourceConfigCommon_BR->ext4->pucch_ConfigCommon_v1310; + prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; + pucch_N1PUCCH_AN_InfoList_r13 = ext4_pucch->n1PUCCH_AN_InfoList_r13; + AssertFatal (prach_ParametersListCE_r13 != NULL, "prach_ParametersListCE_r13 is null\n"); + AssertFatal (pucch_N1PUCCH_AN_InfoList_r13 != NULL, "pucch_N1PUCCH_AN_InfoList_r13 is null\n"); + // check to verify CE-Level compatibility in SIB2_BR + AssertFatal (prach_ParametersListCE_r13->list.count == pucch_N1PUCCH_AN_InfoList_r13->list.count, "prach_ParametersListCE_r13->list.count!= pucch_N1PUCCH_AN_InfoList_r13->list.count\n"); + + switch (prach_ParametersListCE_r13->list.count) { + case 4: + p[3] = prach_ParametersListCE_r13->list.array[3]; + n1pucchan[3] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[3]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level3 shouldn't be NULL\n"); + pucchreps[3] = (int) (4 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13); + + case 3: + p[2] = prach_ParametersListCE_r13->list.array[2]; + n1pucchan[2] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[2]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level2 shouldn't be NULL\n"); + pucchreps[2] = (int) (4 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13); + case 2: + p[1] = prach_ParametersListCE_r13->list.array[1]; + n1pucchan[1] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[1]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level1 shouldn't be NULL\n"); + pucchreps[1] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13); + case 1: + p[0] = prach_ParametersListCE_r13->list.array[0]; + n1pucchan[0] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[0]; + AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level0 shouldn't be NULL\n"); + pucchreps[0] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13); + break; + default: + AssertFatal (1 == 0, "Illegal count for prach_ParametersListCE_r13 %d\n", prach_ParametersListCE_r13->list.count); + } + } + + for (UE_id=UE_list->head; UE_id>=0; UE_id=UE_list->next[UE_id]) { + + int harq_pid = 0; + + rnti = UE_RNTI(module_idP,UE_id); + if (rnti==NOT_A_RNTI) continue; + + ue_sched_ctl = &UE_list->UE_sched_ctrl[UE_id]; + UE_template = &UE_list->UE_template[CC_id][UE_id]; + + if (UE_template->rach_resource_type == 0) continue; + uint8_t rrc_status = mac_eNB_get_rrc_status(module_idP, rnti); + + if (rrc_status < RRC_CONNECTED) continue; + + round = ue_sched_ctl->round[CC_id][harq_pid]; + + AssertFatal (UE_template->physicalConfigDedicated != NULL, + "UE_template->physicalConfigDedicated is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4 != NULL, + "UE_template->physicalConfigDedicated->ext4 is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 != NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present == EPDCCH_Config_r11__config_r11_PR_setup, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present != setup\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 != NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = NULL\n"); + + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0]; + + AssertFatal(epdcch_setconfig_r11 != NULL, "epdcch_setconfig_r11 is null\n"); + AssertFatal(epdcch_setconfig_r11->ext2!=NULL, "epdcch_setconfig_r11->ext2 is null\n"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13!=NULL, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13!=NULL, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->present==EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13->present is not setup\n"); + AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310!=NULL, + "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present==EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310_PR_setup, + "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present is not setup\n"); + + + // simple scheduler for 1 repetition, 1 HARQ + if (subframeP == 5) { // MPDCCH + + if (round == 8) { + rlc_status.bytes_in_buffer = 0; + // Now check RLC information to compute number of required RBs + // get maximum TBS size for RLC request + TBS = get_TBS_DL(9,6); + // check first for RLC data on DCCH + // add the length for all the control elements (timing adv, drx, etc) : header + payload + + if (ue_sched_ctl->ta_timer == 0) { + ta_update = ue_sched_ctl->ta_update; + /* if we send TA then set timer to not send it for a while */ + if (ta_update != 31) + ue_sched_ctl->ta_timer = 20; + /* reset ta_update */ + ue_sched_ctl->ta_update = 31; + } else { + ta_update = 31; + } + + ta_len = (ta_update != 31) ? 2 : 0; + + header_len_dcch = 2; // 2 bytes DCCH SDU subheader + + if ( TBS-ta_len-header_len_dcch > 0 ) { + LOG_I(MAC,"Calling mac_rlc_status_ind for DCCH\n"); + 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)); // transport block set size + + sdu_lengths[0]=0; + + if (rlc_status.bytes_in_buffer > 0) { // There is DCCH to transmit + LOG_I(MAC,"[eNB %d] Frame %d, DL-DCCH->DLSCH CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP,frameP,CC_id,TBS-header_len_dcch); + sdu_lengths[0] = mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH, + TBS, //not used + (char *)&dlsch_buffer[0]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); + + LOG_I(MAC,"[eNB %d][DCCH] CC_id %d Got %d bytes from RLC\n",module_idP,CC_id,sdu_lengths[0]); + sdu_length_total = sdu_lengths[0]; + sdu_lcids[0] = DCCH; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH]+=1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH]+=sdu_lengths[0]; + num_sdus = 1; + } else { + header_len_dcch = 0; + sdu_length_total = 0; + } + } + + // check for DCCH1 and update header information (assume 2 byte sub-header) + 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)); // transport block set size less allocations for timing advance and + // DCCH SDU + sdu_lengths[num_sdus] = 0; + + if (rlc_status.bytes_in_buffer > 0) { + LOG_I(MAC,"[eNB %d], Frame %d, DCCH1->DLSCH, CC_id %d, Requesting %d bytes from RLC (RRC message)\n", + module_idP,frameP,CC_id,TBS-header_len_dcch-sdu_length_total); + sdu_lengths[num_sdus] += mac_rlc_data_req( + module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH+1, + TBS, //not used + (char *)&dlsch_buffer[sdu_length_total]); + + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(DCCH+1), T_INT(sdu_lengths[num_sdus])); + + sdu_lcids[num_sdus] = DCCH1; + sdu_length_total += sdu_lengths[num_sdus]; + header_len_dcch += 2; + UE_list->eNB_UE_stats[CC_id][UE_id].num_pdu_tx[DCCH1]+=1; + UE_list->eNB_UE_stats[CC_id][UE_id].num_bytes_tx[DCCH1]+=sdu_lengths[num_sdus]; + num_sdus++; + } + } + + // assume the max dtch header size, and adjust it later + header_len_dtch=0; + header_len_dtch_last=0; // the header length of the last mac sdu + // lcid has to be sorted before the actual allocation (similar struct as ue_list). + for (lcid=NB_RB_MAX-1; lcid>=DTCH ; lcid--){ + // TBD: check if the lcid is active + + header_len_dtch+=3; + header_len_dtch_last=3; + LOG_D(MAC,"[eNB %d], Frame %d, DTCH%d->DLSCH, Checking RLC status (tbs %d, len %d)\n", + module_idP,frameP,lcid,TBS, + TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch); + + if (TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch > 0 ) { // NN: > 2 ? + rlc_status = mac_rlc_status_ind(module_idP, + rnti, + module_idP, + frameP, + subframeP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch); + + + if (rlc_status.bytes_in_buffer > 0) { + + LOG_I(MAC,"[eNB %d][USER-PLANE DEFAULT DRB] Frame %d : DTCH->DLSCH, Requesting %d bytes from RLC (lcid %d total hdr len %d)\n", + module_idP,frameP,TBS-header_len_dcch-sdu_length_total-header_len_dtch,lcid, header_len_dtch); + sdu_lengths[num_sdus] = mac_rlc_data_req(module_idP, + rnti, + module_idP, + frameP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + lcid, + TBS, //not used + (char*)&dlsch_buffer[sdu_length_total]); + T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); + + LOG_I(MAC,"[eNB %d][USER-PLANE DEFAULT DRB] Got %d bytes for DTCH %d \n",module_idP,sdu_lengths[num_sdus],lcid); + sdu_lcids[num_sdus] = lcid; + sdu_length_total += sdu_lengths[num_sdus]; + + if (sdu_lengths[num_sdus] < 128) { + header_len_dtch--; + header_len_dtch_last--; + } + num_sdus++; + } // no data for this LCID + else { + header_len_dtch-=3; + } + } // no TBS left + else { + header_len_dtch-=3; + break; + } + } + if (header_len_dtch == 0 ) + header_len_dtch_last= 0; + // there is at least one SDU + // if (num_sdus > 0 ){ + if ((sdu_length_total + header_len_dcch + header_len_dtch )> 0) { + + // Now compute number of required RBs for total sdu length + // Assume RAH format 2 + // adjust header lengths + header_len_dcch_tmp = header_len_dcch; + header_len_dtch_tmp = header_len_dtch; + if (header_len_dtch==0) { + header_len_dcch = (header_len_dcch >0) ? 1 : 0;//header_len_dcch; // remove length field + } else { + header_len_dtch_last-=1; // now use it to find how many bytes has to be removed for the last MAC SDU + header_len_dtch = (header_len_dtch > 0) ? header_len_dtch - header_len_dtch_last :header_len_dtch; // remove length field for the last SDU + } + + mcs = 9; + + // decrease mcs until TBS falls below required length + while ((TBS > (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) && (mcs>0)) { + mcs--; + TBS = get_TBS_DL(mcs,6); + } + + // if we have decreased too much or we don't have enough RBs, increase MCS + while (TBS < (sdu_length_total + header_len_dcch + header_len_dtch + ta_len)) { + mcs++; + TBS = get_TBS_DL(mcs,6); + } + + //#ifdef DEBUG_eNB_SCHEDULER + LOG_I(MAC,"[eNB %d] CC_id %d Generated DLSCH header (mcs %d, TBS %d, nb_rb %d)\n", + module_idP,CC_id,mcs,TBS,6); + // msg("[MAC][eNB ] Reminder of DLSCH with random data %d %d %d %d \n", + // TBS, sdu_length_total, offset, TBS-sdu_length_total-offset); + + + if ((TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len) <= 2) { + padding = (TBS - header_len_dcch - header_len_dtch - sdu_length_total - ta_len); + post_padding = 0; + } else { + padding = 0; + + // adjust the header len + if (header_len_dtch==0) { + header_len_dcch = header_len_dcch_tmp; + } else { //if (( header_len_dcch==0)&&((header_len_dtch==1)||(header_len_dtch==2))) + header_len_dtch = header_len_dtch_tmp; + } + + post_padding = TBS - sdu_length_total - header_len_dcch - header_len_dtch - ta_len ; // 1 is for the postpadding header + } + + + offset = generate_dlsch_header((unsigned char*)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + num_sdus, //num_sdus + sdu_lengths, // + sdu_lcids, + 255, // no drx + ta_update, // timing advance + NULL, // contention res id + padding, + post_padding); + + + if (ta_update != 31) { + LOG_D(MAC, + "[eNB %d][DLSCH] Frame %d Generate header for UE_id %d on CC_id %d: sdu_length_total %d, num_sdus %d, sdu_lengths[0] %d, sdu_lcids[0] %d => payload offset %d,timing advance value : %d, padding %d,post_padding %d,(mcs %d, TBS %d, nb_rb %d),header_dcch %d, header_dtch %d\n", + module_idP,frameP, UE_id, CC_id, sdu_length_total,num_sdus,sdu_lengths[0],sdu_lcids[0],offset, + ta_update,padding,post_padding,mcs,TBS,6,header_len_dcch,header_len_dtch); + } + + + + // cycle through SDUs and place in dlsch_buffer + memcpy(&UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset],dlsch_buffer,sdu_length_total); + // memcpy(RC.mac[0].DLSCH_pdu[0][0].payload[0][offset],dcch_buffer,sdu_lengths[0]); + + // fill remainder of DLSCH with random data + for (j=0; j<(TBS-sdu_length_total-offset); j++) { + UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0][offset+sdu_length_total+j] = (char)(taus()&0xff); + } + + + if (opt_enabled == 1) { + trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], + TBS, module_idP, 3, UE_RNTI(module_idP,UE_id), + eNB->frame, eNB->subframe,0,0); + LOG_D(OPT,"[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", + module_idP, CC_id, frameP, UE_RNTI(module_idP,UE_id), TBS); + } + + T(T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), + T_INT(harq_pid), T_BUFFER(UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS)); + + // do PUCCH power control + // this is the normalized RX power + + /* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */ + normalized_rx_power = ue_sched_ctl->pucch1_snr[CC_id]; + target_rx_power = 208; + + // this assumes accumulated tpc + // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out + int32_t framex10psubframe = UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame*10+UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe; + if (((framex10psubframe+10)<=(frameP*10+subframeP)) || //normal case + ((framex10psubframe>(frameP*10+subframeP)) && (((10240-framex10psubframe+frameP*10+subframeP)>=10)))) //frame wrap-around + if (ue_sched_ctl->pucch1_cqi_update[CC_id] == 1) { + ue_sched_ctl->pucch1_cqi_update[CC_id] = 0; + + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame=frameP; + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe=subframeP; + + if (normalized_rx_power>(target_rx_power+4)) { + tpc = 0; //-1 + ue_sched_ctl->pucch_tpc_accumulated[CC_id]--; + } else if (normalized_rx_power<(target_rx_power-4)) { + tpc = 2; //+1 + ue_sched_ctl->pucch_tpc_accumulated[CC_id]++; + } else { + tpc = 1; //0 + } + + LOG_D(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", + module_idP,frameP, subframeP,harq_pid,tpc, + ue_sched_ctl->pucch_tpc_accumulated[CC_id],normalized_rx_power,target_rx_power); + + } // Po_PUCCH has been updated + else { + tpc = 1; //0 + } // time to do TPC update + else { + tpc = 1; //0 + } + + // Toggle NDI in first round + UE_template->oldNDI[harq_pid] = 1-UE_template->oldNDI[harq_pid]; + ue_sched_ctl->round[CC_id][harq_pid] = 0; + round=0; + } + + } + + if (round < 8) { + // fill in MDPDCCH + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_MPDCCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_format = (UE_template->rach_resource_type > 1) ? 11 : 10; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_narrow_band = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_prb_pairs = 6; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mpdcch_tansmission_type = epdcch_setconfig_r11->transmissionType_r11; + AssertFatal(UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11!=NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 is null\n"); + + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.start_symbol = *UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.aggregation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti_type = 4; // t-CRNTI + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.rnti = rnti; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.ce_mode = (UE_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.drms_scrambling_init = epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.transmission_power = 6000; // 0dB + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.resource_block_coding = getRIV (6, 0, 6) | ((epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1)<<5); + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs = 9; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pdsch_reptition_levels = 0; // fix to 4 for now + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.redundancy_version = rvseq[round&3]; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.new_data_indicator = UE_template->oldNDI[harq_pid]; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_process = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.pmi = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.harq_resource_offset = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.dci_subframe_repetition_number = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.tpc = 3; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index_length = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.downlink_assignment_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.allocate_prach_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.preamble_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.prach_mask_index = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.starting_ce_level = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.srs_request = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.antenna_ports_and_scrambling_identity = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.frequency_hopping_enabled_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.paging_direct_indication_differentiation_flag = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.direct_indication = 0; + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in + dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; + dl_req->number_pdu++; + UE_template->mcs[harq_pid] = dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs; + } + } + else if ((subframeP == 7)&&(round<8)) { // DLSCH + + int absSF = (frameP * 10) + subframeP; + + // Have to check that MPDCCH was generated + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating DLSCH (ce_level %d RNTI %x)\n", + module_idP, CC_id, frameP, subframeP, UE_template->rach_resource_type - 1,rnti); + + first_rb = narrowband_to_first_rb (&cc[CC_id], epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); + dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); + dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; + dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = rnti; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_block_coding = getRIV (to_prb (cc[CC_id].mib->message.dl_Bandwidth), first_rb, 6); // check that this isn't getRIV(6,0,6) + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.modulation = 2; //QPSK + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.redundancy_version = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_blocks = 1; // first block + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transport_block_to_codeword_swap_flag = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_scheme = (cc[CC_id].p_eNB == 1) ? 0 : 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_layers = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.number_of_subbands = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.codebook_index = ; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ue_category_capacity = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pa = 4; // 0 dB + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.delta_power_offset_index = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.ngap = 0; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.nprb = get_subbandsize (cc[CC_id].mib->message.dl_Bandwidth); // ignored + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.transmission_mode = (cc[CC_id].p_eNB == 1) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; + // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = *UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11; + + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.ue_type = (UE_template->rach_resource_type < 3) ? 1 : 2; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; + dl_req->number_pdu++; + + // DL request + eNB->TX_req[CC_id].sfn_sf = (frameP << 4) + subframeP; + TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + TX_req->pdu_length = get_TBS_DL(UE_template->mcs[harq_pid], + 6); + TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->num_segments = 1; + TX_req->segments[0].segment_length = TX_req->pdu_length; + TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0]; + eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + + ackNAK_absSF = absSF + 4; + ul_req = &eNB->UL_req_tmp[CC_id][ackNAK_absSF % 10].ul_config_request_body; + ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + + ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; + ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_uci_harq_pdu)); + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.handle = 0; // don't know how to use this + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti = rnti; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.ue_type = (UE_template->rach_resource_type < 3) ? 1 : 2; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.empty_symbols = 0; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.total_number_of_repetitions = pucchreps[UE_template->rach_resource_type - 1]; + ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel13.repetition_number = 0; + + if (cc[CC_id].tdd_Config == NULL) { // FDD case + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel9_fdd.n_pucch_1_0 = n1pucchan[UE_template->rach_resource_type - 1]; + // NOTE: How to fill in the rest of the n_pucch_1_0 information 213 Section 10.1.2.1 in the general case + // = N_ECCE_q + Delta_ARO + n1pucchan[ce_level] + // higher in the MPDCCH configuration, N_ECCE_q is hard-coded to 0, and harq resource offset to 0 => + // Delta_ARO = 0 from Table 10.1.2.1-1 + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel9_fdd.harq_size = 1; // 1-bit ACK/NAK + ul_config_pdu->uci_harq_pdu.harq_information.harq_information_rel9_fdd.number_of_pucch_resources = 1; + } else { + AssertFatal (1 == 0, "PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n"); + } + ul_req->number_of_pdus++; + T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_id), T_INT (rnti), T_INT (frameP), T_INT (subframeP), + T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_id][0][UE_id].payload[0], TX_req->pdu_length)); + + if (opt_enabled == 1) { + trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0], TX_req->pdu_length , UE_id, 3, rnti, frameP, subframeP, 0, 0); + LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_id, frameP, rnti, TX_req->pdu_length ); + } + + } + } + +} +#endif //------------------------------------------------------------------------------ void fill_DLSCH_dci( diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index e44fb518d6..af623d2d9f 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -3072,6 +3072,9 @@ void extract_harq(module_id_t mod_idP,int CC_idP,int UE_id,frame_t frameP,sub_fr uint8_t harq_pid = ((10*frameP) + subframeP + 10236)&7; + // use 1 HARQ proces of BL/CE UE for now + if (UE_list->UE_template[pCCid][UE_id].rach_resource_type > 0) harq_pid = 0; + switch (harq_indication_fdd->mode) { case 0: // Format 1a/b (10.1.2.1) AssertFatal(numCC==1,"numCC %d > 1, should not be using Format1a/b\n",numCC); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index a92c3419f9..becb125dd5 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -107,7 +107,7 @@ void rx_sdu(const module_id_t enb_mod_idP, #ifdef Rel14 if (UE_list->UE_template[CC_idP][UE_id].rach_resource_type > 0) harq_pid=0; #endif - LOG_D(MAC,"[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid], + LOG_I(MAC,"[eNB %d][PUSCH %d] CC_id %d Received ULSCH sdu round %d from PHY (rnti %x, UE_id %d) ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid], current_rnti, UE_id,ul_cqi); AssertFatal(UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid] < 8, @@ -129,7 +129,7 @@ void rx_sdu(const module_id_t enb_mod_idP, } } else { // we've got an error - LOG_D(MAC,"[eNB %d][PUSCH %d] CC_id %d ULSCH in error in round %d, ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, + LOG_I(MAC,"[eNB %d][PUSCH %d] CC_id %d ULSCH in error in round %d, ul_cqi %d\n",enb_mod_idP,harq_pid,CC_idP, UE_list->UE_sched_ctrl[UE_id].round_UL[CC_idP][harq_pid],ul_cqi); // AssertFatal(1==0,"ulsch in error\n"); @@ -1284,6 +1284,8 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, nfapi_ul_config_request_body_t *ul_req_tmp = &eNB->UL_req_tmp[CC_id][sched_subframeP].ul_config_request_body; // loop over all active UEs + if ((frameP&1) == 1) return; + for (UE_id=UE_list->head_ul; UE_id>=0; UE_id=UE_list->next_ul[UE_id]) { if (UE_list->UE_template[UE_PCCID(module_idP,UE_id)][UE_id].rach_resource_type == 0) continue; @@ -1319,7 +1321,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->ul_total_buffer; VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_BO,RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP]); - if (UE_is_to_be_scheduled(module_idP,CC_id,UE_id) > 0 || round > 0)// || ((frameP%10)==0)) + if ((UE_template->ul_SR >0 || round > 0 || status < RRC_CONNECTED)&&(subframeP==5)) // if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames { LOG_I(MAC,"[eNB %d][PUSCH %d] Frame %d subframe %d Scheduling UE %d/%x in round %d(SR %d,UL_inactivity timer %d,UL_failure timer %d,cqi_req_timer %d)\n", @@ -1333,15 +1335,22 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, emtc_active[CC_id]=1; UE_template->ul_SR = 0; status = mac_eNB_get_rrc_status(module_idP,rnti); + + /* if (status < RRC_CONNECTED) cqi_req = 0; - else if (UE_sched_ctrl->cqi_req_timer>30) { + else if (UE_sched_ctrl->cqi_req_timer>300) { cqi_req = 1; UE_sched_ctrl->cqi_req_timer=0; + } else cqi_req = 0; + */ + cqi_req = 0; + UE_template->oldCQI_UL[harq_pid] = cqi_req; + //power control //compute the expected ULSCH RX power (for the stats) @@ -1370,6 +1379,9 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, tpc = 1; //0 } //tpc = 1; + + UE_template->oldTPC_UL[harq_pid] = tpc; + if (tpc!=1) { LOG_D(MAC,"[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", module_idP,frameP,subframeP,harq_pid,tpc, @@ -1401,16 +1413,10 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(0), T_INT(6), T_INT(UE_template->TBS_UL[harq_pid]), T_INT(ndi)); - if (mac_eNB_get_rrc_status(module_idP,rnti) < RRC_CONNECTED) - LOG_D(MAC,"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, TBS %d, harq_pid %d)\n", - module_idP,harq_pid,rnti,CC_id,frameP,subframeP,UE_id,UE_template->mcs_UL[harq_pid], - 0,6, - UE_template->TBS_UL[harq_pid],harq_pid); - // bad indices : 20 (40 PRB), 21 (45 PRB), 22 (48 PRB) //store for possible retransmission UE_template->nb_rb_ul[harq_pid] = 6; - UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc, 2); + UE_sched_ctrl->ul_scheduled |= (1<head) @@ -1428,8 +1434,6 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, // save it for a potential retransmission UE_template->cshift[harq_pid] = cshift; - LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL 6-0A MPDCCH for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", - harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP); AssertFatal (UE_template->physicalConfigDedicated != NULL, "UE_template->physicalConfigDedicated is null\n"); AssertFatal (UE_template->physicalConfigDedicated->ext4 != NULL, @@ -1453,7 +1457,12 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 is null"); AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present==EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310_PR_setup, "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present is not setup\n"); - + + LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL 6-0A MPDCCH for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d,UESS MPDCCH Narrowband %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP,(int)epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); + + UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc, + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); @@ -1488,7 +1497,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, "epdcch_setconfig_r11->ext2->mpdcch_config_r13->mpdcch_pdsch_HoppingConfig_r13 is not off\n"); hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.frequency_hopping_flag = 1-epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.redudency_version = 0; - hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = UE_template->oldNDI_UL[harq_pid]; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.harq_process = 0; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = tpc; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = cqi_req; @@ -1504,8 +1513,9 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++; - LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d\n", - harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP); + LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d, UESS mpdcch narrowband %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP, + (int)epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], @@ -1553,6 +1563,84 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, T_INT(subframeP), T_INT(harq_pid), T_INT(UE_template->mcs_UL[harq_pid]), T_INT(0), T_INT(6), T_INT(round)); + AssertFatal (UE_template->physicalConfigDedicated != NULL, + "UE_template->physicalConfigDedicated is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4 != NULL, + "UE_template->physicalConfigDedicated->ext4 is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 != NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11 is null\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present == EPDCCH_Config_r11__config_r11_PR_setup, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.present != setup\n"); + AssertFatal (UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 != NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11 = NULL\n"); + EPDCCH_SetConfig_r11_t *epdcch_setconfig_r11 = UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.setConfigToAddModList_r11->list.array[0]; + AssertFatal(epdcch_setconfig_r11 != NULL, "epdcch_setconfig_r11 is null\n"); + AssertFatal(epdcch_setconfig_r11->ext2!=NULL, "epdcch_setconfig_r11->ext2 is null\n"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13!=NULL, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13!=NULL, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->present==EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13_PR_setup, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13->present is not setup\n"); + AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310!=NULL, + "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310 is null"); + AssertFatal(epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present==EPDCCH_SetConfig_r11__ext2__numberPRB_Pairs_v1310_PR_setup, + "epdcch_setconfig_r11->ext2->numberPRB_Pairs_v1310->present is not setup\n"); + + LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL 6-0A MPDCCH for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d,UESS MPDCCH Narrowband %d\n", + harq_pid,frameP,subframeP,UE_id,rnti,sched_frame,sched_subframeP,(int)epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); + + UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc, + epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; + memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); + + hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE; + hi_dci0_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_mpdcch_pdu)); + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dci_format = (UE_template->rach_resource_type > 1) ? 5 : 4; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ce_mode = (UE_template->rach_resource_type > 1) ? 2 : 1; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mpdcch_narrowband = epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1; + + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_prb_pairs = 6; // checked above that it has to be this + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_assignment = 0; // Note: this can be dynamic + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mpdcch_transmission_type = epdcch_setconfig_r11->transmissionType_r11; // distibuted + + AssertFatal(UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11!=NULL, + "UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11 is null\n"); + + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.start_symbol = *UE_template->physicalConfigDedicated->ext4->epdcch_Config_r11->config_r11.choice.setup.startSymbol_r11; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ecce_index = 0; // Note: this should be dynamic + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.aggreagation_level = 24; // OK for CEModeA r1-3 (9.1.5-1b) or CEModeB r1-4 + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.rnti_type = 4; // other + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.rnti = rnti; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ce_mode = (UE_template->rach_resource_type < 3) ? 1 : 2; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.drms_scrambling_init = epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.initial_transmission_sf_io = (frameP * 10) + subframeP; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.transmission_power = 6000; // 0dB + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.resource_block_start = UE_template->first_rb_ul[harq_pid]; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_resource_blocks = 6; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.mcs = 4; // adjust according to size of RAR, 208 bits with N1A_PRB=3 + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.pusch_repetition_levels = 0; + AssertFatal(epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13== + EPDCCH_SetConfig_r11__ext2__mpdcch_config_r13__setup__mpdcch_pdsch_HoppingConfig_r13_off, + "epdcch_setconfig_r11->ext2->mpdcch_config_r13->mpdcch_pdsch_HoppingConfig_r13 is not off\n"); + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.frequency_hopping_flag = 1-epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_pdsch_HoppingConfig_r13; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.redudency_version = rvidx_tab[round&3]; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = UE_template->oldNDI_UL[harq_pid]; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.harq_process = harq_pid; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = UE_template->oldTPC_UL[harq_pid]; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = UE_template->oldCQI_UL[harq_pid]; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ul_inex = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dai_presence_flag = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dl_assignment_index = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.srs_request = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dci_subframe_repetition_number = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tcp_bitmap = 0; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.total_dci_length_include_padding = 29; // hard-coded for 10 MHz + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_tx_antenna_ports = 1; + + eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++; + fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], cqi_req, cc, diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 984cf315b1..68f013e7db 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -2503,7 +2503,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_PUCCH_ResourceIndex = 18;//ue_context_pP->local_uid; if (carrier->sib1->tdd_Config == NULL) { // FDD - physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 5+(ue_context_pP->local_uid%10); // Isr = 5 (every 10 subframes, offset=2+UE_id mod3) + physicalConfigDedicated2->schedulingRequestConfig->choice.setup.sr_ConfigIndex = 76+(ue_context_pP->local_uid%10); // Isr = 76 (every 80 subframes, offset=2+UE_id mod3) } else { switch (carrier->sib1->tdd_Config->subframeAssignment) { case 1: diff --git a/openair2/RRC/LITE/rrc_common.c b/openair2/RRC/LITE/rrc_common.c index 9ae9606127..736b16422b 100755 --- a/openair2/RRC/LITE/rrc_common.c +++ b/openair2/RRC/LITE/rrc_common.c @@ -332,7 +332,7 @@ rrc_rx_tx( // check for UL failure RB_FOREACH(ue_context_p, rrc_ue_tree_s, &(RC.rrc[ctxt_pP->module_id]->rrc_ue_head)) { - LOG_I(RRC,"SFN.SN %d.%d => release timer %d/%d\n",ctxt_pP->frame,ctxt_pP->subframe, + LOG_D(RRC,"SFN.SN %d.%d => release timer %d/%d\n",ctxt_pP->frame,ctxt_pP->subframe, ue_context_p->ue_context.ue_release_timer,ue_context_p->ue_context.ue_release_timer_thres); if ((ctxt_pP->frame == 0) && (ctxt_pP->subframe==0)) { if (ue_context_p->ue_context.Initialue_identity_s_TMSI.presence == TRUE) { diff --git a/openair2/RRC/LITE/rrc_eNB.c b/openair2/RRC/LITE/rrc_eNB.c index 22aff3299d..7b708b5673 100755 --- a/openair2/RRC/LITE/rrc_eNB.c +++ b/openair2/RRC/LITE/rrc_eNB.c @@ -1154,7 +1154,7 @@ rrc_eNB_generate_RRCConnectionRelease( // set release timer ue_context_pP->ue_context.ue_release_timer=1; // remove UE after 10 frames after RRCConnectionRelease is triggered - ue_context_pP->ue_context.ue_release_timer_thres=100; + ue_context_pP->ue_context.ue_release_timer_thres=1000; LOG_I(RRC, PROTOCOL_RRC_CTXT_UE_FMT" Logical Channel DL-DCCH, Generate RRCConnectionRelease (bytes %d)\n", PROTOCOL_RRC_CTXT_UE_ARGS(ctxt_pP), @@ -3890,8 +3890,8 @@ rrc_eNB_generate_RRCConnectionSetup( // activate release timer, if RRCSetupComplete not received after 10 frames, remove UE ue_context_pP->ue_context.ue_release_timer=1; - // remove UE after 10 frames after RRCConnectionRelease is triggered - ue_context_pP->ue_context.ue_release_timer_thres=100; + // remove UE after 100 frames after RRCConnectionRelease is triggered + ue_context_pP->ue_context.ue_release_timer_thres=1000; } diff --git a/targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc b/targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc deleted file mode 100755 index 631f2162bd..0000000000 --- a/targets/ARCH/USRP/USERSPACE/LIB/Makefile.inc +++ /dev/null @@ -1,4 +0,0 @@ -USRP_OBJ += $(OPENAIR_TARGETS)/ARCH/USRP/USERSPACE/LIB/usrp_lib.o -USRP_FILE_OBJ += $(OPENAIR_TARGETS)/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp -USRP_CFLAGS += -I$(OPENAIR_TARGETS)/ARCH/COMMON -I$(OPENAIR_TARGETS)/ARCH/USRP/USERSPACE/LIB/ -I$(OPENAIR_TARGETS)/COMMON - diff --git a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp old mode 100755 new mode 100644 index 14f4c9d756..8b62a8e698 --- a/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -270,11 +270,53 @@ static int sync_to_gps(openair0_device *device) return EXIT_SUCCESS; } +#if defined(USRP_REC_PLAY) +#include "usrp_lib.h" +static FILE *pFile = NULL; +int mmapfd = 0; +struct stat sb; +iqrec_t *ms_sample = NULL; // memory for all subframes +unsigned int nb_samples = 0; +unsigned int cur_samples = 0; +int64_t wrap_count = 0; +int64_t wrap_ts = 0; +unsigned int u_sf_mode = 0; // 1=record, 2=replay +unsigned int u_sf_record = 0; // record mode +unsigned int u_sf_replay = 0; // replay mode +char u_sf_filename[1024]; // subframes file path +unsigned int u_sf_max = DEF_NB_SF; // max number of recorded subframes +unsigned int u_sf_loops = DEF_SF_NB_LOOP; // number of loops in replay mode +unsigned int u_sf_read_delay = DEF_SF_DELAY_READ; // read delay in replay mode +unsigned int u_sf_write_delay = DEF_SF_DELAY_WRITE; // write delay in replay mode +char *tmp_filename[1]; // use an array of pointer (libconfig does not seems to work with char array yet) + +char config_opt_sf_file[] = CONFIG_OPT_SF_FILE; +char config_def_sf_file[] = DEF_SF_FILE; +char config_hlp_sf_file[] = CONFIG_HLP_SF_FILE; +char config_opt_sf_rec[] = CONFIG_OPT_SF_REC; +char config_hlp_sf_rec[] = CONFIG_HLP_SF_REC; +char config_opt_sf_rep[] = CONFIG_OPT_SF_REP; +char config_hlp_sf_rep[] = CONFIG_HLP_SF_REP; +char config_opt_sf_max[] = CONFIG_OPT_SF_MAX; +char config_hlp_sf_max[] = CONFIG_HLP_SF_MAX; +char config_opt_sf_loops[] = CONFIG_OPT_SF_LOOPS; +char config_hlp_sf_loops[] = CONFIG_HLP_SF_LOOPS; +char config_opt_sf_rdelay[] = CONFIG_OPT_SF_RDELAY; +char config_hlp_sf_rdelay[] = CONFIG_HLP_SF_RDELAY; +char config_opt_sf_wdelay[] = CONFIG_OPT_SF_WDELAY; +char config_hlp_sf_wdelay[] = CONFIG_HLP_SF_WDELAY; + +#endif + /*! \brief Called to start the USRP transceiver. Return 0 if OK, < 0 if error @param device pointer to the device structure specific to the RF hardware target */ static int trx_usrp_start(openair0_device *device) { +#if defined(USRP_REC_PLAY) + if (u_sf_mode != 2) { // not replay mode +#endif + usrp_state_t *s = (usrp_state_t*)device->priv; @@ -313,12 +355,21 @@ static int trx_usrp_start(openair0_device *device) { s->rx_count = 0; s->tx_count = 0; s->rx_timestamp = 0; +#if defined(USRP_REC_PLAY) + } +#endif return 0; } /*! \brief Terminate operation of the USRP transceiver -- free all associated resources * \param device the hardware to use */ static void trx_usrp_end(openair0_device *device) { +#if defined(USRP_REC_PLAY) // For some ugly reason, this can be called several times... + static int done = 0; + if (done == 1) return; + done = 1; + if (u_sf_mode != 2) { // not subframes replay +#endif usrp_state_t *s = (usrp_state_t*)device->priv; s->rx_stream->issue_stream_cmd(uhd::stream_cmd_t::STREAM_MODE_STOP_CONTINUOUS); @@ -326,7 +377,45 @@ static void trx_usrp_end(openair0_device *device) { s->tx_md.end_of_burst = true; s->tx_stream->send("", 0, s->tx_md); s->tx_md.end_of_burst = false; - +#if defined(USRP_REC_PLAY) + } +#endif +#if defined(USRP_REC_PLAY) + if (u_sf_mode == 1) { // subframes store + pFile = fopen (u_sf_filename,"wb+"); + if (pFile == NULL) { + std::cerr << "Cannot open " << u_sf_filename << std::endl; + } else { + unsigned int i = 0; + unsigned int modu = 0; + if ((modu = nb_samples % 10) != 0) { + nb_samples -= modu; // store entire number of frames + } + std::cerr << "Writing " << nb_samples << " subframes to " << u_sf_filename << " ..." << std::endl; + for (i = 0; i < nb_samples; i++) { + fwrite(ms_sample+i, sizeof(unsigned char), sizeof(iqrec_t), pFile); + } + fclose (pFile); + std::cerr << "File " << u_sf_filename << " closed." << std::endl; + } + } + if (u_sf_mode == 1) { // record + if (ms_sample != NULL) { + free((void*)ms_sample); + ms_sample = NULL; + } + } + if (u_sf_mode == 2) { // replay + if (ms_sample != MAP_FAILED) { + munmap(ms_sample, sb.st_size); + ms_sample = NULL; + } + if (mmapfd != 0) { + close(mmapfd); + mmapfd = 0; + } + } +#endif } /*! \brief Called to send samples to the USRP RF target @@ -339,6 +428,9 @@ static void trx_usrp_end(openair0_device *device) { */ static int trx_usrp_write(openair0_device *device, openair0_timestamp timestamp, void **buff, int nsamps, int cc, int flags) { int ret=0; +#if defined(USRP_REC_PLAY) + if (u_sf_mode != 2) { // not replay mode +#endif usrp_state_t *s = (usrp_state_t*)device->priv; int nsamps2; // aligned to upper 32 or 16 byte boundary @@ -405,6 +497,15 @@ static int trx_usrp_write(openair0_device *device, openair0_timestamp timestamp, if (ret != nsamps) LOG_E(PHY,"[xmit] tx samples %d != %d\n",ret,nsamps); +#if defined(USRP_REC_PLAY) + } else { + struct timespec req; + req.tv_sec = 0; + req.tv_nsec = u_sf_write_delay * 1000; + nanosleep(&req, NULL); + ret = nsamps; + } +#endif return ret; } @@ -421,9 +522,12 @@ static int trx_usrp_write(openair0_device *device, openair0_timestamp timestamp, * \returns the number of sample read */ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp, void **buff, int nsamps, int cc) { - usrp_state_t *s = (usrp_state_t*)device->priv; - int samples_received=0,i,j; - int nsamps2; // aligned to upper 32 or 16 byte boundary + usrp_state_t *s = (usrp_state_t*)device->priv; + int samples_received=0,i,j; + int nsamps2; // aligned to upper 32 or 16 byte boundary +#if defined(USRP_REC_PLAY) + if (u_sf_mode != 2) { // not replay mode +#endif #if defined(__x86_64) || defined(__i386__) #ifdef __AVX2__ nsamps2 = (nsamps+7)>>3; @@ -490,7 +594,45 @@ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp s->rx_count += nsamps; s->rx_timestamp = s->rx_md.time_spec.to_ticks(s->sample_rate); *ptimestamp = s->rx_timestamp; - return samples_received; +#if defined (USRP_REC_PLAY) + } +#endif +#if defined(USRP_REC_PLAY) + if (u_sf_mode == 1) { // record mode + // Copy subframes to memory (later dump on a file) + if (nb_samples < u_sf_max) { + (ms_sample+nb_samples)->header = BELL_LABS_IQ_HEADER; + (ms_sample+nb_samples)->ts = *ptimestamp; + memcpy((ms_sample+nb_samples)->samples, buff[0], nsamps*4); + nb_samples++; + } + } else if (u_sf_mode == 2) { // replay mode + if (cur_samples == nb_samples) { + cur_samples = 0; + wrap_count++; + if (wrap_count == u_sf_loops) { + std::cerr << "USRP device terminating subframes replay mode after " << u_sf_loops << " loops." << std::endl; + return 0; // should make calling process exit + } + wrap_ts = wrap_count * (nb_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000)); + } + if (cur_samples < nb_samples) { + *ptimestamp = (ms_sample[0].ts + (cur_samples * (((int)(device->openair0_cfg[0].sample_rate)) / 1000))) + wrap_ts; + if (cur_samples == 0) { + std::cerr << "starting subframes file with wrap_count=" << wrap_count << " wrap_ts=" << wrap_ts + << " ts=" << *ptimestamp << std::endl; + } + memcpy(buff[0], &ms_sample[cur_samples].samples[0], nsamps*4); + cur_samples++; + } + struct timespec req; + req.tv_sec = 0; + req.tv_nsec = u_sf_read_delay * 1000; + nanosleep(&req, NULL); + return nsamps; + } +#endif + return samples_received; } /*! \brief Compares two variables within precision @@ -567,7 +709,6 @@ int trx_usrp_set_gains(openair0_device* device, usrp_state_t *s = (usrp_state_t*)device->priv; ::uhd::gain_range_t gain_range_tx = s->usrp->get_tx_gain_range(0); s->usrp->set_tx_gain(gain_range_tx.stop()-openair0_cfg[0].tx_gain[0]); - ::uhd::gain_range_t gain_range = s->usrp->get_rx_gain_range(0); // limit to maximum gain if (openair0_cfg[0].rx_gain[0]-openair0_cfg[0].rx_gain_offset[0] > gain_range.stop()) { @@ -685,12 +826,135 @@ int trx_usrp_reset_stats(openair0_device* device) { return(0); } +#if defined(USRP_REC_PLAY) +extern "C" { +/*! \brief Initializer for USRP record/playback config + * \param parameter array description + * \returns 0 on success + */ +int trx_usrp_recplay_config_init(paramdef_t *usrp_recplay_params) { + // --subframes-file + memcpy(usrp_recplay_params[0].optname, config_opt_sf_file, strlen(config_opt_sf_file)); + usrp_recplay_params[0].helpstr = config_hlp_sf_file; + usrp_recplay_params[0].paramflags=PARAMFLAG_NOFREE; + usrp_recplay_params[0].strptr=(char **)&tmp_filename[0]; + usrp_recplay_params[0].defstrval = NULL; + usrp_recplay_params[0].type=TYPE_STRING; + usrp_recplay_params[0].numelt=sizeof(u_sf_filename); + // --subframes-record + memcpy(usrp_recplay_params[1].optname, config_opt_sf_rec, strlen(config_opt_sf_rec)); + usrp_recplay_params[1].helpstr = config_hlp_sf_rec; + usrp_recplay_params[1].paramflags=PARAMFLAG_BOOL; + usrp_recplay_params[1].uptr=&u_sf_record; + usrp_recplay_params[1].defuintval=0; + usrp_recplay_params[1].type=TYPE_UINT; + usrp_recplay_params[1].numelt=0; + // --subframes-replay + memcpy(usrp_recplay_params[2].optname, config_opt_sf_rep, strlen(config_opt_sf_rep)); + usrp_recplay_params[2].helpstr = config_hlp_sf_rep; + usrp_recplay_params[2].paramflags=PARAMFLAG_BOOL; + usrp_recplay_params[2].uptr=&u_sf_replay; + usrp_recplay_params[2].defuintval=0; + usrp_recplay_params[2].type=TYPE_UINT; + usrp_recplay_params[2].numelt=0; + // --subframes-max + memcpy(usrp_recplay_params[3].optname, config_opt_sf_max, strlen(config_opt_sf_max)); + usrp_recplay_params[3].helpstr = config_hlp_sf_max; + usrp_recplay_params[3].paramflags=0; + usrp_recplay_params[3].uptr=&u_sf_max; + usrp_recplay_params[3].defuintval=DEF_NB_SF; + usrp_recplay_params[3].type=TYPE_UINT; + usrp_recplay_params[3].numelt=0; + // --subframes-loops + memcpy(usrp_recplay_params[4].optname, config_opt_sf_loops, strlen(config_opt_sf_loops)); + usrp_recplay_params[4].helpstr = config_hlp_sf_loops; + usrp_recplay_params[4].paramflags=0; + usrp_recplay_params[4].uptr=&u_sf_loops; + usrp_recplay_params[4].defuintval=DEF_SF_NB_LOOP; + usrp_recplay_params[4].type=TYPE_UINT; + usrp_recplay_params[4].numelt=0; + // --subframes-read-delay + memcpy(usrp_recplay_params[5].optname, config_opt_sf_rdelay, strlen(config_opt_sf_rdelay)); + usrp_recplay_params[5].helpstr = config_hlp_sf_rdelay; + usrp_recplay_params[5].paramflags=0; + usrp_recplay_params[5].uptr=&u_sf_read_delay; + usrp_recplay_params[5].defuintval=DEF_SF_DELAY_READ; + usrp_recplay_params[5].type=TYPE_UINT; + usrp_recplay_params[5].numelt=0; + // --subframes-write-delay + memcpy(usrp_recplay_params[6].optname, config_opt_sf_wdelay, strlen(config_opt_sf_wdelay)); + usrp_recplay_params[6].helpstr = config_hlp_sf_wdelay; + usrp_recplay_params[6].paramflags=0; + usrp_recplay_params[6].uptr=&u_sf_write_delay; + usrp_recplay_params[6].defuintval=DEF_SF_DELAY_WRITE; + usrp_recplay_params[6].type=TYPE_UINT; + usrp_recplay_params[6].numelt=0; + + return 0; // always ok +} +} +#endif + extern "C" { /*! \brief Initialize Openair USRP target. It returns 0 if OK * \param device the hardware to use * \param openair0_cfg RF frontend parameters set by application */ int device_init(openair0_device* device, openair0_config_t *openair0_cfg) { +#if defined(USRP_REC_PLAY) + paramdef_t usrp_recplay_params[7]; + // to check + static int done = 0; + if (done == 1) { + return 0; + } // prevent from multiple init + done = 1; + // end to check + memset(usrp_recplay_params, 0, 7*sizeof(paramdef_t)); + memset(&u_sf_filename[0], 0, 1024); + tmp_filename[0] = u_sf_filename; + if (trx_usrp_recplay_config_init(usrp_recplay_params) != 0) { + std::cerr << "USRP device record/replay mode configuration error exiting" << std::endl; + return -1; + } + config_process_cmdline(usrp_recplay_params,sizeof(usrp_recplay_params)/sizeof(paramdef_t),NULL); + + if (strlen(tmp_filename[0]) != 0) { + (void) strcpy(u_sf_filename, tmp_filename[0]); + } else { + (void) strcpy(u_sf_filename, DEF_SF_FILE); + } + + if (u_sf_replay == 1) u_sf_mode = 2; + if (u_sf_record == 1) u_sf_mode = 1; + + if (u_sf_mode == 2) { + // Replay subframes from from file + int bw_gain_adjust=0; + device->openair0_cfg = openair0_cfg; + device->type = USRP_B200_DEV; + openair0_cfg[0].rx_gain_calib_table = calib_table_b210_38; + bw_gain_adjust=1; + openair0_cfg[0].tx_sample_advance = 80; + openair0_cfg[0].tx_bw = 20e6; + openair0_cfg[0].rx_bw = 20e6; + openair0_cfg[0].iq_txshift = 4;//shift + openair0_cfg[0].iq_rxrescale = 15;//rescale iqs + set_rx_gain_offset(&openair0_cfg[0],0,bw_gain_adjust); + device->priv = NULL; + device->trx_start_func = trx_usrp_start; + device->trx_write_func = trx_usrp_write; + device->trx_read_func = trx_usrp_read; + device->trx_get_stats_func = trx_usrp_get_stats; + device->trx_reset_stats_func = trx_usrp_reset_stats; + device->trx_end_func = trx_usrp_end; + device->trx_stop_func = trx_usrp_stop; + device->trx_set_freq_func = trx_usrp_set_freq; + device->trx_set_gains_func = trx_usrp_set_gains; + device->openair0_cfg = openair0_cfg; + std::cerr << "USRP device initialized in subframes replay mode for " << u_sf_loops << " loops." << std::endl; + } else { +#endif uhd::set_thread_priority_safe(1.0); usrp_state_t *s = (usrp_state_t*)calloc(sizeof(usrp_state_t),1); @@ -706,6 +970,11 @@ extern "C" { int vers=0,subvers=0,subsubvers=0; int bw_gain_adjust=0; +#if defined(USRP_REC_PLAY) + if (u_sf_mode == 1) { + std::cerr << "USRP device initialized in subframes record mode" << std::endl; + } +#endif sscanf(uhd::get_version_string().c_str(),"%d.%d.%d",&vers,&subvers,&subsubvers); LOG_I(PHY,"Checking for USRPs : UHD %s (%d.%d.%d)\n", uhd::get_version_string().c_str(),vers,subvers,subsubvers); @@ -743,7 +1012,9 @@ extern "C" { //s->usrp->set_master_clock_rate(usrp_master_clock); openair0_cfg[0].rx_gain_calib_table = calib_table_x310; - +#if defined(USRP_REC_PLAY) + std::cerr << "-- Using calibration table: calib_table_x310" << std::endl; // Bell Labs info +#endif switch ((int)openair0_cfg[0].sample_rate) { case 30720000: // from usrp_time_offset @@ -802,9 +1073,15 @@ extern "C" { if ((vers == 3) && (subvers == 9) && (subsubvers>=2)) { openair0_cfg[0].rx_gain_calib_table = calib_table_b210; bw_gain_adjust=0; +#if defined(USRP_REC_PLAY) + std::cerr << "-- Using calibration table: calib_table_b210" << std::endl; // Bell Labs info +#endif } else { openair0_cfg[0].rx_gain_calib_table = calib_table_b210_38; bw_gain_adjust=1; +#if defined(USRP_REC_PLAY) + std::cerr << "-- Using calibration table: calib_table_b210_38" << std::endl; // Bell Labs info +#endif } switch ((int)openair0_cfg[0].sample_rate) { @@ -966,6 +1243,45 @@ extern "C" { } } +#if defined(USRP_REC_PLAY) + } +#endif +#if defined(USRP_REC_PLAY) + if (u_sf_mode == 1) { // record mode + ms_sample = (iqrec_t*) malloc(u_sf_max * sizeof(iqrec_t)); + if (ms_sample == NULL) { + std::cerr<< "Memory allocation failed for subframe record or replay mode." << std::endl; + exit(-1); + } + memset(ms_sample, 0, u_sf_max * BELL_LABS_IQ_BYTES_PER_SF); + } + if (u_sf_mode == 2) { + // use mmap + mmapfd = open(u_sf_filename, O_RDONLY | O_LARGEFILE); + if (mmapfd != 0) { + fstat(mmapfd, &sb); + std::cerr << "Loading subframes using mmap() from " << u_sf_filename << " size=" << (uint64_t)sb.st_size << " bytes ..." << std::endl; + ms_sample = (iqrec_t*) mmap(NULL, sb.st_size, PROT_WRITE, MAP_PRIVATE, mmapfd, 0); + if (ms_sample != MAP_FAILED) { + nb_samples = (sb.st_size / sizeof(iqrec_t)); + int aligned = (((unsigned long)ms_sample & 31) == 0)? 1:0; + std::cerr<< "Loaded "<< nb_samples << " subframes." << std::endl; + if (aligned == 0) { + std::cerr<< "mmap address is not 32 bytes aligned, exiting." << std::endl; + close(mmapfd); + exit(-1); + } + } else { + std::cerr << "Cannot mmap file, exiting." << std::endl; + close(mmapfd); + exit(-1); + } + } else { + std::cerr << "Cannot open " << u_sf_filename << " , exiting." << std::endl; + exit(-1); + } + } +#endif return 0; } } diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c index 54693f43c8..e1953751ea 100755 --- a/targets/RT/USER/lte-ru.c +++ b/targets/RT/USER/lte-ru.c @@ -1237,7 +1237,7 @@ void fill_rf_config(RU_t *ru, char *rf_config_file) { cfg->tx_freq[i] = (double)fp->dl_CarrierFreq; cfg->rx_freq[i] = (double)fp->ul_CarrierFreq; - cfg->tx_gain[i] = (double)fp->att_tx; + cfg->tx_gain[i] = 10.0;//(double)fp->att_tx; cfg->rx_gain[i] = ru->max_rxgain-(double)fp->att_rx; cfg->configFilename = rf_config_file; From 8d5a66e537e2c220682058f3eab7cea70e5276a4 Mon Sep 17 00:00:00 2001 From: yilmazt Date: Wed, 27 Jun 2018 11:46:06 +0200 Subject: [PATCH 089/125] edci.c minor increment update --- openair1/PHY/LTE_TRANSPORT/edci.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 546ff4a4f0..4789cc68b8 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -441,7 +441,7 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, re_offset -= (fp->ofdm_symbol_size - 1); txF = &txdataF[0][symbol_offset + re_offset + fp->ofdm_symbol_size*soffset[lprime]]; } - for (int mprime=0;mprime<3;mprime++,i++) { + for (int mprime=0;mprime<3;mprime++,i+=2) { if ((i & 0x1f) == 0) { s = lte_gold_generic(&x1, &x2, reset); From 007b003d0c22dc6a4fc611316db35f6a91e8109d Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 29 Oct 2018 18:33:02 +0100 Subject: [PATCH 090/125] dlsim functional after develop->enhancement-ltem --- openair1/PHY/INIT/lte_init.c | 3 - openair1/PHY/LTE_TRANSPORT/dci.c | 18 --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 45 ++----- openair1/PHY/LTE_TRANSPORT/dci_tools_common.c | 40 +++--- openair1/PHY/LTE_TRANSPORT/edci.c | 10 +- openair1/PHY/LTE_TRANSPORT/transport_eNB.h | 6 +- openair1/SCHED/fapi_l1.c | 18 +-- openair1/SCHED/phy_procedures_lte_eNb.c | 120 +++++++++--------- openair1/SCHED/prach_procedures.c | 5 +- openair2/COMMON/rrc_messages_types.h | 62 --------- 10 files changed, 115 insertions(+), 212 deletions(-) diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c index a292ae5a90..4631fb0752 100755 --- a/openair1/PHY/INIT/lte_init.c +++ b/openair1/PHY/INIT/lte_init.c @@ -872,9 +872,6 @@ int phy_init_lte_eNB(PHY_VARS_eNB *eNB, pusch_vars[UE_id]->llr = (int16_t*)malloc16_clear( (8*((3*8*6144)+12))*sizeof(int16_t) ); } //UE_id - pusch_vars[UE_id]->llr = (int16_t *) malloc16_clear ((8 * ((3 * 8 * 6144) + 12)) * sizeof (int16_t)); - } //UE_id - for (UE_id = 0; UE_id < NUMBER_OF_UE_MAX; UE_id++) eNB->UE_stats_ptr[UE_id] = &eNB->UE_stats[UE_id]; diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c index cea619eef1..a2f1bad1dc 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci.c +++ b/openair1/PHY/LTE_TRANSPORT/dci.c @@ -118,24 +118,6 @@ uint8_t *generate_dci0(uint8_t *dci, uint8_t dci_flip[8]; - AssertFatal((aggregation_level==1) || - (aggregation_level==2) || - (aggregation_level==4) || - (aggregation_level==8) -#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) // Added for EPDCCH/MPDCCH - || - (aggregation_level==16) || - (aggregation_level==24) || - (aggregation_level==32) -#endif - , - "generate_dci FATAL, illegal aggregation_level %d\n",aggregation_level); - - - coded_bits = 72 * aggregation_level; - - - #ifdef DEBUG_DCI_ENCODING for (int i=0;i<1+((DCI_LENGTH+16)/8);i++) printf("i %d : %x\n",i,dci[i]); diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index c216f7d5d7..cf2954df77 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -42,31 +42,6 @@ //#define DEBUG_HARQ -void conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) -{ - - - int RIV = resource_block_coding&31; - int narrowband = resource_block_coding>>5; - int N_NB_DL = N_RB_DL / 6; - int i0 = (N_RB_DL >> 1) - (3 * N_NB_DL); - int first_rb = (6 * narrowband) + i0; - int alloc = localRIV2alloc_LUT6[RIV]; - int ind = first_rb >> 5; - int ind_mod = first_rb & 31; - - AssertFatal(RIV<32,"RIV is %d > 31\n"); - - if (((N_RB_DL & 1) > 0) && (narrowband >= (N_NB_DL >> 1))) - first_rb++; - rb_alloc[0] = 0; - rb_alloc[1] = 0; - rb_alloc[2] = 0; - rb_alloc[3] = 0; - rb_alloc[ind] = alloc << ind_mod; - if (ind_mod > 26) - rb_alloc[ind + 1] = alloc >> (6 - (ind_mod - 26)); -} #include "LAYER2/MAC/mac.h" @@ -1572,11 +1547,9 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0_harq = dlsch0->harq_processes[rel13->harq_process]; dci_alloc->ra_flag = 0; - dlsch0->ra_flag = 0; if (rel13->rnti_type == 2) { dci_alloc->ra_flag = 1; - dlsch0->ra_flag = 1; } AssertFatal (fp->frame_type == FDD, "TDD is not supported yet for eMTC\n"); @@ -1804,8 +1777,8 @@ fill_mdci_and_dlsch (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dlsch0_harq->frame = (subframe >= 8) ? ((frame + 1) & 1023) : frame; dlsch0_harq->subframe = (subframe + 2) % 10; - LOG_I(PHY,"Setting DLSCH harq_ids[%d] to %d\n",dlsch0_harq->subframe,dlsch0->harq_ids[dlsch0_harq->subframe]); - dlsch0->harq_ids[dlsch0_harq->subframe] = rel13->harq_process; + LOG_I(PHY,"Setting DLSCH harq_ids[%d] to %d\n",dlsch0_harq->subframe,dlsch0->harq_ids[frame%2][dlsch0_harq->subframe]); + dlsch0->harq_ids[frame%2][dlsch0_harq->subframe] = rel13->harq_process; dlsch0_harq->pdsch_start = rel13->start_symbol; LOG_I(PHY,"Setting DLSCH harq %d round %d to active for %d.%d\n",rel13->harq_process,dlsch0_harq->round,dlsch0_harq->frame,dlsch0_harq->subframe); @@ -1994,7 +1967,7 @@ void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int get_narrowband_index(int N_RB_UL,int rb) { switch (N_RB_UL) { @@ -2028,8 +2001,16 @@ void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu //AssertFatal((UE_id=find_ulsch(ulsch_pdu->ulsch_pdu_rel8.rnti,eNB,SEARCH_EXIST_OR_FREE))>=0, // "No existing/free UE ULSCH for rnti %x\n",ulsch_pdu->ulsch_pdu_rel8.rnti); + LTE_eNB_ULSCH_t *ulsch=eNB->ulsch[UE_id]; + LTE_DL_FRAME_PARMS *frame_parms = &eNB->frame_parms; -#ifdef Rel14 + int use_srs = 0; + + harq_pid = ulsch_pdu->ulsch_pdu_rel8.harq_process_number; + + ulsch->harq_mask |= 1 << harq_pid; + +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ulsch->ue_type = ulsch_pdu->ulsch_pdu_rel13.ue_type; AssertFatal(harq_pid ==0, "Harq PID is not zero for BL/CE UE\n"); @@ -2171,7 +2152,7 @@ fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci T_INT (mcs), T_INT (-1 /* TODO: remove round? */ ), T_INT (rel13->resource_block_start), T_INT (rel13->number_of_resource_blocks), - T_INT (get_TBS_UL (mcs, rel13->number_of_resource_blocks) * 8), T_INT (rel13->aggregation_level), T_INT (rel13->cce_index)); + T_INT (get_TBS_UL (mcs, rel13->number_of_resource_blocks) * 8), T_INT (rel13->aggreagation_level), T_INT (rel13->ecce_index)); #endif void *dci_pdu = (void *) dci_alloc->dci_pdu; diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c index c1b8ead8e9..56dc211cc4 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c @@ -283,29 +283,33 @@ uint16_t get_nCCE_mac(uint8_t Mod_id,uint8_t CC_id,int num_pdcch_symbols,int sub } -void conv_eMTC_rballoc(uint16_t resource_block_coding, - uint32_t N_RB_DL, - uint32_t *rb_alloc) { +void conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32_t * rb_alloc) +{ - int narrowband = resource_block_coding>>5; - int RIV = resource_block_coding&31; - int N_NB_DL = N_RB_DL/6; - int i0 = (N_RB_DL>>1) - (3*N_NB_DL); - int first_rb = (6*narrowband)+i0; - int alloc = localRIV2alloc_LUT6[RIV]; - int ind = first_rb>>5; - int ind_mod = first_rb&31; + int RIV = resource_block_coding&31; + int narrowband = resource_block_coding>>5; + int N_NB_DL = N_RB_DL / 6; + int i0 = (N_RB_DL >> 1) - (3 * N_NB_DL); + int first_rb = (6 * narrowband) + i0; + int alloc = localRIV2alloc_LUT6[RIV]; + int ind = first_rb >> 5; + int ind_mod = first_rb & 31; - if (((N_RB_DL&1) > 0) && (narrowband>=(N_NB_DL>>1))) first_rb++; - rb_alloc[0] = 0; - rb_alloc[1] = 0; - rb_alloc[2] = 0; - rb_alloc[3] = 0; - rb_alloc[ind] = alloc< 26) rb_alloc[ind+1] = alloc>>(6-(ind_mod-26)); + AssertFatal(RIV<32,"RIV is %d > 31\n"); + + if (((N_RB_DL & 1) > 0) && (narrowband >= (N_NB_DL >> 1))) + first_rb++; + rb_alloc[0] = 0; + rb_alloc[1] = 0; + rb_alloc[2] = 0; + rb_alloc[3] = 0; + rb_alloc[ind] = alloc << ind_mod; + if (ind_mod > 26) + rb_alloc[ind + 1] = alloc >> (6 - (ind_mod - 26)); } + void conv_rballoc(uint8_t ra_header,uint32_t rb_alloc,uint32_t N_RB_DL,uint32_t *rb_alloc2) { diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 02bd59531b..04cfeecf1c 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -34,15 +34,15 @@ #include #include #include -#include "PHY/defs.h" -#include "PHY/extern.h" -#include "SCHED/defs.h" -#include "SIMULATION/TOOLS/defs.h" // for taus +#include "PHY/defs_eNB.h" +#include "PHY/phy_extern.h" +#include "SCHED/sched_eNB.h" +#include "SIMULATION/TOOLS/sim.h" // for taus #include "PHY/sse_intrin.h" #include "assertions.h" #include "T.h" -#include "UTIL/LOG/log.h" +#include "common/utils/LOG/log.h" //#define DEBUG_DCI_ENCODING 1 //#define DEBUG_DCI_DECODING 1 diff --git a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h index 0e5eee4b95..e7c752fd6f 100755 --- a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h @@ -127,7 +127,7 @@ typedef struct { /// codeword this transport block is mapped to uint8_t codeword; #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 uint8_t sib1_br_flag; /// initial absolute subframe (see 36.211 Section 6.3.1), needed for c_init for scrambling @@ -444,6 +444,10 @@ typedef struct { } LTE_eNB_UE_stats; typedef struct { +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + /// UE type (normal, CEModeA, CEModeB) + uint8_t ue_type; +#endif /// HARQ process mask, indicates which processes are currently active uint16_t harq_mask; /// Pointers to 8 HARQ processes for the ULSCH diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 5bc995aeae..35e3aed5d6 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -204,7 +204,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr // compute DL power control parameters eNB->pdsch_config_dedicated[UE_id].p_a = rel8->pa; -#ifdef PHY_TX_THREAD +#ifdef PHY_TX_THREAD if (dlsch0->active[proc->subframe_tx]){ # else if (dlsch0->active){ @@ -254,7 +254,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr #endif if ((rel13->pdsch_payload_type <2) && (rel13->ue_type>0)) { // this is a BR/CE UE and SIB1-BR/SI-BR - UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_FREE); + UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE); AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n"); AssertFatal(UE_id= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX); @@ -272,7 +272,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr dlsch0->i0 = rel13->initial_transmission_sf_io; dlsch0_harq->pdsch_start = rel10->pdsch_start; - dlsch0->harq_ids[proc->subframe_tx] = 0; + dlsch0->harq_ids[frame%2][proc->subframe_tx] = 0; dlsch0_harq->frame = proc->frame_tx; dlsch0_harq->subframe = proc->subframe_tx; @@ -361,7 +361,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr #endif dlsch0->active = 1; - harq_pid = dlsch0->harq_ids[proc->subframe_tx]; + harq_pid = dlsch0->harq_ids[frame%2][proc->subframe_tx]; dlsch0->harq_mask |= (1<=0) && (harq_pid<8),"subframe %d: harq_pid %d not in 0...7\n",proc->subframe_tx,harq_pid); @@ -370,15 +370,15 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_pr AssertFatal(dlsch0_harq!=NULL,"dlsch_harq is null\n"); // compute DL power control parameters - eNB->pdsch_config_dedicated[UE_id].p_a = rel8->pa; + if (dlsch0->active){ - computeRhoA_eNB(&eNB->pdsch_config_dedicated[UE_id], dlsch0,dlsch0_harq->dl_power_off, eNB->frame_parms.nb_antenna_ports_eNB); - computeRhoB_eNB(&eNB->pdsch_config_dedicated[UE_id],&(eNB->frame_parms.pdsch_config_common),eNB->frame_parms.nb_antenna_ports_eNB,dlsch0,dlsch0_harq->dl_power_off); + computeRhoA_eNB(rel8->pa,dlsch0,dlsch0_harq->dl_power_off, eNB->frame_parms.nb_antenna_ports_eNB); + computeRhoB_eNB(rel8->pa,eNB->frame_parms.pdsch_config_common.p_b,eNB->frame_parms.nb_antenna_ports_eNB,dlsch0,dlsch0_harq->dl_power_off); } if (dlsch1->active){ - computeRhoA_eNB(&eNB->pdsch_config_dedicated[UE_id], dlsch1,dlsch1_harq->dl_power_off, eNB->frame_parms.nb_antenna_ports_eNB); - computeRhoB_eNB(&eNB->pdsch_config_dedicated[UE_id],&(eNB->frame_parms.pdsch_config_common),eNB->frame_parms.nb_antenna_ports_eNB,dlsch1,dlsch1_harq->dl_power_off); + computeRhoA_eNB(rel8->pa, dlsch1,dlsch1_harq->dl_power_off, eNB->frame_parms.nb_antenna_ports_eNB); + computeRhoB_eNB(rel8->pa,eNB->frame_parms.pdsch_config_common.p_b,eNB->frame_parms.nb_antenna_ports_eNB,dlsch1,dlsch1_harq->dl_power_off); } #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 41f6286930..2b349c6210 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -417,7 +417,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, int16_t UE_id=0; uint8_t num_pdcch_symbols=0; uint8_t num_dci=0; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint8_t num_mdci = 0; #endif uint8_t ul_subframe; @@ -468,8 +468,8 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, // (subframe_select(fp,ul_subframe)==SF_UL)) { // This means that there is a potential UL subframe that will be scheduled here if (ul_subframe < 10) { // This means that there is a potential UL subframe that will be scheduled here for (i=0; iulsch[i]->ue_type >0) harq_pid = 0; +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + if (eNB->ulsch[i] && eNB->ulsch[i]->ue_type >0) harq_pid = 0; else #endif harq_pid = subframe2harq_pid(fp,ul_frame,ul_subframe); @@ -526,7 +526,7 @@ void phy_procedures_eNB_TX(PHY_VARS_eNB *eNB, eNB->common_vars.txdataF, subframe); -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) num_mdci = eNB->mpdcch_vars[subframe &1].num_dci; if (num_mdci > 0) { LOG_I (PHY, "[eNB %" PRIu8 "] Frame %d, subframe %d: Calling generate_mdci_top (mpdcch) (num_dci %" PRIu8 ")\n", eNB->Mod_id, frame, subframe, num_mdci); @@ -653,8 +653,6 @@ void fill_sr_indication(PHY_VARS_eNB *eNB,uint16_t rnti,int frame,int subframe,u int SNRtimes10 = dB_fixed_times10(stat) - 300;//(10*eNB->measurements.n0_power_dB[0]); - int SNRtimes10 = dB_fixed_times10 (stat) - 10 * max (eNB->measurements.n0_subband_power_tot_dB[0], - eNB->measurements.n0_subband_power_tot_dB[eNB->frame_parms.N_RB_UL - 1]); pdu->ul_cqi_information.tl.tag = NFAPI_UL_CQI_INFORMATION_TAG; @@ -841,7 +839,7 @@ void uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) { metric[0] = rx_pucch (eNB, pucch_format1b, i, uci->n_pucch_1_0_sr[0], 0, //n2_pucch uci->srs_active, // shortened format pucch_b0b1[0], frame, subframe, PUCCH1a_THRES -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,uci->ue_type #endif ); @@ -855,7 +853,7 @@ void uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) { metric[res] = rx_pucch (eNB, uci->pucch_fmt, i, uci->n_pucch_1[res][0], 0, // n2_pucch uci->srs_active, // shortened format pucch_b0b1[res], frame, subframe, PUCCH1a_THRES -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,uci->ue_type #endif ); @@ -870,7 +868,7 @@ void uci_procedures (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc) { frame, subframe, PUCCH1a_THRES, -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,uci->ue_type #endif ); @@ -1473,7 +1471,7 @@ void fill_rx_indication(PHY_VARS_eNB *eNB,int UE_id,int frame,int subframe) { uint32_t harq_pid; -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (eNB->ulsch[UE_id]->ue_type > 0) harq_pid = 0; else #endif @@ -1669,8 +1667,7 @@ int getM(PHY_VARS_eNB *eNB,int frame,int subframe) { AssertFatal(dlsch0_harq!=NULL,"dlsch0_harq is null\n"); if (dlsch0_harq->status == ACTIVE|| (dlsch1_harq!=NULL && dlsch1_harq->status == ACTIVE)) Mtx ++; - >>>>>>> origin/develop - } + } } return (Mtx); } @@ -1681,7 +1678,7 @@ void fill_ulsch_cqi_indication (PHY_VARS_eNB * eNB, uint16_t frame, uint8_t subf pthread_mutex_lock (&eNB->UL_INFO_mutex); nfapi_cqi_indication_pdu_t *pdu = &eNB->UL_INFO.cqi_ind.cqi_pdu_list[eNB->UL_INFO.cqi_ind.number_of_cqis]; nfapi_cqi_indication_raw_pdu_t *raw_pdu = &eNB->UL_INFO.cqi_ind.cqi_raw_pdu_list[eNB->UL_INFO.cqi_ind.number_of_cqis]; - + pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; pdu->rx_ue_information.rnti = rnti; if (ulsch_harq->cqi_crc_status != 1) @@ -1709,8 +1706,8 @@ void fill_ulsch_cqi_indication (PHY_VARS_eNB * eNB, uint16_t frame, uint8_t subf LOG_D(PHY,"eNB->UL_INFO.cqi_ind.number_of_cqis:%d\n", eNB->UL_INFO.cqi_ind.number_of_cqis); pthread_mutex_unlock(&eNB->UL_INFO_mutex); - -} } + +} void fill_ulsch_harq_indication (PHY_VARS_eNB * eNB, LTE_UL_eNB_HARQ_t * ulsch_harq, uint16_t rnti, int frame, int subframe, int bundling) { @@ -1735,53 +1732,52 @@ void fill_ulsch_harq_indication (PHY_VARS_eNB * eNB, LTE_UL_eNB_HARQ_t * ulsch_h // pdu->rx_ue_information.handle = handle; pdu->rx_ue_information.tl.tag = NFAPI_RX_UE_INFORMATION_TAG; pdu->rx_ue_information.rnti = rnti; - >>>>>>> origin/develop - - if (eNB->frame_parms.frame_type == FDD) { - pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG; - pdu->harq_indication_fdd_rel13.mode = 0; - pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; - - for (i = 0; i < ulsch_harq->O_ACK; i++) { - AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]); - - pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 2 - ulsch_harq->o_ACK[i]; - // release DLSCH if needed - - release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); - - } - } else { // TDD - M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe); - - pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG; - pdu->harq_indication_tdd_rel13.mode = 1-bundling; - pdu->harq_indication_tdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; - - for (i = 0; i < ulsch_harq->O_ACK; i++) { - AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]); - - pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 2-ulsch_harq->o_ACK[i]; - // release DLSCH if needed - /* TODO: review this code, it's most certainly wrong. - * We have to release the proper HARQ in case of ACK or NACK if max retransmission reached. - * Basically, call release_harq with 1 as last argument when ACK and 0 when NACK. - */ - release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); - if (M==1 && ulsch_harq->O_ACK==1 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); - else if (M==1 && ulsch_harq->O_ACK==2 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); - else if (M>1 && ulsch_harq->o_ACK[i] == 1) { - // spatial bundling - release_harq(eNB,UE_id,0,frame,subframe,1<o_ACK[i] == 1); - release_harq(eNB,UE_id,1,frame,subframe,1<o_ACK[i] == 1); - } - } - //LOG_E(PHY,"eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs:%d\n", eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs); - eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs++; - - pthread_mutex_unlock(&eNB->UL_INFO_mutex); - - } + + if (eNB->frame_parms.frame_type == FDD) { + pdu->harq_indication_fdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_FDD_REL13_TAG; + pdu->harq_indication_fdd_rel13.mode = 0; + pdu->harq_indication_fdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; + + for (i = 0; i < ulsch_harq->O_ACK; i++) { + AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]); + + pdu->harq_indication_fdd_rel13.harq_tb_n[i] = 2 - ulsch_harq->o_ACK[i]; + // release DLSCH if needed + + release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); + + } + } else { // TDD + M = ul_ACK_subframe2_M (&eNB->frame_parms, subframe); + + pdu->harq_indication_tdd_rel13.tl.tag = NFAPI_HARQ_INDICATION_TDD_REL13_TAG; + pdu->harq_indication_tdd_rel13.mode = 1-bundling; + pdu->harq_indication_tdd_rel13.number_of_ack_nack = ulsch_harq->O_ACK; + + for (i = 0; i < ulsch_harq->O_ACK; i++) { + AssertFatal (ulsch_harq->o_ACK[i] == 0 || ulsch_harq->o_ACK[i] == 1, "harq_ack[%d] is %d, should be 1,2 or 4\n", i, ulsch_harq->o_ACK[i]); + + pdu->harq_indication_tdd_rel13.harq_data[0].bundling.value_0 = 2-ulsch_harq->o_ACK[i]; + // release DLSCH if needed + /* TODO: review this code, it's most certainly wrong. + * We have to release the proper HARQ in case of ACK or NACK if max retransmission reached. + * Basically, call release_harq with 1 as last argument when ACK and 0 when NACK. + */ + release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); + if (M==1 && ulsch_harq->O_ACK==1 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,0,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); + else if (M==1 && ulsch_harq->O_ACK==2 && ulsch_harq->o_ACK[i] == 1) release_harq(eNB,UE_id,i,frame,subframe,0xffff, ulsch_harq->o_ACK[i] == 1); + else if (M>1 && ulsch_harq->o_ACK[i] == 1) { + // spatial bundling + release_harq(eNB,UE_id,0,frame,subframe,1<o_ACK[i] == 1); + release_harq(eNB,UE_id,1,frame,subframe,1<o_ACK[i] == 1); + } + } + //LOG_E(PHY,"eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs:%d\n", eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs); + eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs++; + + pthread_mutex_unlock(&eNB->UL_INFO_mutex); + + } } void fill_uci_harq_indication (PHY_VARS_eNB * eNB, LTE_eNB_UCI * uci, int frame, int subframe, uint8_t * harq_ack, uint8_t tdd_mapping_mode, uint16_t tdd_multiplexing_mask) { diff --git a/openair1/SCHED/prach_procedures.c b/openair1/SCHED/prach_procedures.c index 55b58bb58a..05d202b1f5 100644 --- a/openair1/SCHED/prach_procedures.c +++ b/openair1/SCHED/prach_procedures.c @@ -127,7 +127,7 @@ void prach_procedures(PHY_VARS_eNB *eNB prach_mask = is_prach_subframe (&eNB->frame_parms, eNB->proc.frame_prach_br, eNB->proc.subframe_prach_br); - eNB->UL_INFO.rach_ind_br.preamble_list = eNB->preamble_list_br; + eNB->UL_INFO.rach_ind_br.rach_indication_body.preamble_list = eNB->preamble_list_br; int ind = 0; int ce_level = 0; /* Save for later, it doesn't work @@ -142,7 +142,7 @@ void prach_procedures(PHY_VARS_eNB *eNB if (eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[0] == 1) { if ((eNB->prach_energy_counter == 100) && (max_preamble_energy[0] > eNB->measurements.prach_I0 + 200)) { - eNB->UL_INFO.rach_ind_br.number_of_preambles++; + eNB->UL_INFO.rach_ind_br.rach_indication_body.number_of_preambles++; eNB->preamble_list_br[ind].preamble_rel8.timing_advance = max_preamble_delay[ind]; // eNB->preamble_list_br[ind].preamble_rel8.preamble = max_preamble[ind]; @@ -157,6 +157,7 @@ void prach_procedures(PHY_VARS_eNB *eNB eNB->preamble_list_br[ind].preamble_rel8.timing_advance, eNB->preamble_list_br[ind].preamble_rel8.preamble, eNB->preamble_list_br[ind].preamble_rel8.rnti, eNB->preamble_list_br[ind].preamble_rel13.rach_resource_type); } + } /* ind++; } diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index ee77e1c435..d664c31d22 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -305,68 +305,6 @@ typedef struct RrcConfigurationReq_s { #endif - long prach_root[MAX_NUM_CCs]; - long prach_config_index[MAX_NUM_CCs]; - BOOLEAN_t prach_high_speed[MAX_NUM_CCs]; - long prach_zero_correlation[MAX_NUM_CCs]; - long prach_freq_offset[MAX_NUM_CCs]; - long pucch_delta_shift[MAX_NUM_CCs]; - long pucch_nRB_CQI[MAX_NUM_CCs]; - long pucch_nCS_AN[MAX_NUM_CCs]; -//#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) - long pucch_n1_AN[MAX_NUM_CCs]; -//#endif - long pdsch_referenceSignalPower[MAX_NUM_CCs]; - long pdsch_p_b[MAX_NUM_CCs]; - long pusch_n_SB[MAX_NUM_CCs]; - long pusch_hoppingMode[MAX_NUM_CCs]; - long pusch_hoppingOffset[MAX_NUM_CCs]; - BOOLEAN_t pusch_enable64QAM[MAX_NUM_CCs]; - BOOLEAN_t pusch_groupHoppingEnabled[MAX_NUM_CCs]; - long pusch_groupAssignment[MAX_NUM_CCs]; - BOOLEAN_t pusch_sequenceHoppingEnabled[MAX_NUM_CCs]; - long pusch_nDMRS1[MAX_NUM_CCs]; - long phich_duration[MAX_NUM_CCs]; - long phich_resource[MAX_NUM_CCs]; - BOOLEAN_t srs_enable[MAX_NUM_CCs]; - long srs_BandwidthConfig[MAX_NUM_CCs]; - long srs_SubframeConfig[MAX_NUM_CCs]; - BOOLEAN_t srs_ackNackST[MAX_NUM_CCs]; - BOOLEAN_t srs_MaxUpPts[MAX_NUM_CCs]; - long pusch_p0_Nominal[MAX_NUM_CCs]; - long pusch_alpha[MAX_NUM_CCs]; - long pucch_p0_Nominal[MAX_NUM_CCs]; - long msg3_delta_Preamble[MAX_NUM_CCs]; - long ul_CyclicPrefixLength[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format1 pucch_deltaF_Format1[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b pucch_deltaF_Format1b[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format2 pucch_deltaF_Format2[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a pucch_deltaF_Format2a[MAX_NUM_CCs]; - e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b pucch_deltaF_Format2b[MAX_NUM_CCs]; - long rach_numberOfRA_Preambles[MAX_NUM_CCs]; - BOOLEAN_t rach_preamblesGroupAConfig[MAX_NUM_CCs]; - long rach_sizeOfRA_PreamblesGroupA[MAX_NUM_CCs]; - long rach_messageSizeGroupA[MAX_NUM_CCs]; - e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB rach_messagePowerOffsetGroupB[MAX_NUM_CCs]; - long rach_powerRampingStep[MAX_NUM_CCs]; - long rach_preambleInitialReceivedTargetPower[MAX_NUM_CCs]; - long rach_preambleTransMax[MAX_NUM_CCs]; - long rach_raResponseWindowSize[MAX_NUM_CCs]; - long rach_macContentionResolutionTimer[MAX_NUM_CCs]; - long rach_maxHARQ_Msg3Tx[MAX_NUM_CCs]; - long bcch_modificationPeriodCoeff[MAX_NUM_CCs]; - long pcch_defaultPagingCycle[MAX_NUM_CCs]; - long pcch_nB[MAX_NUM_CCs]; - long ue_TimersAndConstants_t300[MAX_NUM_CCs]; - long ue_TimersAndConstants_t301[MAX_NUM_CCs]; - long ue_TimersAndConstants_t310[MAX_NUM_CCs]; - long ue_TimersAndConstants_t311[MAX_NUM_CCs]; - long ue_TimersAndConstants_n310[MAX_NUM_CCs]; - long ue_TimersAndConstants_n311[MAX_NUM_CCs]; - long ue_TransmissionMode[MAX_NUM_CCs]; - long ue_multiple_max[MAX_NUM_CCs]; - - //TTN - for D2D //SIB18 e_SL_CP_Len_r12 rxPool_sc_CP_Len[MAX_NUM_CCs]; e_SL_PeriodComm_r12 rxPool_sc_Period[MAX_NUM_CCs]; From 2aae8723abf662176da275be2e2ff3f0e3b190f1 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Wed, 31 Oct 2018 17:46:04 +0100 Subject: [PATCH 091/125] ulsim is functional --- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 12 +++++++++++- openair1/SIMULATION/LTE_PHY/ulsim.c | 6 +++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index cf2954df77..c23f1a2d1d 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -50,6 +50,8 @@ #include "dci_tools_common_extern.h" #include "transport_proto.h" +//#undef LOG_D +//#define LOG_D(A,B...) printf(B) int16_t find_dlsch(uint16_t rnti, PHY_VARS_eNB *eNB,find_type_t type) { @@ -2012,7 +2014,7 @@ void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ulsch->ue_type = ulsch_pdu->ulsch_pdu_rel13.ue_type; - AssertFatal(harq_pid ==0, "Harq PID is not zero for BL/CE UE\n"); + AssertFatal(harq_pid ==0 || ulsch->ue_type == NOCE, "Harq PID is not zero for BL/CE UE\n"); #else @@ -2024,6 +2026,14 @@ void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu LOG_E(PHY, "fill_ulsch UE_id %d nb_rb = 0\n", UE_id); } + ulsch->harq_processes[harq_pid]->frame = frame; + ulsch->harq_processes[harq_pid]->subframe = subframe; + ulsch->harq_processes[harq_pid]->handled = 0; + + ulsch->harq_processes[harq_pid]->first_rb = ulsch_pdu->ulsch_pdu_rel8.resource_block_start; + ulsch->harq_processes[harq_pid]->nb_rb = ulsch_pdu->ulsch_pdu_rel8.number_of_resource_blocks; + + ulsch->harq_processes[harq_pid]->dci_alloc = 1; ulsch->harq_processes[harq_pid]->rar_alloc = 0; ulsch->harq_processes[harq_pid]->n_DMRS = ulsch_pdu->ulsch_pdu_rel8.cyclic_shift_2_for_drms; diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c index 8c09da1daf..04569adf67 100755 --- a/openair1/SIMULATION/LTE_PHY/ulsim.c +++ b/openair1/SIMULATION/LTE_PHY/ulsim.c @@ -500,9 +500,9 @@ int main(int argc, char **argv) { // enable these lines if you need debug info // however itti will catch all signals, so ctrl-c won't work anymore // alternatively you can disable ITTI completely in CMakeLists.txt - //itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); - //set_comp_log(PHY,LOG_DEBUG,LOG_MED,1); - //set_glog(LOG_DEBUG,LOG_MED); + // itti_init(TASK_MAX, THREAD_MAX, MESSAGES_ID_MAX, tasks_info, messages_info, messages_definition_xml, NULL); + // set_comp_log(PHY,LOG_DEBUG,LOG_HIGH,1); + // set_glog(LOG_DEBUG,LOG_HIGH); //hapZEbm:n:Y:X:x:s:w:e:q:d:D:O:c:r:i:f:y:c:oA:C:R:g:N:l:S:T:QB:PI:LF static paramdef_t options[] = { { "awgn", "Additive white gaussian noise", PARAMFLAG_BOOL, strptr:NULL, defintval:0, TYPE_INT, 0, NULL, NULL }, From b27ed63fa974a9962f0b0ecdde7bd992440db9d6 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sat, 3 Nov 2018 22:51:24 +0100 Subject: [PATCH 092/125] lte-softmodem compiles, many memory faults during configuration ... --- openair2/COMMON/rrc_messages_types.h | 6 +- openair2/ENB_APP/RRC_paramsvalues.h | 2 + openair2/ENB_APP/enb_config.c | 3043 ++++++++++---------- openair2/ENB_APP/enb_paramdef.h | 244 +- openair2/ENB_APP/enb_paramdef_emtc.h | 231 ++ openair2/ENB_APP/flexran_agent_ran_api.c | 6 +- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 125 +- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 2 - openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 68 +- openair2/LAYER2/MAC/eNB_scheduler_fairRR.c | 4 +- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 77 +- openair2/LAYER2/MAC/mac.h | 113 +- openair2/LAYER2/MAC/rar_tools.c | 116 +- openair2/LAYER2/MAC/ue_procedures.c | 24 +- openair2/PHY_INTERFACE/IF_Module.c | 4 +- openair2/RRC/LTE/MESSAGES/asn1_msg.c | 172 +- openair2/RRC/LTE/rrc_eNB.c | 52 +- openair2/RRC/LTE/rrc_eNB_S1AP.c | 4 +- openair2/RRC/LTE/rrc_proto.h | 6 +- 19 files changed, 2108 insertions(+), 2191 deletions(-) create mode 100644 openair2/ENB_APP/enb_paramdef_emtc.h diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index d664c31d22..d8d5fe5f9d 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -100,9 +100,7 @@ typedef struct RadioResourceConfig_s { long pucch_delta_shift; long pucch_nRB_CQI; long pucch_nCS_AN; -#if !defined(Rel10) && !defined(Rel14) long pucch_n1_AN; -#endif long pdsch_referenceSignalPower; long pdsch_p_b; long pusch_n_SB; @@ -151,6 +149,7 @@ typedef struct RadioResourceConfig_s { long ue_TimersAndConstants_n310; long ue_TimersAndConstants_n311; long ue_TransmissionMode; + long ue_multiple_max; #ifdef Rel14 //SIB2 BR Options long* preambleTransMax_CE_r13; @@ -188,7 +187,8 @@ typedef struct RrcConfigurationReq_s { int16_t N_RB_DL[MAX_NUM_CCs];// for testing, change later int nb_antenna_ports[MAX_NUM_CCs]; - + int eMTC_configured; + int SL_configured; RadioResourceConfig radioresourceconfig[MAX_NUM_CCs]; RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs]; diff --git a/openair2/ENB_APP/RRC_paramsvalues.h b/openair2/ENB_APP/RRC_paramsvalues.h index 06fee0e172..cf47b2f97c 100644 --- a/openair2/ENB_APP/RRC_paramsvalues.h +++ b/openair2/ENB_APP/RRC_paramsvalues.h @@ -35,6 +35,8 @@ #define ENB_CONFIG_STRING_ENB_LIST "eNBs" /* component carriers configuration section name */ #define ENB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers" +#define ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS "br_parameters" + #define ENB_CONFIG_STRING_FRAME_TYPE "frame_type" #define ENB_CONFIG_STRING_PBCH_REPETITION "pbch_repetition" diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index aac52d6f2d..bb73797f22 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -83,29 +83,38 @@ void RCconfig_flexran() { into the CCPARAMS_DESC macro and we need it for the Nid_cell variable ... */ char *frame_type, *prefix_type, *pbch_repetition, *prach_high_speed, - *pusch_hoppingMode, *pusch_enable64QAM, *pusch_groupHoppingEnabled, - *pusch_sequenceHoppingEnabled, *phich_duration, *phich_resource, - *srs_enable, *srs_ackNackST, *srs_MaxUpPts, *pusch_alpha, - *pucch_deltaF_Format1, *pucch_deltaF_Format1b, *pucch_deltaF_Format2, - *pucch_deltaF_Format2a, *pucch_deltaF_Format2b, - *rach_preamblesGroupAConfig, *rach_messagePowerOffsetGroupB, *pcch_nB; + *pusch_hoppingMode, *pusch_enable64QAM, *pusch_groupHoppingEnabled, + *pusch_sequenceHoppingEnabled, *phich_duration, *phich_resource, + *srs_enable, *srs_ackNackST, *srs_MaxUpPts, *pusch_alpha, + *pucch_deltaF_Format1, *pucch_deltaF_Format1b, *pucch_deltaF_Format2, + *pucch_deltaF_Format2a, *pucch_deltaF_Format2b, + *rach_preamblesGroupAConfig, *rach_messagePowerOffsetGroupB, *pcch_nB; long long int downlink_frequency; int32_t tdd_config, tdd_config_s, eutra_band, uplink_frequency_offset, - Nid_cell_mbsfn, N_RB_DL, nb_antenna_ports, prach_root, prach_config_index, - prach_zero_correlation, prach_freq_offset, pucch_delta_shift, - pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower, - pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment, - pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal, - pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles, - rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, - rach_powerRampingStep, rach_preambleInitialReceivedTargetPower, - rach_preambleTransMax, rach_raResponseWindowSize, - rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx, - pcch_defaultPagingCycle, bcch_modificationPeriodCoeff, - ue_TimersAndConstants_t300, ue_TimersAndConstants_t301, - ue_TimersAndConstants_t310, ue_TimersAndConstants_t311, - ue_TimersAndConstants_n310, ue_TimersAndConstants_n311, - ue_TransmissionMode, ue_multiple_max; + Nid_cell_mbsfn, N_RB_DL, nb_antenna_ports, prach_root, prach_config_index, + prach_zero_correlation, prach_freq_offset, pucch_delta_shift, + pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower, + pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment, + pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal, + pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles, + rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, + rach_powerRampingStep, rach_preambleInitialReceivedTargetPower, + rach_preambleTransMax, rach_raResponseWindowSize, + rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx, + pcch_defaultPagingCycle, bcch_modificationPeriodCoeff, + ue_TimersAndConstants_t300, ue_TimersAndConstants_t301, + ue_TimersAndConstants_t310, ue_TimersAndConstants_t311, + ue_TimersAndConstants_n310, ue_TimersAndConstants_n311, + ue_TransmissionMode, ue_multiple_max; + /* + int32_t srb1_timer_poll_retransmit = 0; + int32_t srb1_timer_reordering = 0; + int32_t srb1_timer_status_prohibit = 0; + int32_t srb1_poll_pdu = 0; + int32_t srb1_poll_byte = 0; + int32_t srb1_max_retx_threshold = 0; + */ + const char *rxPool_sc_CP_Len; const char *rxPool_sc_Period; const char *rxPool_data_CP_Len; @@ -147,6 +156,157 @@ void RCconfig_flexran() { char *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + //note: Uncomment below when FlexRAN support for eMTC is available + /* + int32_t eMTC_configured = 0; + int32_t prach_root_emtc = 0; + int32_t prach_config_index_emtc = 0; + char *prach_high_speed_emtc = NULL; + int32_t prach_zero_correlation_emtc = 0; + int32_t prach_freq_offset_emtc = 0; + int32_t pucch_delta_shift_emtc = 0; + int32_t pucch_nRB_CQI_emtc = 0; + int32_t pucch_nCS_AN_emtc = 0; + //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + int32_t pucch_n1_AN_emtc = 0; + //#endif + int32_t pdsch_referenceSignalPower_emtc = 0; + int32_t pdsch_p_b_emtc = 0; + int32_t pusch_n_SB_emtc = 0; + char *pusch_hoppingMode_emtc = NULL; + int32_t pusch_hoppingOffset_emtc = 0; + char *pusch_enable64QAM_emtc = NULL; + char *pusch_groupHoppingEnabled_emtc = NULL; + int32_t pusch_groupAssignment_emtc = 0; + char *pusch_sequenceHoppingEnabled_emtc = NULL; + int32_t pusch_nDMRS1_emtc = 0; + char *phich_duration_emtc = NULL; + char *phich_resource_emtc = NULL; + char *srs_enable_emtc = NULL; + int32_t srs_BandwidthConfig_emtc = 0; + int32_t srs_SubframeConfig_emtc = 0; + char *srs_ackNackST_emtc = NULL; + char *srs_MaxUpPts_emtc = NULL; + int32_t pusch_p0_Nominal_emtc = 0; + char *pusch_alpha_emtc = NULL; + int32_t pucch_p0_Nominal_emtc = 0; + int32_t msg3_delta_Preamble_emtc = 0; + //int32_t ul_CyclicPrefixLength_emtc = 0; + char *pucch_deltaF_Format1_emtc = NULL; + //const char* pucch_deltaF_Format1a_emtc = NULL; + char *pucch_deltaF_Format1b_emtc = NULL; + char *pucch_deltaF_Format2_emtc = NULL; + char *pucch_deltaF_Format2a_emtc = NULL; + char *pucch_deltaF_Format2b_emtc = NULL; + int32_t rach_numberOfRA_Preambles_emtc = 0; + char *rach_preamblesGroupAConfig_emtc = NULL; + int32_t rach_sizeOfRA_PreamblesGroupA_emtc = 0; + int32_t rach_messageSizeGroupA_emtc = 0; + char *rach_messagePowerOffsetGroupB_emtc = NULL; + int32_t rach_powerRampingStep_emtc = 0; + int32_t rach_preambleInitialReceivedTargetPower_emtc = 0; + int32_t rach_preambleTransMax_emtc = 0; + int32_t rach_raResponseWindowSize_emtc = 10; + int32_t rach_macContentionResolutionTimer_emtc = 0; + int32_t rach_maxHARQ_Msg3Tx_emtc = 0; + int32_t pcch_defaultPagingCycle_emtc = 0; + char *pcch_nB_emtc = NULL; + int32_t bcch_modificationPeriodCoeff_emtc = 0; + int32_t ue_TimersAndConstants_t300_emtc = 0; + int32_t ue_TimersAndConstants_t301_emtc = 0; + int32_t ue_TimersAndConstants_t310_emtc = 0; + int32_t ue_TimersAndConstants_t311_emtc = 0; + int32_t ue_TimersAndConstants_n310_emtc = 0; + int32_t ue_TimersAndConstants_n311_emtc = 0; + int32_t ue_TransmissionMode_emtc = 0; + + int si_Narrowband_r13 = 0; + int si_TBS_r13 = 0; + + int systemInfoValueTagSi_r13 = 0; + + int firstPreamble_r13 = 0; + int lastPreamble_r13 = 0; + int ra_ResponseWindowSize_r13 = 0; + int mac_ContentionResolutionTimer_r13 = 0; + int rar_HoppingConfig_r13 = 0; + int rsrp_range_br = 0; + int maxNumPreambleAttemptCE_r13 = 0; + int numRepetitionPerPreambleAttempt_r13 = 0; + int mpdcch_NumRepetition_RA_r13 = 0; + int prach_HoppingConfig_r13 = 0; + int *maxavailablenarrowband = NULL; + int pucch_info_value = 0; + + int prach_config_index_br = 0; + int prach_freq_offset_br = 0; + int prach_StartingSubframe_r13 = 0; + + int paging_narrowbands_r13 = 0; + int mpdcch_numrepetition_paging_r13 = NULL; + int nb_v1310 = NULL; + + + char * pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + + int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; + int sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; + int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; + int sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; + int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; + + int sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; + int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; + int sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; + int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; + int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + + int pusch_HoppingOffset_v1310 = 0; + + int hyperSFN_r13 = 0; + int eDRX_Allowed_r13 = 0; + int q_RxLevMinCE_r13 = 0; + int q_QualMinRSRQ_CE_r13 = 0; + char* si_WindowLength_BR_r13 = NULL; + char* si_RepetitionPattern_r13 = NULL; + int startSymbolBR_r13 = 0; + char* si_HoppingConfigCommon_r13 = NULL; + char* si_ValidityTime_r13 = NULL; + char* mpdcch_pdsch_HoppingNB_r13 = NULL; + int interval_DLHoppingConfigCommonModeA_r13_val = 0; + int interval_DLHoppingConfigCommonModeB_r13_val = 0; + int mpdcch_pdsch_HoppingOffset_r13 = 0; + char* preambleTransMax_CE_r13 = NULL; + char* rach_numberOfRA_Preambles_br = NULL; + + int schedulingInfoSIB1_BR_r13 = 0; + int64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; + + char* cellSelectionInfoCE_r13 = NULL; + char* bandwidthReducedAccessRelatedInfo_r13 = NULL; + char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; + char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + char* freqHoppingParametersDL_r13 = NULL; + char* interval_DLHoppingConfigCommonModeA_r13 = NULL; + char* interval_DLHoppingConfigCommonModeB_r13 = NULL; + */ + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13 = NULL; + char* mpdcch_startSF_CSS_RA_r13_val = NULL; + char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + + char* pusch_maxNumRepetitionCEmodeA_r13 = 0; + char* pusch_maxNumRepetitionCEmodeB_r13 = 0; + int prach_HoppingOffset_r13 = 0; + + // avoid gcc warnings + (void)pdsch_maxNumRepetitionCEmodeB_r13; + (void)pusch_maxNumRepetitionCEmodeB_r13; + /* get number of eNBs */ paramdef_t ENBSParams[] = ENBSPARAMS_DESC; config_get(ENBSParams, sizeof(ENBSParams)/sizeof(paramdef_t), NULL); @@ -159,6 +319,22 @@ void RCconfig_flexran() { paramdef_t CCsParams[] = CCPARAMS_DESC; paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0}; + // Note: these should be turned on for EMTC support inside of FlexRAN + //paramdef_t brParams[] = BRPARAMS_DESC; + //paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC; + //paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; + //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + //paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; + //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; + //paramlist_def_t rsrprangelist = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0}; + //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; + //paramlist_def_t prachParamslist = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0}; + //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; + //paramlist_def_t n1PUCCHInfoList = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0}; + //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; + //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; + // paramdef_t SRB1Params[] = SRB1PARAMS_DESC; + /* map parameter checking array instances to parameter definition array instances */ for (int I = 0; I < (sizeof(CCsParams) / sizeof(paramdef_t)); I++) { CCsParams[I].chkPptr = &(config_check_CCparams[I]); @@ -386,6 +562,7 @@ void RCconfig_macrlc() { } int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { + int num_enbs = 0; int j,k = 0; int32_t enb_id = 0; @@ -506,6 +683,76 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size = 0; libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; + int32_t srb1_timer_poll_retransmit = 0; + int32_t srb1_timer_reordering = 0; + int32_t srb1_timer_status_prohibit = 0; + int32_t srb1_poll_pdu = 0; + int32_t srb1_poll_byte = 0; + int32_t srb1_max_retx_threshold = 0; + int32_t my_int; + + // eMTC definitions + int32_t eMTC_configured = 0; + int32_t prach_root_emtc = 0; + int32_t prach_config_index_emtc = 0; + char *prach_high_speed_emtc = NULL; + int32_t prach_zero_correlation_emtc = 0; + int32_t prach_freq_offset_emtc = 0; + int32_t pucch_delta_shift_emtc = 0; + int32_t pucch_nRB_CQI_emtc = 0; + int32_t pucch_nCS_AN_emtc = 0; + //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + int32_t pucch_n1_AN_emtc = 0; + //#endif + int32_t pdsch_referenceSignalPower_emtc = 0; + int32_t pdsch_p_b_emtc = 0; + int32_t pusch_n_SB_emtc = 0; + char *pusch_hoppingMode_emtc = NULL; + int32_t pusch_hoppingOffset_emtc = 0; + char *pusch_enable64QAM_emtc = NULL; + char *pusch_groupHoppingEnabled_emtc = NULL; + int32_t pusch_groupAssignment_emtc = 0; + char *pusch_sequenceHoppingEnabled_emtc = NULL; + int32_t pusch_nDMRS1_emtc = 0; + char *phich_duration_emtc = NULL; + char *phich_resource_emtc = NULL; + char *srs_enable_emtc = NULL; + int32_t srs_BandwidthConfig_emtc = 0; + int32_t srs_SubframeConfig_emtc = 0; + char *srs_ackNackST_emtc = NULL; + char *srs_MaxUpPts_emtc = NULL; + int32_t pusch_p0_Nominal_emtc = 0; + char *pusch_alpha_emtc = NULL; + int32_t pucch_p0_Nominal_emtc = 0; + int32_t msg3_delta_Preamble_emtc = 0; + //int32_t ul_CyclicPrefixLength_emtc = 0; + char *pucch_deltaF_Format1_emtc = NULL; + //const char* pucch_deltaF_Format1a_emtc = NULL; + char *pucch_deltaF_Format1b_emtc = NULL; + char *pucch_deltaF_Format2_emtc = NULL; + char *pucch_deltaF_Format2a_emtc = NULL; + char *pucch_deltaF_Format2b_emtc = NULL; + int32_t rach_numberOfRA_Preambles_emtc = 0; + char *rach_preamblesGroupAConfig_emtc = NULL; + int32_t rach_sizeOfRA_PreamblesGroupA_emtc = 0; + int32_t rach_messageSizeGroupA_emtc = 0; + char *rach_messagePowerOffsetGroupB_emtc = NULL; + int32_t rach_powerRampingStep_emtc = 0; + int32_t rach_preambleInitialReceivedTargetPower_emtc = 0; + int32_t rach_preambleTransMax_emtc = 0; + int32_t rach_raResponseWindowSize_emtc = 10; + int32_t rach_macContentionResolutionTimer_emtc = 0; + int32_t rach_maxHARQ_Msg3Tx_emtc = 0; + int32_t pcch_defaultPagingCycle_emtc = 0; + char *pcch_nB_emtc = NULL; + int32_t bcch_modificationPeriodCoeff_emtc = 0; + int32_t ue_TimersAndConstants_t300_emtc = 0; + int32_t ue_TimersAndConstants_t301_emtc = 0; + int32_t ue_TimersAndConstants_t310_emtc = 0; + int32_t ue_TimersAndConstants_t311_emtc = 0; + int32_t ue_TimersAndConstants_n310_emtc = 0; + int32_t ue_TimersAndConstants_n311_emtc = 0; + int32_t ue_TransmissionMode_emtc = 0; int si_Narrowband_r13 = 0; int si_TBS_r13 = 0; @@ -514,90 +761,84 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int firstPreamble_r13 = 0; int lastPreamble_r13 = 0; - const char* ra_ResponseWindowSize_r13 = NULL; - const char* mac_ContentionResolutionTimer_r13 = NULL; - const char* rar_HoppingConfig_r13 = NULL; + int ra_ResponseWindowSize_r13 = 0; + int mac_ContentionResolutionTimer_r13 = 0; + int rar_HoppingConfig_r13 = 0; int rsrp_range_br = 0; int prach_config_index_br = 0; int prach_freq_offset_br = 0; int prach_StartingSubframe_r13 = 0; - const char* maxNumPreambleAttemptCE_r13 = NULL; - const char* numRepetitionPerPreambleAttempt_r13 = NULL; - const char* mpdcch_NumRepetition_RA_r13 = NULL; - const char* prach_HoppingConfig_r13 = NULL; + + int maxNumPreambleAttemptCE_r13 = 0; + int numRepetitionPerPreambleAttempt_r13 = 0; + int mpdcch_NumRepetition_RA_r13 = 0; + int prach_HoppingConfig_r13 = 0; int *maxavailablenarrowband = NULL; int pucch_info_value = 0; int paging_narrowbands_r13 = 0; - const char* mpdcch_numrepetition_paging_r13 = NULL; - const char* nb_v1310 = NULL; + int mpdcch_numrepetition_paging_r13 = NULL; + int nb_v1310 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - const char* pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; + char * pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; - const char* sib2_mpdcch_pdsch_hoppingNB_r13 = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeA_r13 = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeA_r13_val = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeB_r13 = NULL; - const char* sib2_interval_DLHoppingConfigCommonModeB_r13_val = NULL; + int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; + char *sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; + int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; + char *sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; + int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; - const char* sib2_interval_ULHoppingConfigCommonModeA_r13 = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeA_r13_val = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeB_r13 = NULL; - const char* sib2_interval_ULHoppingConfigCommonModeB_r13_val = NULL; - int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + char *sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; + int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; + char *sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; + int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; + int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; - const char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; - const char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; - - const char* pusch_maxNumRepetitionCEmodeA_r13 = 0; - const char* pusch_maxNumRepetitionCEmodeB_r13 = 0; + int pusch_HoppingOffset_v1310 = 0; int hyperSFN_r13 = 0; int eDRX_Allowed_r13 = 0; int q_RxLevMinCE_r13 = 0; int q_QualMinRSRQ_CE_r13 = 0; - const char* si_WindowLength_BR_r13 = NULL; - const char* si_RepetitionPattern_r13 = NULL; + char *si_WindowLength_BR_r13 = NULL; + char *si_RepetitionPattern_r13 = NULL; int startSymbolBR_r13 = 0; - const char* si_HoppingConfigCommon_r13 = NULL; - const char* si_ValidityTime_r13 = NULL; - const char* mpdcch_pdsch_HoppingNB_r13 = NULL; + char *si_HoppingConfigCommon_r13 = NULL; + char *si_ValidityTime_r13 = NULL; + char *mpdcch_pdsch_HoppingNB_r13 = NULL; int interval_DLHoppingConfigCommonModeA_r13_val = 0; int interval_DLHoppingConfigCommonModeB_r13_val = 0; int mpdcch_pdsch_HoppingOffset_r13 = 0; - const char* preambleTransMax_CE_r13 = NULL; - const char* rach_numberOfRA_Preambles_br = NULL; + char *preambleTransMax_CE_r13 = NULL; int prach_HoppingOffset_r13 = 0; int schedulingInfoSIB1_BR_r13 = 0; - uint64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; + int64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; char* cellSelectionInfoCE_r13 = NULL; char* bandwidthReducedAccessRelatedInfo_r13 = NULL; char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; char* fdd_UplinkSubframeBitmapBR_r13 = NULL; + (void)fdd_UplinkSubframeBitmapBR_r13; char* freqHoppingParametersDL_r13 = NULL; char* interval_DLHoppingConfigCommonModeA_r13 = NULL; char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - const char* prach_ConfigCommon_v1310 = NULL; - const char* mpdcch_startSF_CSS_RA_r13 = NULL; - const char* mpdcch_startSF_CSS_RA_r13_val = NULL; - - - int32_t srb1_timer_poll_retransmit = 0; - int32_t srb1_timer_reordering = 0; - int32_t srb1_timer_status_prohibit = 0; - int32_t srb1_poll_pdu = 0; - int32_t srb1_poll_byte = 0; - int32_t srb1_max_retx_threshold = 0; - int32_t my_int; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13 = NULL; + char* mpdcch_startSF_CSS_RA_r13_val = NULL; + char *pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + char *pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + char *pusch_maxNumRepetitionCEmodeA_r13 = NULL; + char *pusch_maxNumRepetitionCEmodeB_r13 = NULL; // for no gcc warnings (void)my_int; + (void)pdsch_maxNumRepetitionCEmodeB_r13; + (void)pusch_maxNumRepetitionCEmodeB_r13; paramdef_t ENBSParams[] = ENBSPARAMS_DESC; paramdef_t ENBParams[] = ENBPARAMS_DESC; paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; @@ -830,14 +1071,17 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, nb_antenna_ports); RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; - RRC_CONFIGURATION_REQ (msg_p).prach_root[j] = prach_root; + + // Radio Resource Configuration (SIB2) + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; if ((prach_root <0) || (prach_root > 1023)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", RC.config_file_name, i, prach_root); - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j] = prach_config_index; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; if ((prach_config_index <0) || (prach_config_index > 63)) AssertFatal (0, @@ -849,43 +1093,43 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = TRUE; } else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prach_high_speed[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", RC.config_file_name, i, prach_high_speed); - RRC_CONFIGURATION_REQ (msg_p).prach_zero_correlation[j] =prach_zero_correlation; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", RC.config_file_name, i, prach_zero_correlation); - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j] = prach_freq_offset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; if ((prach_freq_offset <0) || (prach_freq_offset > 94)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", RC.config_file_name, i, prach_freq_offset); - RRC_CONFIGURATION_REQ (msg_p).pucch_delta_shift[j] = pucch_delta_shift-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", RC.config_file_name, i, pucch_delta_shift); - RRC_CONFIGURATION_REQ (msg_p).pucch_nRB_CQI[j] = pucch_nRB_CQI; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", RC.config_file_name, i, pucch_nRB_CQI); - RRC_CONFIGURATION_REQ (msg_p).pucch_nCS_AN[j] = pucch_nCS_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) AssertFatal (0, @@ -893,7 +1137,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, pucch_nCS_AN); //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) - RRC_CONFIGURATION_REQ (msg_p).pucch_n1_AN[j] = pucch_n1_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) AssertFatal (0, @@ -901,21 +1145,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, pucch_n1_AN); //#endif - RRC_CONFIGURATION_REQ (msg_p).pdsch_referenceSignalPower[j] = pdsch_referenceSignalPower; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", RC.config_file_name, i, pdsch_referenceSignalPower); - RRC_CONFIGURATION_REQ (msg_p).pdsch_p_b[j] = pdsch_p_b; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; if ((pdsch_p_b <0) || (pdsch_p_b > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", RC.config_file_name, i, pdsch_p_b); - RRC_CONFIGURATION_REQ (msg_p).pusch_n_SB[j] = pusch_n_SB; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; if ((pusch_n_SB <1) || (pusch_n_SB > 4)) AssertFatal (0, @@ -927,15 +1171,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); else if (strcmp(pusch_hoppingMode,"interSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; } else if (strcmp(pusch_hoppingMode,"intraAndInterSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingMode[j] = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", RC.config_file_name, i, pusch_hoppingMode); - RRC_CONFIGURATION_REQ (msg_p).pusch_hoppingOffset[j] = pusch_hoppingOffset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) AssertFatal (0, @@ -947,9 +1191,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; } else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_enable64QAM[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", @@ -960,15 +1204,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; } else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_groupHoppingEnabled[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", RC.config_file_name, i, pusch_groupHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).pusch_groupAssignment[j] = pusch_groupAssignment; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) AssertFatal (0, @@ -980,15 +1224,15 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; } else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_sequenceHoppingEnabled[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", RC.config_file_name, i, pusch_sequenceHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).pusch_nDMRS1[j] = pusch_nDMRS1; //cyclic_shift in RRC! + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1= pusch_nDMRS1; //cyclic_shift in RRC! if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) AssertFatal (0, @@ -996,48 +1240,48 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, pusch_nDMRS1); if (strcmp(phich_duration,"NORMAL")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_normal; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= PHICH_Config__phich_Duration_normal; } else if (strcmp(phich_duration,"EXTENDED")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j] = PHICH_Config__phich_Duration_extended; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= PHICH_Config__phich_Duration_extended; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", RC.config_file_name, i, phich_duration); if (strcmp(phich_resource,"ONESIXTH")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_oneSixth ; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ; } else if (strcmp(phich_resource,"HALF")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_half; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_half; } else if (strcmp(phich_resource,"ONE")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_one; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_one; } else if (strcmp(phich_resource,"TWO")==0) { - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j] = PHICH_Config__phich_Resource_two; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_two; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", RC.config_file_name, i, phich_resource); printf("phich.resource %ld (%s), phich.duration %ld (%s)\n", - RRC_CONFIGURATION_REQ (msg_p).phich_resource[j],phich_resource, - RRC_CONFIGURATION_REQ (msg_p).phich_duration[j],phich_duration); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource,phich_resource, + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration,phich_duration); if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= TRUE; } else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", RC.config_file_name, i, srs_enable); - if (RRC_CONFIGURATION_REQ (msg_p).srs_enable[j] == TRUE) { - RRC_CONFIGURATION_REQ (msg_p).srs_BandwidthConfig[j] = srs_BandwidthConfig; + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable== TRUE) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig= srs_BandwidthConfig; if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", RC.config_file_name, i, srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).srs_SubframeConfig[j] = srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig= srs_SubframeConfig; if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) AssertFatal (0, @@ -1045,25 +1289,25 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, srs_SubframeConfig); if (strcmp(srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= TRUE; } else if (strcmp(srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_ackNackST[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", RC.config_file_name, i, srs_ackNackST); if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= TRUE; } else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).srs_MaxUpPts[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", RC.config_file_name, i, srs_MaxUpPts); } - RRC_CONFIGURATION_REQ (msg_p).pusch_p0_Nominal[j] = pusch_p0_Nominal; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_p0_Nominal= pusch_p0_Nominal; if ((pusch_p0_Nominal<-126) || (pusch_p0_Nominal>24)) AssertFatal (0, @@ -1073,42 +1317,42 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { #if (RRC_VERSION <= MAKE_VERSION(12, 0, 0)) if (strcmp(pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0; } else if (strcmp(pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al04; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04; } else if (strcmp(pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al05; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05; } else if (strcmp(pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al06; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06; } else if (strcmp(pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al07; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07; } else if (strcmp(pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al08; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08; } else if (strcmp(pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al09; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09; } else if (strcmp(pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = UplinkPowerControlCommon__alpha_al1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1; } #endif #if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) if (strcmp(pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al0; } else if (strcmp(pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al04; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al04; } else if (strcmp(pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al05; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al05; } else if (strcmp(pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al06; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al06; } else if (strcmp(pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al07; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al07; } else if (strcmp(pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al08; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al08; } else if (strcmp(pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al09; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al09; } else if (strcmp(pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pusch_alpha[j] = Alpha_r12_al1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al1; } #endif @@ -1117,14 +1361,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", RC.config_file_name, i, pusch_alpha); - RRC_CONFIGURATION_REQ (msg_p).pucch_p0_Nominal[j] = pucch_p0_Nominal; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_p0_Nominal= pucch_p0_Nominal; if ((pucch_p0_Nominal<-127) || (pucch_p0_Nominal>-96)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", RC.config_file_name, i, pucch_p0_Nominal); - RRC_CONFIGURATION_REQ (msg_p).msg3_delta_Preamble[j] = msg3_delta_Preamble; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].msg3_delta_Preamble= msg3_delta_Preamble; if ((msg3_delta_Preamble<-1) || (msg3_delta_Preamble>6)) AssertFatal (0, @@ -1132,63 +1376,63 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, msg3_delta_Preamble); if (strcmp(pucch_deltaF_Format1,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; } else if (strcmp(pucch_deltaF_Format1,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; } else if (strcmp(pucch_deltaF_Format1,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", RC.config_file_name, i, pucch_deltaF_Format1); if (strcmp(pucch_deltaF_Format1b,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; } else if (strcmp(pucch_deltaF_Format1b,"deltaF3")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; } else if (strcmp(pucch_deltaF_Format1b,"deltaF5")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format1b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", RC.config_file_name, i, pucch_deltaF_Format1b); if (strcmp(pucch_deltaF_Format2,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; } else if (strcmp(pucch_deltaF_Format2,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; } else if (strcmp(pucch_deltaF_Format2,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; } else if (strcmp(pucch_deltaF_Format2,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", RC.config_file_name, i, pucch_deltaF_Format2); if (strcmp(pucch_deltaF_Format2a,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; } else if (strcmp(pucch_deltaF_Format2a,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; } else if (strcmp(pucch_deltaF_Format2a,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2a[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", RC.config_file_name, i, pucch_deltaF_Format2a); if (strcmp(pucch_deltaF_Format2b,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; } else if (strcmp(pucch_deltaF_Format2b,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; } else if (strcmp(pucch_deltaF_Format2b,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).pucch_deltaF_Format2b[j] = DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", RC.config_file_name, i, pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ (msg_p).rach_numberOfRA_Preambles[j] = (rach_numberOfRA_Preambles/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles/4)-1; if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>64) || ((rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, @@ -1196,8 +1440,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, rach_numberOfRA_Preambles); if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = TRUE; - RRC_CONFIGURATION_REQ (msg_p).rach_sizeOfRA_PreamblesGroupA[j] = (rach_sizeOfRA_PreamblesGroupA/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, @@ -1206,19 +1450,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { switch (rach_messageSizeGroupA) { case 56: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; break; case 144: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; break; case 208: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; break; case 256: - RRC_CONFIGURATION_REQ (msg_p).rach_messageSizeGroupA[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; break; default: @@ -1229,40 +1473,40 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; } else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ (msg_p).rach_messagePowerOffsetGroupB[j] = RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", RC.config_file_name, i, rach_messagePowerOffsetGroupB); } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).rach_preamblesGroupAConfig[j] = FALSE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", RC.config_file_name, i, rach_preamblesGroupAConfig); - RRC_CONFIGURATION_REQ (msg_p).rach_preambleInitialReceivedTargetPower[j] = (rach_preambleInitialReceivedTargetPower+120)/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).rach_powerRampingStep[j] = rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) AssertFatal (0, @@ -1273,92 +1517,92 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { #if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) case 3: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; break; case 4: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; break; case 5: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; break; case 6: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; break; case 7: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; break; case 8: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; break; case 10: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; break; case 20: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; break; case 50: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; break; case 100: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; break; case 200: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; break; #else case 3: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n3; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n3; break; case 4: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n4; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n4; break; case 5: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n5; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n5; break; case 6: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n6; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n6; break; case 7: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n7; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n7; break; case 8: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n8; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n8; break; case 10: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n10; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n10; break; case 20: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n20; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n20; break; case 50: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n50; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n50; break; case 100: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n100; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n100; break; case 200: - RRC_CONFIGURATION_REQ (msg_p).rach_preambleTransMax[j] = PreambleTransMax_n200; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleTransMax= PreambleTransMax_n200; break; #endif @@ -1369,21 +1613,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } - RRC_CONFIGURATION_REQ (msg_p).rach_raResponseWindowSize[j] = (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", RC.config_file_name, i, rach_preambleTransMax); - RRC_CONFIGURATION_REQ (msg_p).rach_macContentionResolutionTimer[j] = (rach_macContentionResolutionTimer/8)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", RC.config_file_name, i, rach_preambleTransMax); - RRC_CONFIGURATION_REQ (msg_p).rach_maxHARQ_Msg3Tx[j] = rach_maxHARQ_Msg3Tx; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) AssertFatal (0, @@ -1392,19 +1636,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { switch (pcch_defaultPagingCycle) { case 32: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf32; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; break; case 64: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf64; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; break; case 128: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf128; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; break; case 256: - RRC_CONFIGURATION_REQ (msg_p).pcch_defaultPagingCycle[j] = PCCH_Config__defaultPagingCycle_rf256; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; break; default: @@ -1415,21 +1659,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_fourT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_fourT; } else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_twoT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_twoT; } else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneT; } else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_halfT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_halfT; } else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_quarterT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_quarterT; } else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneEighthT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneEighthT; } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneSixteenthT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).pcch_nB[j] = PCCH_Config__nB_oneThirtySecondT; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", @@ -1437,19 +1681,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { switch (bcch_modificationPeriodCoeff) { case 2: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2; break; case 4: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n4; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n4; break; case 8: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n8; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n8; break; case 16: - RRC_CONFIGURATION_REQ (msg_p).bcch_modificationPeriodCoeff[j] = BCCH_Config__modificationPeriodCoeff_n16; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; break; default: @@ -1459,40 +1703,40 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t300[j] = ue_TimersAndConstants_t300; - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t301[j] = ue_TimersAndConstants_t301; - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t310[j] = ue_TimersAndConstants_t310; - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[j] = ue_TimersAndConstants_t311; - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[j] = ue_TimersAndConstants_n310; - RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[j] = ue_TimersAndConstants_n311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= ue_TimersAndConstants_t300; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= ue_TimersAndConstants_t301; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= ue_TimersAndConstants_t310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= ue_TimersAndConstants_t311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= ue_TimersAndConstants_n310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= ue_TimersAndConstants_n311; switch (ue_TransmissionMode) { case 1: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; break; case 2: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; break; case 3: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm3; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; break; case 4: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm4; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; break; case 5: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm5; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; break; case 6: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm6; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; break; case 7: - RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm7; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; break; default: @@ -1502,7 +1746,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } - RRC_CONFIGURATION_REQ (msg_p).ue_multiple_max[j] = ue_multiple_max; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_multiple_max= ue_multiple_max; switch (N_RB_DL) { case 25: @@ -1539,1335 +1783,1074 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS); config_get( brParams, sizeof(brParams)/sizeof(paramdef_t), brparamspath); + RRC_CONFIGURATION_REQ(msg_p).eMTC_configured = eMTC_configured&1; - int cnt_pucch_NumRepetitionCE = 0; - - - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; - - - if (!strcmp(cellSelectionInfoCE_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; - // RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - // *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - } else { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; - } - - - - if (!strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - - - - if (!strcmp(si_WindowLength_BR_r13, "ms20")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; - } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; - } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; - } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; - } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; - } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; - } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; - } else if (!strcmp(si_WindowLength_BR_r13, "spare")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; + if (eMTC_configured > 0) { + printf("Found parameters for eMTC\n"); + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; + + + if (!strcmp(cellSelectionInfoCE_r13, "ENABLE")) { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + // RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); + // *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; + } else { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; } - - - if (!strcmp(si_RepetitionPattern_r13, "everyRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; - } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; - } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; - } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; - } - - } else { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; - } - - char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt; - int siInfoindex; - for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) { - sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST, siInfoindex); - config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath); - RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = si_Narrowband_r13; - RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = si_TBS_r13; - } - - - - // RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = 0; - - // kogo -- recheck - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - } else { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - } - - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; - - - if (!strcmp(si_HoppingConfigCommon_r13, "off")) { - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; - } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) { - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; - } - - - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(si_ValidityTime_r13, "true")) { - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", - RC.config_file_name, i); - } - - - if (!strcmp(freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; - - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; - - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) { - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; - } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) { - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", - RC.config_file_name, i); + + + + if (!strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; + + + + if (!strcmp(si_WindowLength_BR_r13, "ms20")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; + } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; + } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; + } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; + } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; + } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; + } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; + } else if (!strcmp(si_WindowLength_BR_r13, "spare")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; } - - // kogo -- recheck -- optional - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; - } - - /** ------------------------------SIB23------------------------------------------ */ - - - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = calloc(1, sizeof(long)); - if (!strcmp(preambleTransMax_CE_r13, "n3")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 0; - } else if (!strcmp(preambleTransMax_CE_r13, "n4")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 1; - } else if (!strcmp(preambleTransMax_CE_r13, "n5")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 2; - } else if (!strcmp(preambleTransMax_CE_r13, "n6")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 3; - } else if (!strcmp(preambleTransMax_CE_r13, "n7")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 4; - } else if (!strcmp(preambleTransMax_CE_r13, "n8")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 5; - } else if (!strcmp(preambleTransMax_CE_r13, "n10")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 6; - } else if (!strcmp(preambleTransMax_CE_r13, "n20")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 7; - } else if (!strcmp(preambleTransMax_CE_r13, "n50")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 8; - } else if (!strcmp(preambleTransMax_CE_r13, "n100")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 9; - } else if (!strcmp(preambleTransMax_CE_r13, "n200")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].preambleTransMax_CE_r13 = 10; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d preambleTransMax_CE_r13 unknown value!\n", - RC.config_file_name, i); - } - - - - - if (!strcmp(rach_numberOfRA_Preambles, "n4")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (4 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n8")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (8 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n12")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (12 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n16")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (16 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n20")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (20 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n24")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (24 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n28")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (28 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n32")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (32 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n36")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (36 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n40")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (40 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n44")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (44 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n48")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (48 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n52")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (52 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n56")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (56 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n60")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (60 / 4) - 1; - } else if (!strcmp(rach_numberOfRA_Preambles, "n64")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles = (64 / 4) - 1; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); - - } - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep = rach_powerRampingStep / 2; - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower = (rach_preambleInitialReceivedTargetPower + 120) / 2; - - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); - - - switch (rach_preambleTransMax) { - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n3; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n4; - break; - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n5; - break; - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n6; - break; - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n7; - break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n8; - break; - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n10; - break; - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n20; - break; - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n50; - break; - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n100; - break; - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax = PreambleTransMax_n200; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); - break; - } - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; - - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; - - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; - - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); - - - char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&rachcelevellist, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = rachcelevellist.numelt; - int rachCEInfoIndex; - for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) { - sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); - config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath); - - RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = firstPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex] = lastPreamble_r13; - - - - - if (!strcmp(ra_ResponseWindowSize_r13, "sf20")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 0; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf50")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 1; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf80")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 2; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf120")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 3; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf180")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 4; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf240")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 5; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf320")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 6; - } else if (!strcmp(ra_ResponseWindowSize_r13, "sf400")) { - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, ra_ResponseWindowSize_r13 unknown value!\n", - RC.config_file_name); - } - - if (!strcmp(mac_ContentionResolutionTimer_r13, "sf80")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 0; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf100")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 1; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf120")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 2; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf160")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 3; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf200")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 4; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf240")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 5; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf480")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 6; - } else if (!strcmp(mac_ContentionResolutionTimer_r13, "sf960")) { - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, mac_ContentionResolutionTimer_r13 unknown value!\n", - RC.config_file_name); - } - - if (!strcmp(rar_HoppingConfig_r13, "on")) { - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = 0; - } else if (!strcmp(rar_HoppingConfig_r13, "off")) { - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = 1; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, rar_HoppingConfig_r13 unknown value!\n", - RC.config_file_name); - } - - } // end for loop (rach ce level info) - - - /** BCCH CONFIG */ - switch (bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n2; - break; - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n4; - break; - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n8; - break; - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff = BCCH_Config__modificationPeriodCoeff_n16; - break; - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); - - break; - } - - /** PCCH CONFIG */ - if (!strcmp(pcch_defaultPagingCycle, "rf32")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf32; - } else if (!strcmp(pcch_defaultPagingCycle, "rf64")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf64; - } else if (!strcmp(pcch_defaultPagingCycle, "rf128")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf128; - } else if (!strcmp(pcch_defaultPagingCycle, "rf256")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle = PCCH_Config__defaultPagingCycle_rf256; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - } - - - - if (strcmp(pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; - } - else if (strcmp(pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; - } - else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; - } - else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; - } - else if (strcmp(pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; - } - else if (strcmp(pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; - } - else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; - } - else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); - - - /** PRACH CONFIG */ - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root; - if ((prach_root <0) || (prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); - - - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index; - if ((prach_config_index <0) || (prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); - - - - - - if (!prach_high_speed) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; - } - else if (strcmp(prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); - - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation = prach_zero_correlation; - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset; - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); - - - - - /** PDSCH Config Common */ - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); - - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b; - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); - - - - - - - /** PUSCH Config Common */ - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB; - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); - - - - - - if (!pusch_hoppingMode) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode, "interSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } - else if (strcmp(pusch_hoppingMode, "intraAndInterSubFrame") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); - - - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset; - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); - - - - - if (!pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; - } - else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); - - - - - if (!pusch_groupHoppingEnabled) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; - } - else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); - - - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment; - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); - - - - - if (!pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; - } - else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); - - - - - - /** PUCCH Config Common */ - /** TO BE CONTINUED */ - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift-1; - - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI; - - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN; - - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); - - - /** - check if pucch_n1_AN is in necessary the BR parameters - */ - - - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal = pusch_p0_Nominal; - - if ((pusch_p0_Nominal < -126) || (pusch_p0_Nominal > 24)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); - - if (strcmp(pusch_alpha, "AL0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al0; - } else if (strcmp(pusch_alpha, "AL04") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al04; - } else if (strcmp(pusch_alpha, "AL05") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al05; - } else if (strcmp(pusch_alpha, "AL06") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al06; - } else if (strcmp(pusch_alpha, "AL07") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al07; - } else if (strcmp(pusch_alpha, "AL08") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al08; - } else if (strcmp(pusch_alpha, "AL09") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al09; - } else if (strcmp(pusch_alpha, "AL1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pusch_alpha = Alpha_r12_al1; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal = pucch_p0_Nominal; - if ((pucch_p0_Nominal < -127) || (pucch_p0_Nominal > -96)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); - - if (strcmp(pucch_deltaF_Format1, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1 = DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } - else if (strcmp(pucch_deltaF_Format1, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); - - if (strcmp(pucch_deltaF_Format1b, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF3") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } - else if (strcmp(pucch_deltaF_Format1b, "deltaF5") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); - - - if (strcmp(pucch_deltaF_Format2, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF1") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } - else if (strcmp(pucch_deltaF_Format2, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); - - if (strcmp(pucch_deltaF_Format2a, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2a, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); - - if (strcmp(pucch_deltaF_Format2b, "deltaF_2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF0") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } - else if (strcmp(pucch_deltaF_Format2b, "deltaF2") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); - - - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble = msg3_delta_Preamble; - - if ((msg3_delta_Preamble < -1) || (msg3_delta_Preamble > 6)) - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); - - - - - if (!strcmp(prach_ConfigCommon_v1310, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = TRUE; - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); - - if (!strcmp(mpdcch_startSF_CSS_RA_r13, "tdd-r13")) { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = FALSE; - } else { - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13 = TRUE; + + + if (!strcmp(si_RepetitionPattern_r13, "everyRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; + } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; + } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; + } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; } - - if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 0; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 1; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 2; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 3; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v4")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 4; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v5")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 5; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "v8")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 6; - } else if (!strcmp(mpdcch_startSF_CSS_RA_r13_val, "10")) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].mpdcch_startSF_CSS_RA_r13_val = 7; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n", - RC.config_file_name, i); - } - - - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_HoppingOffset_r13 = prach_HoppingOffset_r13; + } else { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].prach_ConfigCommon_v1310 = FALSE; - } - - - RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { - *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { - *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", - RC.config_file_name); - } - - - RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", - RC.config_file_name); - } - - - - char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&rsrprangelist, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = rsrprangelist.numelt; - - - int rsrprangeindex; - for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) { - sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex); - config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = rsrp_range_br; - - } - - - char prachparameterscePath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&prachParamslist, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = prachParamslist.numelt; - - int prachparamsindex; - for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) { - sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex); - config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath); - - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex] = prach_config_index_br; - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex] = prach_freq_offset_br; - - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = prach_StartingSubframe_r13; - - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long)); - if (!strcmp(maxNumPreambleAttemptCE_r13, "n3")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 0; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n4")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 1; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n5")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 2; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n6")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 3; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n7")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 4; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n8")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 5; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "n10")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 6; - } else if (!strcmp(maxNumPreambleAttemptCE_r13, "spare1")) { - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, maxNumPreambleAttemptCE_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; } - - - - if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n1")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 0; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n2")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 1; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n4")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 2; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n8")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 3; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n16")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 4; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n32")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 5; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n64")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 6; - } else if (!strcmp(numRepetitionPerPreambleAttempt_r13, "n128")) { - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = 7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, numRepetitionPerPreambleAttempt_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); + + char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt; + int siInfoindex; + for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) { + sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST, siInfoindex); + config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath); + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = si_TBS_r13; } - - - - - if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 0; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 1; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r4")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 2; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r8")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 3; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r16")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 4; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r32")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 5; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r64")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 6; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r128")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 7; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r256")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 8; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r512")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 9; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r1024")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 10; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "r2048")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 11; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare4")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 12; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare3")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 13; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare2")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 14; - } else if (!strcmp(mpdcch_NumRepetition_RA_r13, "spare1")) { - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = 15; + + + + // RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].system_info_value_tag_SI_size[j] = 0; + + + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); + if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, mpdcch_NumRepetition_RA_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } - - - - if (!strcmp(prach_HoppingConfig_r13, "off")) { - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = 1; - } else if (!strcmp(prach_HoppingConfig_r13, "on")) { - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = 0; + + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + + + if (!strcmp(si_HoppingConfigCommon_r13, "off")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; + } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; + } + + + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); + if (!strcmp(si_ValidityTime_r13, "true")) { + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, prach_HoppingConfig_r13 unknown value !! %d!\n", - RC.config_file_name, nb_cc++); + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", + RC.config_file_name, i); } - - - - - - int maxavailablenarrowband_count = prachParams[7].numelt; - - RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prachparamsindex] = maxavailablenarrowband_count; - int narrow_band_index; - for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++) + + + if (!strcmp(freqHoppingParametersDL_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prachparamsindex][narrow_band_index] = prachParams[7].iptr[narrow_band_index]; - + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; + + if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); + if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; + } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", + RC.config_file_name, i); } - } - - char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = n1PUCCHInfoList.numelt; - - int n1PUCCHinfolistindex; - for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) { - sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex); - config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath); - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = pucch_info_value; - } - - /** UE Timers And Constants */ - - - if (!strcmp(ue_TimersAndConstants_t300, "ms100")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms100; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms200")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms200; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms300")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms300; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms400")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms400; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms600")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms600; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms1500")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms1500; - } else if (!strcmp(ue_TimersAndConstants_t300, "ms2000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300 = UE_TimersAndConstants__t300_ms2000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t300 unknown value !!", - RC.config_file_name, i, ue_TimersAndConstants_t300); - } - - if (!strcmp(ue_TimersAndConstants_t301, "ms100")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms100; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms200")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms200; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms300")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms300; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms400")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms400; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms600")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms600; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms1500")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms1500; - } else if (!strcmp(ue_TimersAndConstants_t301, "ms2000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= UE_TimersAndConstants__t301_ms2000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t301 !!", - RC.config_file_name, i, ue_TimersAndConstants_t301); - } - - - if (!strcmp(ue_TimersAndConstants_t310, "ms0")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms0; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms50")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms50; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms100")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms100; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms200")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms200; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms500")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms500; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t310, "ms2000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310 = UE_TimersAndConstants__t310_ms2000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t310 !!", - RC.config_file_name, i, ue_TimersAndConstants_t310); - } - - - if (!strcmp(ue_TimersAndConstants_t311, "ms1000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms1000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms3000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms3000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms5000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms5000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms10000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms10000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms15000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms15000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms20000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms20000; - } else if (!strcmp(ue_TimersAndConstants_t311, "ms30000")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311 = UE_TimersAndConstants__t311_ms30000; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_t311 !!", - RC.config_file_name, i, ue_TimersAndConstants_t311); - } - - - if (!strcmp(ue_TimersAndConstants_n310, "n1")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n1; - } else if (!strcmp(ue_TimersAndConstants_n310, "n2")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n2; - } else if (!strcmp(ue_TimersAndConstants_n310, "n3")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n3; - } else if (!strcmp(ue_TimersAndConstants_n310, "n4")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n4; - } else if (!strcmp(ue_TimersAndConstants_n310, "n6")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n6; - } else if (!strcmp(ue_TimersAndConstants_n310, "n8")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n8; - } else if (!strcmp(ue_TimersAndConstants_n310, "n10")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n10; - } else if (!strcmp(ue_TimersAndConstants_n310, "n20")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310 = UE_TimersAndConstants__n310_n20; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n310 !!", - RC.config_file_name, i, ue_TimersAndConstants_n310); - } - - - if (!strcmp(ue_TimersAndConstants_n311, "n1")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n1; - } else if (!strcmp(ue_TimersAndConstants_n311, "n2")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n2; - } else if (!strcmp(ue_TimersAndConstants_n311, "n3")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n3; - } else if (!strcmp(ue_TimersAndConstants_n311, "n4")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n4; - } else if (!strcmp(ue_TimersAndConstants_n311, "n5")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n5; - } else if (!strcmp(ue_TimersAndConstants_n311, "n6")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n6; - } else if (!strcmp(ue_TimersAndConstants_n311, "n8")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n8; - } else if (!strcmp(ue_TimersAndConstants_n311, "n10")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311 = UE_TimersAndConstants__n311_n10; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TimersAndConstants_n311!!", - RC.config_file_name, i, ue_TimersAndConstants_n311); - } - - - if (!strcmp(ue_TransmissionMode, "tm1")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm1; - } else if (!strcmp(ue_TransmissionMode, "tm2")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm2; - } else if (!strcmp(ue_TransmissionMode, "tm3")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm3; - } else if (!strcmp(ue_TransmissionMode, "tm4")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm4; - } else if (!strcmp(ue_TransmissionMode, "tm5")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm5; - } else if (!strcmp(ue_TransmissionMode, "tm6")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm6; - } else if (!strcmp(ue_TransmissionMode, "tm7")) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode = AntennaInfoDedicated__transmissionMode_tm7; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode !!", - RC.config_file_name, i, ue_TransmissionMode); - } - - - char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16]; - sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); - config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path); - - - - /** PCCH CONFIG V1310 */ - - RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; - - if (!strcmp(mpdcch_numrepetition_paging_r13, "r1")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 0; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r2")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 1; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r4")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 2; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r8")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 3; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r16")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 4; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r32")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 5; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r64")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 6; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r128")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 7; - } else if (!strcmp(mpdcch_numrepetition_paging_r13, "r256")) { - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = 8; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", - RC.config_file_name); - } - - - // RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); - // if (!strcmp(nb_v1310, "one64thT")) { - // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; - // } else if (!strcmp(nb_v1310, "one128thT")) { - // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; - // } else if (!strcmp(nb_v1310, "one256thT")) { - // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; - // } else { - // AssertFatal(0, - // "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", - // RC.config_file_name); - // } - - - - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); - // ++cnt; // check this ,, the conter is up above - if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", - RC.config_file_name); - } - - - - /** SIB2 FREQ HOPPING PARAMETERS R13 */ - RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; - - char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16]; - sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13); - config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path); - - - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int2")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int4")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int8")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; + } + + /** ------------------------------SIB2/3 BR------------------------------------------ */ + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root_emtc; + + if ((prach_root_emtc <0) || (prach_root_emtc > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + RC.config_file_name, i, prach_root_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index_emtc; + + if ((prach_config_index_emtc <0) || (prach_config_index_emtc > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + RC.config_file_name, i, prach_config_index); + + if (!prach_high_speed_emtc) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(prach_high_speed_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; + } else if (strcmp(prach_high_speed_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, prach_high_speed_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation_emtc; + + if ((prach_zero_correlation_emtc <0) || (prach_zero_correlation_emtc > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + RC.config_file_name, i, prach_zero_correlation_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset_emtc; + + if ((prach_freq_offset_emtc <0) || (prach_freq_offset_emtc > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + RC.config_file_name, i, prach_freq_offset); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift_emtc-1; + + if ((pucch_delta_shift_emtc <1) || (pucch_delta_shift_emtc > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + RC.config_file_name, i, pucch_delta_shift_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI_emtc; + + if ((pucch_nRB_CQI_emtc <0) || (pucch_nRB_CQI_emtc > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + RC.config_file_name, i, pucch_nRB_CQI_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN_emtc; + + if ((pucch_nCS_AN_emtc <0) || (pucch_nCS_AN_emtc > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + RC.config_file_name, i, pucch_nCS_AN_emtc); + + //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN_emtc; + + if ((pucch_n1_AN_emtc <0) || (pucch_n1_AN_emtc > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + RC.config_file_name, i, pucch_n1_AN_emtc); + + //#endif + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower_emtc; + + if ((pdsch_referenceSignalPower_emtc <-60) || (pdsch_referenceSignalPower_emtc > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + RC.config_file_name, i, pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b_emtc; + + if ((pdsch_p_b_emtc <0) || (pdsch_p_b_emtc > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + RC.config_file_name, i, pdsch_p_b_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB_emtc; + + if ((pusch_n_SB_emtc <1) || (pusch_n_SB_emtc > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + RC.config_file_name, i, pusch_n_SB_emtc); + + if (!pusch_hoppingMode_emtc) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(pusch_hoppingMode_emtc,"interSubFrame")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } else if (strcmp(pusch_hoppingMode_emtc,"intraAndInterSubFrame")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + RC.config_file_name, i, pusch_hoppingMode_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset_emtc; + + if ((pusch_hoppingOffset_emtc<0) || (pusch_hoppingOffset_emtc>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + RC.config_file_name, i, pusch_hoppingMode_emtc); + + if (!pusch_enable64QAM_emtc) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(pusch_enable64QAM_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; + } else if (strcmp(pusch_enable64QAM_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_enable64QAM_emtc); + + if (!pusch_groupHoppingEnabled_emtc) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(pusch_groupHoppingEnabled_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; + } else if (strcmp(pusch_groupHoppingEnabled_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_groupHoppingEnabled_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment_emtc; + + if ((pusch_groupAssignment_emtc<0)||(pusch_groupAssignment_emtc>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + RC.config_file_name, i, pusch_groupAssignment_emtc); + + if (!pusch_sequenceHoppingEnabled_emtc) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(pusch_sequenceHoppingEnabled_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; + } else if (strcmp(pusch_sequenceHoppingEnabled_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + RC.config_file_name, i, pusch_sequenceHoppingEnabled_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1= pusch_nDMRS1_emtc; //cyclic_shift in RRC! + + if ((pusch_nDMRS1_emtc <0) || (pusch_nDMRS1_emtc>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + RC.config_file_name, i, pusch_nDMRS1_emtc); + + if (strcmp(phich_duration_emtc,"NORMAL")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_normal; + } else if (strcmp(phich_duration_emtc,"EXTENDED")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + RC.config_file_name, i, phich_duration_emtc); + + if (strcmp(phich_resource_emtc,"ONESIXTH")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ; + } else if (strcmp(phich_resource_emtc,"HALF")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_half; + } else if (strcmp(phich_resource_emtc,"ONE")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_one; + } else if (strcmp(phich_resource_emtc,"TWO")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_two; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + RC.config_file_name, i, phich_resource_emtc); + + printf("phich.resource eMTC %ld (%s), phich.duration eMTC %ld (%s)\n", + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource,phich_resource_emtc, + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration,phich_duration_emtc); + + if (strcmp(srs_enable_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= TRUE; + } else if (strcmp(srs_enable_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_enable_emtc); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable== TRUE) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig= srs_BandwidthConfig_emtc; + + if ((srs_BandwidthConfig_emtc < 0) || (srs_BandwidthConfig_emtc >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + RC.config_file_name, i, srs_BandwidthConfig_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig= srs_SubframeConfig_emtc; + + if ((srs_SubframeConfig_emtc<0) || (srs_SubframeConfig_emtc>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + RC.config_file_name, i, srs_SubframeConfig_emtc); + + if (strcmp(srs_ackNackST_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= TRUE; + } else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_ackNackST_emtc); + + if (strcmp(srs_MaxUpPts_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= TRUE; + } else if (strcmp(srs_MaxUpPts_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, srs_MaxUpPts_emtc); + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal= pusch_p0_Nominal_emtc; + + if ((pusch_p0_Nominal_emtc<-126) || (pusch_p0_Nominal_emtc>24)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + RC.config_file_name, i, pusch_p0_Nominal); + +#if (RRC_VERSION <= MAKE_VERSION(12, 0, 0)) + + if (strcmp(pusch_alpha_emtc,"AL0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0; + } else if (strcmp(pusch_alpha_emtc,"AL04")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04; + } else if (strcmp(pusch_alpha_emtc,"AL05")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05; + } else if (strcmp(pusch_alpha_emtc,"AL06")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06; + } else if (strcmp(pusch_alpha_emtc,"AL07")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07; + } else if (strcmp(pusch_alpha_emtc,"AL08")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08; + } else if (strcmp(pusch_alpha_emtc,"AL09")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09; + } else if (strcmp(pusch_alpha_emtc,"AL1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1; + } + +#endif +#if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) + + if (strcmp(pusch_alpha_emtc,"AL0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al0; + } else if (strcmp(pusch_alpha_emtc,"AL04")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al04; + } else if (strcmp(pusch_alpha_emtc,"AL05")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al05; + } else if (strcmp(pusch_alpha_emtc,"AL06")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al06; + } else if (strcmp(pusch_alpha_emtc,"AL07")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al07; + } else if (strcmp(pusch_alpha_emtc,"AL08")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al08; + } else if (strcmp(pusch_alpha_emtc,"AL09")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al09; + } else if (strcmp(pusch_alpha_emtc,"AL1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al1; + } + +#endif + else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + RC.config_file_name, i, pusch_alpha); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal= pucch_p0_Nominal_emtc; + + if ((pucch_p0_Nominal_emtc<-127) || (pucch_p0_Nominal_emtc>-96)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + RC.config_file_name, i, pucch_p0_Nominal_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble= msg3_delta_Preamble_emtc; + + if ((msg3_delta_Preamble_emtc<-1) || (msg3_delta_Preamble_emtc>6)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + RC.config_file_name, i, msg3_delta_Preamble_emtc); + + if (strcmp(pucch_deltaF_Format1_emtc,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } else if (strcmp(pucch_deltaF_Format1_emtc,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } else if (strcmp(pucch_deltaF_Format1_emtc,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format1_emtc); + + if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } else if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF3")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } else if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + RC.config_file_name, i, pucch_deltaF_Format1b_emtc); + + if (strcmp(pucch_deltaF_Format2_emtc,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2_emtc); + + if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } else if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } else if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2a_emtc); + + if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } else if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } else if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + RC.config_file_name, i, pucch_deltaF_Format2b_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles_emtc/4)-1; + + if ((rach_numberOfRA_Preambles_emtc <4) || (rach_numberOfRA_Preambles_emtc >64) || ((rach_numberOfRA_Preambles_emtc&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + RC.config_file_name, i, rach_numberOfRA_Preambles_emtc); + + if (strcmp(rach_preamblesGroupAConfig_emtc, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA_emtc/4)-1; + + if ((rach_numberOfRA_Preambles_emtc <4) || (rach_numberOfRA_Preambles_emtc>60) || ((rach_numberOfRA_Preambles_emtc&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA_emtc); + + switch (rach_messageSizeGroupA_emtc) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; + + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; + + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + RC.config_file_name, i, rach_messageSizeGroupA_emtc); + break; + } + + if (strcmp(rach_messagePowerOffsetGroupB_emtc,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB18")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + RC.config_file_name, i, rach_messagePowerOffsetGroupB_emtc); + } else if (strcmp(rach_preamblesGroupAConfig_emtc, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + RC.config_file_name, i, rach_preamblesGroupAConfig_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower_emtc+120)/2; + + if ((rach_preambleInitialReceivedTargetPower_emtc<-120) || (rach_preambleInitialReceivedTargetPower_emtc>-90) || ((rach_preambleInitialReceivedTargetPower_emtc&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + RC.config_file_name, i, rach_preambleInitialReceivedTargetPower_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep_emtc/2; + + if ((rach_powerRampingStep_emtc<0) || (rach_powerRampingStep_emtc>6) || ((rach_powerRampingStep_emtc&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + RC.config_file_name, i, rach_powerRampingStep_emtc); + + switch (rach_preambleTransMax_emtc) { +#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; + break; +#else + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; + break; +#endif + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + RC.config_file_name, i, rach_preambleTransMax_emtc); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize_emtc==10)?7:rach_raResponseWindowSize_emtc-2; + + if ((rach_raResponseWindowSize_emtc<0)||(rach_raResponseWindowSize_emtc==9)||(rach_raResponseWindowSize_emtc>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + RC.config_file_name, i, rach_raResponseWindowSize_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer_emtc/8)-1; + + if ((rach_macContentionResolutionTimer_emtc<8) || (rach_macContentionResolutionTimer_emtc>64) || ((rach_macContentionResolutionTimer_emtc&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + RC.config_file_name, i, rach_macContentionResolutionTimer_emtc); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx_emtc; + + if ((rach_maxHARQ_Msg3Tx_emtc<0) || (rach_maxHARQ_Msg3Tx_emtc>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + RC.config_file_name, i, rach_maxHARQ_Msg3Tx_emtc); + + switch (pcch_defaultPagingCycle_emtc) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + RC.config_file_name, i, pcch_defaultPagingCycle_emtc); + break; + } + + if (strcmp(pcch_nB_emtc, "fourT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; + } else if (strcmp(pcch_nB_emtc, "twoT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; + } else if (strcmp(pcch_nB_emtc, "oneT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; + } else if (strcmp(pcch_nB_emtc, "halfT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; + } else if (strcmp(pcch_nB_emtc, "quarterT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; + } else if (strcmp(pcch_nB_emtc, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; + } else if (strcmp(pcch_nB_emtc, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; + } else if (strcmp(pcch_nB_emtc, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, pcch_nB_emtc); + + switch (bcch_modificationPeriodCoeff_emtc) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + RC.config_file_name, i, bcch_modificationPeriodCoeff); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300= ue_TimersAndConstants_t300; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= ue_TimersAndConstants_t301; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= ue_TimersAndConstants_t310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= ue_TimersAndConstants_t311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= ue_TimersAndConstants_n310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= ue_TimersAndConstants_n311; + + switch (ue_TransmissionMode_emtc) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + RC.config_file_name, i, ue_TransmissionMode); + break; + } + + + + + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", RC.config_file_name); } - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int1")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 0; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int5")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 1; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int10")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 2; - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13_val, "int20")) { - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = 3; + + + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; + } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; } else { AssertFatal (0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13_val unknown value !!\n", + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", RC.config_file_name); } - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", - RC.config_file_name); - } + + char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&rachcelevellist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = rachcelevellist.numelt; + int rachCEInfoIndex; + for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) { + sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); + config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath); + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex] = lastPreamble_r13; + + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = ra_ResponseWindowSize_r13; + AssertFatal(ra_ResponseWindowSize_r13 == 20 || + ra_ResponseWindowSize_r13 == 50 || + ra_ResponseWindowSize_r13 == 80 || + ra_ResponseWindowSize_r13 == 120 || + ra_ResponseWindowSize_r13 == 180 || + ra_ResponseWindowSize_r13 == 240 || + ra_ResponseWindowSize_r13 == 320 || + ra_ResponseWindowSize_r13 == 400, + "Illegal ra_ResponseWindowSize_r13 %d\n",ra_ResponseWindowSize_r13); + + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = mac_ContentionResolutionTimer_r13; + AssertFatal(mac_ContentionResolutionTimer_r13 == 80 || + mac_ContentionResolutionTimer_r13 == 100 || + mac_ContentionResolutionTimer_r13 == 120 || + mac_ContentionResolutionTimer_r13 == 80 || + mac_ContentionResolutionTimer_r13 == 160 || + mac_ContentionResolutionTimer_r13 == 200 || + mac_ContentionResolutionTimer_r13 == 240 || + mac_ContentionResolutionTimer_r13 == 480 || + mac_ContentionResolutionTimer_r13 == 960, + "Illegal mac_ContentionResolutionTimer_r13 %d\n", + mac_ContentionResolutionTimer_r13); + + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = rar_HoppingConfig_r13; + AssertFatal(rar_HoppingConfig_r13 == 0 || rar_HoppingConfig_r13 == 1, + "illegal rar_HoppingConfig_r13 %d\n",rar_HoppingConfig_r13); + } // end for loop (rach ce level info) + + char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&rsrprangelist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = rsrprangelist.numelt; + + + int rsrprangeindex; + for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) { + sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex); + config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = rsrp_range_br; + + } + + + char prachparameterscePath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&prachParamslist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = prachParamslist.numelt; + + int prachparamsindex; + for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) { + sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex); + config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath); + + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex] = prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex] = prach_freq_offset_br; + + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = prach_StartingSubframe_r13; + + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = maxNumPreambleAttemptCE_r13-3; + AssertFatal(maxNumPreambleAttemptCE_r13 > 2 && maxNumPreambleAttemptCE_r13 <11, + "prachparamsindex %d: Illegal maxNumPreambleAttemptCE_r13 %d\n", + prachparamsindex,maxNumPreambleAttemptCE_r13); + + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = numRepetitionPerPreambleAttempt_r13; + AssertFatal(numRepetitionPerPreambleAttempt_r13 == 1 || + numRepetitionPerPreambleAttempt_r13 == 2 || + numRepetitionPerPreambleAttempt_r13 == 4 || + numRepetitionPerPreambleAttempt_r13 == 8 || + numRepetitionPerPreambleAttempt_r13 == 16 || + numRepetitionPerPreambleAttempt_r13 == 32 || + numRepetitionPerPreambleAttempt_r13 == 64 || + numRepetitionPerPreambleAttempt_r13 == 128, + "illegal numReptitionPerPreambleAttempt %d\n", + numRepetitionPerPreambleAttempt_r13); + + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = mpdcch_NumRepetition_RA_r13; + AssertFatal (mpdcch_NumRepetition_RA_r13 == 1 || + mpdcch_NumRepetition_RA_r13 == 2 || + mpdcch_NumRepetition_RA_r13 == 4 || + mpdcch_NumRepetition_RA_r13 == 8 || + mpdcch_NumRepetition_RA_r13 == 16 || + mpdcch_NumRepetition_RA_r13 == 32 || + mpdcch_NumRepetition_RA_r13 == 64 || + mpdcch_NumRepetition_RA_r13 == 128 || + mpdcch_NumRepetition_RA_r13 == 256 || + mpdcch_NumRepetition_RA_r13 == 512 || + mpdcch_NumRepetition_RA_r13 == 1024 || + mpdcch_NumRepetition_RA_r13 == 2048, + "illegal mpdcch_NumRepeition_RA_r13 %d\n", + mpdcch_NumRepetition_RA_r13); + + + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = prach_HoppingConfig_r13; + + AssertFatal (prach_HoppingConfig_r13 >=0 && prach_HoppingConfig_r13 < 2, + "Illegal prach_HoppingConfig_r13 %d\n",prach_HoppingConfig_r13); + + + int maxavailablenarrowband_count = prachParams[7].numelt; + + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prachparamsindex] = maxavailablenarrowband_count; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++) { + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prachparamsindex][narrow_band_index] = prachParams[7].iptr[narrow_band_index]; + } + } - - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; - - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1 = pusch_nDMRS1; //cyclic_shift in RRC! - - - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); - - - if (strcmp(phich_duration, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_normal; - } - else if (strcmp(phich_duration, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration = PHICH_Config__phich_Duration_extended; - } - else - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); - - - - if (strcmp(phich_resource, "ONESIXTH") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_oneSixth; - } - else if (strcmp(phich_resource, "HALF") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_half; - } - else if (strcmp(phich_resource, "ONE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_one; - } - else if (strcmp(phich_resource, "TWO") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource = PHICH_Config__phich_Resource_two; - } + char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = n1PUCCHInfoList.numelt; + + int n1PUCCHinfolistindex; + for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) { + sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex); + config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = pucch_info_value; + } + + char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); + config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path); + + + + /** PCCH CONFIG V1310 */ + + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13; + AssertFatal (mpdcch_numrepetition_paging_r13 == 1 || + mpdcch_numrepetition_paging_r13 == 2 || + mpdcch_numrepetition_paging_r13 == 4 || + mpdcch_numrepetition_paging_r13 == 8 || + mpdcch_numrepetition_paging_r13 == 16 || + mpdcch_numrepetition_paging_r13 == 32 || + mpdcch_numrepetition_paging_r13 == 64 || + mpdcch_numrepetition_paging_r13 == 128 || + mpdcch_numrepetition_paging_r13 == 256, + "illegal mpdcch_numrepetition_paging_r13 %d\n", + mpdcch_numrepetition_paging_r13); + + + // RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); + // if (!strcmp(nb_v1310, "one64thT")) { + // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; + // } else if (!strcmp(nb_v1310, "one128thT")) { + // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; + // } else if (!strcmp(nb_v1310, "one256thT")) { + // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; + // } else { + // AssertFatal(0, + // "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + // RC.config_file_name); + // } + + + + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); + // ++cnt; // check this ,, the conter is up above + if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; + } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", + RC.config_file_name); + } + + + + /** SIB2 FREQ HOPPING PARAMETERS R13 */ + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; + + char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13); + config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path); + + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; + AssertFatal(sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || + sib2_interval_ULHoppingConfigCommonModeA_r13_val==2 || + sib2_interval_ULHoppingConfigCommonModeA_r13_val==4 || + sib2_interval_ULHoppingConfigCommonModeA_r13_val==8, + "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", + sib2_interval_ULHoppingConfigCommonModeA_r13_val); + } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; + AssertFatal(sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || + sib2_interval_ULHoppingConfigCommonModeA_r13_val==5 || + sib2_interval_ULHoppingConfigCommonModeA_r13_val==10 || + sib2_interval_ULHoppingConfigCommonModeA_r13_val==20, + "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", + sib2_interval_ULHoppingConfigCommonModeA_r13_val); + } else { + AssertFatal (1==0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + RC.config_file_name); + } + RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=1; + } // BR parameters > 0 else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + printf("No eMTC configuration, skipping it\n"); + RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=0; } - - - printf("phich.resource %d (%s), phich.duration %d (%s)\n", - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_resource, phich_resource, - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].phich_duration, phich_duration); - - if (strcmp(srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = TRUE; - } - else if (strcmp(srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].srs_enable = FALSE; - } - else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); - } - - - - - //TTN - for D2D + // Sidelink Resource pool information //SIB18 if (strcmp(rxPool_sc_CP_Len,"normal")==0) { RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_normal; @@ -3671,8 +3654,9 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower, pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment, pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal, - pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles, - rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, + pucch_p0_Nominal, msg3_delta_Preamble; + char *rach_numberOfRA_Preambles; + int32_t rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, rach_powerRampingStep, rach_preambleInitialReceivedTargetPower, rach_preambleTransMax, rach_raResponseWindowSize, rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx, @@ -3681,6 +3665,20 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { ue_TimersAndConstants_t310, ue_TimersAndConstants_t311, ue_TimersAndConstants_n310, ue_TimersAndConstants_n311, ue_TransmissionMode, ue_multiple_max; + char* prach_ConfigCommon_v1310 = NULL; + char* mpdcch_startSF_CSS_RA_r13 = NULL; + char* mpdcch_startSF_CSS_RA_r13_val = NULL; + char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; + + char* pusch_maxNumRepetitionCEmodeA_r13 = 0; + char* pusch_maxNumRepetitionCEmodeB_r13 = 0; + int prach_HoppingOffset_r13 = 0; + + // avoid gcc warnings + (void)pdsch_maxNumRepetitionCEmodeB_r13; + (void)pusch_maxNumRepetitionCEmodeB_r13; + const char *rxPool_sc_CP_Len; const char *rxPool_sc_Period; const char *rxPool_data_CP_Len; @@ -3829,6 +3827,7 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { //char ccspath[MAX_OPTNAME_SIZE*2 + 16]; for (J = 0; J < CCsParamList.numelt ; J++) { sprintf(aprefix, "%s.[%i].%s.[%i]", ENB_CONFIG_STRING_ENB_LIST, k, ENB_CONFIG_STRING_COMPONENT_CARRIERS, J); + printf("X2: Getting %s\n",aprefix); config_get(CCsParams, sizeof(CCsParams)/sizeof(paramdef_t), aprefix); X2AP_REGISTER_ENB_REQ (msg_p).eutra_band[J] = eutra_band; X2AP_REGISTER_ENB_REQ (msg_p).downlink_frequency[J] = (uint32_t) downlink_frequency; diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index eb020c4517..9e43b8c61e 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -312,16 +312,7 @@ typedef enum { #define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3 "pucch_NumRepetitionCE_Msg4_Level3_r13" #define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13 "sib2_freq_hoppingParameters_r13" -#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 "sib2_mpdcch_pdsch_hoppingNB_r13" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13 "sib2_interval_DLHoppingConfigCommonModeA_r13" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_DLHoppingConfigCommonModeA_r13_val" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13 "sib2_interval_DLHoppingConfigCommonModeB_r13" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_DLHoppingConfigCommonModeB_r13_val" -#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13 "sib2_interval_ULHoppingConfigCommonModeA_r13" -#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_ULHoppingConfigCommonModeA_r13_val" -#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13 "sib2_interval_ULHoppingConfigCommonModeB_r13" -#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_ULHoppingConfigCommonModeB_r13_val" -#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "sib2_mpdcch_pdsch_hoppingOffset_r13" + #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" #define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" @@ -545,6 +536,12 @@ typedef enum { { .s5= {NULL }} , \ { .s5= {NULL }} , \ { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} \ } /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* component carriers configuration parameters */ @@ -594,18 +591,12 @@ typedef enum { {ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, strptr:&rach_numberOfRA_Preambles, defstrval:"n64", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ @@ -616,7 +607,7 @@ typedef enum { {ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, strptr:&pcch_defaultPagingCycle, defstrval:"rf128", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ {ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ {ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ @@ -664,218 +655,17 @@ typedef enum { {ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ {ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0} \ - +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0} \ } -#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br" - -#define ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13 "schedulingInfoSIB1_BR_r13" -#define ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13 "cellSelectionInfoCE_r13" -#define ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13 "q_RxLevMinCE_r13" -#define ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13 "bandwidthReducedAccessRelatedInfo_r13" -#define ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13 "si_WindowLength_BR_r13" -#define ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13 "si_RepetitionPattern_r13" -#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13 "fdd_DownlinkOrTddSubframeBitmapBR_r13" -#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13 "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" -#define ENB_CONFIG_STRING_START_SYMBOL_BR_R13 "startSymbolBR_r13" -#define ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13 "si_HoppingConfigCommon_r13" -#define ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13 "si_ValidityTime_r13" -#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13 "freqHoppingParametersDL_r13" -#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 "mpdcch_pdsch_HoppingNB_r13" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13 "interval_DLHoppingConfigCommonModeA_r13" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "interval_DLHoppingConfigCommonModeA_r13_val" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13 "interval_DLHoppingConfigCommonModeB_r13" -#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "interval_DLHoppingConfigCommonModeB_r13_val" -#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "mpdcch_pdsch_HoppingOffset_r13" - - -#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" -#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" - - - -#define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" -#define BRPARAMS_DESC { \ -{ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defstrval:"n4", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, strptr:&pcch_defaultPagingCycle, defstrval:"rf128", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, strptr:&ue_TimersAndConstants_t300, defstrval:"ms1000", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, strptr:&ue_TimersAndConstants_t301, defstrval:"ms1000", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, strptr:&ue_TimersAndConstants_t310, defstrval:"ms1000", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, strptr:&ue_TimersAndConstants_t311, defstrval:"ms10000", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, strptr:&ue_TimersAndConstants_n310, defstrval:"n20", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, strptr:&ue_TimersAndConstants_n311, defstrval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, strptr:&ue_TransmissionMode, defstrval:"tm1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ -} - -#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" -#define RSRP_RANGE_LIST_DESC { \ -{"systemInfoValueTagSi_r13", NULL, 0, iptr:&systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ - } - - -#define ENB_CONFIG_STRING_SCHEDULING_INFO_BR "scheduling_info_br" -#define SI_INFO_BR_DESC { \ -{"si_Narrowband_r13", NULL, 0, iptr:&si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ -{"si_TBS_r13", NULL, 0, iptr:&si_TBS_r13, defintval:5, TYPE_UINT, 0} \ -} - -#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" -#define RSRP_RANGE_LIST_DESC { \ -{"rsrp_range_br", NULL, 0, iptr:&rsrp_range_br, defintval:0, TYPE_UINT, 0} \ - } - - -#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13 "firstPreamble_r13" -#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13 "lastPreamble_r13" -#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13" -#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13" -#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13 " - -#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13" -#define RACH_CE_LEVELINFOLIST_R13_DESC { \ -{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13, NULL, 0, iptr:&firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_LAST_PREAMBLE_R13, NULL, 0, iptr:&lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, NULL, 0, iptr:&ra_ResponseWindowSize_r13, defintval:"sf20", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13, NULL, 0, iptr:&mac_ContentionResolutionTimer_r13, defintval:"sf80", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, NULL, 0, iptr:&rar_HoppingConfig_r13, defintval:"off", TYPE_STRING, 0}\ -} - -#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br" -#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br" -#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13" -#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13" -#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13" -#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13" -#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13" -#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band" - -#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" -#define PRACH_PARAMS_CE_R13_DESC { \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, strptr:&maxNumPreambleAttemptCE_r13, defstrval:"n10", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, strptr:&numRepetitionPerPreambleAttempt_r13, defstrval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, strptr:&mpdcch_NumRepetition_RA_r13, defstrval:"r1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, strptr:&prach_HoppingConfig_r13, defstrval:"off", TYPE_STRING, 0}, \ -{ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_INTARRAY, 0} \ -} - -#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" - -#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" -#define N1PUCCH_AN_INFOLIST_R13_DESC { \ -{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&pucch_info_value, defintval:0, TYPE_UINT, 0} \ -} - -#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" -#define PCCH_CONFIG_V1310_DESC { \ -{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&mpdcch_numrepetition_paging_r13, defintval:"r1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&nb_v1310, defintval:"one256thT", TYPE_STRING, 0} \ -} - -#define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" -#define SIB2_FREQ_HOPPING_R13_DESC { \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&sib2_mpdcch_pdsch_hoppingNB_r13, defstrval:"", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13, defintval:"", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:"", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defstrval:"int4", TYPE_STRING, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13, defintval:"", TYPE_STRING, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:"", TYPE_STRING, 0}, \ -{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ - -} - #define ENB_CONFIG_FRAME_TYPE_IDX 0 #define ENB_CONFIG_TDD_CONFIG_IDX 1 #define ENB_CONFIG_TDD_CONFIG_S_IDX 2 @@ -1208,3 +998,5 @@ typedef enum { #define CONFIG_HLP_WORKER "coding and FEP worker thread WORKER_DISABLE or WORKER_ENABLE\n" #define CONFIG_HLP_PARALLEL "PARALLEL_SINGLE_THREAD, PARALLEL_RU_L1_SPLIT, or PARALLEL_RU_L1_TRX_SPLIT(RU_L1_TRX_SPLIT by defult)\n" /*-------------------------------------------------------------------------------------------------------------------------------------------------------------*/ + +#include "enb_paramdef_emtc.h" diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h new file mode 100644 index 0000000000..2ae0a1752d --- /dev/null +++ b/openair2/ENB_APP/enb_paramdef_emtc.h @@ -0,0 +1,231 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/*! \file openair2/ENB_APP/enb_paramdef_emtc.h + * \brief definition of configuration parameters for emtc eNodeB modules + * \author Raymond KNOPP + * \date 2018 + * \version 0.1 + * \company EURECOM France + * \email: raymond.knopp@eurecom.fr + * \note + * \warning + */ + +#include "common/config/config_paramdesc.h" +#include "RRC_paramsvalues.h" + +#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br" + + + +#define ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13 "schedulingInfoSIB1_BR_r13" +#define ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13 "cellSelectionInfoCE_r13" +#define ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13 "q_RxLevMinCE_r13" +#define ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13 "bandwidthReducedAccessRelatedInfo_r13" +#define ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13 "si_WindowLength_BR_r13" +#define ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13 "si_RepetitionPattern_r13" +#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13 "fdd_DownlinkOrTddSubframeBitmapBR_r13" +#define ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13 "fdd_DownlinkOrTddSubframeBitmapBR_val_r13" +#define ENB_CONFIG_STRING_START_SYMBOL_BR_R13 "startSymbolBR_r13" +#define ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13 "si_HoppingConfigCommon_r13" +#define ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13 "si_ValidityTime_r13" +#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13 "freqHoppingParametersDL_r13" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 "mpdcch_pdsch_HoppingNB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13 "interval_DLHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "interval_DLHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13 "interval_DLHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "interval_DLHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "mpdcch_pdsch_HoppingOffset_r13" +#define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13 "preamble_TransMax_ce_r13" +#define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13_VAL "preamble_TransMax_ce_r13_val" + +#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" +#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" + + + +#define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" +#define BRPARAMS_DESC { \ +{"eMTC_configured", NULL, 0, iptr:&eMTC_configured, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index_emtc, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation_emtc, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset_emtc, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift_emtc, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI_emtc, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN_emtc, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower_emtc, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b_emtc, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB_emtc, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode_emtc, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled_emtc, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment_emtc, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration_emtc, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource_emtc, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal_emtc, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha_emtc, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal_emtc, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble_emtc, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1_emtc, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b_emtc, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2_emtc, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a_emtc, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b_emtc, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles_emtc, defstrval:"n4", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA_emtc, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA_emtc, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB_emtc, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep_emtc, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower_emtc, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax_emtc, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize_emtc, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer_emtc, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx_emtc, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle_emtc, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB_emtc, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff_emtc, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300_emtc, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301_emtc, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310_emtc, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311_emtc, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310_emtc, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311_emtc, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode_emtc, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig_emtc, defstrval:"", TYPE_STRING, 0}, \ +} + +#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" +#define SYSTEM_INFO_VALUE_TAG_SI_DESC { \ +{"systemInfoValueTagSi_r13", NULL, 0, iptr:&systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ + } + + +#define ENB_CONFIG_STRING_SCHEDULING_INFO_BR "scheduling_info_br" +#define SI_INFO_BR_DESC { \ +{"si_Narrowband_r13", NULL, 0, iptr:&si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ +{"si_TBS_r13", NULL, 0, iptr:&si_TBS_r13, defintval:5, TYPE_UINT, 0} \ +} + +#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" +#define RSRP_RANGE_LIST_DESC { \ +{"rsrp_range_br", NULL, 0, iptr:&rsrp_range_br, defintval:0, TYPE_UINT, 0} \ + } + + +#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13 "firstPreamble_r13" +#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13 "lastPreamble_r13" +#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13" +#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13" +#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13 " + +#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13" +#define RACH_CE_LEVELINFOLIST_R13_DESC { \ +{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13, NULL, 0, iptr:&firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_LAST_PREAMBLE_R13, NULL, 0, iptr:&lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, NULL, 0, iptr:&ra_ResponseWindowSize_r13, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13, NULL, 0, iptr:&mac_ContentionResolutionTimer_r13, defintval:80, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, NULL, 0, iptr:&rar_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}\ +} + +#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br" +#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br" +#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13" +#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13" +#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13" +#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13" +#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13" +#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band" + +#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" +#define PRACH_PARAMS_CE_R13_DESC { \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&maxNumPreambleAttemptCE_r13, defintval:10, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&numRepetitionPerPreambleAttempt_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&mpdcch_NumRepetition_RA_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&prach_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_INTARRAY, 0} \ +} + +#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" + +#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" +#define N1PUCCH_AN_INFOLIST_R13_DESC { \ +{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&pucch_info_value, defintval:0, TYPE_UINT, 0} \ +} + +#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" +#define PCCH_CONFIG_V1310_DESC { \ +{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&mpdcch_numrepetition_paging_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&nb_v1310, defintval:256, TYPE_UINT, 0} \ +} + +#define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" +#define SIB2_FREQ_HOPPING_R13_DESC { \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingNB_r13, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&sib2_interval_DLHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&sib2_interval_DLHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:4, TYPE_UINT, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ +} diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c index 973d322a5f..2f4b527480 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.c +++ b/openair2/ENB_APP/flexran_agent_ran_api.c @@ -670,13 +670,13 @@ uint8_t flexran_get_special_subframe_assignment(mid_t mod_id, uint8_t cc_id) long flexran_get_ra_ResponseWindowSize(mid_t mod_id, uint8_t cc_id) { if (!rrc_is_present(mod_id)) return 0; - return RC.rrc[mod_id]->configuration.rach_raResponseWindowSize[cc_id]; + return RC.rrc[mod_id]->configuration.radioresourceconfig[cc_id].rach_raResponseWindowSize; } long flexran_get_mac_ContentionResolutionTimer(mid_t mod_id, uint8_t cc_id) { if (!rrc_is_present(mod_id)) return 0; - return RC.rrc[mod_id]->configuration.rach_macContentionResolutionTimer[cc_id]; + return RC.rrc[mod_id]->configuration.radioresourceconfig[cc_id].rach_macContentionResolutionTimer; } Protocol__FlexDuplexMode flexran_get_duplex_mode(mid_t mod_id, uint8_t cc_id) @@ -1131,7 +1131,7 @@ int8_t flexran_agent_get_operating_pdsch_refpower(mid_t mod_id, uint8_t cc_id) long flexran_agent_get_operating_pusch_p0(mid_t mod_id, uint8_t cc_id) { if (!rrc_is_present(mod_id)) return 0; - return RC.rrc[mod_id]->configuration.pusch_p0_Nominal[cc_id]; + return RC.rrc[mod_id]->configuration.radioresourceconfig[cc_id].pusch_p0_Nominal; } void flexran_agent_set_operating_dl_freq(mid_t mod_id, uint8_t cc_id, uint32_t dl_freq_mhz) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 4e9e02af18..7f55aa8d23 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -132,7 +132,7 @@ add_msg3(module_id_t module_idP, int CC_id, RA_t * ra, frame_t frameP, memset ((void *) ul_config_pdu, 0, sizeof (nfapi_ul_config_request_pdu_t)); ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_ULSCH_PDU_TYPE; ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_ulsch_pdu)); - ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = eNB->ul_handle++; + ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.handle = mac->ul_handle++; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.rnti = ra->rnti; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.resource_block_start = narrowband_to_first_rb (cc, ra->msg34_narrowband) + ra->msg3_first_rb; ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.number_of_resource_blocks = ra->msg3_nb_rb; @@ -244,21 +244,21 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, RA_t * ra) { - eNB_MAC_INST *mac = RC.mac[module_idP]; - COMMON_channels_t *cc = mac->common_channels; - - uint8_t *vrb_map; - int first_rb; - int N_RB_DL; - nfapi_dl_config_request_pdu_t *dl_config_pdu; - nfapi_tx_request_pdu_t *TX_req; - nfapi_dl_config_request_body_t *dl_req; - - vrb_map = cc[CC_idP].vrb_map; - dl_req = &mac->DL_req[CC_idP].dl_config_request_body; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; - N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); - + eNB_MAC_INST *mac = RC.mac[module_idP]; + COMMON_channels_t *cc = mac->common_channels; + + uint8_t *vrb_map; + int first_rb; + int N_RB_DL; + nfapi_dl_config_request_pdu_t *dl_config_pdu; + nfapi_tx_request_pdu_t *TX_req; + nfapi_dl_config_request_body_t *dl_req_body; + + vrb_map = cc[CC_idP].vrb_map; + dl_req_body = &mac->DL_req[CC_idP].dl_config_request_body; + dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu]; + N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); + #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int rmax = 0; int rep = 0; @@ -319,7 +319,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, ra->msg2_narrowband = *p[ra->rach_resource_type - 1]->mpdcch_NarrowbandsToMonitor_r13.list.array[ra->preamble_index % num_nb]-1; first_rb = narrowband_to_first_rb (&cc[CC_idP], ra->msg2_narrowband); - if ((ra->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { + if ((ra->msg2_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (mac, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { ra->msg2_mpdcch_done = 0; // MPDCCH configuration for RAR LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2 for CE Level %d, Programming MPDCCH %d repetitions\n", module_idP, frameP, subframeP, ra->rach_resource_type-1,reps); @@ -371,7 +371,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.total_dci_length_including_padding = 0; // this is not needed by OAI L1, but should be filled in dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; ra->msg2_mpdcch_repetition_cnt++; - dl_req->number_pdu++; + dl_req_body->number_pdu++; ra->Msg2_subframe = (ra->Msg2_subframe + 9) % 10; } //repetition_count==0 && SF condition met @@ -402,13 +402,12 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, if ((ra->Msg2_frame == frameP) && (ra->Msg2_subframe == subframeP)) { // Program PDSCH LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming PDSCH\n", module_idP, frameP, subframeP); - ra->generate_rar = 0; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu]; memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = mac->pdu_index[CC_idP]; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = ra->RA_rnti; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized @@ -438,22 +437,23 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; + dl_req_body->number_pdu++; - fill_rar_br (eNB, CC_idP, ra, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, ra->rach_resource_type - 1) ; + fill_rar_br (mac, CC_idP, ra, frameP, subframeP, cc[CC_idP].RAR_pdu.payload, ra->rach_resource_type - 1) ; // Program UL processing for Msg3, same as regular LTE get_Msg3alloc (&cc[CC_idP], subframeP, frameP, &ra->Msg3_frame, &ra->Msg3_subframe); add_msg3 (module_idP, CC_idP, ra, frameP, subframeP); + ra->state = WAITMSG3; // DL request - LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming TX Req %d\n", module_idP, frameP, subframeP); - eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + LOG_I (MAC, "[eNB %d][RAPROC] Frame %d, Subframe %d : In generate_Msg2, Programming TX Req\n", module_idP, frameP, subframeP); + mac->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; + TX_req = &mac->TX_req[CC_idP].tx_request_body.tx_pdu_list[mac->TX_req[CC_idP].tx_request_body.number_of_pdus]; TX_req->pdu_length = 7; // This should be changed if we have more than 1 preamble - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->pdu_index = mac->pdu_index[CC_idP]++; TX_req->num_segments = 1; TX_req->segments[0].segment_length = 7; TX_req->segments[0].segment_data = cc[CC_idP].RAR_pdu.payload; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + mac->TX_req[CC_idP].tx_request_body.number_of_pdus++; } } @@ -499,10 +499,10 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, LOG_D(MAC, "Frame %d: Subframe %d : Adding common DCI for RA_RNTI %x\n", frameP, subframeP, ra->RA_rnti); - dl_req->number_dci++; - dl_req->number_pdu++; + dl_req_body->number_dci++; + dl_req_body->number_pdu++; - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu]; memset((void *) dl_config_pdu, 0, sizeof(nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof(nfapi_dl_config_dlsch_pdu)); @@ -529,7 +529,7 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_prb_per_subband = 1; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.num_bf_vector = 1; // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; - dl_req->number_pdu++; + dl_req_body->number_pdu++; mac->DL_req[CC_idP].sfn_sf = frameP<<4 | subframeP; // Program UL processing for Msg3 @@ -568,15 +568,15 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, sub_frame_t subframeP, RA_t * ra) { - - eNB_MAC_INST *mac = RC.mac[module_idP]; - COMMON_channels_t *cc = mac->common_channels; - int16_t rrc_sdu_length; - int UE_id = -1; - uint16_t msg4_padding; - uint16_t msg4_post_padding; - uint16_t msg4_header; - + + eNB_MAC_INST *mac = RC.mac[module_idP]; + COMMON_channels_t *cc = mac->common_channels; + int16_t rrc_sdu_length; + int UE_id = -1; + uint16_t msg4_padding; + uint16_t msg4_post_padding; + uint16_t msg4_header; + uint8_t *vrb_map; int first_rb; int N_RB_DL; @@ -587,7 +587,6 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, nfapi_dl_config_request_t *dl_req; nfapi_dl_config_request_body_t *dl_req_body; nfapi_ul_config_request_body_t *ul_req_body; - nfapi_ul_config_request_t *ul_req; uint8_t lcid; uint8_t offset; @@ -703,15 +702,15 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, // get first narrowband first_rb = narrowband_to_first_rb (&cc[CC_idP], ra->msg34_narrowband); - if ((ra->msg4_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (eNB, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { + if ((ra->msg4_mpdcch_repetition_cnt == 0) && (mpdcch_sf_condition (mac, CC_idP, frameP, subframeP, rmax, TYPE2, -1) > 0)) { // Get RRCConnectionSetup for Piggyback ra->msg4_rrc_sdu_length = mac_rrc_data_req (module_idP, CC_idP, frameP, CCCH, 1, // 1 transport block - &cc[CC_idP].CCCH_pdu.payload[0], ENB_FLAG_YES, module_idP, 0); // not used in this case + &cc[CC_idP].CCCH_pdu.payload[0], 0); // not used in this case AssertFatal (ra->msg4_rrc_sdu_length > 0, "[MAC][eNB Scheduler] CCCH not allocated\n"); - LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d, dl_req->num_pdu %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, ra->msg4_rrc_sdu_length,dl_req->number_pdu); + LOG_I (MAC, "[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d, dl_req->num_pdu %d\n", module_idP, CC_idP, frameP, subframeP, UE_id, ra->msg4_rrc_sdu_length,dl_req_body->number_pdu); // MPDCCH configuration for Msg4 ra->msg4_mpdcch_done=0; @@ -762,7 +761,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.number_of_tx_antenna_ports = 1; ra->msg4_mpdcch_repetition_cnt++; - dl_req->number_pdu++; + dl_req_body->number_pdu++; ra->msg4_TBsize = get_TBS_DL(dl_config_pdu->mpdcch_pdu.mpdcch_pdu_rel13.mcs, 6); } //repetition_count==0 && SF condition met @@ -798,11 +797,11 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, module_idP, CC_idP, frameP, subframeP, ra->rach_resource_type - 1, ra->rnti); - dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; + dl_config_pdu = &dl_req_body->dl_config_pdu_list[dl_req_body->number_pdu]; memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_idP]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = mac->pdu_index[CC_idP]; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = ra->rnti; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized @@ -831,10 +830,10 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.pdsch_payload_type = 2; // not SI message dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.initial_transmission_sf_io = (10 * frameP) + subframeP; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel13.drms_table_flag = 0; - dl_req->number_pdu++; + dl_req_body->number_pdu++; - ra->generate_Msg4 = 0; - ra->wait_ack_Msg4 = 1; + + ra->state = WAITMSG4ACK; lcid = 0; @@ -854,7 +853,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, module_idP, CC_idP, frameP, subframeP, ra->msg4_TBsize, ra->msg4_rrc_sdu_length, msg4_header, msg4_padding, msg4_post_padding); DevAssert (UE_id != UE_INDEX_INVALID); // FIXME not sure how to gracefully return // CHECK THIS: &cc[CC_idP].CCCH_pdu.payload[0] - offset = generate_dlsch_header ((unsigned char *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus + offset = generate_dlsch_header ((unsigned char *) mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], 1, //num_sdus (unsigned short *) &ra->msg4_rrc_sdu_length, // &lcid, // sdu_lcid 255, // no drx @@ -863,25 +862,25 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, msg4_padding, // no padding msg4_post_padding); - memcpy ((void *) &eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], ra->msg4_rrc_sdu_length); + memcpy ((void *) &mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0][(unsigned char) offset], &cc[CC_idP].CCCH_pdu.payload[0], ra->msg4_rrc_sdu_length); // DL request - eNB->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; - TX_req = &eNB->TX_req[CC_idP].tx_request_body.tx_pdu_list[eNB->TX_req[CC_idP].tx_request_body.number_of_pdus]; + mac->TX_req[CC_idP].sfn_sf = (frameP << 4) + subframeP; + TX_req = &mac->TX_req[CC_idP].tx_request_body.tx_pdu_list[mac->TX_req[CC_idP].tx_request_body.number_of_pdus]; TX_req->pdu_length = ra->msg4_TBsize; - TX_req->pdu_index = eNB->pdu_index[CC_idP]++; + TX_req->pdu_index = mac->pdu_index[CC_idP]++; TX_req->num_segments = 1; TX_req->segments[0].segment_length = ra->msg4_TBsize; - TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]; - eNB->TX_req[CC_idP].tx_request_body.number_of_pdus++; + TX_req->segments[0].segment_data = mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0]; + mac->TX_req[CC_idP].tx_request_body.number_of_pdus++; // Program ACK/NAK for Msg4 PDSCH int absSF = (frameP * 10) + subframeP; // see Section 10.2 from 36.213 int ackNAK_absSF = absSF + reps + 3; AssertFatal (reps == 1, "Have to handle programming of ACK when PDSCH repetitions is > 1\n"); - ul_req = &eNB->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; - ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; + ul_req_body = &mac->UL_req_tmp[CC_idP][ackNAK_absSF % 10].ul_config_request_body; + ul_config_pdu = &ul_req_body->ul_config_pdu_list[ul_req_body->number_of_pdus]; ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; ul_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_ul_config_uci_harq_pdu)); @@ -903,12 +902,12 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, } else { AssertFatal (1 == 0, "PUCCH configuration for ACK/NAK not handled yet for TDD BL/CE case\n"); } - ul_req->number_of_pdus++; + ul_req_body->number_of_pdus++; T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_idP), T_INT (ra->rnti), T_INT (frameP), T_INT (subframeP), - T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], ra->msg4_TBsize)); + T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&mac->UE_list.DLSCH_pdu[CC_idP][0][UE_id].payload[0], ra->msg4_TBsize)); if (opt_enabled == 1) { - trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], ra->msg4_rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), eNB->frame, eNB->subframe, 0, 0); + trace_pdu (1, (uint8_t *) mac->UE_list.DLSCH_pdu[CC_idP][0][(unsigned char) UE_id].payload[0], ra->msg4_rrc_sdu_length, UE_id, 3, UE_RNTI (module_idP, UE_id), mac->frame, mac->subframe, 0, 0); LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_idP, frameP, UE_RNTI (module_idP, UE_id), ra->msg4_rrc_sdu_length); } } // Msg4 frame/subframe diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 62da2e84d6..983f82c94a 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -387,8 +387,6 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP, frameP, BCCH_SI_BR+i,1, &cc->BCCH_BR_pdu[i+1].payload[0], - 1, - module_idP, 0); // not used in this case AssertFatal(bcch_sdu_length>0,"RRC returned 0 bytes for SI-BR %d\n",i); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index c898d399d6..7e1ea7be67 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -2385,8 +2385,8 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP, if (ue_sched_ctl->pucch1_cqi_update[CC_id] == 1) { ue_sched_ctl->pucch1_cqi_update[CC_id] = 0; - UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; - UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_frame = frameP; + UE_list->UE_template[CC_id][UE_id].pucch_tpc_tx_subframe = subframeP; if (normalized_rx_power > (target_rx_power + 4)) { tpc = 0; //-1 @@ -2866,15 +2866,19 @@ schedule_ue_spec_br( if ( TBS-ta_len-header_len_dcch > 0 ) { LOG_I(MAC,"Calling mac_rlc_status_ind for DCCH\n"); 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)); // transport block set size + module_idP, + rnti, + module_idP, + frameP, + subframeP, + ENB_FLAG_YES, + MBMS_FLAG_NO, + DCCH, + (TBS-ta_len-header_len_dcch) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); // transport block set size sdu_lengths[0]=0; @@ -2890,7 +2894,11 @@ schedule_ue_spec_br( MBMS_FLAG_NO, DCCH, TBS, //not used - (char *)&dlsch_buffer[0]); + (char *)&dlsch_buffer[0] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif +); T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), T_INT(harq_pid), T_INT(DCCH), T_INT(sdu_lengths[0])); @@ -2918,7 +2926,11 @@ schedule_ue_spec_br( ENB_FLAG_YES, MBMS_FLAG_NO, DCCH+1, - (TBS-ta_len-header_len_dcch-sdu_length_total)); // transport block set size less allocations for timing advance and + (TBS-ta_len-header_len_dcch-sdu_length_total) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif +); // transport block set size less allocations for timing advance and // DCCH SDU sdu_lengths[num_sdus] = 0; @@ -2934,7 +2946,11 @@ schedule_ue_spec_br( MBMS_FLAG_NO, DCCH+1, TBS, //not used - (char *)&dlsch_buffer[sdu_length_total]); + (char *)&dlsch_buffer[sdu_length_total] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif +); T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), T_INT(harq_pid), T_INT(DCCH+1), T_INT(sdu_lengths[num_sdus])); @@ -2970,8 +2986,12 @@ schedule_ue_spec_br( ENB_FLAG_YES, MBMS_FLAG_NO, lcid, - TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch); - + TBS-ta_len-header_len_dcch-sdu_length_total-header_len_dtch +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); + if (rlc_status.bytes_in_buffer > 0) { @@ -2985,7 +3005,11 @@ schedule_ue_spec_br( MBMS_FLAG_NO, lcid, TBS, //not used - (char*)&dlsch_buffer[sdu_length_total]); + (char*)&dlsch_buffer[sdu_length_total] +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,0, 0 +#endif + ); T(T_ENB_MAC_UE_DL_SDU, T_INT(module_idP), T_INT(CC_id), T_INT(rnti), T_INT(frameP), T_INT(subframeP), T_INT(harq_pid), T_INT(lcid), T_INT(sdu_lengths[num_sdus])); @@ -3109,8 +3133,8 @@ schedule_ue_spec_br( // this is the normalized RX power /* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */ - normalized_rx_power = ue_sched_ctl->pucch1_snr[CC_id]; - target_rx_power = 208; + normalized_rx_power = (5*ue_sched_ctl->pucch1_snr[CC_id]-640)/10+30; + target_rx_power = eNB->puCch10xSnr/10+30; // this assumes accumulated tpc // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out @@ -3125,17 +3149,15 @@ schedule_ue_spec_br( if (normalized_rx_power>(target_rx_power+4)) { tpc = 0; //-1 - ue_sched_ctl->pucch_tpc_accumulated[CC_id]--; } else if (normalized_rx_power<(target_rx_power-4)) { tpc = 2; //+1 - ue_sched_ctl->pucch_tpc_accumulated[CC_id]++; } else { tpc = 1; //0 } - LOG_D(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", + LOG_D(MAC,"[eNB %d] DLSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, normalized/target rx power %d/%d\n", module_idP,frameP, subframeP,harq_pid,tpc, - ue_sched_ctl->pucch_tpc_accumulated[CC_id],normalized_rx_power,target_rx_power); + normalized_rx_power,target_rx_power); } // Po_PUCCH has been updated else { diff --git a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c index 9ab4306000..310b3ca8df 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_fairRR.c @@ -195,7 +195,7 @@ void dlsch_scheduler_pre_ue_select_fairRR( // Initialization for (CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) { - dlsch_ue_max_num[CC_id] = (uint16_t)RC.rrc[module_idP]->configuration.ue_multiple_max[CC_id]; + dlsch_ue_max_num[CC_id] = (uint16_t)RC.rrc[module_idP]->configuration.radioresourceconfig[CC_id].ue_multiple_max; // save origin DL PDU number DL_req = &eNB->DL_req[CC_id].dl_config_request_body; @@ -1978,7 +1978,7 @@ void ulsch_scheduler_pre_ue_select_fairRR( //save ulsch dci number saved_ulsch_dci[CC_id] = eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body.number_of_dci; // maximum multiplicity number - ulsch_ue_max_num[CC_id] =RC.rrc[module_idP]->configuration.ue_multiple_max[CC_id]; + ulsch_ue_max_num[CC_id] =RC.rrc[module_idP]->configuration.radioresourceconfig[CC_id].ue_multiple_max; cc_id_flag[CC_id] = 0; ue_first_num[CC_id] = 0; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 023ed25dbf..00a13cc924 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -349,7 +349,11 @@ rx_sdu(const module_id_t enb_mod_idP, DCCH, (uint8_t *) payload_ptr, rx_lengths[i], - 0); + 0 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + ,ra->rach_resource_type>0 +#endif + ); // prepare transmission of Msg4(RRCConnectionReconfiguration) ra->state = MSGCRNTI; LOG_I(MAC, @@ -565,11 +569,11 @@ rx_sdu(const module_id_t enb_mod_idP, if ((UE_id = add_new_ue(enb_mod_idP, CC_idP, mac->common_channels[CC_idP]. - ra[ii].rnti, harq_pid + ra->rnti, harq_pid #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) , mac->common_channels[CC_idP]. - ra[ii].rach_resource_type + ra->rach_resource_type #endif )) == -1) { LOG_E(MAC,"[MAC][eNB] Max user count reached\n"); @@ -598,7 +602,7 @@ rx_sdu(const module_id_t enb_mod_idP, rx_lengths[i], 0 #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,(eNB->common_channels[CC_idP].RA_template[ii].rach_resource_type>0) + ,ra->rach_resource_type>0 #endif ); @@ -1067,12 +1071,11 @@ schedule_ulsch(module_id_t module_idP, frame_t frameP, stop_meas(&mac->schedule_ulsch); } -void -schedule_ulsch_rnti(module_id_t module_idP, - int slice_idx, - frame_t frameP, - sub_frame_t subframeP, - unsigned char sched_subframeP, uint16_t * first_rb) +void schedule_ulsch_rnti(module_id_t module_idP, + int slice_idx, + frame_t frameP, + sub_frame_t subframeP, + unsigned char sched_subframeP, uint16_t * first_rb) { int UE_id; uint8_t aggregation = 2; @@ -1083,7 +1086,6 @@ schedule_ulsch_rnti(module_id_t module_idP, uint8_t rb_table_index = -1; uint32_t cqi_req, cshift, ndi, tpc; int32_t normalized_rx_power, target_rx_power; - static int32_t tpc_accumulated = 0; int n; int CC_id = 0; int drop_ue = 0; @@ -1111,10 +1113,10 @@ schedule_ulsch_rnti(module_id_t module_idP, nfapi_ul_config_request_body_t *ul_req_tmp_body = &ul_req_tmp->ul_config_request_body; nfapi_ul_config_ulsch_harq_information *ulsch_harq_information; - for (CC_id = 0; CC_id < RC.nb_mac_CC[module_idP]; ++CC_id) { + for (CC_id = 0; CC_id < RC.nb_mac_CC[module_idP]; ++CC_id) { N_RB_UL = to_prb(cc[CC_id].ul_Bandwidth); - UE_list->first_rb_offset[CC_id][slice_idx] = cmin(N_RB_UL, sli->ul[slice_idx].first_rb); - } + UE_list->first_rb_offset[CC_id][slice_idx] = cmin(N_RB_UL, sli->ul[slice_idx].first_rb); + } //LOG_D(MAC, "entering ulsch preprocesor\n"); ulsch_scheduler_pre_processor(module_idP, slice_idx, frameP, subframeP, sched_subframeP, first_rb); @@ -1295,10 +1297,10 @@ schedule_ulsch_rnti(module_id_t module_idP, UE_template->pusch_tpc_tx_subframe = subframeP; if (normalized_rx_power > (target_rx_power + 4)) { tpc = 0; //-1 - tpc_accumulated--; + UE_sched_ctrl->tpc_accumulated[CC_id]--; } else if (normalized_rx_power < (target_rx_power - 4)) { tpc = 2; //+1 - tpc_accumulated++; + UE_sched_ctrl->tpc_accumulated[CC_id]++; } else { tpc = 1; //0 } @@ -1310,7 +1312,7 @@ schedule_ulsch_rnti(module_id_t module_idP, LOG_D(MAC, "[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", module_idP, frameP, subframeP, harq_pid, tpc, - tpc_accumulated, normalized_rx_power, + UE_sched_ctrl->tpc_accumulated[CC_id], normalized_rx_power, target_rx_power); } // new transmission @@ -1624,10 +1626,9 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, uint8_t round = 0; uint8_t harq_pid = 0; uint8_t status = 0; - uint32_t cqi_req,cshift,ndi,tpc; + uint32_t cshift,ndi; int32_t normalized_rx_power; int32_t target_rx_power=-90; - static int32_t tpc_accumulated=0; int n; int CC_id = 0; int N_RB_UL; @@ -1638,10 +1639,12 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, UE_sched_ctrl *UE_sched_ctrl; int sched_frame=frameP; int rvidx_tab[4] = {0,2,3,1}; + int tpc=0; + int cqi_req=0; if (sched_subframePHI_DCI0_req[CC_id].hi_dci0_request_body; + nfapi_hi_dci0_request_body_t *hi_dci0_req = &eNB->HI_DCI0_req[CC_id][subframeP].hi_dci0_request_body; nfapi_hi_dci0_request_pdu_t *hi_dci0_pdu; nfapi_ul_config_request_body_t *ul_req_tmp = &eNB->UL_req_tmp[CC_id][sched_subframeP].ul_config_request_body; @@ -1682,7 +1685,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, LOG_D(MAC,"[eNB %d] frame %d subframe %d,Checking PUSCH %d for BL/CE UE %d/%x CC %d : aggregation level %d, N_RB_UL %d\n", module_idP,frameP,subframeP,harq_pid,UE_id,rnti,CC_id, 24,N_RB_UL); - RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->ul_total_buffer; + RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP] = UE_template->estimated_ul_buffer; VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_BO,RC.eNB[module_idP][CC_id]->pusch_stats_BO[UE_id][(frameP*10)+subframeP]); if ((UE_template->ul_SR >0 || round > 0 || status < RRC_CONNECTED)&&(subframeP==5)) // if there is information on bsr of DCCH, DTCH or if there is UL_SR, or if there is a packet to retransmit, or we want to schedule a periodic feedback every 10 frames @@ -1712,7 +1715,6 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, */ cqi_req = 0; - UE_template->oldCQI_UL[harq_pid] = cqi_req; //power control //compute the expected ULSCH RX power (for the stats) @@ -1731,10 +1733,10 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, UE_template->pusch_tpc_tx_subframe=subframeP; if (normalized_rx_power>(target_rx_power+4)) { tpc = 0; //-1 - tpc_accumulated--; + UE_sched_ctrl->tpc_accumulated[CC_id]--; } else if (normalized_rx_power<(target_rx_power-4)) { tpc = 2; //+1 - tpc_accumulated++; + UE_sched_ctrl->tpc_accumulated[CC_id]++; } else { tpc = 1; //0 } @@ -1743,12 +1745,11 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, } //tpc = 1; - UE_template->oldTPC_UL[harq_pid] = tpc; if (tpc!=1) { LOG_D(MAC,"[eNB %d] ULSCH scheduler: frame %d, subframe %d, harq_pid %d, tpc %d, accumulated %d, normalized/target rx power %d/%d\n", module_idP,frameP,subframeP,harq_pid,tpc, - tpc_accumulated,normalized_rx_power,target_rx_power); + UE_sched_ctrl->tpc_accumulated[CC_id],normalized_rx_power,target_rx_power); } // new transmission @@ -1786,12 +1787,11 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_UE0_SCHEDULED,UE_sched_ctrl->ul_scheduled); // adjust total UL buffer status by TBS, wait for UL sdus to do final update - LOG_D(MAC,"[eNB %d] CC_id %d UE %d/%x : adjusting ul_total_buffer, old %d, TBS %d\n", module_idP,CC_id,UE_id,rnti,UE_template->ul_total_buffer,UE_template->TBS_UL[harq_pid]); - if (UE_template->ul_total_buffer > UE_template->TBS_UL[harq_pid]) - UE_template->ul_total_buffer -= UE_template->TBS_UL[harq_pid]; - else - UE_template->ul_total_buffer = 0; - LOG_D(MAC,"ul_total_buffer, new %d\n", UE_template->ul_total_buffer); + UE_template->scheduled_ul_bytes += UE_template->TBS_UL[harq_pid]; + + LOG_D(MAC, "scheduled_ul_bytes, new %d\n", UE_template->scheduled_ul_bytes); + + // Cyclic shift for DM RS cshift = 0;// values from 0 to 7 can be used for mapping the cyclic shift (36.211 , Table 5.5.2.1.1-1) // save it for a potential retransmission @@ -1826,7 +1826,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc, epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); - hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE; @@ -1873,7 +1873,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.total_dci_length_include_padding = 29; // hard-coded for 10 MHz hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_tx_antenna_ports = 1; - eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++; + hi_dci0_req->number_of_dci++; LOG_I(MAC,"[PUSCH %d] Frame %d, Subframe %d: Adding UL CONFIG.Request for BL/CE UE %d/%x, ulsch_frame %d, ulsch_subframe %d, UESS mpdcch narrowband %d\n", @@ -1955,7 +1955,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, UE_template->first_rb_ul[harq_pid] = narrowband_to_first_rb (cc, epdcch_setconfig_r11->ext2->mpdcch_config_r13->choice.setup.mpdcch_Narrowband_r13-1); - hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci+eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_hi]; + hi_dci0_pdu = &hi_dci0_req->hi_dci0_pdu_list[hi_dci0_req->number_of_dci+hi_dci0_req->number_of_hi]; memset((void*)hi_dci0_pdu,0,sizeof(nfapi_hi_dci0_request_pdu_t)); hi_dci0_pdu->pdu_type = NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE; @@ -1991,8 +1991,8 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.redudency_version = rvidx_tab[round&3]; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.new_data_indication = UE_template->oldNDI_UL[harq_pid]; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.harq_process = harq_pid; - hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = UE_template->oldTPC_UL[harq_pid]; - hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = UE_template->oldCQI_UL[harq_pid]; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.tpc = tpc; + hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.csi_request = cqi_req; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.ul_inex = 0; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dai_presence_flag = 0; hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.dl_assignment_index = 0; @@ -2002,8 +2002,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.total_dci_length_include_padding = 29; // hard-coded for 10 MHz hi_dci0_pdu->mpdcch_dci_pdu.mpdcch_dci_pdu_rel13.number_of_tx_antenna_ports = 1; - eNB->HI_DCI0_req[CC_id].hi_dci0_request_body.number_of_dci++; - + hi_dci0_req->number_of_dci++; fill_nfapi_ulsch_config_request_rel8(&ul_req_tmp->ul_config_pdu_list[ul_req_tmp->number_of_pdus], cqi_req, cc, diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h index ed6171dceb..1f23a01d4a 100644 --- a/openair2/LAYER2/MAC/mac.h +++ b/openair2/LAYER2/MAC/mac.h @@ -896,9 +896,6 @@ typedef struct { uint32_t pucch_tpc_tx_frame; uint32_t pucch_tpc_tx_subframe; -#ifdef LOCALIZATION - eNB_UE_estimated_distances distance; -#endif #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) uint8_t rach_resource_type; @@ -978,6 +975,7 @@ typedef struct { uint16_t feedback_cnt[NFAPI_CC_MAX]; uint16_t timing_advance; uint16_t timing_advance_r9; + uint8_t tpc_accumulated[NFAPI_CC_MAX]; uint8_t periodic_wideband_cqi[NFAPI_CC_MAX]; uint8_t periodic_wideband_spatial_diffcqi[NFAPI_CC_MAX]; uint8_t periodic_wideband_pmi[NFAPI_CC_MAX]; @@ -999,60 +997,63 @@ typedef struct { } UE_sched_ctrl; /*! \brief eNB template for the Random access information */ typedef struct { - /// Flag to indicate this process is active - RA_state state; - /// Subframe where preamble was received - uint8_t preamble_subframe; - /// Subframe where Msg2 is to be sent - uint8_t Msg2_subframe; - /// Frame where Msg2 is to be sent - frame_t Msg2_frame; - /// Subframe where Msg3 is to be sent - sub_frame_t Msg3_subframe; - /// Frame where Msg3 is to be sent - frame_t Msg3_frame; - /// Subframe where Msg4 is to be sent - sub_frame_t Msg4_subframe; - /// Frame where Msg4 is to be sent - frame_t Msg4_frame; - /// harq_pid used for Msg4 transmission - uint8_t harq_pid; - /// UE RNTI allocated during RAR - rnti_t rnti; - /// RA RNTI allocated from received PRACH - uint16_t RA_rnti; - /// Received preamble_index - uint8_t preamble_index; - /// Received UE Contention Resolution Identifier - uint8_t cont_res_id[6]; - /// Timing offset indicated by PHY - int16_t timing_offset; - /// Timeout for RRC connection - int16_t RRC_timer; - /// Msg3 first RB - uint8_t msg3_first_rb; - /// Msg3 number of RB - uint8_t msg3_nb_rb; - /// Msg3 MCS - uint8_t msg3_mcs; - /// Msg3 TPC command - uint8_t msg3_TPC; - /// Msg3 ULdelay command - uint8_t msg3_ULdelay; - /// Msg3 cqireq command - uint8_t msg3_cqireq; - /// Round of Msg3 HARQ - uint8_t msg3_round; - /// TBS used for Msg4 - int msg4_TBsize; - /// MCS used for Msg4 - int msg4_mcs; + /// Flag to indicate this process is active + RA_state state; + /// Subframe where preamble was received + uint8_t preamble_subframe; + /// Subframe where Msg2 is to be sent + uint8_t Msg2_subframe; + /// Frame where Msg2 is to be sent + frame_t Msg2_frame; + /// Subframe where Msg3 is to be sent + sub_frame_t Msg3_subframe; + /// Frame where Msg3 is to be sent + frame_t Msg3_frame; + /// Subframe where Msg4 is to be sent + sub_frame_t Msg4_subframe; + /// Frame where Msg4 is to be sent + frame_t Msg4_frame; + /// harq_pid used for Msg4 transmission + uint8_t harq_pid; + /// UE RNTI allocated during RAR + rnti_t rnti; + /// RA RNTI allocated from received PRACH + uint16_t RA_rnti; + /// Received preamble_index + uint8_t preamble_index; + /// Received UE Contention Resolution Identifier + uint8_t cont_res_id[6]; + /// Timing offset indicated by PHY + int16_t timing_offset; + /// Timeout for RRC connection + int16_t RRC_timer; + /// Msg3 first RB + uint8_t msg3_first_rb; + /// Msg3 number of RB + uint8_t msg3_nb_rb; + /// Msg3 MCS + uint8_t msg3_mcs; + /// Msg3 TPC command + uint8_t msg3_TPC; + /// Msg3 ULdelay command + uint8_t msg3_ULdelay; + /// Msg3 cqireq command + uint8_t msg3_cqireq; + /// Round of Msg3 HARQ + uint8_t msg3_round; + /// TBS used for Msg4 + int msg4_TBsize; + /// MCS used for Msg4 + int msg4_mcs; #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - uint8_t rach_resource_type; - uint8_t msg2_mpdcch_repetition_cnt; - uint8_t msg4_mpdcch_repetition_cnt; - uint8_t msg2_narrowband; - uint8_t msg34_narrowband; + uint8_t rach_resource_type; + uint8_t msg2_mpdcch_repetition_cnt; + int msg2_mpdcch_done; + uint8_t msg4_mpdcch_repetition_cnt; + int msg4_mpdcch_done; + uint8_t msg2_narrowband; + uint8_t msg34_narrowband; + int msg4_rrc_sdu_length; #endif int32_t crnti_rrc_mui; int8_t crnti_harq_pid; diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index 0103341bf8..22c20da021 100755 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -112,13 +112,13 @@ fill_rar(const module_id_t module_idP, //------------------------------------------------------------------------------ unsigned short fill_rar_br(eNB_MAC_INST *eNB, - int CC_id, - RA_TEMPLATE *RA_template, - const frame_t frameP, - const sub_frame_t subframeP, - uint8_t* const dlsch_buffer, - const uint8_t ce_level -) + int CC_id, + RA_t *ra, + const frame_t frameP, + const sub_frame_t subframeP, + uint8_t* const dlsch_buffer, + const uint8_t ce_level + ) //------------------------------------------------------------------------------ { @@ -132,47 +132,46 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, int input_buffer_length; - AssertFatal(ra != NULL, "RA is null \n"); - - // subheader fixed - rarh->E = 0; // First and last RAR - rarh->T = 1; // 0 for E/T/R/R/BI subheader, 1 for E/T/RAPID subheader - rarh->RAPID = ra->preamble_index; // Respond to Preamble 0 only for the moment - ra->timing_offset /= 16; //T_A = N_TA/16, where N_TA should be on a 30.72Msps - rar[0] = (uint8_t) (ra->timing_offset >> (2 + 4)); // 7 MSBs of timing advance + divide by 4 - rar[1] = (uint8_t) (ra->timing_offset << (4 - 2)) & 0xf0; // 4 LSBs of timing advance + divide by 4 - - + AssertFatal(ra != NULL, "RA is null \n"); + + // subheader fixed + rarh->E = 0; // First and last RAR + rarh->T = 1; // 0 for E/T/R/R/BI subheader, 1 for E/T/RAPID subheader + rarh->RAPID = ra->preamble_index; // Respond to Preamble 0 only for the moment + ra->timing_offset /= 16; //T_A = N_TA/16, where N_TA should be on a 30.72Msps + rar[0] = (uint8_t) (ra->timing_offset >> (2 + 4)); // 7 MSBs of timing advance + divide by 4 + rar[1] = (uint8_t) (ra->timing_offset << (4 - 2)) & 0xf0; // 4 LSBs of timing advance + divide by 4 + + int N_NB_index; + // Copy the Msg2 narrowband - RA_template->msg34_narrowband = RA_template->msg2_narrowband; - RA_template->msg3_first_rb = 0; - RA_template->msg3_nb_rb = 2; + ra->msg34_narrowband = ra->msg2_narrowband; + ra->msg3_first_rb = 0; + ra->msg3_nb_rb = 2; - // Copy the Msg2 narrowband - ra->msg34_narrowband = ra->msg2_narrowband; - - if (ce_level < 2) { //CE Level 0,1, CEmodeA - input_buffer_length = 6; - - - rar[4] = (uint8_t)(RA_template->rnti>>8); - rar[5] = (uint8_t)(RA_template->rnti&0xff); - //cc->RA_template[ra_idx].timing_offset = 0; + if (ce_level < 2) { //CE Level 0,1, CEmodeA + input_buffer_length = 6; + + N_NB_index = get_numnarrowbandbits(cc->mib->message.dl_Bandwidth); + rar[4] = (uint8_t)(ra->rnti>>8); + rar[5] = (uint8_t)(ra->rnti&0xff); + //cc->ra[ra_idx].timing_offset = 0; + reps = 0; - RA_template->msg3_mcs = 7; + ra->msg3_mcs = 7; TPC = 3; // no power increase ULdelay = 0; cqireq = 0; mpdcch_nb_index = 0; - rballoc = mac_computeRIV(6,RA_template->msg3_first_rb,RA_template->msg3_nb_rb); + rballoc = mac_computeRIV(6,ra->msg3_first_rb,ra->msg3_nb_rb); uint32_t buffer = 0; - buffer |= RA_template->msg34_narrowband << (16 + (4 - N_NB_index)); + buffer |= ra->msg34_narrowband << (16 + (4 - N_NB_index)); buffer |= ((rballoc & 0xFF) << (12 + (4 - N_NB_index))); buffer |= ((reps & 0x03) << (10 + (4 - N_NB_index))); - buffer |= ((RA_template->msg3_mcs & 0x07) << (7 + (4 - N_NB_index))); + buffer |= ((ra->msg3_mcs & 0x07) << (7 + (4 - N_NB_index))); buffer |= ((TPC & 0x07) << (4 + (4 - N_NB_index))); buffer |= ((cqireq & 0x01) << (3 + (4 - N_NB_index))); buffer |= ((ULdelay & 0x01) << (2 + (4 - N_NB_index))); @@ -183,47 +182,30 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, } else { // CE level 2,3 => CEModeB - // reps = 4; - mcs = 7; - TPC = 3; // no power increase - ULdelay = 0; - cqireq = 0; - rar[2] |= ((mcs & 0x8) >> 3); // mcs 10 - rar[3] = - (((mcs & 0x7) << 5)) | ((TPC & 7) << 2) | ((ULdelay & 1) << 1) - | (cqireq & 1); - } else { // CE level 2,3 => CEModeB + AssertFatal(1==0,"Shouldn't get here ...\n"); + input_buffer_length =5; - rar[3] = (uint8_t)(RA_template->rnti>>8); - rar[4] = (uint8_t)(RA_template->rnti&0xff); + rar[3] = (uint8_t)(ra->rnti>>8); + rar[4] = (uint8_t)(ra->rnti&0xff); } LOG_I(MAC,"[RAPROC] Frame %d Subframe %d : Generating RAR BR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for ce_level %d, CRNTI %x,preamble %d/%d,TIMING OFFSET %d\n", frameP,subframeP, *(uint8_t*)rarh,rar[0],rar[1],rar[2],rar[3],rar[4],rar[5], ce_level, - RA_template->rnti, - rarh->RAPID,RA_template->preamble_index, - RA_template->timing_offset); + ra->rnti, + rarh->RAPID,ra->preamble_index, + ra->timing_offset); - rar[3] = (uint8_t) (ra->rnti >> 8); - rar[4] = (uint8_t) (ra->rnti & 0xff); - } - LOG_D(MAC, - "[RAPROC] Frame %d Generating RAR BR (%02x|%02x.%02x.%02x.%02x.%02x.%02x) for ce_level %d, CRNTI %x,preamble %d/%d,TIMING OFFSET %d\n", - frameP, *(uint8_t *) rarh, rar[0], rar[1], rar[2], rar[3], - rar[4], rar[5], ce_level, ra->rnti, rarh->RAPID, - ra->preamble_index, ra->timing_offset); + if (opt_enabled) { + trace_pdu(DIRECTION_DOWNLINK , dlsch_buffer, input_buffer_length, eNB->Mod_id, WS_RA_RNTI , 1, + eNB->frame, eNB->subframe, 0, 0); + LOG_D(OPT, + "[RAPROC] RAR Frame %d trace pdu for rnti %x and rapid %d size %d\n", + frameP, ra->rnti, rarh->RAPID, input_buffer_length); + } - if (opt_enabled) { - trace_pdu(DIRECTION_DOWNLINK , dlsch_buffer, input_buffer_length, eNB->Mod_id, WS_RA_RNTI , 1, - eNB->frame, eNB->subframe, 0, 0); - LOG_D(OPT, - "[RAPROC] RAR Frame %d trace pdu for rnti %x and rapid %d size %d\n", - frameP, ra->rnti, rarh->RAPID, input_buffer_length); - } - - return (ra->rnti); + return (ra->rnti); } #endif diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c index e09b3204ba..206ef08606 100755 --- a/openair2/LAYER2/MAC/ue_procedures.c +++ b/openair2/LAYER2/MAC/ue_procedures.c @@ -558,20 +558,16 @@ ue_send_sdu(module_id_t module_idP, LOG_T(MAC, "\n"); #endif - mac_rrc_data_ind(module_idP, - CC_id, - frameP,subframeP, - UE_mac_inst[module_idP].crnti, - CCCH, - (uint8_t*)payload_ptr, - rx_lengths[i], - ENB_FLAG_NO, - eNB_index, - 0 - #ifdef Rel14 - ,0 - #endif - ); + mac_rrc_data_ind_ue(module_idP, + CC_id, + frameP,subframeP, + UE_mac_inst[module_idP].crnti, + CCCH, + (uint8_t*)payload_ptr, + rx_lengths[i], + eNB_index, + 0 + ); } else if ((rx_lcids[i] == DCCH) || (rx_lcids[i] == DCCH1)) { LOG_D(MAC,"[UE %d] Frame %d : DLSCH -> DL-DCCH%d, RRC message (eNB %d, %d bytes)\n", module_idP, frameP, rx_lcids[i],eNB_index,rx_lengths[i]); diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c index b7a738ef06..4f9e1a73ef 100755 --- a/openair2/PHY_INTERFACE/IF_Module.c +++ b/openair2/PHY_INTERFACE/IF_Module.c @@ -48,8 +48,8 @@ void handle_rach(UL_IND_t *UL_info) { "Got regular PRACH preamble, not BL/CE\n"); LOG_D(MAC,"Frame %d, Subframe %d Calling initiate_ra_proc (CE_level %d)\n",UL_info->frame,UL_info->subframe, - UL_info->rach_ind_br.preamble_list[i].preamble_rel13.rach_resource_type-1); - UL_info->rach_ind_br.number_of_preambles=0; + UL_info->rach_ind_br.rach_indication_body.preamble_list[i].preamble_rel13.rach_resource_type-1); + UL_info->rach_ind_br.rach_indication_body.number_of_preambles=0; initiate_ra_proc(UL_info->module_id, UL_info->CC_id, diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c index 31f9c1c2d0..5189564ed5 100755 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c @@ -371,7 +371,6 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, uint8_t *buffer; BCCH_DL_SCH_Message_t *bcch_message; SystemInformationBlockType1_t **sib1; - SystemInformationBlockType1_BR_r13_t **sib1_br; #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) if (brOption) { @@ -400,7 +399,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, memset(&sib_type,0,sizeof(SIB_Type_t)); /* as per TS 36.311, up to 6 PLMN_identity_info are allowed in list -> add one by one */ - for (i = 0; i < configuration->num_plmn; ++i) { + for (int i = 0; i < configuration->num_plmn; ++i) { PLMN_identity_info[i].plmn_Identity.mcc = CALLOC(1,sizeof(*PLMN_identity_info[i].plmn_Identity.mcc)); memset(PLMN_identity_info[i].plmn_Identity.mcc,0,sizeof(*PLMN_identity_info[i].plmn_Identity.mcc)); @@ -616,7 +615,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, if (configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]) { - printf("[DEBUGGING][KOGO][TANY2]: bandwidthReducedAccessRelatedInfo_r13 = %d\n", configuration->bandwidthReducedAccessRelatedInfo_r13[CC_id]); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13)); @@ -631,7 +630,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_RepetitionPattern_r13 = configuration->si_RepetitionPattern_r13[CC_id]; // 0 - printf("[DEBUGGING][KOGO][ASN1]: si_RepetitionPattern_r13 = %d\n", configuration->si_RepetitionPattern_r13[CC_id]); + sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t)); @@ -645,9 +644,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index]; schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index]; - printf("[DEBUGGING][ASN1]: si_NarrowBand_r13: %d\n", configuration->si_Narrowband_r13[CC_id][index]); - printf("[DEBUGGING][ASN1]: si_TBS_r13: %d\n", configuration->si_TBS_r13[CC_id][index]); - LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",schedulinginfo_br_13->si_Narrowband_r13,schedulinginfo_br_13->si_TBS_r13); + LOG_I(RRC,"Adding (%d,%d) to scheduling_info_br_13\n",(int)schedulinginfo_br_13->si_Narrowband_r13,(int)schedulinginfo_br_13->si_TBS_r13); ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13); } @@ -716,7 +713,7 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier, sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long)); memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long)); *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id]; - printf("[DEBUGGING][KOGO]: si_validity time = %d\n", *sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13); + } else { @@ -990,7 +987,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part; + struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib13_part=NULL; MBSFN_SubframeConfigList_t *MBSFNSubframeConfigList; MBSFN_AreaInfoList_r9_t *MBSFNArea_list; struct MBSFN_AreaInfo_r9 *MBSFN_Area1, *MBSFN_Area2; @@ -1275,7 +1272,7 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength = rrconfig->ul_CyclicPrefixLength; - // LTE-M - +Kogo + (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = NULL; //calloc(1, sizeof(BCCH_Config_v1310_t)); @@ -1303,81 +1300,18 @@ uint8_t do_SIB23(uint8_t Mod_id, } + if (configuration->sib2_freq_hoppingParameters_r13_exists[CC_id]) { - puts("[DEBUGGING][KOGO][SIB23]: Structure exists"); + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = CALLOC(1, sizeof(FreqHoppingParameters_r13_t)); - if (configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id]) - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = CALLOC(1, sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id]; - - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; - } - - if (configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id]) - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 - = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13)); - if (*configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id] == 0) - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present - = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 - = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present - = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 - = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; - - } - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 = NULL; - } - - - if (configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id]) - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 - = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13)); - if (*configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id] == 0) - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present - = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 - = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present - = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 - = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; - - } - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 = NULL; - } - + if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]) { - puts("[DEBUGGING][KOGO][ASN]: SIB2 Interval UL HOPPING CONFIG COMMON MODE A\n"); (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13)); if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0) { - printf("[DEBUGGING][KOGO][ASN]: FDD UL HOPPING CONFIG COMMON MODE A\n"); - printf("[DEBUGGING][KOGO][ASN]: interval UL hopping config common: %d\n", configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]); (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 @@ -1395,7 +1329,6 @@ uint8_t do_SIB23(uint8_t Mod_id, } else { - printf("[DEBUGGING][KOGO][ALLOC ERROR] interval ul hopping: %d\n", configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]); (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL; } @@ -1424,21 +1357,12 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = NULL; } - if (configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id]) - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = CALLOC(1, sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; - } } else { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; } - + // pdsch_ConfigCommon_v1310 @@ -1447,7 +1371,6 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = *configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]; - printf("[DEBUGGING][KOGO] : pdsch CE MODE A : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13); } else { (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = NULL; } @@ -1455,7 +1378,6 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); // check if they're really long *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = *configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]; - printf("[DEBUGGING][KOGO] : pdsch CE MODE B : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13); } else { (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; } @@ -1469,7 +1391,6 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = *configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]; - printf("[DEBUGGING][KOGO] : pusch CE MODE A : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13); } else { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = NULL; } @@ -1477,7 +1398,6 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = *configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]; - printf("[DEBUGGING][KOGO] : pusch CE MODE B : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13); } else { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; } @@ -1485,7 +1405,6 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->pusch_HoppingOffset_v1310[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = *configuration->pusch_HoppingOffset_v1310[CC_id]; - printf("[DEBUGGING][KOGO] : pusch hopping offset : %ld\n", *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310); } else { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; } @@ -1509,7 +1428,6 @@ uint8_t do_SIB23(uint8_t Mod_id, if (configuration->rsrp_range_list_size[CC_id]) { *rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; - printf("[DEBUGGING][KOGO][SIB23] : rsrp range = %d\n", *rsrp_range); } else { @@ -1536,8 +1454,6 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; } - printf("[DEBUGGING][KOGO][SIB23]: mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = %d\n", - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13); } if (rrconfig->prach_HoppingOffset_r13) @@ -1549,9 +1465,7 @@ uint8_t do_SIB23(uint8_t Mod_id, { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; } - printf("[DEBUGGING][KOGO][SIB23]: prach_HoppingOffset_r13 = %d\n", - *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13); - + PRACH_ParametersCE_r13_t *prach_parametersce_r13; int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id]; @@ -1641,7 +1555,6 @@ uint8_t do_SIB23(uint8_t Mod_id, puts("LEVEL 0"); (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]; - printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level0_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13); } else { @@ -1654,7 +1567,6 @@ uint8_t do_SIB23(uint8_t Mod_id, puts("LEVEL 1"); (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id]; - printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level1_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13); } else { @@ -1666,7 +1578,6 @@ uint8_t do_SIB23(uint8_t Mod_id, puts("LEVEL 2"); (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id]; - printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level2_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13); } else { @@ -1678,7 +1589,6 @@ uint8_t do_SIB23(uint8_t Mod_id, puts("LEVEL 3"); (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id]; - printf("[DEBUGGING][KOGO][SIB23]: pucch_NumRepetitionCE_Msg4_Level3_r13 = %d\n", *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13); } else { @@ -2673,9 +2583,11 @@ uint8_t do_RRCConnectionSetupComplete(uint8_t Mod_id, uint8_t *buffer, const uin */ enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); + AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", enc_rval.failed_type->name, enc_rval.encoded); @@ -2735,6 +2647,7 @@ do_RRCConnectionReconfigurationComplete( rrcConnectionReconfigurationComplete->criticalExtensions.choice.rrcConnectionReconfigurationComplete_r8.nonCriticalExtension=NULL; enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, + NULL, (void*)&ul_dcch_msg, buffer, 100); @@ -2781,7 +2694,6 @@ do_RRCConnectionSetup_BR( { asn_enc_rval_t enc_rval; - uint8_t ecause=0; eNB_RRC_INST *rrc = RC.rrc[ctxt_pP->module_id]; rrc_eNB_carrier_data_t *carrier = &rrc->carrier[CC_id]; @@ -2938,7 +2850,7 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->cqi_ReportConfig->nomPDSCH_RS_EPRE_Offset = 0; // 0 dB physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->present = CQI_ReportPeriodic_PR_release; - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.release = NULL; + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic->choice.release = (NULL_t)0; /// TODO to be reviewed @@ -2955,7 +2867,7 @@ do_RRCConnectionSetup_BR( == SoundingRS_UL_ConfigCommon_PR_setup) if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); + (int)carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); if (ue_context_pP->local_uid >=20) LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", ue_context_pP->local_uid); @@ -2968,8 +2880,8 @@ do_RRCConnectionSetup_BR( == SoundingRS_UL_ConfigCommon_PR_setup) if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=7) { LOG_W(RRC,"This code has been optimized for SRS Subframe Config 7 and TDD config 3, but current configs are %d and %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, - carrier->sib1->tdd_Config->subframeAssignment); + (int)carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig, + (int)carrier->sib1->tdd_Config->subframeAssignment); } if (ue_context_pP->local_uid >=6) LOG_W(RRC,"This code has been optimized for up to 6 UEs, but current UE_id is %d. Expect undefined behaviour!\n", @@ -2978,8 +2890,8 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb= ue_context_pP->local_uid%2; } LOG_W(RRC,"local UID %d, srs ConfigIndex %d, TransmissionComb %d\n",ue_context_pP->local_uid, - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); + (int)physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.srs_ConfigIndex, + (int)physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.transmissionComb); physicalConfigDedicated2->soundingRS_UL_ConfigDedicated->choice.setup.cyclicShift= SoundingRS_UL_ConfigDedicated__setup__cyclicShift_cs0; @@ -3065,13 +2977,6 @@ do_RRCConnectionSetup_BR( } } - enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, - NULL, - (void*)&ul_dcch_msg, - buffer, - 100); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); physicalConfigDedicated2->schedulingRequestConfig->choice.setup.dsr_TransMax = SchedulingRequestConfig__setup__dsr_TransMax_n16; @@ -3101,9 +3006,6 @@ do_RRCConnectionSetup_BR( epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.bits_unused = 2; memset(epdcch_setconfig_r11->resourceBlockAssignment_r11.resourceBlockAssignment_r11.buf, 0, 5 * sizeof(uint8_t)); - LOG_D(RRC,"RRCConnectionSetupComplete Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); - - epdcch_setconfig_r11->dmrs_ScramblingSequenceInt_r11 = 54; epdcch_setconfig_r11->pucch_ResourceStartOffset_r11 = 0; epdcch_setconfig_r11->re_MappingQCL_ConfigId_r11 = NULL; @@ -3142,7 +3044,6 @@ do_RRCConnectionSetup_BR( physicalConfigDedicated2->ext7->csi_RS_Config_v1310 = NULL; - // FIXME ce_Mode_r13 allocation physicalConfigDedicated2->ext7->ce_Mode_r13 = CALLOC(1, sizeof(struct PhysicalConfigDedicated__ext7__ce_Mode_r13)); physicalConfigDedicated2->ext7->ce_Mode_r13->present = PhysicalConfigDedicated__ext7__ce_Mode_r13_PR_setup; @@ -3175,12 +3076,11 @@ do_RRCConnectionSetup_BR( #ifdef XER_PRINT xer_fprint(stdout, &asn_DEF_DL_CCCH_Message, (void*)&dl_ccch_msg); #endif - enc_rval = uper_encode_to_buffer(&asn_DEF_UL_DCCH_Message, - NULL, - (void*)&ul_dcch_msg, - buffer, - 100); - + enc_rval = uper_encode_to_buffer(&asn_DEF_DL_CCCH_Message, + NULL, + (void*)&dl_ccch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", enc_rval.failed_type->name, enc_rval.encoded); @@ -3203,10 +3103,10 @@ do_RRCConnectionSetup_BR( # endif #endif - - LOG_D(RRC,"RRCConnectionSetup Encoded %zd bits (%zd bytes)\n", - enc_rval.encoded,(enc_rval.encoded+7)/8); - +#ifdef USER_MODE + LOG_D(RRC,"RRCConnectionSetup Encoded %d bits (%d bytes), ecause %d\n", + enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); +#endif // FREEMEM(SRB_list); // free(SRB1_config); @@ -3436,7 +3336,7 @@ do_RRCConnectionSetup( == SoundingRS_UL_ConfigCommon_PR_setup) if (carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig!=0) LOG_W(RRC,"This code has been optimized for SRS Subframe Config 0, but current config is %d. Expect undefined behaviour!\n", - carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); + (int)carrier->sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_SubframeConfig); if (ue_context_pP->local_uid >=20) LOG_W(RRC,"This code has been optimized for up to 10 UEs, but current UE_id is %d. Expect undefined behaviour!\n", ue_context_pP->local_uid); @@ -3922,10 +3822,11 @@ do_RRCConnectionReconfiguration_BR( rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.securityConfigHO = NULL; enc_rval = uper_encode_to_buffer(&asn_DEF_DL_DCCH_Message, + NULL, (void*)&dl_dcch_msg, buffer, RRC_BUF_SIZE); - AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %l)!\n", + AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed %s, %lu!\n", enc_rval.failed_type->name, enc_rval.encoded); #ifdef XER_PRINT @@ -3951,13 +3852,8 @@ do_RRCConnectionReconfiguration_BR( # endif #endif - //#ifdef USER_MODE - LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); - // for (i=0;i<30;i++) - // msg("%x.",buffer[i]); - // msg("\n"); - //#endif + LOG_I(RRC,"RRCConnectionReconfiguration Encoded %d bits (%d bytes)\n",(int)enc_rval.encoded,(int)(enc_rval.encoded+7)/8); return((enc_rval.encoded+7)/8); } diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 58eacacecb..4d9268eb44 100755 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -3054,9 +3054,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons //TODO: change TM for secondary CC in SCelltoaddmodlist if (*physicalConfigDedicated) { if ((*physicalConfigDedicated)->antennaInfo) { - (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.ue_TransmissionMode[0]; - LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.ue_TransmissionMode[0]); - if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm3) { + (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode; + LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode); + if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm3) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3066,7 +3066,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3077,7 +3077,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3087,7 +3087,7 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1; (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3102,9 +3102,9 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt_t* cons LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n"); } if ((*physicalConfigDedicated)->cqi_ReportConfig) { - if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { + if ((rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) || + (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) || + (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6)) { //feedback mode needs to be set as well //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable printf("setting cqi reporting mode to rm31\n"); @@ -3781,9 +3781,9 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt //TODO: change TM for secondary CC in SCelltoaddmodlist if (*physicalConfigDedicated) { if ((*physicalConfigDedicated)->antennaInfo) { - (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.ue_TransmissionMode[0]; - LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.ue_TransmissionMode[0]); - if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm3) { + (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode; + LOG_D(RRC,"Setting transmission mode to %ld+1\n",rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode); + if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm3) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3793,7 +3793,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.size=1; (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm3.bits_unused=6; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3804,7 +3804,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm4.bits_unused=2; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3814,7 +3814,7 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.size=1; (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->choice.n2TxAntenna_tm5.bits_unused=4; } - else if (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6) { + else if (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6) { (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction= CALLOC(1,sizeof(AntennaInfoDedicated__codebookSubsetRestriction_PR)); (*physicalConfigDedicated)->antennaInfo->choice.explicitValue.codebookSubsetRestriction->present = @@ -3830,9 +3830,9 @@ flexran_rrc_eNB_generate_defaultRRCConnectionReconfiguration(const protocol_ctxt LOG_E(RRC,"antenna_info not present in physical_config_dedicated. Not reconfiguring!\n"); } if ((*physicalConfigDedicated)->cqi_ReportConfig) { - if ((rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm4) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm5) || - (rrc_inst->configuration.ue_TransmissionMode[0]==AntennaInfoDedicated__transmissionMode_tm6)) { + if ((rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm4) || + (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm5) || + (rrc_inst->configuration.radioresourceconfig[0].ue_TransmissionMode==AntennaInfoDedicated__transmissionMode_tm6)) { //feedback mode needs to be set as well //TODO: I think this is taken into account in the PHY automatically based on the transmission mode variable printf("setting cqi reporting mode to rm31\n"); @@ -5736,13 +5736,13 @@ rrc_eNB_generate_RRCConnectionSetup( if (is_mtc) { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.payload_size = do_RRCConnectionSetup_BR(ctxt_pP, - ue_context_pP, - CC_id, - (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, - (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 - rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), - SRB_configList, - &ue_context_pP->ue_context.physicalConfigDedicated); + ue_context_pP, + CC_id, + (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, + (const uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 + rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), + SRB_configList, + &ue_context_pP->ue_context.physicalConfigDedicated); } else #endif { @@ -5751,7 +5751,7 @@ rrc_eNB_generate_RRCConnectionSetup( ue_context_pP, CC_id, (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].Srb0.Tx_buffer.Payload, - (uint8_t*) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 + (const uint8_t) RC.rrc[ctxt_pP->module_id]->carrier[CC_id].p_eNB, //at this point we do not have the UE capability information, so it can only be TM1 or TM2 rrc_eNB_get_next_transaction_identifier(ctxt_pP->module_id), SRB_configList, &ue_context_pP->ue_context.physicalConfigDedicated); diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c index d225b6eae0..a830f3145c 100755 --- a/openair2/RRC/LTE/rrc_eNB_S1AP.c +++ b/openair2/RRC/LTE/rrc_eNB_S1AP.c @@ -1857,7 +1857,7 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance lte_frame_type_t frame_type = RC.eNB[instance][CC_id]->frame_parms.frame_type; /* get nB from configuration */ /* get default DRX cycle from configuration */ - Tc = (uint8_t)RC.rrc[instance]->configuration.pcch_defaultPagingCycle[CC_id]; + Tc = (uint8_t)RC.rrc[instance]->configuration.radioresourceconfig[CC_id].pcch_defaultPagingCycle; if (Tc < PCCH_Config__defaultPagingCycle_rf32 || Tc > PCCH_Config__defaultPagingCycle_rf256) { continue; } @@ -1865,7 +1865,7 @@ int rrc_eNB_process_PAGING_IND(MessageDef *msg_p, const char *msg_name, instance /* set T = min(Tc,Tue) */ T = Tc < Tue ? Ttab[Tc] : Ttab[Tue]; /* set pcch_nB = PCCH-Config->nB */ - pcch_nB = (uint32_t)RC.rrc[instance]->configuration.pcch_nB[CC_id]; + pcch_nB = (uint32_t)RC.rrc[instance]->configuration.radioresourceconfig[CC_id].pcch_nB; switch (pcch_nB) { case PCCH_Config__nB_fourT: Ns = 4; diff --git a/openair2/RRC/LTE/rrc_proto.h b/openair2/RRC/LTE/rrc_proto.h index 4fd990ba0d..0d36fc1923 100755 --- a/openair2/RRC/LTE/rrc_proto.h +++ b/openair2/RRC/LTE/rrc_proto.h @@ -432,6 +432,9 @@ mac_rrc_data_ind( const uint8_t* sduP, const sdu_size_t sdu_lenP, const uint8_t mbsfn_sync_areaP +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + , const boolean_t brOption +#endif ); int8_t @@ -458,9 +461,6 @@ mac_rrc_data_ind_ue( const sdu_size_t sdu_lenP, const mac_enb_index_t eNB_indexP, const uint8_t mbsfn_sync_areaP -#ifdef Rel14 - , const boolean_t brOption -#endif ); void mac_sync_ind( module_id_t Mod_instP, uint8_t status); From 374d00d8572eb66c974fe4b0b9084294897580ab Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 4 Nov 2018 00:03:44 +0100 Subject: [PATCH 093/125] removal of warnings during configuration --- openair2/ENB_APP/enb_config.c | 15 +- openair2/RRC/LTE/MESSAGES/asn1_msg.c | 314 ++++++++++----------------- openair2/RRC/LTE/rrc_eNB.c | 5 +- 3 files changed, 126 insertions(+), 208 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index bb73797f22..c59865dd60 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -757,7 +757,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int si_Narrowband_r13 = 0; int si_TBS_r13 = 0; - int systemInfoValueTagSi_r13 = 0; + // int systemInfoValueTagSi_r13 = 0; int firstPreamble_r13 = 0; int lastPreamble_r13 = 0; @@ -773,7 +773,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int numRepetitionPerPreambleAttempt_r13 = 0; int mpdcch_NumRepetition_RA_r13 = 0; int prach_HoppingConfig_r13 = 0; - int *maxavailablenarrowband = NULL; + //int *maxavailablenarrowband = NULL; int pucch_info_value = 0; int paging_narrowbands_r13 = 0; @@ -799,12 +799,12 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; - int pusch_HoppingOffset_v1310 = 0; + //int pusch_HoppingOffset_v1310 = 0; - int hyperSFN_r13 = 0; - int eDRX_Allowed_r13 = 0; + //int hyperSFN_r13 = 0; + //int eDRX_Allowed_r13 = 0; int q_RxLevMinCE_r13 = 0; - int q_QualMinRSRQ_CE_r13 = 0; + //int q_QualMinRSRQ_CE_r13 = 0; char *si_WindowLength_BR_r13 = NULL; char *si_RepetitionPattern_r13 = NULL; int startSymbolBR_r13 = 0; @@ -3654,8 +3654,7 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower, pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment, pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal, - pucch_p0_Nominal, msg3_delta_Preamble; - char *rach_numberOfRA_Preambles; + pucch_p0_Nominal, msg3_delta_Preamble,rach_numberOfRA_Preambles; int32_t rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, rach_powerRampingStep, rach_preambleInitialReceivedTargetPower, rach_preambleTransMax, rach_raResponseWindowSize, diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c index 5189564ed5..62db7df304 100755 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c @@ -975,7 +975,8 @@ uint8_t do_SIB23(uint8_t Mod_id, struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib2_part,*sib3_part; #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - //TTN - for D2D + + int eMTC_configured=configuration->eMTC_configured; struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member *sib18_part, *sib19_part, *sib21_part; SL_CommRxPoolList_r12_t *SL_CommRxPoolList; //for SIB18 struct SL_CommResourcePool_r12 *SL_CommResourcePool; //for SIB18 @@ -1004,7 +1005,7 @@ uint8_t do_SIB23(uint8_t Mod_id, buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23_BR; sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2_BR; rrconfig = &configuration->radioresourceconfig_BR[CC_id]; - + LOG_I(RRC,"Running SIB2/3 Encoding for eMTC\n"); } else #endif @@ -1071,7 +1072,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif -#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) //TTN - for D2D sib18_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); sib19_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); @@ -1100,7 +1101,6 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif #if defined(ENABLE_ITTI) - puts("INSIDE ITTI !!!!"); (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = rrconfig->rach_numberOfRA_Preambles; (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; @@ -1122,31 +1122,26 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer = rrconfig->rach_macContentionResolutionTimer; (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = rrconfig->rach_maxHARQ_Msg3Tx; - // LTE-M +kogo - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); - memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); - - if (rrconfig->preambleTransMax_CE_r13) - { + if (eMTC_configured>0) { + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); + memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); + + if (rrconfig->preambleTransMax_CE_r13) { (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); *(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = *rrconfig->preambleTransMax_CE_r13; // to be re-initialized when we find the enum - } - else - { - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; - } + } + else (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL; + - (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); - memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t)); + memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t)); - RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13; - int num_rach_ce_level_info = configuration->rach_CE_LevelInfoList_r13_size[CC_id]; - int index; - for (index = 0; index < num_rach_ce_level_info; ++index) - { + RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13; + int num_rach_ce_level_info = configuration->rach_CE_LevelInfoList_r13_size[CC_id]; + int index; + for (index = 0; index < num_rach_ce_level_info; ++index) { rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t)); - if (configuration->rach_CE_LevelInfoList_r13_size[CC_id]) - { + if (configuration->rach_CE_LevelInfoList_r13_size[CC_id]) { rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = configuration->firstPreamble_r13[CC_id][index]; rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = configuration->lastPreamble_r13[CC_id][index]; rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = configuration->ra_ResponseWindowSize_r13[CC_id][index]; @@ -1162,11 +1157,10 @@ uint8_t do_SIB23(uint8_t Mod_id, rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; } ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); + } } - //--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo - // BCCH-Config (*sib2)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff = rrconfig->bcch_modificationPeriodCoeff; @@ -1272,15 +1266,14 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength = rrconfig->ul_CyclicPrefixLength; + if (eMTC_configured>0) { + (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); + (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = NULL; //calloc(1, sizeof(BCCH_Config_v1310_t)); + //memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); + //(*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; - (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); - (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = NULL; //calloc(1, sizeof(BCCH_Config_v1310_t)); - //memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t)); - //(*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64; - - if (configuration->pcch_config_v1310) - { + if (configuration->pcch_config_v1310) { (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = CALLOC(1, sizeof(PCCH_Config_v1310_t)); (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->paging_narrowBands_r13 = configuration->paging_narrowbands_r13[CC_id]; (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->mpdcch_NumRepetition_Paging_r13 = configuration->mpdcch_numrepetition_paging_r13[CC_id]; @@ -1293,25 +1286,20 @@ uint8_t do_SIB23(uint8_t Mod_id, { (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = NULL; } - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; - } + } + else (*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL; + - if (configuration->sib2_freq_hoppingParameters_r13_exists[CC_id]) - { + if (configuration->sib2_freq_hoppingParameters_r13_exists[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = CALLOC(1, sizeof(FreqHoppingParameters_r13_t)); - if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]) - { + if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13)); - if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0) - { + if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0) { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 @@ -1327,144 +1315,116 @@ uint8_t do_SIB23(uint8_t Mod_id, } } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL; - } + else (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL; + - if (configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id]) - { + if (configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13)); - if (*configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id] == 0) - { + if (*configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id] == 0) { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->present = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 = configuration->sib2_interval_ULHoppingConfigCommonModeB_r13_val[CC_id]; } - else - { + else { (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->present = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 = configuration->sib2_interval_ULHoppingConfigCommonModeB_r13_val[CC_id]; - } } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = NULL; - } - - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; - } + else (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = NULL; + } + else (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + // pdsch_ConfigCommon_v1310 - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = CALLOC(1,sizeof(PDSCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = CALLOC(1,sizeof(PDSCH_ConfigCommon_v1310_t)); - if (configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]) { - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = CALLOC(1, sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = *configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]; - } else { - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = NULL; - } + if (configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = *configuration->pdsch_maxNumRepetitionCEmodeA_r13[CC_id]; + } else { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = NULL; + } - if (configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]) { - (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); // check if they're really long + if (configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); // check if they're really long *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = *configuration->pdsch_maxNumRepetitionCEmodeB_r13[CC_id]; - } else { + } else { (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; - } + } // *(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeA_r13 = 0; // (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310->pdsch_maxNumRepetitionCEmodeB_r13 = NULL; // pusch_ConfigCommon_v1310 - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = calloc(1,sizeof(PUSCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = calloc(1,sizeof(PUSCH_ConfigCommon_v1310_t)); - if (configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]) { - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = *configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]; - } else { - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = NULL; - } + if (configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = calloc(1,sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = *configuration->pusch_maxNumRepetitionCEmodeA_r13[CC_id]; + } else { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = NULL; + } - if (configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]) { - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = *configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]; - } else { + if (configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = *configuration->pusch_maxNumRepetitionCEmodeB_r13[CC_id]; + } else { (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; - } + } - if (configuration->pusch_HoppingOffset_v1310[CC_id]) { - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = CALLOC(1, sizeof(long)); - *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = *configuration->pusch_HoppingOffset_v1310[CC_id]; - } else { - (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; - } + if (configuration->pusch_HoppingOffset_v1310[CC_id]) { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = *configuration->pusch_HoppingOffset_v1310[CC_id]; + } else { + (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; + } // *(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeA_r13 = 0; // (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_maxNumRepetitionCEmodeB_r13 = NULL; // (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310->pusch_HoppingOffset_v1310 = NULL; - if (rrconfig->prach_ConfigCommon_v1310) - { + if (rrconfig->prach_ConfigCommon_v1310) { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t)); memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t)); RSRP_Range_t *rsrp_range; int num_rsrp_range = configuration->rsrp_range_list_size[CC_id]; int rsrp_index; - for (rsrp_index = 0; rsrp_index < num_rsrp_range; ++rsrp_index) - { + for (rsrp_index = 0; rsrp_index < num_rsrp_range; ++rsrp_index) { rsrp_range = CALLOC(1, sizeof(RSRP_Range_t)); - if (configuration->rsrp_range_list_size[CC_id]) - { - *rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; - } - else - { - *rsrp_range = 60; - } - + if (configuration->rsrp_range_list_size[CC_id]) *rsrp_range = configuration->rsrp_range[CC_id][rsrp_index]; + else *rsrp_range = 60; ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, rsrp_range); } (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL; - if (rrconfig->mpdcch_startSF_CSS_RA_r13) - { + if (rrconfig->mpdcch_startSF_CSS_RA_r13) { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13, 0, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13)); - if (*rrconfig->mpdcch_startSF_CSS_RA_r13) - { + if (*rrconfig->mpdcch_startSF_CSS_RA_r13) { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_fdd_r13; (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.fdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; } - else - { + else { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->present = PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13_PR_tdd_r13; (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13->choice.tdd_r13 = rrconfig->mpdcch_startSF_CSS_RA_r13_val; } } - if (rrconfig->prach_HoppingOffset_r13) - { + if (rrconfig->prach_HoppingOffset_r13) { (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = calloc(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *rrconfig->prach_HoppingOffset_r13; } - else - { - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; - } + else (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL; PRACH_ParametersCE_r13_t *prach_parametersce_r13; @@ -1472,8 +1432,7 @@ uint8_t do_SIB23(uint8_t Mod_id, int prach_parameters_index; AssertFatal(num_prach_parameters_ce > 0, "PRACH CE parameter list is empty\n"); - for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index) - { + for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index) { prach_parametersce_r13 = CALLOC(1, sizeof(PRACH_ParametersCE_r13_t)); prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index]; prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index]; @@ -1481,26 +1440,19 @@ uint8_t do_SIB23(uint8_t Mod_id, AssertFatal(configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]!=NULL, "configuration->prach_StartingSubframe_r13[%d][%d] is null", (int)CC_id,(int)prach_parameters_index); - if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]) - { + if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]){ prach_parametersce_r13->prach_StartingSubframe_r13 = CALLOC(1, sizeof(long)); *prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index]; } - else - { - prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; - } + else prach_parametersce_r13->prach_StartingSubframe_r13 = NULL; + - if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) - { + if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]) { prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = CALLOC(1, sizeof(long)); *prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index]; } - else - { - prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; - } - + else prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL; + prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index]; prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index]; prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index]; @@ -1522,80 +1474,52 @@ uint8_t do_SIB23(uint8_t Mod_id, ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13); } - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; - } + } + else (*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL; + - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); - memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t)); + memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t)); + (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t)); - int num_pucch_info_list = configuration->pucch_info_value_size[CC_id]; - int pucch_index; - long *pucch_info_value; - for (pucch_index = 0; pucch_index < num_pucch_info_list; ++pucch_index) - { + int num_pucch_info_list = configuration->pucch_info_value_size[CC_id]; + int pucch_index; + long *pucch_info_value; + for (pucch_index = 0; pucch_index < num_pucch_info_list; ++pucch_index) { pucch_info_value = CALLOC(1, sizeof(long)); - if (configuration->pucch_info_value_size[CC_id]) - { - *pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index]; - } - else - { - *pucch_info_value = 0; - } + if (configuration->pucch_info_value_size[CC_id]) *pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index]; + else *pucch_info_value = 0; + ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, pucch_info_value); - } + } - if (configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]) - { - puts("LEVEL 0"); + if (configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level0_r13[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - } + } + else (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - - if (configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id]) - { - puts("LEVEL 1"); + if (configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level1_r13[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - } + } + else (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; + - if (configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id]) - { - puts("LEVEL 2"); + if (configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level2_r13[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - } + } + else (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - if (configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id]) - { - puts("LEVEL 3"); + if (configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id]) { (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = CALLOC(1, sizeof(long)); *(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = *configuration->pucch_NumRepetitionCE_Msg4_Level3_r13[CC_id]; - } - else - { - (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; - } - + } + else (*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; + } // eMTC_configured>0 //----------------------------------------------------------------------------------------------------------------------------------------- @@ -1615,7 +1539,7 @@ uint8_t do_SIB23(uint8_t Mod_id, = rrconfig->ue_TimersAndConstants_n311; #else - puts("This is a test that #define ITTI is not working"); + (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles=RACH_ConfigCommon__preambleInfo__numberOfRA_Preambles_n64; (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL; (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.powerRampingStep=RACH_ConfigCommon__powerRampingParameters__powerRampingStep_dB2; @@ -1627,7 +1551,6 @@ uint8_t do_SIB23(uint8_t Mod_id, RACH_ConfigCommon__ra_SupervisionInfo__mac_ContentionResolutionTimer_sf48; (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx = 4; - // LTE-M +kogo (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1)); memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1)); (*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t)); @@ -1644,8 +1567,7 @@ uint8_t do_SIB23(uint8_t Mod_id, rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off; ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13); - //--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo - + // BCCH-Config (*sib2)->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff=BCCH_Config__modificationPeriodCoeff_n2; @@ -1705,7 +1627,7 @@ uint8_t do_SIB23(uint8_t Mod_id, (*sib2)->radioResourceConfigCommon.ul_CyclicPrefixLength=UL_CyclicPrefixLength_len1; - // LTE-M - +Kogo + (*sib2)->radioResourceConfigCommon.ext4 = calloc(1, sizeof(struct RadioResourceConfigCommonSIB__ext4)); memset((*sib2)->radioResourceConfigCommon.ext4, 0, sizeof(struct RadioResourceConfigCommonSIB__ext4)); (*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t)); diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 4d9268eb44..0faffc3983 100755 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -200,7 +200,7 @@ init_SI( AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1!=NULL,PROTOCOL_RRC_CTXT_FMT" init_SI: FATAL, no memory for SIB1 allocated\n", PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); - puts("[DEBUGGING][KOGO] --- Calling SIB1"); + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,FALSE @@ -217,7 +217,6 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = 0; if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t*) malloc16(32); - puts("[DEBUGGING][KOGO] --- Calling SIB1 -- second time"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id ,TRUE #if defined(ENABLE_ITTI) @@ -229,7 +228,6 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB"); - puts("[DEBUGGING][KOGO] ---> Calling SIB23 ---> first time"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23( ctxt_pP->module_id, CC_id @@ -248,7 +246,6 @@ init_SI( if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) { RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB"); - puts("[DEBUGGING][KOGO] ---> Calling SIB23 ---> second time"); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23( ctxt_pP->module_id, CC_id From f8d7ce32761add52de8877b8328110d56598be44 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Wed, 7 Nov 2018 00:37:40 +0100 Subject: [PATCH 094/125] regular LTE functional (simulation) --- openair1/SCHED/fapi_l1.c | 11 +- openair2/ENB_APP/enb_config.c | 3070 +++++++---------- openair2/ENB_APP/enb_paramdef.h | 307 +- openair2/ENB_APP/enb_paramdef_emtc.h | 384 ++- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 21 +- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 35 +- .../GENERIC-LTE-EPC/CONF/rru.oaisim.conf | 4 +- 7 files changed, 1740 insertions(+), 2092 deletions(-) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 35e3aed5d6..beab40acab 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -950,11 +950,12 @@ void schedule_response(Sched_Rsp_t *Sched_INFO) switch (hi_dci0_req_pdu->pdu_type) { - case NFAPI_HI_DCI0_DCI_PDU_TYPE: - - handle_nfapi_hi_dci0_dci_pdu(eNB,NFAPI_SFNSF2SFN(HI_DCI0_req->sfn_sf),NFAPI_SFNSF2SF(HI_DCI0_req->sfn_sf),proc,hi_dci0_req_pdu); - - + case NFAPI_HI_DCI0_DCI_PDU_TYPE: + + handle_nfapi_hi_dci0_dci_pdu(eNB,NFAPI_SFNSF2SFN(HI_DCI0_req->sfn_sf),NFAPI_SFNSF2SF(HI_DCI0_req->sfn_sf),proc,hi_dci0_req_pdu); + eNB->pdcch_vars[NFAPI_SFNSF2SF(HI_DCI0_req->sfn_sf)&1].num_dci++; + break; + case NFAPI_HI_DCI0_MPDCCH_DCI_PDU_TYPE: handle_nfapi_hi_dci0_mpdcch_dci_pdu(eNB,proc,hi_dci0_req_pdu); eNB->mpdcch_vars[subframe&1].num_dci++; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index c59865dd60..4f65d6098e 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -78,34 +78,7 @@ void RCconfig_flexran() { int32_t Nid_cell = 0; uint16_t Nid_cell_tr = 0; uint32_t enb_id = 0; - /* - the only reason for all these variables is, that they are "hard-encoded" - into the CCPARAMS_DESC macro and we need it for the Nid_cell variable ... - */ - char *frame_type, *prefix_type, *pbch_repetition, *prach_high_speed, - *pusch_hoppingMode, *pusch_enable64QAM, *pusch_groupHoppingEnabled, - *pusch_sequenceHoppingEnabled, *phich_duration, *phich_resource, - *srs_enable, *srs_ackNackST, *srs_MaxUpPts, *pusch_alpha, - *pucch_deltaF_Format1, *pucch_deltaF_Format1b, *pucch_deltaF_Format2, - *pucch_deltaF_Format2a, *pucch_deltaF_Format2b, - *rach_preamblesGroupAConfig, *rach_messagePowerOffsetGroupB, *pcch_nB; - long long int downlink_frequency; - int32_t tdd_config, tdd_config_s, eutra_band, uplink_frequency_offset, - Nid_cell_mbsfn, N_RB_DL, nb_antenna_ports, prach_root, prach_config_index, - prach_zero_correlation, prach_freq_offset, pucch_delta_shift, - pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower, - pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment, - pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal, - pucch_p0_Nominal, msg3_delta_Preamble, rach_numberOfRA_Preambles, - rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, - rach_powerRampingStep, rach_preambleInitialReceivedTargetPower, - rach_preambleTransMax, rach_raResponseWindowSize, - rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx, - pcch_defaultPagingCycle, bcch_modificationPeriodCoeff, - ue_TimersAndConstants_t300, ue_TimersAndConstants_t301, - ue_TimersAndConstants_t310, ue_TimersAndConstants_t311, - ue_TimersAndConstants_n310, ue_TimersAndConstants_n311, - ue_TransmissionMode, ue_multiple_max; + /* int32_t srb1_timer_poll_retransmit = 0; int32_t srb1_timer_reordering = 0; @@ -115,198 +88,7 @@ void RCconfig_flexran() { int32_t srb1_max_retx_threshold = 0; */ - const char *rxPool_sc_CP_Len; - const char *rxPool_sc_Period; - const char *rxPool_data_CP_Len; - libconfig_int rxPool_ResourceConfig_prb_Num; - libconfig_int rxPool_ResourceConfig_prb_Start; - libconfig_int rxPool_ResourceConfig_prb_End; - const char *rxPool_ResourceConfig_offsetIndicator_present; - libconfig_int rxPool_ResourceConfig_offsetIndicator_choice; - const char *rxPool_ResourceConfig_subframeBitmap_present; - char *rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_size; - libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - //SIB19 - //for discRxPool - const char *discRxPool_cp_Len; - const char *discRxPool_discPeriod; - libconfig_int discRxPool_numRetx; - libconfig_int discRxPool_numRepetition; - libconfig_int discRxPool_ResourceConfig_prb_Num; - libconfig_int discRxPool_ResourceConfig_prb_Start; - libconfig_int discRxPool_ResourceConfig_prb_End; - const char *discRxPool_ResourceConfig_offsetIndicator_present; - libconfig_int discRxPool_ResourceConfig_offsetIndicator_choice; - const char *discRxPool_ResourceConfig_subframeBitmap_present; - char *discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; - libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - //for discRxPoolPS - const char *discRxPoolPS_cp_Len; - const char *discRxPoolPS_discPeriod; - libconfig_int discRxPoolPS_numRetx; - libconfig_int discRxPoolPS_numRepetition; - libconfig_int discRxPoolPS_ResourceConfig_prb_Num; - libconfig_int discRxPoolPS_ResourceConfig_prb_Start; - libconfig_int discRxPoolPS_ResourceConfig_prb_End; - const char *discRxPoolPS_ResourceConfig_offsetIndicator_present; - libconfig_int discRxPoolPS_ResourceConfig_offsetIndicator_choice; - const char *discRxPoolPS_ResourceConfig_subframeBitmap_present; - char *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; - libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; - libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - //note: Uncomment below when FlexRAN support for eMTC is available - /* - int32_t eMTC_configured = 0; - int32_t prach_root_emtc = 0; - int32_t prach_config_index_emtc = 0; - char *prach_high_speed_emtc = NULL; - int32_t prach_zero_correlation_emtc = 0; - int32_t prach_freq_offset_emtc = 0; - int32_t pucch_delta_shift_emtc = 0; - int32_t pucch_nRB_CQI_emtc = 0; - int32_t pucch_nCS_AN_emtc = 0; - //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - int32_t pucch_n1_AN_emtc = 0; - //#endif - int32_t pdsch_referenceSignalPower_emtc = 0; - int32_t pdsch_p_b_emtc = 0; - int32_t pusch_n_SB_emtc = 0; - char *pusch_hoppingMode_emtc = NULL; - int32_t pusch_hoppingOffset_emtc = 0; - char *pusch_enable64QAM_emtc = NULL; - char *pusch_groupHoppingEnabled_emtc = NULL; - int32_t pusch_groupAssignment_emtc = 0; - char *pusch_sequenceHoppingEnabled_emtc = NULL; - int32_t pusch_nDMRS1_emtc = 0; - char *phich_duration_emtc = NULL; - char *phich_resource_emtc = NULL; - char *srs_enable_emtc = NULL; - int32_t srs_BandwidthConfig_emtc = 0; - int32_t srs_SubframeConfig_emtc = 0; - char *srs_ackNackST_emtc = NULL; - char *srs_MaxUpPts_emtc = NULL; - int32_t pusch_p0_Nominal_emtc = 0; - char *pusch_alpha_emtc = NULL; - int32_t pucch_p0_Nominal_emtc = 0; - int32_t msg3_delta_Preamble_emtc = 0; - //int32_t ul_CyclicPrefixLength_emtc = 0; - char *pucch_deltaF_Format1_emtc = NULL; - //const char* pucch_deltaF_Format1a_emtc = NULL; - char *pucch_deltaF_Format1b_emtc = NULL; - char *pucch_deltaF_Format2_emtc = NULL; - char *pucch_deltaF_Format2a_emtc = NULL; - char *pucch_deltaF_Format2b_emtc = NULL; - int32_t rach_numberOfRA_Preambles_emtc = 0; - char *rach_preamblesGroupAConfig_emtc = NULL; - int32_t rach_sizeOfRA_PreamblesGroupA_emtc = 0; - int32_t rach_messageSizeGroupA_emtc = 0; - char *rach_messagePowerOffsetGroupB_emtc = NULL; - int32_t rach_powerRampingStep_emtc = 0; - int32_t rach_preambleInitialReceivedTargetPower_emtc = 0; - int32_t rach_preambleTransMax_emtc = 0; - int32_t rach_raResponseWindowSize_emtc = 10; - int32_t rach_macContentionResolutionTimer_emtc = 0; - int32_t rach_maxHARQ_Msg3Tx_emtc = 0; - int32_t pcch_defaultPagingCycle_emtc = 0; - char *pcch_nB_emtc = NULL; - int32_t bcch_modificationPeriodCoeff_emtc = 0; - int32_t ue_TimersAndConstants_t300_emtc = 0; - int32_t ue_TimersAndConstants_t301_emtc = 0; - int32_t ue_TimersAndConstants_t310_emtc = 0; - int32_t ue_TimersAndConstants_t311_emtc = 0; - int32_t ue_TimersAndConstants_n310_emtc = 0; - int32_t ue_TimersAndConstants_n311_emtc = 0; - int32_t ue_TransmissionMode_emtc = 0; - int si_Narrowband_r13 = 0; - int si_TBS_r13 = 0; - - int systemInfoValueTagSi_r13 = 0; - - int firstPreamble_r13 = 0; - int lastPreamble_r13 = 0; - int ra_ResponseWindowSize_r13 = 0; - int mac_ContentionResolutionTimer_r13 = 0; - int rar_HoppingConfig_r13 = 0; - int rsrp_range_br = 0; - int maxNumPreambleAttemptCE_r13 = 0; - int numRepetitionPerPreambleAttempt_r13 = 0; - int mpdcch_NumRepetition_RA_r13 = 0; - int prach_HoppingConfig_r13 = 0; - int *maxavailablenarrowband = NULL; - int pucch_info_value = 0; - - int prach_config_index_br = 0; - int prach_freq_offset_br = 0; - int prach_StartingSubframe_r13 = 0; - - int paging_narrowbands_r13 = 0; - int mpdcch_numrepetition_paging_r13 = NULL; - int nb_v1310 = NULL; - - - char * pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - char * pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - char * pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - char * pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; - - int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; - int sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; - int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; - int sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; - int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; - - int sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; - int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; - int sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; - int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; - int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; - - int pusch_HoppingOffset_v1310 = 0; - - int hyperSFN_r13 = 0; - int eDRX_Allowed_r13 = 0; - int q_RxLevMinCE_r13 = 0; - int q_QualMinRSRQ_CE_r13 = 0; - char* si_WindowLength_BR_r13 = NULL; - char* si_RepetitionPattern_r13 = NULL; - int startSymbolBR_r13 = 0; - char* si_HoppingConfigCommon_r13 = NULL; - char* si_ValidityTime_r13 = NULL; - char* mpdcch_pdsch_HoppingNB_r13 = NULL; - int interval_DLHoppingConfigCommonModeA_r13_val = 0; - int interval_DLHoppingConfigCommonModeB_r13_val = 0; - int mpdcch_pdsch_HoppingOffset_r13 = 0; - char* preambleTransMax_CE_r13 = NULL; - char* rach_numberOfRA_Preambles_br = NULL; - - int schedulingInfoSIB1_BR_r13 = 0; - int64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; - - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - */ - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13 = NULL; - char* mpdcch_startSF_CSS_RA_r13_val = NULL; - char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; - char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; - - char* pusch_maxNumRepetitionCEmodeA_r13 = 0; - char* pusch_maxNumRepetitionCEmodeB_r13 = 0; - int prach_HoppingOffset_r13 = 0; - - // avoid gcc warnings - (void)pdsch_maxNumRepetitionCEmodeB_r13; - (void)pusch_maxNumRepetitionCEmodeB_r13; - /* get number of eNBs */ paramdef_t ENBSParams[] = ENBSPARAMS_DESC; config_get(ENBSParams, sizeof(ENBSParams)/sizeof(paramdef_t), NULL); @@ -316,23 +98,27 @@ void RCconfig_flexran() { paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST, NULL, 0}; /* for Nid_cell */ checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; - paramdef_t CCsParams[] = CCPARAMS_DESC; + ccparams_lte_t ccparams_lte; + memset((void*)&ccparams_lte,0,sizeof(ccparams_lte_t)); + paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0}; // Note: these should be turned on for EMTC support inside of FlexRAN - //paramdef_t brParams[] = BRPARAMS_DESC; - //paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC; + // ccparams_emtc_t ccparams_emtc; + //paramdef_t brParams[] = BRPARAMS_DESC(ccparams_emtc); + //paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC(ccparams_emtc); //paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; - //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + //paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC(ccparams_emtc); //paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; - //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; + //paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC(ccparams_emtc); //paramlist_def_t rsrprangelist = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0}; - //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; + //paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC(ccparams_emtc); //paramlist_def_t prachParamslist = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0}; - //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; + //paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC(ccparams_emtc); //paramlist_def_t n1PUCCHInfoList = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0}; - //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; - //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; + //paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC(ccparams_emtc); + //paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC(ccparams_emtc); + // paramdef_t SRB1Params[] = SRB1PARAMS_DESC; /* map parameter checking array instances to parameter definition array instances */ @@ -565,300 +351,44 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { int num_enbs = 0; int j,k = 0; - int32_t enb_id = 0; + int32_t enb_id = 0; int nb_cc = 0; - char *frame_type = NULL; - int32_t tdd_config = 0; - int32_t tdd_config_s = 0; - char *prefix_type = NULL; - char *pbch_repetition = NULL; - int32_t eutra_band = 0; - long long int downlink_frequency = 0; - int32_t uplink_frequency_offset = 0; - int32_t Nid_cell = 0; - int32_t Nid_cell_mbsfn = 0; - int32_t N_RB_DL = 0; - int32_t nb_antenna_ports = 0; - int32_t prach_root = 0; - int32_t prach_config_index = 0; - char *prach_high_speed = NULL; - int32_t prach_zero_correlation = 0; - int32_t prach_freq_offset = 0; - int32_t pucch_delta_shift = 0; - int32_t pucch_nRB_CQI = 0; - int32_t pucch_nCS_AN = 0; - //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - int32_t pucch_n1_AN = 0; - //#endif - int32_t pdsch_referenceSignalPower = 0; - int32_t pdsch_p_b = 0; - int32_t pusch_n_SB = 0; - char *pusch_hoppingMode = NULL; - int32_t pusch_hoppingOffset = 0; - char *pusch_enable64QAM = NULL; - char *pusch_groupHoppingEnabled = NULL; - int32_t pusch_groupAssignment = 0; - char *pusch_sequenceHoppingEnabled = NULL; - int32_t pusch_nDMRS1 = 0; - char *phich_duration = NULL; - char *phich_resource = NULL; - char *srs_enable = NULL; - int32_t srs_BandwidthConfig = 0; - int32_t srs_SubframeConfig = 0; - char *srs_ackNackST = NULL; - char *srs_MaxUpPts = NULL; - int32_t pusch_p0_Nominal = 0; - char *pusch_alpha = NULL; - int32_t pucch_p0_Nominal = 0; - int32_t msg3_delta_Preamble = 0; - //int32_t ul_CyclicPrefixLength = 0; - char *pucch_deltaF_Format1 = NULL; - //const char* pucch_deltaF_Format1a = NULL; - char *pucch_deltaF_Format1b = NULL; - char *pucch_deltaF_Format2 = NULL; - char *pucch_deltaF_Format2a = NULL; - char *pucch_deltaF_Format2b = NULL; - int32_t rach_numberOfRA_Preambles = 0; - char *rach_preamblesGroupAConfig = NULL; - int32_t rach_sizeOfRA_PreamblesGroupA = 0; - int32_t rach_messageSizeGroupA = 0; - char *rach_messagePowerOffsetGroupB = NULL; - int32_t rach_powerRampingStep = 0; - int32_t rach_preambleInitialReceivedTargetPower = 0; - int32_t rach_preambleTransMax = 0; - int32_t rach_raResponseWindowSize = 10; - int32_t rach_macContentionResolutionTimer = 0; - int32_t rach_maxHARQ_Msg3Tx = 0; - int32_t pcch_defaultPagingCycle = 0; - char *pcch_nB = NULL; - int32_t bcch_modificationPeriodCoeff = 0; - int32_t ue_TimersAndConstants_t300 = 0; - int32_t ue_TimersAndConstants_t301 = 0; - int32_t ue_TimersAndConstants_t310 = 0; - int32_t ue_TimersAndConstants_t311 = 0; - int32_t ue_TimersAndConstants_n310 = 0; - int32_t ue_TimersAndConstants_n311 = 0; - int32_t ue_TransmissionMode = 0; - int32_t ue_multiple_max = 0; - //TTN - for D2D - //SIB18 - const char *rxPool_sc_CP_Len = NULL; - const char *rxPool_sc_Period = NULL; - const char *rxPool_data_CP_Len = NULL; - libconfig_int rxPool_ResourceConfig_prb_Num = 0; - libconfig_int rxPool_ResourceConfig_prb_Start = 0; - libconfig_int rxPool_ResourceConfig_prb_End = 0; - const char *rxPool_ResourceConfig_offsetIndicator_present = NULL; - libconfig_int rxPool_ResourceConfig_offsetIndicator_choice = 0; - const char *rxPool_ResourceConfig_subframeBitmap_present = NULL; - char *rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; - libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 0; - libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; - //SIB19 - //For discRxPool - const char *discRxPool_cp_Len = NULL; - const char *discRxPool_discPeriod = NULL; - libconfig_int discRxPool_numRetx = 0; - libconfig_int discRxPool_numRepetition = 0; - libconfig_int discRxPool_ResourceConfig_prb_Num = 0; - libconfig_int discRxPool_ResourceConfig_prb_Start = 0; - libconfig_int discRxPool_ResourceConfig_prb_End = 0; - const char *discRxPool_ResourceConfig_offsetIndicator_present = NULL; - libconfig_int discRxPool_ResourceConfig_offsetIndicator_choice = 0; - const char *discRxPool_ResourceConfig_subframeBitmap_present = NULL; - char *discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; - libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 0; - libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; - //For discRxPoolPS - const char *discRxPoolPS_cp_Len = NULL; - const char *discRxPoolPS_discPeriod = NULL; - libconfig_int discRxPoolPS_numRetx = 0; - libconfig_int discRxPoolPS_numRepetition = 0; - libconfig_int discRxPoolPS_ResourceConfig_prb_Num = 0; - libconfig_int discRxPoolPS_ResourceConfig_prb_Start = 0; - libconfig_int discRxPoolPS_ResourceConfig_prb_End = 0; - const char *discRxPoolPS_ResourceConfig_offsetIndicator_present = NULL; - libconfig_int discRxPoolPS_ResourceConfig_offsetIndicator_choice = 0; - const char *discRxPoolPS_ResourceConfig_subframeBitmap_present = NULL; - char *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf = NULL; - libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size = 0; - libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0; - int32_t srb1_timer_poll_retransmit = 0; - int32_t srb1_timer_reordering = 0; - int32_t srb1_timer_status_prohibit = 0; - int32_t srb1_poll_pdu = 0; - int32_t srb1_poll_byte = 0; - int32_t srb1_max_retx_threshold = 0; - int32_t my_int; - // eMTC definitions - int32_t eMTC_configured = 0; - int32_t prach_root_emtc = 0; - int32_t prach_config_index_emtc = 0; - char *prach_high_speed_emtc = NULL; - int32_t prach_zero_correlation_emtc = 0; - int32_t prach_freq_offset_emtc = 0; - int32_t pucch_delta_shift_emtc = 0; - int32_t pucch_nRB_CQI_emtc = 0; - int32_t pucch_nCS_AN_emtc = 0; - //#if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - int32_t pucch_n1_AN_emtc = 0; - //#endif - int32_t pdsch_referenceSignalPower_emtc = 0; - int32_t pdsch_p_b_emtc = 0; - int32_t pusch_n_SB_emtc = 0; - char *pusch_hoppingMode_emtc = NULL; - int32_t pusch_hoppingOffset_emtc = 0; - char *pusch_enable64QAM_emtc = NULL; - char *pusch_groupHoppingEnabled_emtc = NULL; - int32_t pusch_groupAssignment_emtc = 0; - char *pusch_sequenceHoppingEnabled_emtc = NULL; - int32_t pusch_nDMRS1_emtc = 0; - char *phich_duration_emtc = NULL; - char *phich_resource_emtc = NULL; - char *srs_enable_emtc = NULL; - int32_t srs_BandwidthConfig_emtc = 0; - int32_t srs_SubframeConfig_emtc = 0; - char *srs_ackNackST_emtc = NULL; - char *srs_MaxUpPts_emtc = NULL; - int32_t pusch_p0_Nominal_emtc = 0; - char *pusch_alpha_emtc = NULL; - int32_t pucch_p0_Nominal_emtc = 0; - int32_t msg3_delta_Preamble_emtc = 0; - //int32_t ul_CyclicPrefixLength_emtc = 0; - char *pucch_deltaF_Format1_emtc = NULL; - //const char* pucch_deltaF_Format1a_emtc = NULL; - char *pucch_deltaF_Format1b_emtc = NULL; - char *pucch_deltaF_Format2_emtc = NULL; - char *pucch_deltaF_Format2a_emtc = NULL; - char *pucch_deltaF_Format2b_emtc = NULL; - int32_t rach_numberOfRA_Preambles_emtc = 0; - char *rach_preamblesGroupAConfig_emtc = NULL; - int32_t rach_sizeOfRA_PreamblesGroupA_emtc = 0; - int32_t rach_messageSizeGroupA_emtc = 0; - char *rach_messagePowerOffsetGroupB_emtc = NULL; - int32_t rach_powerRampingStep_emtc = 0; - int32_t rach_preambleInitialReceivedTargetPower_emtc = 0; - int32_t rach_preambleTransMax_emtc = 0; - int32_t rach_raResponseWindowSize_emtc = 10; - int32_t rach_macContentionResolutionTimer_emtc = 0; - int32_t rach_maxHARQ_Msg3Tx_emtc = 0; - int32_t pcch_defaultPagingCycle_emtc = 0; - char *pcch_nB_emtc = NULL; - int32_t bcch_modificationPeriodCoeff_emtc = 0; - int32_t ue_TimersAndConstants_t300_emtc = 0; - int32_t ue_TimersAndConstants_t301_emtc = 0; - int32_t ue_TimersAndConstants_t310_emtc = 0; - int32_t ue_TimersAndConstants_t311_emtc = 0; - int32_t ue_TimersAndConstants_n310_emtc = 0; - int32_t ue_TimersAndConstants_n311_emtc = 0; - int32_t ue_TransmissionMode_emtc = 0; + ccparams_lte_t ccparams_lte; + ccparams_sidelink_t SLconfig; + ccparams_eMTC_t eMTCconfig; - int si_Narrowband_r13 = 0; - int si_TBS_r13 = 0; - - // int systemInfoValueTagSi_r13 = 0; - - int firstPreamble_r13 = 0; - int lastPreamble_r13 = 0; - int ra_ResponseWindowSize_r13 = 0; - int mac_ContentionResolutionTimer_r13 = 0; - int rar_HoppingConfig_r13 = 0; - int rsrp_range_br = 0; - int prach_config_index_br = 0; - int prach_freq_offset_br = 0; - int prach_StartingSubframe_r13 = 0; + memset((void*)&ccparams_lte,0,sizeof(ccparams_lte_t)); + memset((void*)&SLconfig,0,sizeof(ccparams_sidelink_t)); + memset((void*)&eMTCconfig,0,sizeof(ccparams_eMTC_t)); - int maxNumPreambleAttemptCE_r13 = 0; - int numRepetitionPerPreambleAttempt_r13 = 0; - int mpdcch_NumRepetition_RA_r13 = 0; - int prach_HoppingConfig_r13 = 0; - //int *maxavailablenarrowband = NULL; - int pucch_info_value = 0; - - int paging_narrowbands_r13 = 0; - int mpdcch_numrepetition_paging_r13 = NULL; - int nb_v1310 = NULL; - - - char * pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL; - char * pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL; - char * pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL; - char * pucch_NumRepetitionCE_Msg4_Level3_r13 = NULL; - - int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; - char *sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; - int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; - char *sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; - int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; - - char *sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; - int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; - char *sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; - int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; - int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; - - - //int pusch_HoppingOffset_v1310 = 0; - - //int hyperSFN_r13 = 0; - //int eDRX_Allowed_r13 = 0; - int q_RxLevMinCE_r13 = 0; - //int q_QualMinRSRQ_CE_r13 = 0; - char *si_WindowLength_BR_r13 = NULL; - char *si_RepetitionPattern_r13 = NULL; - int startSymbolBR_r13 = 0; - char *si_HoppingConfigCommon_r13 = NULL; - char *si_ValidityTime_r13 = NULL; - char *mpdcch_pdsch_HoppingNB_r13 = NULL; - int interval_DLHoppingConfigCommonModeA_r13_val = 0; - int interval_DLHoppingConfigCommonModeB_r13_val = 0; - int mpdcch_pdsch_HoppingOffset_r13 = 0; - char *preambleTransMax_CE_r13 = NULL; - - int prach_HoppingOffset_r13 = 0; - int schedulingInfoSIB1_BR_r13 = 0; - int64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0; - - char* cellSelectionInfoCE_r13 = NULL; - char* bandwidthReducedAccessRelatedInfo_r13 = NULL; - char* fdd_DownlinkOrTddSubframeBitmapBR_r13 = NULL; - char* fdd_UplinkSubframeBitmapBR_r13 = NULL; - (void)fdd_UplinkSubframeBitmapBR_r13; - char* freqHoppingParametersDL_r13 = NULL; - char* interval_DLHoppingConfigCommonModeA_r13 = NULL; - char* interval_DLHoppingConfigCommonModeB_r13 = NULL; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13 = NULL; - char* mpdcch_startSF_CSS_RA_r13_val = NULL; - char *pdsch_maxNumRepetitionCEmodeA_r13 = NULL; - char *pdsch_maxNumRepetitionCEmodeB_r13 = NULL; - char *pusch_maxNumRepetitionCEmodeA_r13 = NULL; - char *pusch_maxNumRepetitionCEmodeB_r13 = NULL; - // for no gcc warnings - (void)my_int; - (void)pdsch_maxNumRepetitionCEmodeB_r13; - (void)pusch_maxNumRepetitionCEmodeB_r13; paramdef_t ENBSParams[] = ENBSPARAMS_DESC; paramdef_t ENBParams[] = ENBPARAMS_DESC; paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; - paramdef_t CCsParams[] = CCPARAMS_DESC; + paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; - paramdef_t brParams[] = BRPARAMS_DESC; - paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC; + paramdef_t brParams[] = EMTCPARAMS_DESC(eMTCconfig); + paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC(eMTCconfig); paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; - paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC; + paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC(eMTCconfig); paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; - paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC; + paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC(eMTCconfig); paramlist_def_t rsrprangelist = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0}; - paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC; + paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC(eMTCconfig); paramlist_def_t prachParamslist = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0}; - paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC; + paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC(eMTCconfig); paramlist_def_t n1PUCCHInfoList = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0}; - paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC; - paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC; - paramdef_t SRB1Params[] = SRB1PARAMS_DESC; + paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC(eMTCconfig); + paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC(eMTCconfig); + + srb1_params_t srb1_params; + memset((void*)&srb1_params,0,sizeof(srb1_params_t)); + paramdef_t SRB1Params[] = SRB1PARAMS_DESC(srb1_params); + + + paramdef_t SLParams[] = CCPARAMS_SIDELINK_DESC(SLconfig); + /* map parameter checking array instances to parameter definition array instances */ for (int I=0; I< ( sizeof(CCsParams)/ sizeof(paramdef_t) ) ; I++) { @@ -959,103 +489,49 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_get( CCsParams,sizeof(CCsParams)/sizeof(paramdef_t),ccspath); //printf("Component carrier %d\n",component_carrier); nb_cc++; - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, + RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = ccparams_lte.tdd_config; + AssertFatal (ccparams_lte.tdd_config <= TDD_Config__subframeAssignment_sa6, "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, + RC.config_file_name, i, ccparams_lte.tdd_config, TDD_Config__subframeAssignment_sa6); + RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = ccparams_lte.tdd_config_s; + AssertFatal (ccparams_lte.tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); + RC.config_file_name, i, ccparams_lte.tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - if (!prefix_type) + if (!ccparams_lte.prefix_type) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { + else if (strcmp(ccparams_lte.prefix_type, "NORMAL") == 0) { RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL; - } else if (strcmp(prefix_type, "EXTENDED") == 0) { + } else if (strcmp(ccparams_lte.prefix_type, "EXTENDED") == 0) { RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED; } else { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); + RC.config_file_name, i, ccparams_lte.prefix_type); } #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - if (!pbch_repetition) + if (!ccparams_lte.pbch_repetition) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: TRUE,FALSE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PBCH_REPETITION); - else if (strcmp(pbch_repetition, "TRUE") == 0) { + else if (strcmp(ccparams_lte.pbch_repetition, "TRUE") == 0) { RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 1; - } else if (strcmp(pbch_repetition, "FALSE") == 0) { + } else if (strcmp(ccparams_lte.pbch_repetition, "FALSE") == 0) { RRC_CONFIGURATION_REQ (msg_p).pbch_repetition[j] = 0; } else { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pbch_repetition choice: TRUE or FALSE !\n", - RC.config_file_name, i, pbch_repetition); + RC.config_file_name, i, ccparams_lte.pbch_repetition); } #endif - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; - RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= Nid_cell; - - if (Nid_cell>503) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", - RC.config_file_name, i, Nid_cell); - } - - RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= N_RB_DL; - - if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", - RC.config_file_name, i, N_RB_DL); - } - - if (strcmp(frame_type, "FDD") == 0) { - RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = FDD; - } else if (strcmp(frame_type, "TDD") == 0) { - RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = TDD; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, i, frame_type); - } - - RRC_CONFIGURATION_REQ (msg_p).tdd_config[j] = tdd_config; - AssertFatal (tdd_config <= TDD_Config__subframeAssignment_sa6, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config, TDD_Config__subframeAssignment_sa6); - RRC_CONFIGURATION_REQ (msg_p).tdd_config_s[j] = tdd_config_s; - AssertFatal (tdd_config_s <= TDD_Config__specialSubframePatterns_ssp8, - "Failed to parse eNB configuration file %s, enb %d illegal tdd_config_s %d (should be 0-%d)!", - RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8); - - if (!prefix_type) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: NORMAL,EXTENDED!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PREFIX_TYPE); - else if (strcmp(prefix_type, "NORMAL") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL; - } else if (strcmp(prefix_type, "EXTENDED") == 0) { - RRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n", - RC.config_file_name, i, prefix_type); - } - - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band; - // printf( "\teutra band:\t%d\n",RRC_CONFIGURATION_REQ (msg_p).eutra_band); - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) downlink_frequency; - //printf( "\tdownlink freq:\t%u\n",RRC_CONFIGURATION_REQ (msg_p).downlink_frequency); - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) uplink_frequency_offset; + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = ccparams_lte.eutra_band; + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) ccparams_lte.downlink_frequency; + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) ccparams_lte.uplink_frequency_offset; if (config_check_band_frequencies(j, RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], @@ -1065,293 +541,370 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { AssertFatal(0, "error calling enb_check_band_frequencies\n"); } - if ((nb_antenna_ports <1) || (nb_antenna_ports > 2)) + + + RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= ccparams_lte.Nid_cell; + + if (ccparams_lte.Nid_cell>503) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", + RC.config_file_name, i, ccparams_lte.Nid_cell); + } + + RRC_CONFIGURATION_REQ (msg_p).N_RB_DL[j]= ccparams_lte.N_RB_DL; + + if ((ccparams_lte.N_RB_DL!=6) && + (ccparams_lte.N_RB_DL!=15) && + (ccparams_lte.N_RB_DL!=25) && + (ccparams_lte.N_RB_DL!=50) && + (ccparams_lte.N_RB_DL!=75) && + (ccparams_lte.N_RB_DL!=100)) { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", + RC.config_file_name, i, ccparams_lte.N_RB_DL); + } + + if (strcmp(ccparams_lte.frame_type, "FDD") == 0) { + RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = FDD; + } else if (strcmp(ccparams_lte.frame_type, "TDD") == 0) { + RRC_CONFIGURATION_REQ (msg_p).frame_type[j] = TDD; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", + RC.config_file_name, i, ccparams_lte.frame_type); + } + + if ((ccparams_lte.nb_antenna_ports <1) || (ccparams_lte.nb_antenna_ports > 2)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n", - RC.config_file_name, i, nb_antenna_ports); + RC.config_file_name, i, ccparams_lte.nb_antenna_ports); - RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = nb_antenna_ports; + RRC_CONFIGURATION_REQ (msg_p).nb_antenna_ports[j] = ccparams_lte.nb_antenna_ports; // Radio Resource Configuration (SIB2) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = prach_root; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_root = ccparams_lte.prach_root; - if ((prach_root <0) || (prach_root > 1023)) + if ((ccparams_lte.prach_root <0) || (ccparams_lte.prach_root > 1023)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root); + RC.config_file_name, i, ccparams_lte.prach_root); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = prach_config_index; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_config_index = ccparams_lte.prach_config_index; - if ((prach_config_index <0) || (prach_config_index > 63)) + if ((ccparams_lte.prach_config_index <0) || (ccparams_lte.prach_config_index > 63)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); + RC.config_file_name, i, ccparams_lte.prach_config_index); - if (!prach_high_speed) + if (!ccparams_lte.prach_high_speed) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed, "ENABLE") == 0) { + else if (strcmp(ccparams_lte.prach_high_speed, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = TRUE; - } else if (strcmp(prach_high_speed, "DISABLE") == 0) { + } else if (strcmp(ccparams_lte.prach_high_speed, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_high_speed = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed); + RC.config_file_name, i, ccparams_lte.prach_high_speed); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation =prach_zero_correlation; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_zero_correlation = ccparams_lte.prach_zero_correlation; - if ((prach_zero_correlation <0) || (prach_zero_correlation > 15)) + if ((ccparams_lte.prach_zero_correlation <0) || + (ccparams_lte.prach_zero_correlation > 15)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation); + RC.config_file_name, i, ccparams_lte.prach_zero_correlation); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = prach_freq_offset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].prach_freq_offset = ccparams_lte.prach_freq_offset; - if ((prach_freq_offset <0) || (prach_freq_offset > 94)) + if ((ccparams_lte.prach_freq_offset <0) || + (ccparams_lte.prach_freq_offset > 94)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); + RC.config_file_name, i, ccparams_lte.prach_freq_offset); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = pucch_delta_shift-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_delta_shift = ccparams_lte.pucch_delta_shift-1; - if ((pucch_delta_shift <1) || (pucch_delta_shift > 3)) + if ((ccparams_lte.pucch_delta_shift <1) || + (ccparams_lte.pucch_delta_shift > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift); + RC.config_file_name, i, ccparams_lte.pucch_delta_shift); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = pucch_nRB_CQI; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nRB_CQI = ccparams_lte.pucch_nRB_CQI; - if ((pucch_nRB_CQI <0) || (pucch_nRB_CQI > 98)) + if ((ccparams_lte.pucch_nRB_CQI <0) || + (ccparams_lte.pucch_nRB_CQI > 98)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI); + RC.config_file_name, i, ccparams_lte.pucch_nRB_CQI); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = pucch_nCS_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_nCS_AN = ccparams_lte.pucch_nCS_AN; - if ((pucch_nCS_AN <0) || (pucch_nCS_AN > 7)) + if ((ccparams_lte.pucch_nCS_AN <0) || + (ccparams_lte.pucch_nCS_AN > 7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN); + RC.config_file_name, i, ccparams_lte.pucch_nCS_AN); //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = pucch_n1_AN; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_n1_AN = ccparams_lte.pucch_n1_AN; - if ((pucch_n1_AN <0) || (pucch_n1_AN > 2047)) + if ((ccparams_lte.pucch_n1_AN <0) || + (ccparams_lte.pucch_n1_AN > 2047)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN); + RC.config_file_name, i, ccparams_lte.pucch_n1_AN); //#endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_referenceSignalPower = ccparams_lte.pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower <-60) || (pdsch_referenceSignalPower > 50)) + if ((ccparams_lte.pdsch_referenceSignalPower <-60) || + (ccparams_lte.pdsch_referenceSignalPower > 50)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + RC.config_file_name, i, ccparams_lte.pdsch_referenceSignalPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = pdsch_p_b; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pdsch_p_b = ccparams_lte.pdsch_p_b; - if ((pdsch_p_b <0) || (pdsch_p_b > 3)) + if ((ccparams_lte.pdsch_p_b <0) || + (ccparams_lte.pdsch_p_b > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b); + RC.config_file_name, i, ccparams_lte.pdsch_p_b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = pusch_n_SB; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_n_SB = ccparams_lte.pusch_n_SB; - if ((pusch_n_SB <1) || (pusch_n_SB > 4)) + if ((ccparams_lte.pusch_n_SB <1) || + (ccparams_lte.pusch_n_SB > 4)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB); + RC.config_file_name, i, ccparams_lte.pusch_n_SB); - if (!pusch_hoppingMode) + if (!ccparams_lte.pusch_hoppingMode) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode,"interSubFrame")==0) { + else if (strcmp(ccparams_lte.pusch_hoppingMode,"interSubFrame")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } else if (strcmp(pusch_hoppingMode,"intraAndInterSubFrame")==0) { + } + else if (strcmp(ccparams_lte.pusch_hoppingMode,"intraAndInterSubFrame")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode); + RC.config_file_name, i, ccparams_lte.pusch_hoppingMode); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = pusch_hoppingOffset; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_hoppingOffset = ccparams_lte.pusch_hoppingOffset; - if ((pusch_hoppingOffset<0) || (pusch_hoppingOffset>98)) + if ((ccparams_lte.pusch_hoppingOffset<0) || + (ccparams_lte.pusch_hoppingOffset>98)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode); + RC.config_file_name, i, ccparams_lte.pusch_hoppingMode); - if (!pusch_enable64QAM) + if (!ccparams_lte.pusch_enable64QAM) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM, "ENABLE") == 0) { + else if (strcmp(ccparams_lte.pusch_enable64QAM, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = TRUE; - } else if (strcmp(pusch_enable64QAM, "DISABLE") == 0) { + } + else if (strcmp(ccparams_lte.pusch_enable64QAM, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_enable64QAM = FALSE; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM); + RC.config_file_name, i, ccparams_lte.pusch_enable64QAM); - if (!pusch_groupHoppingEnabled) + if (!ccparams_lte.pusch_groupHoppingEnabled) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled, "ENABLE") == 0) { + else if (strcmp(ccparams_lte.pusch_groupHoppingEnabled, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled = TRUE; - } else if (strcmp(pusch_groupHoppingEnabled, "DISABLE") == 0) { + } + else if (strcmp(ccparams_lte.pusch_groupHoppingEnabled, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupHoppingEnabled= FALSE; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled); + RC.config_file_name, i, ccparams_lte.pusch_groupHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = pusch_groupAssignment; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_groupAssignment = ccparams_lte.pusch_groupAssignment; - if ((pusch_groupAssignment<0)||(pusch_groupAssignment>29)) + if ((ccparams_lte.pusch_groupAssignment<0)|| + (ccparams_lte.pusch_groupAssignment>29)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment); + RC.config_file_name, i, ccparams_lte.pusch_groupAssignment); - if (!pusch_sequenceHoppingEnabled) + if (!ccparams_lte.pusch_sequenceHoppingEnabled) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + else if (strcmp(ccparams_lte.pusch_sequenceHoppingEnabled, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = TRUE; - } else if (strcmp(pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + } + else if (strcmp(ccparams_lte.pusch_sequenceHoppingEnabled, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_sequenceHoppingEnabled = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled); + RC.config_file_name, i, ccparams_lte.pusch_sequenceHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1= pusch_nDMRS1; //cyclic_shift in RRC! + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_nDMRS1= ccparams_lte.pusch_nDMRS1; //cyclic_shift in RRC! - if ((pusch_nDMRS1 <0) || (pusch_nDMRS1>7)) + if ((ccparams_lte.pusch_nDMRS1 <0) || + (ccparams_lte.pusch_nDMRS1>7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1); + RC.config_file_name, i, ccparams_lte.pusch_nDMRS1); - if (strcmp(phich_duration,"NORMAL")==0) { + if (strcmp(ccparams_lte.phich_duration,"NORMAL")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= PHICH_Config__phich_Duration_normal; - } else if (strcmp(phich_duration,"EXTENDED")==0) { + } else if (strcmp(ccparams_lte.phich_duration,"EXTENDED")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration= PHICH_Config__phich_Duration_extended; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration); + RC.config_file_name, i, ccparams_lte.phich_duration); - if (strcmp(phich_resource,"ONESIXTH")==0) { + if (strcmp(ccparams_lte.phich_resource,"ONESIXTH")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ; - } else if (strcmp(phich_resource,"HALF")==0) { + } + else if (strcmp(ccparams_lte.phich_resource,"HALF")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_half; - } else if (strcmp(phich_resource,"ONE")==0) { + } + else if (strcmp(ccparams_lte.phich_resource,"ONE")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_one; - } else if (strcmp(phich_resource,"TWO")==0) { + } + else if (strcmp(ccparams_lte.phich_resource,"TWO")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource= PHICH_Config__phich_Resource_two; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource); + RC.config_file_name, i, ccparams_lte.phich_resource); printf("phich.resource %ld (%s), phich.duration %ld (%s)\n", - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource,phich_resource, - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration,phich_duration); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_resource,ccparams_lte.phich_resource, + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].phich_duration,ccparams_lte.phich_duration); - if (strcmp(srs_enable, "ENABLE") == 0) { + if (strcmp(ccparams_lte.srs_enable, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= TRUE; - } else if (strcmp(srs_enable, "DISABLE") == 0) { + } + else if (strcmp(ccparams_lte.srs_enable, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable= FALSE; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable); + RC.config_file_name, i, ccparams_lte.srs_enable); if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_enable== TRUE) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig= srs_BandwidthConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_BandwidthConfig= ccparams_lte.srs_BandwidthConfig; - if ((srs_BandwidthConfig < 0) || (srs_BandwidthConfig >7)) + if ((ccparams_lte.srs_BandwidthConfig < 0) || + (ccparams_lte.srs_BandwidthConfig >7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig); + RC.config_file_name, i, ccparams_lte.srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig= srs_SubframeConfig; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_SubframeConfig= ccparams_lte.srs_SubframeConfig; - if ((srs_SubframeConfig<0) || (srs_SubframeConfig>15)) + if ((ccparams_lte.srs_SubframeConfig<0) || + (ccparams_lte.srs_SubframeConfig>15)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig); + RC.config_file_name, i, ccparams_lte.srs_SubframeConfig); - if (strcmp(srs_ackNackST, "ENABLE") == 0) { + if (strcmp(ccparams_lte.srs_ackNackST, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= TRUE; - } else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + } + else if (strcmp(ccparams_lte.srs_ackNackST, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_ackNackST= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST); + RC.config_file_name, i, ccparams_lte.srs_ackNackST); - if (strcmp(srs_MaxUpPts, "ENABLE") == 0) { + if (strcmp(ccparams_lte.srs_MaxUpPts, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= TRUE; - } else if (strcmp(srs_MaxUpPts, "DISABLE") == 0) { + } + else if (strcmp(ccparams_lte.srs_MaxUpPts, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].srs_MaxUpPts= FALSE; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts); + RC.config_file_name, i, ccparams_lte.srs_MaxUpPts); } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_p0_Nominal= pusch_p0_Nominal; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_p0_Nominal= ccparams_lte.pusch_p0_Nominal; - if ((pusch_p0_Nominal<-126) || (pusch_p0_Nominal>24)) + if ((ccparams_lte.pusch_p0_Nominal<-126) || + (ccparams_lte.pusch_p0_Nominal>24)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + RC.config_file_name, i, ccparams_lte.pusch_p0_Nominal); #if (RRC_VERSION <= MAKE_VERSION(12, 0, 0)) - if (strcmp(pusch_alpha,"AL0")==0) { + if (strcmp(ccparams_lte.pusch_alpha,"AL0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0; - } else if (strcmp(pusch_alpha,"AL04")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL04")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04; - } else if (strcmp(pusch_alpha,"AL05")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL05")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05; - } else if (strcmp(pusch_alpha,"AL06")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL06")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06; - } else if (strcmp(pusch_alpha,"AL07")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL07")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07; - } else if (strcmp(pusch_alpha,"AL08")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL08")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08; - } else if (strcmp(pusch_alpha,"AL09")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL09")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09; - } else if (strcmp(pusch_alpha,"AL1")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1; } #endif #if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) - if (strcmp(pusch_alpha,"AL0")==0) { + if (strcmp(ccparams_lte.pusch_alpha,"AL0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al0; - } else if (strcmp(pusch_alpha,"AL04")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL04")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al04; - } else if (strcmp(pusch_alpha,"AL05")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL05")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al05; - } else if (strcmp(pusch_alpha,"AL06")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL06")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al06; - } else if (strcmp(pusch_alpha,"AL07")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL07")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al07; - } else if (strcmp(pusch_alpha,"AL08")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL08")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al08; - } else if (strcmp(pusch_alpha,"AL09")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL09")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al09; - } else if (strcmp(pusch_alpha,"AL1")==0) { + } + else if (strcmp(ccparams_lte.pusch_alpha,"AL1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pusch_alpha= Alpha_r12_al1; } @@ -1359,96 +912,117 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + RC.config_file_name, i, ccparams_lte.pusch_alpha); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_p0_Nominal= pucch_p0_Nominal; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_p0_Nominal= ccparams_lte.pucch_p0_Nominal; - if ((pucch_p0_Nominal<-127) || (pucch_p0_Nominal>-96)) + if ((ccparams_lte.pucch_p0_Nominal<-127) || + (ccparams_lte.pucch_p0_Nominal>-96)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal); + RC.config_file_name, i, ccparams_lte.pucch_p0_Nominal); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].msg3_delta_Preamble= msg3_delta_Preamble; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].msg3_delta_Preamble= ccparams_lte.msg3_delta_Preamble; - if ((msg3_delta_Preamble<-1) || (msg3_delta_Preamble>6)) + if ((ccparams_lte.msg3_delta_Preamble<-1) || + (ccparams_lte.msg3_delta_Preamble>6)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble); + RC.config_file_name, i, ccparams_lte.msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1,"deltaF_2")==0) { + if (strcmp(ccparams_lte.pucch_deltaF_Format1,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } else if (strcmp(pucch_deltaF_Format1,"deltaF0")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format1,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } else if (strcmp(pucch_deltaF_Format1,"deltaF2")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format1,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1); + RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b,"deltaF1")==0) { + if (strcmp(ccparams_lte.pucch_deltaF_Format1b,"deltaF1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } else if (strcmp(pucch_deltaF_Format1b,"deltaF3")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format1b,"deltaF3")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } else if (strcmp(pucch_deltaF_Format1b,"deltaF5")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format1b,"deltaF5")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b); + RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2,"deltaF_2")==0) { + if (strcmp(ccparams_lte.pucch_deltaF_Format2,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2,"deltaF0")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } else if (strcmp(pucch_deltaF_Format2,"deltaF1")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2,"deltaF1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } else if (strcmp(pucch_deltaF_Format2,"deltaF2")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2); + RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a,"deltaF_2")==0) { + if (strcmp(ccparams_lte.pucch_deltaF_Format2a,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2a,"deltaF0")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2a,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } else if (strcmp(pucch_deltaF_Format2a,"deltaF2")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2a,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a); + RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b,"deltaF_2")==0) { + if (strcmp(ccparams_lte.pucch_deltaF_Format2b,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2b,"deltaF0")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2b,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } else if (strcmp(pucch_deltaF_Format2b,"deltaF2")==0) { + } + else if (strcmp(ccparams_lte.pucch_deltaF_Format2b,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b); + RC.config_file_name, i, ccparams_lte.pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_numberOfRA_Preambles= (ccparams_lte.rach_numberOfRA_Preambles/4)-1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>64) || ((rach_numberOfRA_Preambles&3)!=0)) + if ((ccparams_lte.rach_numberOfRA_Preambles <4) || + (ccparams_lte.rach_numberOfRA_Preambles>64) || + ((ccparams_lte.rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles); + RC.config_file_name, i, ccparams_lte.rach_numberOfRA_Preambles); - if (strcmp(rach_preamblesGroupAConfig, "ENABLE") == 0) { + if (strcmp(ccparams_lte.rach_preamblesGroupAConfig, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= TRUE; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_sizeOfRA_PreamblesGroupA= (ccparams_lte.rach_sizeOfRA_PreamblesGroupA/4)-1; - if ((rach_numberOfRA_Preambles <4) || (rach_numberOfRA_Preambles>60) || ((rach_numberOfRA_Preambles&3)!=0)) + if ((ccparams_lte.rach_numberOfRA_Preambles <4) || + (ccparams_lte.rach_numberOfRA_Preambles>60) || + ((ccparams_lte.rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA); + RC.config_file_name, i, ccparams_lte.rach_sizeOfRA_PreamblesGroupA); - switch (rach_messageSizeGroupA) { + switch (ccparams_lte.rach_messageSizeGroupA) { case 56: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; break; @@ -1468,52 +1042,64 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA); + RC.config_file_name, i, ccparams_lte.rach_messageSizeGroupA); break; } - if (strcmp(rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"minusinfinity")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB0")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB5")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB5")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB8")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB8")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB10")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB10")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB12")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB12")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB15")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB15")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } else if (strcmp(rach_messagePowerOffsetGroupB,"dB18")==0) { + } + else if (strcmp(ccparams_lte.rach_messagePowerOffsetGroupB,"dB18")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } else + } + else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB); - } else if (strcmp(rach_preamblesGroupAConfig, "DISABLE") == 0) { + RC.config_file_name, i, ccparams_lte.rach_messagePowerOffsetGroupB); + } else if (strcmp(ccparams_lte.rach_preamblesGroupAConfig, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preamblesGroupAConfig= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig); + RC.config_file_name, i, ccparams_lte.rach_preamblesGroupAConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower+120)/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_preambleInitialReceivedTargetPower= (ccparams_lte.rach_preambleInitialReceivedTargetPower+120)/2; - if ((rach_preambleInitialReceivedTargetPower<-120) || (rach_preambleInitialReceivedTargetPower>-90) || ((rach_preambleInitialReceivedTargetPower&1)!=0)) + if ((ccparams_lte.rach_preambleInitialReceivedTargetPower<-120) || + (ccparams_lte.rach_preambleInitialReceivedTargetPower>-90) || + ((ccparams_lte.rach_preambleInitialReceivedTargetPower&1)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower); + RC.config_file_name, i, ccparams_lte.rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= rach_powerRampingStep/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_powerRampingStep= ccparams_lte.rach_powerRampingStep/2; - if ((rach_powerRampingStep<0) || (rach_powerRampingStep>6) || ((rach_powerRampingStep&1)!=0)) + if ((ccparams_lte.rach_powerRampingStep<0) || + (ccparams_lte.rach_powerRampingStep>6) || + ((ccparams_lte.rach_powerRampingStep&1)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep); + RC.config_file_name, i, ccparams_lte.rach_powerRampingStep); - switch (rach_preambleTransMax) { + switch (ccparams_lte.rach_preambleTransMax) { #if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) case 3: @@ -1609,32 +1195,37 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax); + RC.config_file_name, i, ccparams_lte.rach_preambleTransMax); break; } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (rach_raResponseWindowSize==10)?7:rach_raResponseWindowSize-2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_raResponseWindowSize= (ccparams_lte.rach_raResponseWindowSize==10)?7:ccparams_lte.rach_raResponseWindowSize-2; - if ((rach_raResponseWindowSize<0)||(rach_raResponseWindowSize==9)||(rach_raResponseWindowSize>10)) + if ((ccparams_lte.rach_raResponseWindowSize<0)|| + (ccparams_lte.rach_raResponseWindowSize==9)|| + (ccparams_lte.rach_raResponseWindowSize>10)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_preambleTransMax); + RC.config_file_name, i, ccparams_lte.rach_preambleTransMax); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer/8)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_macContentionResolutionTimer= (ccparams_lte.rach_macContentionResolutionTimer/8)-1; - if ((rach_macContentionResolutionTimer<8) || (rach_macContentionResolutionTimer>64) || ((rach_macContentionResolutionTimer&7)!=0)) + if ((ccparams_lte.rach_macContentionResolutionTimer<8) || + (ccparams_lte.rach_macContentionResolutionTimer>64) || + ((ccparams_lte.rach_macContentionResolutionTimer&7)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_preambleTransMax); + RC.config_file_name, i, ccparams_lte.rach_preambleTransMax); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].rach_maxHARQ_Msg3Tx= ccparams_lte.rach_maxHARQ_Msg3Tx; - if ((rach_maxHARQ_Msg3Tx<0) || (rach_maxHARQ_Msg3Tx>8)) + if ((ccparams_lte.rach_maxHARQ_Msg3Tx<0) || + (ccparams_lte.rach_maxHARQ_Msg3Tx>8)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_preambleTransMax); + RC.config_file_name, i, ccparams_lte.rach_preambleTransMax); - switch (pcch_defaultPagingCycle) { + switch (ccparams_lte.pcch_defaultPagingCycle) { case 32: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; break; @@ -1654,32 +1245,40 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle); + RC.config_file_name, i, ccparams_lte.pcch_defaultPagingCycle); break; } - if (strcmp(pcch_nB, "fourT") == 0) { + if (strcmp(ccparams_lte.pcch_nB, "fourT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_fourT; - } else if (strcmp(pcch_nB, "twoT") == 0) { + } + else if (strcmp(ccparams_lte.pcch_nB, "twoT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_twoT; - } else if (strcmp(pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneT; - } else if (strcmp(pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_halfT; - } else if (strcmp(pcch_nB, "quarterT") == 0) { + } + else if (strcmp(ccparams_lte.pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneT; + } + else if (strcmp(ccparams_lte.pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_halfT; + } + else if (strcmp(ccparams_lte.pcch_nB, "quarterT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_quarterT; - } else if (strcmp(pcch_nB, "oneEighthT") == 0) { + } + else if (strcmp(ccparams_lte.pcch_nB, "oneEighthT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneEighthT; - } else if (strcmp(pcch_nB, "oneSixteenthT") == 0) { + } + else if (strcmp(ccparams_lte.pcch_nB, "oneSixteenthT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; - } else if (strcmp(pcch_nB, "oneThirtySecondT") == 0) { + } + else if (strcmp(ccparams_lte.pcch_nB, "oneThirtySecondT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; - } else + } + else AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_defaultPagingCycle); + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + RC.config_file_name, i, ccparams_lte.pcch_nB); - switch (bcch_modificationPeriodCoeff) { + switch (ccparams_lte.bcch_modificationPeriodCoeff) { case 2: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2; break; @@ -1699,18 +1298,18 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); + RC.config_file_name, i, ccparams_lte.bcch_modificationPeriodCoeff); break; } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= ue_TimersAndConstants_t300; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= ue_TimersAndConstants_t301; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= ue_TimersAndConstants_t310; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= ue_TimersAndConstants_t311; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= ue_TimersAndConstants_n310; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= ue_TimersAndConstants_n311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t300= ccparams_lte.ue_TimersAndConstants_t300; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t301= ccparams_lte.ue_TimersAndConstants_t301; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t310= ccparams_lte.ue_TimersAndConstants_t310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_t311= ccparams_lte.ue_TimersAndConstants_t311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n310= ccparams_lte.ue_TimersAndConstants_n310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TimersAndConstants_n311= ccparams_lte.ue_TimersAndConstants_n311; - switch (ue_TransmissionMode) { + switch (ccparams_lte.ue_TransmissionMode) { case 1: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; break; @@ -1742,57 +1341,60 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); + RC.config_file_name, i, ccparams_lte.ue_TransmissionMode); break; } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_multiple_max= ue_multiple_max; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].ue_multiple_max= ccparams_lte.ue_multiple_max; - switch (N_RB_DL) { + switch (ccparams_lte.N_RB_DL) { case 25: - if ((ue_multiple_max < 1) || (ue_multiple_max > 4)) + if ((ccparams_lte.ue_multiple_max < 1) || + (ccparams_lte.ue_multiple_max > 4)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..4!\n", - RC.config_file_name, i, ue_multiple_max); + RC.config_file_name, i, ccparams_lte.ue_multiple_max); break; case 50: - if ((ue_multiple_max < 1) || (ue_multiple_max > 8)) + if ((ccparams_lte.ue_multiple_max < 1) || + (ccparams_lte.ue_multiple_max > 8)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..8!\n", - RC.config_file_name, i, ue_multiple_max); + RC.config_file_name, i, ccparams_lte.ue_multiple_max); break; case 100: - if ((ue_multiple_max < 1) || (ue_multiple_max > 16)) + if ((ccparams_lte.ue_multiple_max < 1) || + (ccparams_lte.ue_multiple_max > 16)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_multiple_max choice: 1..16!\n", - RC.config_file_name, i, ue_multiple_max); + RC.config_file_name, i, ccparams_lte.ue_multiple_max); break; default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 25,50,100 !\n", - RC.config_file_name, i, N_RB_DL); + RC.config_file_name, i, ccparams_lte.N_RB_DL); break; } char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; - sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_COMPONENT_BR_PARAMETERS); + sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_EMTC_PARAMETERS); config_get( brParams, sizeof(brParams)/sizeof(paramdef_t), brparamspath); - RRC_CONFIGURATION_REQ(msg_p).eMTC_configured = eMTC_configured&1; + RRC_CONFIGURATION_REQ(msg_p).eMTC_configured = eMTCconfig.eMTC_configured&1; - if (eMTC_configured > 0) { + if (eMTCconfig.eMTC_configured > 0) { printf("Found parameters for eMTC\n"); - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = schedulingInfoSIB1_BR_r13; + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = eMTCconfig.schedulingInfoSIB1_BR_r13; - if (!strcmp(cellSelectionInfoCE_r13, "ENABLE")) { + if (!strcmp(eMTCconfig.cellSelectionInfoCE_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= q_RxLevMinCE_r13; + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= eMTCconfig.q_RxLevMinCE_r13; // RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); // *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; } else { @@ -1801,37 +1403,37 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { - if (!strcmp(bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { + if (!strcmp(eMTCconfig.bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - if (!strcmp(si_WindowLength_BR_r13, "ms20")) { + if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms20")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; - } else if (!strcmp(si_WindowLength_BR_r13, "ms40")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms40")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; - } else if (!strcmp(si_WindowLength_BR_r13, "ms60")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms60")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; - } else if (!strcmp(si_WindowLength_BR_r13, "ms80")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms80")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; - } else if (!strcmp(si_WindowLength_BR_r13, "ms120")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms120")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; - } else if (!strcmp(si_WindowLength_BR_r13, "ms160")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms160")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; - } else if (!strcmp(si_WindowLength_BR_r13, "ms200")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms200")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; - } else if (!strcmp(si_WindowLength_BR_r13, "spare")) { + } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "spare")) { RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; } - if (!strcmp(si_RepetitionPattern_r13, "everyRF")) { + if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "everyRF")) { RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; - } else if (!strcmp(si_RepetitionPattern_r13, "every2ndRF")) { + } else if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "every2ndRF")) { RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; - } else if (!strcmp(si_RepetitionPattern_r13, "every4thRF")) { + } else if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "every4thRF")) { RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; - } else if (!strcmp(si_RepetitionPattern_r13, "every8thRF")) { + } else if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "every8thRF")) { RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; } @@ -1844,10 +1446,10 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt; int siInfoindex; for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) { - sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST, siInfoindex); + sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_EMTC_PARAMETERS, siInfoindex); config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath); - RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = si_Narrowband_r13; - RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = si_TBS_r13; + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = eMTCconfig.si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = eMTCconfig.si_TBS_r13; } @@ -1856,26 +1458,26 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); - if (!strcmp(fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { + if (!strcmp(eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } else { *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_val_r13; } - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = startSymbolBR_r13; + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = eMTCconfig.startSymbolBR_r13; - if (!strcmp(si_HoppingConfigCommon_r13, "off")) { + if (!strcmp(eMTCconfig.si_HoppingConfigCommon_r13, "off")) { RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; - } else if (!strcmp(si_HoppingConfigCommon_r13, "on")) { + } else if (!strcmp(eMTCconfig.si_HoppingConfigCommon_r13, "on")) { RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; } RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(si_ValidityTime_r13, "true")) { + if (!strcmp(eMTCconfig.si_ValidityTime_r13, "true")) { *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; } else { AssertFatal(0, @@ -1884,26 +1486,26 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { } - if (!strcmp(freqHoppingParametersDL_r13, "ENABLE")) + if (!strcmp(eMTCconfig.freqHoppingParametersDL_r13, "ENABLE")) { RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - if (!strcmp(interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + if (!strcmp(eMTCconfig.interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; else RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = interval_DLHoppingConfigCommonModeA_r13_val; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = eMTCconfig.interval_DLHoppingConfigCommonModeA_r13_val; - if (!strcmp(interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + if (!strcmp(eMTCconfig.interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; else RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = interval_DLHoppingConfigCommonModeB_r13_val; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = eMTCconfig.interval_DLHoppingConfigCommonModeB_r13_val; RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb2")) { + if (!strcmp(eMTCconfig.mpdcch_pdsch_HoppingNB_r13, "nb2")) { *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; - } else if (!strcmp(mpdcch_pdsch_HoppingNB_r13, "nb4")) { + } else if (!strcmp(eMTCconfig.mpdcch_pdsch_HoppingNB_r13, "nb4")) { *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; } else { AssertFatal(0, @@ -1913,7 +1515,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = mpdcch_pdsch_HoppingOffset_r13; + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = eMTCconfig.mpdcch_pdsch_HoppingOffset_r13; } else @@ -1924,284 +1526,284 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { /** ------------------------------SIB2/3 BR------------------------------------------ */ - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = eMTCconfig.ccparams.prach_root; - if ((prach_root_emtc <0) || (prach_root_emtc > 1023)) + if ((eMTCconfig.ccparams.prach_root <0) || (eMTCconfig.ccparams.prach_root > 1023)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, prach_root_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.prach_root); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = prach_config_index_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = eMTCconfig.ccparams.prach_config_index; - if ((prach_config_index_emtc <0) || (prach_config_index_emtc > 63)) + if ((eMTCconfig.ccparams.prach_config_index <0) || (eMTCconfig.ccparams.prach_config_index > 63)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, prach_config_index); + RC.config_file_name, i, eMTCconfig.ccparams.prach_config_index); - if (!prach_high_speed_emtc) + if (!eMTCconfig.ccparams.prach_high_speed) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(prach_high_speed_emtc, "ENABLE") == 0) { + else if (strcmp(eMTCconfig.ccparams.prach_high_speed, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; - } else if (strcmp(prach_high_speed_emtc, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.prach_high_speed, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, prach_high_speed_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.prach_high_speed); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation =prach_zero_correlation_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation = eMTCconfig.ccparams.prach_zero_correlation; - if ((prach_zero_correlation_emtc <0) || (prach_zero_correlation_emtc > 15)) + if ((eMTCconfig.ccparams.prach_zero_correlation <0) || (eMTCconfig.ccparams.prach_zero_correlation > 15)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, prach_zero_correlation_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.prach_zero_correlation); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = prach_freq_offset_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = eMTCconfig.ccparams.prach_freq_offset; - if ((prach_freq_offset_emtc <0) || (prach_freq_offset_emtc > 94)) + if ((eMTCconfig.ccparams.prach_freq_offset <0) || (eMTCconfig.ccparams.prach_freq_offset > 94)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, prach_freq_offset); + RC.config_file_name, i, eMTCconfig.ccparams.prach_freq_offset); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = pucch_delta_shift_emtc-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = eMTCconfig.ccparams.pucch_delta_shift-1; - if ((pucch_delta_shift_emtc <1) || (pucch_delta_shift_emtc > 3)) + if ((eMTCconfig.ccparams.pucch_delta_shift <1) || (eMTCconfig.ccparams.pucch_delta_shift > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, pucch_delta_shift_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_delta_shift); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = pucch_nRB_CQI_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = eMTCconfig.ccparams.pucch_nRB_CQI; - if ((pucch_nRB_CQI_emtc <0) || (pucch_nRB_CQI_emtc > 98)) + if ((eMTCconfig.ccparams.pucch_nRB_CQI <0) || (eMTCconfig.ccparams.pucch_nRB_CQI > 98)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, pucch_nRB_CQI_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_nRB_CQI); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = pucch_nCS_AN_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = eMTCconfig.ccparams.pucch_nCS_AN; - if ((pucch_nCS_AN_emtc <0) || (pucch_nCS_AN_emtc > 7)) + if ((eMTCconfig.ccparams.pucch_nCS_AN <0) || (eMTCconfig.ccparams.pucch_nCS_AN > 7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, pucch_nCS_AN_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_nCS_AN); //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = pucch_n1_AN_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = eMTCconfig.ccparams.pucch_n1_AN; - if ((pucch_n1_AN_emtc <0) || (pucch_n1_AN_emtc > 2047)) + if ((eMTCconfig.ccparams.pucch_n1_AN <0) || (eMTCconfig.ccparams.pucch_n1_AN > 2047)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, pucch_n1_AN_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_n1_AN); //#endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = pdsch_referenceSignalPower_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = eMTCconfig.ccparams.pdsch_referenceSignalPower; - if ((pdsch_referenceSignalPower_emtc <-60) || (pdsch_referenceSignalPower_emtc > 50)) + if ((eMTCconfig.ccparams.pdsch_referenceSignalPower <-60) || (eMTCconfig.ccparams.pdsch_referenceSignalPower > 50)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, pdsch_referenceSignalPower); + RC.config_file_name, i, eMTCconfig.ccparams.pdsch_referenceSignalPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = pdsch_p_b_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = eMTCconfig.ccparams.pdsch_p_b; - if ((pdsch_p_b_emtc <0) || (pdsch_p_b_emtc > 3)) + if ((eMTCconfig.ccparams.pdsch_p_b <0) || (eMTCconfig.ccparams.pdsch_p_b > 3)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, pdsch_p_b_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pdsch_p_b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = pusch_n_SB_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = eMTCconfig.ccparams.pusch_n_SB; - if ((pusch_n_SB_emtc <1) || (pusch_n_SB_emtc > 4)) + if ((eMTCconfig.ccparams.pusch_n_SB <1) || (eMTCconfig.ccparams.pusch_n_SB > 4)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, pusch_n_SB_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_n_SB); - if (!pusch_hoppingMode_emtc) + if (!eMTCconfig.ccparams.pusch_hoppingMode) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(pusch_hoppingMode_emtc,"interSubFrame")==0) { + else if (strcmp(eMTCconfig.ccparams.pusch_hoppingMode,"interSubFrame")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } else if (strcmp(pusch_hoppingMode_emtc,"intraAndInterSubFrame")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_hoppingMode,"intraAndInterSubFrame")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, pusch_hoppingMode_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_hoppingMode); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = pusch_hoppingOffset_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = eMTCconfig.ccparams.pusch_hoppingOffset; - if ((pusch_hoppingOffset_emtc<0) || (pusch_hoppingOffset_emtc>98)) + if ((eMTCconfig.ccparams.pusch_hoppingOffset<0) || (eMTCconfig.ccparams.pusch_hoppingOffset>98)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, pusch_hoppingMode_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_hoppingMode); - if (!pusch_enable64QAM_emtc) + if (!eMTCconfig.ccparams.pusch_enable64QAM) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(pusch_enable64QAM_emtc, "ENABLE") == 0) { + else if (strcmp(eMTCconfig.ccparams.pusch_enable64QAM, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; - } else if (strcmp(pusch_enable64QAM_emtc, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_enable64QAM, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_enable64QAM_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_enable64QAM); - if (!pusch_groupHoppingEnabled_emtc) + if (!eMTCconfig.ccparams.pusch_groupHoppingEnabled) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(pusch_groupHoppingEnabled_emtc, "ENABLE") == 0) { + else if (strcmp(eMTCconfig.ccparams.pusch_groupHoppingEnabled, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; - } else if (strcmp(pusch_groupHoppingEnabled_emtc, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_groupHoppingEnabled, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_groupHoppingEnabled_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_groupHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = pusch_groupAssignment_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = eMTCconfig.ccparams.pusch_groupAssignment; - if ((pusch_groupAssignment_emtc<0)||(pusch_groupAssignment_emtc>29)) + if ((eMTCconfig.ccparams.pusch_groupAssignment<0)||(eMTCconfig.ccparams.pusch_groupAssignment>29)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, pusch_groupAssignment_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_groupAssignment); - if (!pusch_sequenceHoppingEnabled_emtc) + if (!eMTCconfig.ccparams.pusch_sequenceHoppingEnabled) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(pusch_sequenceHoppingEnabled_emtc, "ENABLE") == 0) { + else if (strcmp(eMTCconfig.ccparams.pusch_sequenceHoppingEnabled, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; - } else if (strcmp(pusch_sequenceHoppingEnabled_emtc, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_sequenceHoppingEnabled, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, pusch_sequenceHoppingEnabled_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_sequenceHoppingEnabled); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1= pusch_nDMRS1_emtc; //cyclic_shift in RRC! + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1= eMTCconfig.ccparams.pusch_nDMRS1; //cyclic_shift in RRC! - if ((pusch_nDMRS1_emtc <0) || (pusch_nDMRS1_emtc>7)) + if ((eMTCconfig.ccparams.pusch_nDMRS1 <0) || (eMTCconfig.ccparams.pusch_nDMRS1>7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, pusch_nDMRS1_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_nDMRS1); - if (strcmp(phich_duration_emtc,"NORMAL")==0) { + if (strcmp(eMTCconfig.ccparams.phich_duration,"NORMAL")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_normal; - } else if (strcmp(phich_duration_emtc,"EXTENDED")==0) { + } else if (strcmp(eMTCconfig.ccparams.phich_duration,"EXTENDED")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_extended; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, phich_duration_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.phich_duration); - if (strcmp(phich_resource_emtc,"ONESIXTH")==0) { + if (strcmp(eMTCconfig.ccparams.phich_resource,"ONESIXTH")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ; - } else if (strcmp(phich_resource_emtc,"HALF")==0) { + } else if (strcmp(eMTCconfig.ccparams.phich_resource,"HALF")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_half; - } else if (strcmp(phich_resource_emtc,"ONE")==0) { + } else if (strcmp(eMTCconfig.ccparams.phich_resource,"ONE")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_one; - } else if (strcmp(phich_resource_emtc,"TWO")==0) { + } else if (strcmp(eMTCconfig.ccparams.phich_resource,"TWO")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_two; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, phich_resource_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.phich_resource); printf("phich.resource eMTC %ld (%s), phich.duration eMTC %ld (%s)\n", - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource,phich_resource_emtc, - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration,phich_duration_emtc); + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource,eMTCconfig.ccparams.phich_resource, + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration,eMTCconfig.ccparams.phich_duration); - if (strcmp(srs_enable_emtc, "ENABLE") == 0) { + if (strcmp(eMTCconfig.ccparams.srs_enable, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= TRUE; - } else if (strcmp(srs_enable_emtc, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.srs_enable, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_enable_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.srs_enable); if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable== TRUE) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig= srs_BandwidthConfig_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig= eMTCconfig.ccparams.srs_BandwidthConfig; - if ((srs_BandwidthConfig_emtc < 0) || (srs_BandwidthConfig_emtc >7)) + if ((eMTCconfig.ccparams.srs_BandwidthConfig < 0) || (eMTCconfig.ccparams.srs_BandwidthConfig >7)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, srs_BandwidthConfig_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.srs_BandwidthConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig= srs_SubframeConfig_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig= eMTCconfig.ccparams.srs_SubframeConfig; - if ((srs_SubframeConfig_emtc<0) || (srs_SubframeConfig_emtc>15)) + if ((eMTCconfig.ccparams.srs_SubframeConfig<0) || (eMTCconfig.ccparams.srs_SubframeConfig>15)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, srs_SubframeConfig_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.srs_SubframeConfig); - if (strcmp(srs_ackNackST_emtc, "ENABLE") == 0) { + if (strcmp(eMTCconfig.ccparams.srs_ackNackST, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= TRUE; - } else if (strcmp(srs_ackNackST, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.srs_ackNackST, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_ackNackST_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.srs_ackNackST); - if (strcmp(srs_MaxUpPts_emtc, "ENABLE") == 0) { + if (strcmp(eMTCconfig.ccparams.srs_MaxUpPts, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= TRUE; - } else if (strcmp(srs_MaxUpPts_emtc, "DISABLE") == 0) { + } else if (strcmp(eMTCconfig.ccparams.srs_MaxUpPts, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, srs_MaxUpPts_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.srs_MaxUpPts); } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal= pusch_p0_Nominal_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal= eMTCconfig.ccparams.pusch_p0_Nominal; - if ((pusch_p0_Nominal_emtc<-126) || (pusch_p0_Nominal_emtc>24)) + if ((eMTCconfig.ccparams.pusch_p0_Nominal<-126) || (eMTCconfig.ccparams.pusch_p0_Nominal>24)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, pusch_p0_Nominal); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_p0_Nominal); #if (RRC_VERSION <= MAKE_VERSION(12, 0, 0)) - if (strcmp(pusch_alpha_emtc,"AL0")==0) { + if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0; - } else if (strcmp(pusch_alpha_emtc,"AL04")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL04")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04; - } else if (strcmp(pusch_alpha_emtc,"AL05")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL05")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05; - } else if (strcmp(pusch_alpha_emtc,"AL06")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL06")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06; - } else if (strcmp(pusch_alpha_emtc,"AL07")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL07")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07; - } else if (strcmp(pusch_alpha_emtc,"AL08")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL08")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08; - } else if (strcmp(pusch_alpha_emtc,"AL09")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL09")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09; - } else if (strcmp(pusch_alpha_emtc,"AL1")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1; } #endif #if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) - if (strcmp(pusch_alpha_emtc,"AL0")==0) { + if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al0; - } else if (strcmp(pusch_alpha_emtc,"AL04")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL04")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al04; - } else if (strcmp(pusch_alpha_emtc,"AL05")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL05")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al05; - } else if (strcmp(pusch_alpha_emtc,"AL06")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL06")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al06; - } else if (strcmp(pusch_alpha_emtc,"AL07")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL07")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al07; - } else if (strcmp(pusch_alpha_emtc,"AL08")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL08")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al08; - } else if (strcmp(pusch_alpha_emtc,"AL09")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL09")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al09; - } else if (strcmp(pusch_alpha_emtc,"AL1")==0) { + } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al1; } @@ -2209,96 +1811,96 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, pusch_alpha); + RC.config_file_name, i, eMTCconfig.ccparams.pusch_alpha); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal= pucch_p0_Nominal_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal= eMTCconfig.ccparams.pucch_p0_Nominal; - if ((pucch_p0_Nominal_emtc<-127) || (pucch_p0_Nominal_emtc>-96)) + if ((eMTCconfig.ccparams.pucch_p0_Nominal<-127) || (eMTCconfig.ccparams.pucch_p0_Nominal>-96)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, pucch_p0_Nominal_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_p0_Nominal); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble= msg3_delta_Preamble_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble= eMTCconfig.ccparams.msg3_delta_Preamble; - if ((msg3_delta_Preamble_emtc<-1) || (msg3_delta_Preamble_emtc>6)) + if ((eMTCconfig.ccparams.msg3_delta_Preamble<-1) || (eMTCconfig.ccparams.msg3_delta_Preamble>6)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, msg3_delta_Preamble_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.msg3_delta_Preamble); - if (strcmp(pucch_deltaF_Format1_emtc,"deltaF_2")==0) { + if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } else if (strcmp(pucch_deltaF_Format1_emtc,"deltaF0")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } else if (strcmp(pucch_deltaF_Format1_emtc,"deltaF2")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format1_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format1); - if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF1")==0) { + if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1b,"deltaF1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } else if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF3")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1b,"deltaF3")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } else if (strcmp(pucch_deltaF_Format1b_emtc,"deltaF5")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1b,"deltaF5")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, pucch_deltaF_Format1b_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format1b); - if (strcmp(pucch_deltaF_Format2_emtc,"deltaF_2")==0) { + if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF0")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF1")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF1")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } else if (strcmp(pucch_deltaF_Format2_emtc,"deltaF2")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format2); - if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF_2")==0) { + if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2a,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF0")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2a,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } else if (strcmp(pucch_deltaF_Format2a_emtc,"deltaF2")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2a,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2a_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format2a); - if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF_2")==0) { + if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2b,"deltaF_2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } else if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF0")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2b,"deltaF0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } else if (strcmp(pucch_deltaF_Format2b_emtc,"deltaF2")==0) { + } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2b,"deltaF2")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, pucch_deltaF_Format2b_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format2b); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles_emtc/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (eMTCconfig.ccparams.rach_numberOfRA_Preambles/4)-1; - if ((rach_numberOfRA_Preambles_emtc <4) || (rach_numberOfRA_Preambles_emtc >64) || ((rach_numberOfRA_Preambles_emtc&3)!=0)) + if ((eMTCconfig.ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig.ccparams.rach_numberOfRA_Preambles >64) || ((eMTCconfig.ccparams.rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, rach_numberOfRA_Preambles_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_numberOfRA_Preambles); - if (strcmp(rach_preamblesGroupAConfig_emtc, "ENABLE") == 0) { + if (strcmp(eMTCconfig.ccparams.rach_preamblesGroupAConfig, "ENABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (rach_sizeOfRA_PreamblesGroupA_emtc/4)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (eMTCconfig.ccparams.rach_sizeOfRA_PreamblesGroupA/4)-1; - if ((rach_numberOfRA_Preambles_emtc <4) || (rach_numberOfRA_Preambles_emtc>60) || ((rach_numberOfRA_Preambles_emtc&3)!=0)) + if ((eMTCconfig.ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig.ccparams.rach_numberOfRA_Preambles>60) || ((eMTCconfig.ccparams.rach_numberOfRA_Preambles&3)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, rach_sizeOfRA_PreamblesGroupA_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_sizeOfRA_PreamblesGroupA); - switch (rach_messageSizeGroupA_emtc) { + switch (eMTCconfig.ccparams.rach_messageSizeGroupA) { case 56: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; break; @@ -2318,52 +1920,52 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, rach_messageSizeGroupA_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_messageSizeGroupA); break; } - if (strcmp(rach_messagePowerOffsetGroupB_emtc,"minusinfinity")==0) { + if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"minusinfinity")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB0")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB0")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB5")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB5")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB8")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB8")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB10")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB10")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB12")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB12")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB15")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB15")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } else if (strcmp(rach_messagePowerOffsetGroupB_emtc,"dB18")==0) { + } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB18")==0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, rach_messagePowerOffsetGroupB_emtc); - } else if (strcmp(rach_preamblesGroupAConfig_emtc, "DISABLE") == 0) { + RC.config_file_name, i, eMTCconfig.ccparams.rach_messagePowerOffsetGroupB); + } else if (strcmp(eMTCconfig.ccparams.rach_preamblesGroupAConfig, "DISABLE") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, rach_preamblesGroupAConfig_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_preamblesGroupAConfig); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (rach_preambleInitialReceivedTargetPower_emtc+120)/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower+120)/2; - if ((rach_preambleInitialReceivedTargetPower_emtc<-120) || (rach_preambleInitialReceivedTargetPower_emtc>-90) || ((rach_preambleInitialReceivedTargetPower_emtc&1)!=0)) + if ((eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower<-120) || (eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower>-90) || ((eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower&1)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, rach_preambleInitialReceivedTargetPower_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= rach_powerRampingStep_emtc/2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= eMTCconfig.ccparams.rach_powerRampingStep/2; - if ((rach_powerRampingStep_emtc<0) || (rach_powerRampingStep_emtc>6) || ((rach_powerRampingStep_emtc&1)!=0)) + if ((eMTCconfig.ccparams.rach_powerRampingStep<0) || (eMTCconfig.ccparams.rach_powerRampingStep>6) || ((eMTCconfig.ccparams.rach_powerRampingStep&1)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, rach_powerRampingStep_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_powerRampingStep); - switch (rach_preambleTransMax_emtc) { + switch (eMTCconfig.ccparams.rach_preambleTransMax) { #if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) case 3: @@ -2459,32 +2061,32 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, rach_preambleTransMax_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_preambleTransMax); break; } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (rach_raResponseWindowSize_emtc==10)?7:rach_raResponseWindowSize_emtc-2; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (eMTCconfig.ccparams.rach_raResponseWindowSize==10)?7:eMTCconfig.ccparams.rach_raResponseWindowSize-2; - if ((rach_raResponseWindowSize_emtc<0)||(rach_raResponseWindowSize_emtc==9)||(rach_raResponseWindowSize_emtc>10)) + if ((eMTCconfig.ccparams.rach_raResponseWindowSize<0)||(eMTCconfig.ccparams.rach_raResponseWindowSize==9)||(eMTCconfig.ccparams.rach_raResponseWindowSize>10)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, rach_raResponseWindowSize_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_raResponseWindowSize); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (rach_macContentionResolutionTimer_emtc/8)-1; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (eMTCconfig.ccparams.rach_macContentionResolutionTimer/8)-1; - if ((rach_macContentionResolutionTimer_emtc<8) || (rach_macContentionResolutionTimer_emtc>64) || ((rach_macContentionResolutionTimer_emtc&7)!=0)) + if ((eMTCconfig.ccparams.rach_macContentionResolutionTimer<8) || (eMTCconfig.ccparams.rach_macContentionResolutionTimer>64) || ((eMTCconfig.ccparams.rach_macContentionResolutionTimer&7)!=0)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, rach_macContentionResolutionTimer_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_macContentionResolutionTimer); - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= rach_maxHARQ_Msg3Tx_emtc; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx; - if ((rach_maxHARQ_Msg3Tx_emtc<0) || (rach_maxHARQ_Msg3Tx_emtc>8)) + if ((eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx<0) || (eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx>8)) AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, rach_maxHARQ_Msg3Tx_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx); - switch (pcch_defaultPagingCycle_emtc) { + switch (eMTCconfig.ccparams.pcch_defaultPagingCycle) { case 32: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; break; @@ -2504,32 +2106,32 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, pcch_defaultPagingCycle_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pcch_defaultPagingCycle); break; } - if (strcmp(pcch_nB_emtc, "fourT") == 0) { + if (strcmp(eMTCconfig.ccparams.pcch_nB, "fourT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; - } else if (strcmp(pcch_nB_emtc, "twoT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "twoT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; - } else if (strcmp(pcch_nB_emtc, "oneT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; - } else if (strcmp(pcch_nB_emtc, "halfT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "halfT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; - } else if (strcmp(pcch_nB_emtc, "quarterT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "quarterT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; - } else if (strcmp(pcch_nB_emtc, "oneEighthT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneEighthT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; - } else if (strcmp(pcch_nB_emtc, "oneSixteenthT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneSixteenthT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; - } else if (strcmp(pcch_nB_emtc, "oneThirtySecondT") == 0) { + } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneThirtySecondT") == 0) { RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; } else AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, pcch_nB_emtc); + RC.config_file_name, i, eMTCconfig.ccparams.pcch_nB); - switch (bcch_modificationPeriodCoeff_emtc) { + switch (eMTCconfig.ccparams.bcch_modificationPeriodCoeff) { case 2: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2; break; @@ -2549,18 +2151,18 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, bcch_modificationPeriodCoeff); + RC.config_file_name, i, eMTCconfig.ccparams.bcch_modificationPeriodCoeff); break; } - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300= ue_TimersAndConstants_t300; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= ue_TimersAndConstants_t301; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= ue_TimersAndConstants_t310; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= ue_TimersAndConstants_t311; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= ue_TimersAndConstants_n310; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= ue_TimersAndConstants_n311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300= eMTCconfig.ccparams.ue_TimersAndConstants_t300; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= eMTCconfig.ccparams.ue_TimersAndConstants_t301; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= eMTCconfig.ccparams.ue_TimersAndConstants_t310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= eMTCconfig.ccparams.ue_TimersAndConstants_t311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= eMTCconfig.ccparams.ue_TimersAndConstants_n310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= eMTCconfig.ccparams.ue_TimersAndConstants_n311; - switch (ue_TransmissionMode_emtc) { + switch (eMTCconfig.ccparams.ue_TransmissionMode) { case 1: RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; break; @@ -2592,7 +2194,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { default: AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, ue_TransmissionMode); + RC.config_file_name, i, eMTCconfig.ccparams.ue_TransmissionMode); break; } @@ -2600,9 +2202,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { + if (!strcmp(eMTCconfig.pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { + } else if (!strcmp(eMTCconfig.pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; } else { AssertFatal (0, @@ -2612,11 +2214,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r8")) { + if (!strcmp(eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, "r8")) { *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r16")) { + } else if (!strcmp(eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, "r16")) { *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else if (!strcmp(pusch_maxNumRepetitionCEmodeA_r13, "r32")) { + } else if (!strcmp(eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, "r32")) { *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; } else { AssertFatal (0, @@ -2632,36 +2234,36 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath); - RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = firstPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex] = lastPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = eMTCconfig.firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex] = eMTCconfig.lastPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = ra_ResponseWindowSize_r13; - AssertFatal(ra_ResponseWindowSize_r13 == 20 || - ra_ResponseWindowSize_r13 == 50 || - ra_ResponseWindowSize_r13 == 80 || - ra_ResponseWindowSize_r13 == 120 || - ra_ResponseWindowSize_r13 == 180 || - ra_ResponseWindowSize_r13 == 240 || - ra_ResponseWindowSize_r13 == 320 || - ra_ResponseWindowSize_r13 == 400, - "Illegal ra_ResponseWindowSize_r13 %d\n",ra_ResponseWindowSize_r13); + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = eMTCconfig.ra_ResponseWindowSize_r13; + AssertFatal(eMTCconfig.ra_ResponseWindowSize_r13 == 20 || + eMTCconfig.ra_ResponseWindowSize_r13 == 50 || + eMTCconfig.ra_ResponseWindowSize_r13 == 80 || + eMTCconfig.ra_ResponseWindowSize_r13 == 120 || + eMTCconfig.ra_ResponseWindowSize_r13 == 180 || + eMTCconfig.ra_ResponseWindowSize_r13 == 240 || + eMTCconfig.ra_ResponseWindowSize_r13 == 320 || + eMTCconfig.ra_ResponseWindowSize_r13 == 400, + "Illegal ra_ResponseWindowSize_r13 %d\n",eMTCconfig.ra_ResponseWindowSize_r13); - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = mac_ContentionResolutionTimer_r13; - AssertFatal(mac_ContentionResolutionTimer_r13 == 80 || - mac_ContentionResolutionTimer_r13 == 100 || - mac_ContentionResolutionTimer_r13 == 120 || - mac_ContentionResolutionTimer_r13 == 80 || - mac_ContentionResolutionTimer_r13 == 160 || - mac_ContentionResolutionTimer_r13 == 200 || - mac_ContentionResolutionTimer_r13 == 240 || - mac_ContentionResolutionTimer_r13 == 480 || - mac_ContentionResolutionTimer_r13 == 960, + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = eMTCconfig.mac_ContentionResolutionTimer_r13; + AssertFatal(eMTCconfig.mac_ContentionResolutionTimer_r13 == 80 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 100 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 120 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 80 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 160 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 200 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 240 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 480 || + eMTCconfig.mac_ContentionResolutionTimer_r13 == 960, "Illegal mac_ContentionResolutionTimer_r13 %d\n", - mac_ContentionResolutionTimer_r13); + eMTCconfig.mac_ContentionResolutionTimer_r13); - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = rar_HoppingConfig_r13; - AssertFatal(rar_HoppingConfig_r13 == 0 || rar_HoppingConfig_r13 == 1, - "illegal rar_HoppingConfig_r13 %d\n",rar_HoppingConfig_r13); + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = eMTCconfig.rar_HoppingConfig_r13; + AssertFatal(eMTCconfig.rar_HoppingConfig_r13 == 0 || eMTCconfig.rar_HoppingConfig_r13 == 1, + "illegal rar_HoppingConfig_r13 %d\n",eMTCconfig.rar_HoppingConfig_r13); } // end for loop (rach ce level info) char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2]; @@ -2673,7 +2275,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) { sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex); config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = rsrp_range_br; + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = eMTCconfig.rsrp_range_br; } @@ -2687,51 +2289,51 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex); config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath); - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex] = prach_config_index_br; - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex] = prach_freq_offset_br; + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex] = eMTCconfig.prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex] = eMTCconfig.prach_freq_offset_br; RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = prach_StartingSubframe_r13; + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = eMTCconfig.prach_StartingSubframe_r13; RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = maxNumPreambleAttemptCE_r13-3; - AssertFatal(maxNumPreambleAttemptCE_r13 > 2 && maxNumPreambleAttemptCE_r13 <11, + *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = eMTCconfig.maxNumPreambleAttemptCE_r13-3; + AssertFatal(eMTCconfig.maxNumPreambleAttemptCE_r13 > 2 && eMTCconfig.maxNumPreambleAttemptCE_r13 <11, "prachparamsindex %d: Illegal maxNumPreambleAttemptCE_r13 %d\n", - prachparamsindex,maxNumPreambleAttemptCE_r13); + prachparamsindex,eMTCconfig.maxNumPreambleAttemptCE_r13); - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = numRepetitionPerPreambleAttempt_r13; - AssertFatal(numRepetitionPerPreambleAttempt_r13 == 1 || - numRepetitionPerPreambleAttempt_r13 == 2 || - numRepetitionPerPreambleAttempt_r13 == 4 || - numRepetitionPerPreambleAttempt_r13 == 8 || - numRepetitionPerPreambleAttempt_r13 == 16 || - numRepetitionPerPreambleAttempt_r13 == 32 || - numRepetitionPerPreambleAttempt_r13 == 64 || - numRepetitionPerPreambleAttempt_r13 == 128, + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = eMTCconfig.numRepetitionPerPreambleAttempt_r13; + AssertFatal(eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 1 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 2 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 4 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 8 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 16 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 32 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 64 || + eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 128, "illegal numReptitionPerPreambleAttempt %d\n", - numRepetitionPerPreambleAttempt_r13); + eMTCconfig.numRepetitionPerPreambleAttempt_r13); - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = mpdcch_NumRepetition_RA_r13; - AssertFatal (mpdcch_NumRepetition_RA_r13 == 1 || - mpdcch_NumRepetition_RA_r13 == 2 || - mpdcch_NumRepetition_RA_r13 == 4 || - mpdcch_NumRepetition_RA_r13 == 8 || - mpdcch_NumRepetition_RA_r13 == 16 || - mpdcch_NumRepetition_RA_r13 == 32 || - mpdcch_NumRepetition_RA_r13 == 64 || - mpdcch_NumRepetition_RA_r13 == 128 || - mpdcch_NumRepetition_RA_r13 == 256 || - mpdcch_NumRepetition_RA_r13 == 512 || - mpdcch_NumRepetition_RA_r13 == 1024 || - mpdcch_NumRepetition_RA_r13 == 2048, + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = eMTCconfig.mpdcch_NumRepetition_RA_r13; + AssertFatal (eMTCconfig.mpdcch_NumRepetition_RA_r13 == 1 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 2 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 4 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 8 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 16 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 32 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 64 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 128 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 256 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 512 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 1024 || + eMTCconfig.mpdcch_NumRepetition_RA_r13 == 2048, "illegal mpdcch_NumRepeition_RA_r13 %d\n", - mpdcch_NumRepetition_RA_r13); + eMTCconfig.mpdcch_NumRepetition_RA_r13); - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = prach_HoppingConfig_r13; + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = eMTCconfig.prach_HoppingConfig_r13; - AssertFatal (prach_HoppingConfig_r13 >=0 && prach_HoppingConfig_r13 < 2, - "Illegal prach_HoppingConfig_r13 %d\n",prach_HoppingConfig_r13); + AssertFatal (eMTCconfig.prach_HoppingConfig_r13 >=0 && eMTCconfig.prach_HoppingConfig_r13 < 2, + "Illegal prach_HoppingConfig_r13 %d\n",eMTCconfig.prach_HoppingConfig_r13); int maxavailablenarrowband_count = prachParams[7].numelt; @@ -2751,7 +2353,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) { sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex); config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath); - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = pucch_info_value; + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = eMTCconfig.pucch_info_value; } char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16]; @@ -2763,19 +2365,19 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { /** PCCH CONFIG V1310 */ RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13; - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13; - AssertFatal (mpdcch_numrepetition_paging_r13 == 1 || - mpdcch_numrepetition_paging_r13 == 2 || - mpdcch_numrepetition_paging_r13 == 4 || - mpdcch_numrepetition_paging_r13 == 8 || - mpdcch_numrepetition_paging_r13 == 16 || - mpdcch_numrepetition_paging_r13 == 32 || - mpdcch_numrepetition_paging_r13 == 64 || - mpdcch_numrepetition_paging_r13 == 128 || - mpdcch_numrepetition_paging_r13 == 256, + RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = eMTCconfig.paging_narrowbands_r13; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = eMTCconfig.mpdcch_numrepetition_paging_r13; + AssertFatal (eMTCconfig.mpdcch_numrepetition_paging_r13 == 1 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 2 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 4 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 8 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 16 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 32 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 64 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 128 || + eMTCconfig.mpdcch_numrepetition_paging_r13 == 256, "illegal mpdcch_numrepetition_paging_r13 %d\n", - mpdcch_numrepetition_paging_r13); + eMTCconfig.mpdcch_numrepetition_paging_r13); // RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); @@ -2795,13 +2397,13 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); // ++cnt; // check this ,, the conter is up above - if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { + if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { + } else if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { + } else if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; - } else if (!strcmp(pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { + } else if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; } else { AssertFatal (0, @@ -2820,24 +2422,24 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { + if (!strcmp(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; - AssertFatal(sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || - sib2_interval_ULHoppingConfigCommonModeA_r13_val==2 || - sib2_interval_ULHoppingConfigCommonModeA_r13_val==4 || - sib2_interval_ULHoppingConfigCommonModeA_r13_val==8, + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val; + AssertFatal(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==2 || + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==4 || + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==8, "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", - sib2_interval_ULHoppingConfigCommonModeA_r13_val); - } else if (!strcmp(sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val); + } else if (!strcmp(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; - AssertFatal(sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || - sib2_interval_ULHoppingConfigCommonModeA_r13_val==5 || - sib2_interval_ULHoppingConfigCommonModeA_r13_val==10 || - sib2_interval_ULHoppingConfigCommonModeA_r13_val==20, + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val; + AssertFatal(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==5 || + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==10 || + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==20, "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", - sib2_interval_ULHoppingConfigCommonModeA_r13_val); + eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val); } else { AssertFatal (1==0, "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", @@ -2850,567 +2452,564 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=0; } + char SLparamspath[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(SLparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_SL_PARAMETERS); + config_get( SLParams, sizeof(SLParams)/sizeof(paramdef_t), SLparamspath); + // Sidelink Resource pool information - //SIB18 - if (strcmp(rxPool_sc_CP_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(rxPool_sc_CP_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_CP_Len choice: normal,extended!\n", - RC.config_file_name, i, rxPool_sc_CP_Len); - - if (strcmp(rxPool_sc_Period,"sf40")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf40; - } else if (strcmp(rxPool_sc_Period,"sf60")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf60; - } else if (strcmp(rxPool_sc_Period,"sf70")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf70; - } else if (strcmp(rxPool_sc_Period,"sf80")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf80; - } else if (strcmp(rxPool_sc_Period,"sf120")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf120; - } else if (strcmp(rxPool_sc_Period,"sf140")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf140; - } else if (strcmp(rxPool_sc_Period,"sf160")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf160; - } else if (strcmp(rxPool_sc_Period,"sf240")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf240; - } else if (strcmp(rxPool_sc_Period,"sf280")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf280; - } else if (strcmp(rxPool_sc_Period,"sf320")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf320; - } else if (strcmp(rxPool_sc_Period,"spare6")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare6; - } else if (strcmp(rxPool_sc_Period,"spare5")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare5; - } else if (strcmp(rxPool_sc_Period,"spare4")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare4; - } else if (strcmp(rxPool_sc_Period,"spare3")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare3; - } else if (strcmp(rxPool_sc_Period,"spare2")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare2; - } else if (strcmp(rxPool_sc_Period,"spare")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_Period choice: sf40,sf60,sf70,sf80,sf120,sf140,sf160,sf240,sf280,sf320,spare6,spare5,spare4,spare3,spare2,spare!\n", - RC.config_file_name, i, rxPool_sc_Period); - - if (strcmp(rxPool_data_CP_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(rxPool_data_CP_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_data_CP_Len choice: normal,extended!\n", - RC.config_file_name, i, rxPool_data_CP_Len); - - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Num[j] = rxPool_ResourceConfig_prb_Num; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Start[j] = rxPool_ResourceConfig_prb_Start; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_End[j] = rxPool_ResourceConfig_prb_End; - - if (strcmp(rxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; - } else if (strcmp(rxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; - } else if (strcmp(rxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", - RC.config_file_name, i, rxPool_ResourceConfig_offsetIndicator_present); - - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_choice[j] = rxPool_ResourceConfig_offsetIndicator_choice; - - if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; - } else if (strcmp(rxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", - RC.config_file_name, i, rxPool_ResourceConfig_subframeBitmap_present); - - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = rxPool_ResourceConfig_subframeBitmap_choice_bs_size; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - - //SIB19 - for discRxPool - if (strcmp(discRxPool_cp_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(discRxPool_cp_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_cp_Len choice: normal,extended!\n", - RC.config_file_name, i, discRxPool_cp_Len); - - if (strcmp(discRxPool_discPeriod,"rf32")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; - } else if (strcmp(discRxPool_discPeriod,"rf64")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; - } else if (strcmp(discRxPool_discPeriod,"rf128")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; - } else if (strcmp(discRxPool_discPeriod,"rf256")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; - } else if (strcmp(discRxPool_discPeriod,"rf512")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; - } else if (strcmp(discRxPool_discPeriod,"rf1024")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; - } else if (strcmp(discRxPool_discPeriod,"rf16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; - } else if (strcmp(discRxPool_discPeriod,"spare")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", - RC.config_file_name, i, discRxPool_discPeriod); - - RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRetx[j] = discRxPool_numRetx; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRepetition[j] = discRxPool_numRepetition; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Num[j] = discRxPool_ResourceConfig_prb_Num; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Start[j] = discRxPool_ResourceConfig_prb_Start; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_End[j] = discRxPool_ResourceConfig_prb_End; - - if (strcmp(discRxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; - } else if (strcmp(discRxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; - } else if (strcmp(discRxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", - RC.config_file_name, i, discRxPool_ResourceConfig_offsetIndicator_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_choice[j] = discRxPool_ResourceConfig_offsetIndicator_choice; - - if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; - } else if (strcmp(discRxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", - RC.config_file_name, i, discRxPool_ResourceConfig_subframeBitmap_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - - //SIB19 - For discRxPoolPS - if (strcmp(discRxPoolPS_cp_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(discRxPoolPS_cp_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_cp_Len choice: normal,extended!\n", - RC.config_file_name, i, discRxPoolPS_cp_Len); - - if (strcmp(discRxPoolPS_discPeriod,"rf32")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; - } else if (strcmp(discRxPoolPS_discPeriod,"rf64")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; - } else if (strcmp(discRxPoolPS_discPeriod,"rf128")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; - } else if (strcmp(discRxPoolPS_discPeriod,"rf256")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; - } else if (strcmp(discRxPoolPS_discPeriod,"rf512")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; - } else if (strcmp(discRxPoolPS_discPeriod,"rf1024")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; - } else if (strcmp(discRxPoolPS_discPeriod,"rf16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; - } else if (strcmp(discRxPoolPS_discPeriod,"spare")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", - RC.config_file_name, i, discRxPoolPS_discPeriod); - - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRetx[j] = discRxPoolPS_numRetx; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRepetition[j] = discRxPoolPS_numRepetition; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Num[j] = discRxPoolPS_ResourceConfig_prb_Num; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Start[j] = discRxPoolPS_ResourceConfig_prb_Start; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_End[j] = discRxPoolPS_ResourceConfig_prb_End; - - if (strcmp(discRxPoolPS_ResourceConfig_offsetIndicator_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; - } else if (strcmp(discRxPoolPS_ResourceConfig_offsetIndicator_present,"prSmall")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_offsetIndicator_present,"prLarge")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", - RC.config_file_name, i, discRxPoolPS_ResourceConfig_offsetIndicator_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_choice[j] = discRxPoolPS_ResourceConfig_offsetIndicator_choice; - - if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs4")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs8")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs12")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs30")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs40")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; - } else if (strcmp(discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs42")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", - RC.config_file_name, i, discRxPoolPS_ResourceConfig_subframeBitmap_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - } - } + RRC_CONFIGURATION_REQ (msg_p).SL_configured=SLconfig.sidelink_configured&1; + if (SLconfig.sidelink_configured==1) { + //SIB18 + if (strcmp(SLconfig.rxPool_sc_CP_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig.rxPool_sc_CP_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_CP_Len choice: normal,extended!\n", + RC.config_file_name, i, SLconfig.rxPool_sc_CP_Len); + + if (strcmp(SLconfig.rxPool_sc_Period,"sf40")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf40; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf60")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf60; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf70")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf70; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf80")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf80; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf120")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf120; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf140")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf140; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf160")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf160; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf240")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf240; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf280")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf280; + } else if (strcmp(SLconfig.rxPool_sc_Period,"sf320")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf320; + } else if (strcmp(SLconfig.rxPool_sc_Period,"spare6")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare6; + } else if (strcmp(SLconfig.rxPool_sc_Period,"spare5")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare5; + } else if (strcmp(SLconfig.rxPool_sc_Period,"spare4")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare4; + } else if (strcmp(SLconfig.rxPool_sc_Period,"spare3")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare3; + } else if (strcmp(SLconfig.rxPool_sc_Period,"spare2")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare2; + } else if (strcmp(SLconfig.rxPool_sc_Period,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_Period choice: sf40,sf60,sf70,sf80,sf120,sf140,sf160,sf240,sf280,sf320,spare6,spare5,spare4,spare3,spare2,spare!\n", + RC.config_file_name, i, SLconfig.rxPool_sc_Period); + + if (strcmp(SLconfig.rxPool_data_CP_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig.rxPool_data_CP_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_data_CP_Len choice: normal,extended!\n", + RC.config_file_name, i, SLconfig.rxPool_data_CP_Len); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Num[j] = SLconfig.rxPool_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Start[j] = SLconfig.rxPool_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_End[j] = SLconfig.rxPool_ResourceConfig_prb_End; + + if (strcmp(SLconfig.rxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + RC.config_file_name, i, SLconfig.rxPool_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_choice[j] = SLconfig.rxPool_ResourceConfig_offsetIndicator_choice; + + if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + RC.config_file_name, i, SLconfig.rxPool_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = SLconfig.rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = SLconfig.rxPool_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = SLconfig.rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 - for discRxPool + if (strcmp(SLconfig.discRxPool_cp_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig.discRxPool_cp_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_cp_Len choice: normal,extended!\n", + RC.config_file_name, i, SLconfig.discRxPool_cp_Len); + + if (strcmp(SLconfig.discRxPool_discPeriod,"rf32")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf64")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf128")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf256")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf512")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf1024")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; + } else if (strcmp(SLconfig.discRxPool_discPeriod,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", + RC.config_file_name, i, SLconfig.discRxPool_discPeriod); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRetx[j] = SLconfig.discRxPool_numRetx; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRepetition[j] = SLconfig.discRxPool_numRepetition; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Num[j] = SLconfig.discRxPool_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Start[j] = SLconfig.discRxPool_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_End[j] = SLconfig.discRxPool_ResourceConfig_prb_End; + + if (strcmp(SLconfig.discRxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + RC.config_file_name, i, SLconfig.discRxPool_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_choice[j] = SLconfig.discRxPool_ResourceConfig_offsetIndicator_choice; + + if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + RC.config_file_name, i, SLconfig.discRxPool_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = SLconfig.discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = SLconfig.discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = SLconfig.discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 - For discRxPoolPS + if (strcmp(SLconfig.discRxPoolPS_cp_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig.discRxPoolPS_cp_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_cp_Len choice: normal,extended!\n", + RC.config_file_name, i, SLconfig.discRxPoolPS_cp_Len); + + if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf32")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf64")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf128")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf256")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf512")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf1024")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; + } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", + RC.config_file_name, i, SLconfig.discRxPoolPS_discPeriod); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRetx[j] = SLconfig.discRxPoolPS_numRetx; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRepetition[j] = SLconfig.discRxPoolPS_numRepetition; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Num[j] = SLconfig.discRxPoolPS_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Start[j] = SLconfig.discRxPoolPS_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_End[j] = SLconfig.discRxPoolPS_ResourceConfig_prb_End; + + if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + RC.config_file_name, i, SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_choice[j] = SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_choice; + + if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + RC.config_file_name, i, SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[j] = SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[j] = SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + } + } + } char srb1path[MAX_OPTNAME_SIZE*2 + 8]; sprintf(srb1path,"%s.%s",enbpath,ENB_CONFIG_STRING_SRB1); - int npar = config_get( SRB1Params,sizeof(SRB1Params)/sizeof(paramdef_t), srb1path); + config_get( SRB1Params,sizeof(SRB1Params)/sizeof(paramdef_t), srb1path); - if (npar == sizeof(SRB1Params)/sizeof(paramdef_t)) { - switch (srb1_max_retx_threshold) { - case 1: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; - break; - case 2: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; - break; - - case 3: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; - break; - - case 4: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; - break; - - case 6: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; - break; - - case 8: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - break; - - case 16: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; - break; - - case 32: - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; - break; - - default: + switch (srb1_params.srb1_max_retx_threshold) { + case 1: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t1; + break; + + case 2: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t2; + break; + + case 3: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t3; + break; + + case 4: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t4; + break; + + case 6: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t6; + break; + + case 8: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; + break; + + case 16: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t16; + break; + + case 32: + rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t32; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", + RC.config_file_name, i, srb1_params.srb1_max_retx_threshold); + } + + switch (srb1_params.srb1_poll_pdu) { + case 4: + rrc->srb1_poll_pdu = PollPDU_p4; + break; + + case 8: + rrc->srb1_poll_pdu = PollPDU_p8; + break; + + case 16: + rrc->srb1_poll_pdu = PollPDU_p16; + break; + + case 32: + rrc->srb1_poll_pdu = PollPDU_p32; + break; + + case 64: + rrc->srb1_poll_pdu = PollPDU_p64; + break; + + case 128: + rrc->srb1_poll_pdu = PollPDU_p128; + break; + + case 256: + rrc->srb1_poll_pdu = PollPDU_p256; + break; + + default: + if (srb1_params.srb1_poll_pdu >= 10000) + rrc->srb1_poll_pdu = PollPDU_pInfinity; + else AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_max_retx_threshold %u!\n", - RC.config_file_name, i, srb1_max_retx_threshold); - } - - switch (srb1_poll_pdu) { - case 4: - rrc->srb1_poll_pdu = PollPDU_p4; - break; - - case 8: - rrc->srb1_poll_pdu = PollPDU_p8; - break; - - case 16: - rrc->srb1_poll_pdu = PollPDU_p16; - break; - - case 32: - rrc->srb1_poll_pdu = PollPDU_p32; - break; - - case 64: - rrc->srb1_poll_pdu = PollPDU_p64; - break; - - case 128: - rrc->srb1_poll_pdu = PollPDU_p128; - break; - - case 256: - rrc->srb1_poll_pdu = PollPDU_p256; - break; - - default: - if (srb1_poll_pdu >= 10000) - rrc->srb1_poll_pdu = PollPDU_pInfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", - RC.config_file_name, i, srb1_poll_pdu); - } - - rrc->srb1_poll_byte = srb1_poll_byte; - - switch (srb1_poll_byte) { - case 25: - rrc->srb1_poll_byte = PollByte_kB25; - break; - - case 50: - rrc->srb1_poll_byte = PollByte_kB50; - break; - - case 75: - rrc->srb1_poll_byte = PollByte_kB75; - break; - - case 100: - rrc->srb1_poll_byte = PollByte_kB100; - break; - - case 125: - rrc->srb1_poll_byte = PollByte_kB125; - break; - - case 250: - rrc->srb1_poll_byte = PollByte_kB250; - break; - - case 375: - rrc->srb1_poll_byte = PollByte_kB375; - break; - - case 500: - rrc->srb1_poll_byte = PollByte_kB500; - break; - - case 750: - rrc->srb1_poll_byte = PollByte_kB750; - break; - - case 1000: - rrc->srb1_poll_byte = PollByte_kB1000; - break; - - case 1250: - rrc->srb1_poll_byte = PollByte_kB1250; - break; - - case 1500: - rrc->srb1_poll_byte = PollByte_kB1500; - break; - - case 2000: - rrc->srb1_poll_byte = PollByte_kB2000; - break; - - case 3000: - rrc->srb1_poll_byte = PollByte_kB3000; - break; - - default: - if (srb1_poll_byte >= 10000) - rrc->srb1_poll_byte = PollByte_kBinfinity; - else - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", - RC.config_file_name, i, srb1_poll_byte); - } - - if (srb1_timer_poll_retransmit <= 250) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 5)/5; - } else if (srb1_timer_poll_retransmit <= 500) { - rrc->srb1_timer_poll_retransmit = (srb1_timer_poll_retransmit - 300)/50 + 50; - } else { - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", - RC.config_file_name, i, srb1_timer_poll_retransmit); - } - - if (srb1_timer_status_prohibit <= 250) { - rrc->srb1_timer_status_prohibit = srb1_timer_status_prohibit/5; - } else if ((srb1_timer_poll_retransmit >= 300) && (srb1_timer_poll_retransmit <= 500)) { - rrc->srb1_timer_status_prohibit = (srb1_timer_status_prohibit - 300)/50 + 51; - } else { - AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", - RC.config_file_name, i, srb1_timer_status_prohibit); - } - - switch (srb1_timer_reordering) { - case 0: - rrc->srb1_timer_reordering = T_Reordering_ms0; - break; - - case 5: - rrc->srb1_timer_reordering = T_Reordering_ms5; - break; - - case 10: - rrc->srb1_timer_reordering = T_Reordering_ms10; - break; - - case 15: - rrc->srb1_timer_reordering = T_Reordering_ms15; - break; - - case 20: - rrc->srb1_timer_reordering = T_Reordering_ms20; - break; - - case 25: - rrc->srb1_timer_reordering = T_Reordering_ms25; - break; - - case 30: - rrc->srb1_timer_reordering = T_Reordering_ms30; - break; - - case 35: - rrc->srb1_timer_reordering = T_Reordering_ms35; - break; - - case 40: - rrc->srb1_timer_reordering = T_Reordering_ms40; - break; - - case 45: - rrc->srb1_timer_reordering = T_Reordering_ms45; - break; - - case 50: - rrc->srb1_timer_reordering = T_Reordering_ms50; - break; - - case 55: - rrc->srb1_timer_reordering = T_Reordering_ms55; - break; - - case 60: - rrc->srb1_timer_reordering = T_Reordering_ms60; - break; - - case 65: - rrc->srb1_timer_reordering = T_Reordering_ms65; - break; - - case 70: - rrc->srb1_timer_reordering = T_Reordering_ms70; - break; - - case 75: - rrc->srb1_timer_reordering = T_Reordering_ms75; - break; - - case 80: - rrc->srb1_timer_reordering = T_Reordering_ms80; - break; - - case 85: - rrc->srb1_timer_reordering = T_Reordering_ms85; - break; - - case 90: - rrc->srb1_timer_reordering = T_Reordering_ms90; - break; - - case 95: - rrc->srb1_timer_reordering = T_Reordering_ms95; - break; - - case 100: - rrc->srb1_timer_reordering = T_Reordering_ms100; - break; - - case 110: - rrc->srb1_timer_reordering = T_Reordering_ms110; - break; - - case 120: - rrc->srb1_timer_reordering = T_Reordering_ms120; - break; - - case 130: - rrc->srb1_timer_reordering = T_Reordering_ms130; - break; - - case 140: - rrc->srb1_timer_reordering = T_Reordering_ms140; - break; - - case 150: - rrc->srb1_timer_reordering = T_Reordering_ms150; - break; - - case 160: - rrc->srb1_timer_reordering = T_Reordering_ms160; - break; - - case 170: - rrc->srb1_timer_reordering = T_Reordering_ms170; - break; - - case 180: - rrc->srb1_timer_reordering = T_Reordering_ms180; - break; - - case 190: - rrc->srb1_timer_reordering = T_Reordering_ms190; - break; - - case 200: - rrc->srb1_timer_reordering = T_Reordering_ms200; - break; - - default: + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_pdu %u!\n", + RC.config_file_name, i, srb1_params.srb1_poll_pdu); + } + + rrc->srb1_poll_byte = srb1_params.srb1_poll_byte; + + switch (srb1_params.srb1_poll_byte) { + case 25: + rrc->srb1_poll_byte = PollByte_kB25; + break; + + case 50: + rrc->srb1_poll_byte = PollByte_kB50; + break; + + case 75: + rrc->srb1_poll_byte = PollByte_kB75; + break; + + case 100: + rrc->srb1_poll_byte = PollByte_kB100; + break; + + case 125: + rrc->srb1_poll_byte = PollByte_kB125; + break; + + case 250: + rrc->srb1_poll_byte = PollByte_kB250; + break; + + case 375: + rrc->srb1_poll_byte = PollByte_kB375; + break; + + case 500: + rrc->srb1_poll_byte = PollByte_kB500; + break; + + case 750: + rrc->srb1_poll_byte = PollByte_kB750; + break; + + case 1000: + rrc->srb1_poll_byte = PollByte_kB1000; + break; + + case 1250: + rrc->srb1_poll_byte = PollByte_kB1250; + break; + + case 1500: + rrc->srb1_poll_byte = PollByte_kB1500; + break; + + case 2000: + rrc->srb1_poll_byte = PollByte_kB2000; + break; + + case 3000: + rrc->srb1_poll_byte = PollByte_kB3000; + break; + + default: + if (srb1_params.srb1_poll_byte >= 10000) + rrc->srb1_poll_byte = PollByte_kBinfinity; + else AssertFatal (0, - "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", - RC.config_file_name, i, srb1_timer_reordering); - } - } else { - rrc->srb1_timer_poll_retransmit = T_PollRetransmit_ms80; - rrc->srb1_timer_reordering = T_Reordering_ms35; - rrc->srb1_timer_status_prohibit = T_StatusProhibit_ms0; - rrc->srb1_poll_pdu = PollPDU_p4; - rrc->srb1_poll_byte = PollByte_kBinfinity; - rrc->srb1_max_retx_threshold = UL_AM_RLC__maxRetxThreshold_t8; - } - - break; + "Bad config value when parsing eNB configuration file %s, enb %d srb1_poll_byte %u!\n", + RC.config_file_name, i, srb1_params.srb1_poll_byte); + } + + if (srb1_params.srb1_timer_poll_retransmit <= 250) { + rrc->srb1_timer_poll_retransmit = (srb1_params.srb1_timer_poll_retransmit - 5)/5; + } else if (srb1_params.srb1_timer_poll_retransmit <= 500) { + rrc->srb1_timer_poll_retransmit = (srb1_params.srb1_timer_poll_retransmit - 300)/50 + 50; + } else { + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_poll_retransmit %u!\n", + RC.config_file_name, i, srb1_params.srb1_timer_poll_retransmit); + } + + if (srb1_params.srb1_timer_status_prohibit <= 250) { + rrc->srb1_timer_status_prohibit = srb1_params.srb1_timer_status_prohibit/5; + } else if ((srb1_params.srb1_timer_poll_retransmit >= 300) && (srb1_params.srb1_timer_poll_retransmit <= 500)) { + rrc->srb1_timer_status_prohibit = (srb1_params.srb1_timer_status_prohibit - 300)/50 + 51; + } else { + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_status_prohibit %u!\n", + RC.config_file_name, i, srb1_params.srb1_timer_status_prohibit); + } + + switch (srb1_params.srb1_timer_reordering) { + case 0: + rrc->srb1_timer_reordering = T_Reordering_ms0; + break; + + case 5: + rrc->srb1_timer_reordering = T_Reordering_ms5; + break; + + case 10: + rrc->srb1_timer_reordering = T_Reordering_ms10; + break; + + case 15: + rrc->srb1_timer_reordering = T_Reordering_ms15; + break; + + case 20: + rrc->srb1_timer_reordering = T_Reordering_ms20; + break; + + case 25: + rrc->srb1_timer_reordering = T_Reordering_ms25; + break; + + case 30: + rrc->srb1_timer_reordering = T_Reordering_ms30; + break; + + case 35: + rrc->srb1_timer_reordering = T_Reordering_ms35; + break; + + case 40: + rrc->srb1_timer_reordering = T_Reordering_ms40; + break; + + case 45: + rrc->srb1_timer_reordering = T_Reordering_ms45; + break; + + case 50: + rrc->srb1_timer_reordering = T_Reordering_ms50; + break; + + case 55: + rrc->srb1_timer_reordering = T_Reordering_ms55; + break; + + case 60: + rrc->srb1_timer_reordering = T_Reordering_ms60; + break; + + case 65: + rrc->srb1_timer_reordering = T_Reordering_ms65; + break; + + case 70: + rrc->srb1_timer_reordering = T_Reordering_ms70; + break; + + case 75: + rrc->srb1_timer_reordering = T_Reordering_ms75; + break; + + case 80: + rrc->srb1_timer_reordering = T_Reordering_ms80; + break; + + case 85: + rrc->srb1_timer_reordering = T_Reordering_ms85; + break; + + case 90: + rrc->srb1_timer_reordering = T_Reordering_ms90; + break; + + case 95: + rrc->srb1_timer_reordering = T_Reordering_ms95; + break; + + case 100: + rrc->srb1_timer_reordering = T_Reordering_ms100; + break; + + case 110: + rrc->srb1_timer_reordering = T_Reordering_ms110; + break; + + case 120: + rrc->srb1_timer_reordering = T_Reordering_ms120; + break; + + case 130: + rrc->srb1_timer_reordering = T_Reordering_ms130; + break; + + case 140: + rrc->srb1_timer_reordering = T_Reordering_ms140; + break; + + case 150: + rrc->srb1_timer_reordering = T_Reordering_ms150; + break; + + case 160: + rrc->srb1_timer_reordering = T_Reordering_ms160; + break; + + case 170: + rrc->srb1_timer_reordering = T_Reordering_ms170; + break; + + case 180: + rrc->srb1_timer_reordering = T_Reordering_ms180; + break; + + case 190: + rrc->srb1_timer_reordering = T_Reordering_ms190; + break; + + case 200: + rrc->srb1_timer_reordering = T_Reordering_ms200; + break; + + default: + AssertFatal (0, + "Bad config value when parsing eNB configuration file %s, enb %d srb1_timer_reordering %u!\n", + RC.config_file_name, i, srb1_params.srb1_timer_reordering); + } } } } @@ -3633,94 +3232,20 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { int enb_id; char *address = NULL; char *cidr = NULL; + + ccparams_lte_t ccparams_lte; + + memset((void*)&ccparams_lte,0,sizeof(ccparams_lte_t)); + + paramdef_t ENBSParams[] = ENBSPARAMS_DESC; paramdef_t ENBParams[] = ENBPARAMS_DESC; paramlist_def_t ENBParamList = {ENB_CONFIG_STRING_ENB_LIST,NULL,0}; /* get global parameters, defined outside any section in the config file */ config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL); - /* define CC params */ - int32_t Nid_cell = 0; - char *frame_type, *prefix_type, *pbch_repetition, *prach_high_speed, - *pusch_hoppingMode, *pusch_enable64QAM, *pusch_groupHoppingEnabled, - *pusch_sequenceHoppingEnabled, *phich_duration, *phich_resource, - *srs_enable, *srs_ackNackST, *srs_MaxUpPts, *pusch_alpha, - *pucch_deltaF_Format1, *pucch_deltaF_Format1b, *pucch_deltaF_Format2, - *pucch_deltaF_Format2a, *pucch_deltaF_Format2b, - *rach_preamblesGroupAConfig, *rach_messagePowerOffsetGroupB, *pcch_nB; - long long int downlink_frequency; - int32_t tdd_config, tdd_config_s, eutra_band, uplink_frequency_offset, - Nid_cell_mbsfn, N_RB_DL, nb_antenna_ports, prach_root, prach_config_index, - prach_zero_correlation, prach_freq_offset, pucch_delta_shift, - pucch_nRB_CQI, pucch_nCS_AN, pucch_n1_AN, pdsch_referenceSignalPower, - pdsch_p_b, pusch_n_SB, pusch_hoppingOffset, pusch_groupAssignment, - pusch_nDMRS1, srs_BandwidthConfig, srs_SubframeConfig, pusch_p0_Nominal, - pucch_p0_Nominal, msg3_delta_Preamble,rach_numberOfRA_Preambles; - int32_t rach_sizeOfRA_PreamblesGroupA, rach_messageSizeGroupA, - rach_powerRampingStep, rach_preambleInitialReceivedTargetPower, - rach_preambleTransMax, rach_raResponseWindowSize, - rach_macContentionResolutionTimer, rach_maxHARQ_Msg3Tx, - pcch_defaultPagingCycle, bcch_modificationPeriodCoeff, - ue_TimersAndConstants_t300, ue_TimersAndConstants_t301, - ue_TimersAndConstants_t310, ue_TimersAndConstants_t311, - ue_TimersAndConstants_n310, ue_TimersAndConstants_n311, - ue_TransmissionMode, ue_multiple_max; - char* prach_ConfigCommon_v1310 = NULL; - char* mpdcch_startSF_CSS_RA_r13 = NULL; - char* mpdcch_startSF_CSS_RA_r13_val = NULL; - char* pdsch_maxNumRepetitionCEmodeA_r13 = NULL; - char* pdsch_maxNumRepetitionCEmodeB_r13 = NULL; - - char* pusch_maxNumRepetitionCEmodeA_r13 = 0; - char* pusch_maxNumRepetitionCEmodeB_r13 = 0; - int prach_HoppingOffset_r13 = 0; - // avoid gcc warnings - (void)pdsch_maxNumRepetitionCEmodeB_r13; - (void)pusch_maxNumRepetitionCEmodeB_r13; - - const char *rxPool_sc_CP_Len; - const char *rxPool_sc_Period; - const char *rxPool_data_CP_Len; - libconfig_int rxPool_ResourceConfig_prb_Num; - libconfig_int rxPool_ResourceConfig_prb_Start; - libconfig_int rxPool_ResourceConfig_prb_End; - const char *rxPool_ResourceConfig_offsetIndicator_present; - libconfig_int rxPool_ResourceConfig_offsetIndicator_choice; - const char *rxPool_ResourceConfig_subframeBitmap_present; - char *rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_size; - libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - //SIB19 - //for discRxPool - const char *discRxPool_cp_Len; - const char *discRxPool_discPeriod; - libconfig_int discRxPool_numRetx; - libconfig_int discRxPool_numRepetition; - libconfig_int discRxPool_ResourceConfig_prb_Num; - libconfig_int discRxPool_ResourceConfig_prb_Start; - libconfig_int discRxPool_ResourceConfig_prb_End; - const char *discRxPool_ResourceConfig_offsetIndicator_present; - libconfig_int discRxPool_ResourceConfig_offsetIndicator_choice; - const char *discRxPool_ResourceConfig_subframeBitmap_present; - char *discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; - libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - //for discRxPoolPS - const char *discRxPoolPS_cp_Len; - const char *discRxPoolPS_discPeriod; - libconfig_int discRxPoolPS_numRetx; - libconfig_int discRxPoolPS_numRepetition; - libconfig_int discRxPoolPS_ResourceConfig_prb_Num; - libconfig_int discRxPoolPS_ResourceConfig_prb_Start; - libconfig_int discRxPoolPS_ResourceConfig_prb_End; - const char *discRxPoolPS_ResourceConfig_offsetIndicator_present; - libconfig_int discRxPoolPS_ResourceConfig_offsetIndicator_choice; - const char *discRxPoolPS_ResourceConfig_subframeBitmap_present; - char *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; - libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; - libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; - paramdef_t CCsParams[] = CCPARAMS_DESC; + paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS, NULL, 0}; /* map parameter checking array instances to parameter definition array instances */ @@ -3828,37 +3353,42 @@ int RCconfig_X2(MessageDef *msg_p, uint32_t i) { sprintf(aprefix, "%s.[%i].%s.[%i]", ENB_CONFIG_STRING_ENB_LIST, k, ENB_CONFIG_STRING_COMPONENT_CARRIERS, J); printf("X2: Getting %s\n",aprefix); config_get(CCsParams, sizeof(CCsParams)/sizeof(paramdef_t), aprefix); - X2AP_REGISTER_ENB_REQ (msg_p).eutra_band[J] = eutra_band; - X2AP_REGISTER_ENB_REQ (msg_p).downlink_frequency[J] = (uint32_t) downlink_frequency; - X2AP_REGISTER_ENB_REQ (msg_p).uplink_frequency_offset[J] = (unsigned int) uplink_frequency_offset; - X2AP_REGISTER_ENB_REQ (msg_p).Nid_cell[J]= Nid_cell; + X2AP_REGISTER_ENB_REQ (msg_p).eutra_band[J] = ccparams_lte.eutra_band; + X2AP_REGISTER_ENB_REQ (msg_p).downlink_frequency[J] = (uint32_t) ccparams_lte.downlink_frequency; + X2AP_REGISTER_ENB_REQ (msg_p).uplink_frequency_offset[J] = (unsigned int) ccparams_lte.uplink_frequency_offset; + X2AP_REGISTER_ENB_REQ (msg_p).Nid_cell[J]= ccparams_lte.Nid_cell; - if (Nid_cell>503) { + if (ccparams_lte.Nid_cell>503) { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for Nid_cell choice: 0...503 !\n", - RC.config_file_name, k, Nid_cell); + RC.config_file_name, k, ccparams_lte.Nid_cell); } - X2AP_REGISTER_ENB_REQ (msg_p).N_RB_DL[J]= N_RB_DL; + X2AP_REGISTER_ENB_REQ (msg_p).N_RB_DL[J]= ccparams_lte.N_RB_DL; - if ((N_RB_DL!=6) && (N_RB_DL!=15) && (N_RB_DL!=25) && (N_RB_DL!=50) && (N_RB_DL!=75) && (N_RB_DL!=100)) { + if ((ccparams_lte.N_RB_DL!=6) && + (ccparams_lte.N_RB_DL!=15) && + (ccparams_lte.N_RB_DL!=25) && + (ccparams_lte.N_RB_DL!=50) && + (ccparams_lte.N_RB_DL!=75) && + (ccparams_lte.N_RB_DL!=100)) { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for N_RB_DL choice: 6,15,25,50,75,100 !\n", - RC.config_file_name, k, N_RB_DL); + RC.config_file_name, k, ccparams_lte.N_RB_DL); } - if (strcmp(frame_type, "FDD") == 0) { + if (strcmp(ccparams_lte.frame_type, "FDD") == 0) { X2AP_REGISTER_ENB_REQ (msg_p).frame_type[J] = FDD; -} else if (strcmp(frame_type, "TDD") == 0) { +} else if (strcmp(ccparams_lte.frame_type, "TDD") == 0) { X2AP_REGISTER_ENB_REQ (msg_p).frame_type[J] = TDD; } else { AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for frame_type choice: FDD or TDD !\n", - RC.config_file_name, k, frame_type); + RC.config_file_name, k, ccparams_lte.frame_type); } - X2AP_REGISTER_ENB_REQ (msg_p).fdd_earfcn_DL[J] = to_earfcn_DL(eutra_band, downlink_frequency, N_RB_DL); - X2AP_REGISTER_ENB_REQ (msg_p).fdd_earfcn_UL[J] = to_earfcn_UL(eutra_band, downlink_frequency + uplink_frequency_offset, N_RB_DL); + X2AP_REGISTER_ENB_REQ (msg_p).fdd_earfcn_DL[J] = to_earfcn_DL(ccparams_lte.eutra_band, ccparams_lte.downlink_frequency, ccparams_lte.N_RB_DL); + X2AP_REGISTER_ENB_REQ (msg_p).fdd_earfcn_UL[J] = to_earfcn_UL(ccparams_lte.eutra_band, ccparams_lte.downlink_frequency + ccparams_lte.uplink_frequency_offset, ccparams_lte.N_RB_DL); } } diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index 9e43b8c61e..eae4e32482 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -19,7 +19,7 @@ * contact@openairinterface.org */ -/*! \file openair2/ENB_APP/enb_paramdef.f +/*! \file openair2/ENB_APP/enb_paramdef.h * \brief definition of configuration parameters for all eNodeB modules * \author Francois TABURET * \date 2017 @@ -341,11 +341,6 @@ typedef enum { #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A "pucch_deltaF_Format2a" #define ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B "pucch_deltaF_Format2b" -#define ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310 "prach_ConfigCommon_v1310" -#define ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13 "mpdcch_startSF_CSS_RA_r13" -#define ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL "mpdcch_startSF_CSS_RA_r13_val" -#define ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13 "prach_HoppingOffset_r13" - #define ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES "rach_numberOfRA_Preambles" #define ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG "rach_preamblesGroupAConfig" #define ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA "rach_sizeOfRA_PreamblesGroupA" @@ -428,6 +423,86 @@ typedef enum { /*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* init for checkedparam_t structure */ +typedef struct ccparams_lte_s { + char *frame_type; + int32_t tdd_config; + int32_t tdd_config_s; + char *prefix_type; + char *pbch_repetition; + int32_t eutra_band; + long long int downlink_frequency; + int32_t uplink_frequency_offset; + int32_t Nid_cell; + int32_t Nid_cell_mbsfn; + int32_t N_RB_DL; + int32_t nb_antenna_ports; + int32_t prach_root; + int32_t prach_config_index; + char *prach_high_speed; + int32_t prach_zero_correlation; + int32_t prach_freq_offset; + int32_t pucch_delta_shift; + int32_t pucch_nRB_CQI; + int32_t pucch_nCS_AN; + int32_t pucch_n1_AN; + int32_t pdsch_referenceSignalPower; + int32_t pdsch_p_b; + int32_t pusch_n_SB; + char *pusch_hoppingMode; + int32_t pusch_hoppingOffset; + char *pusch_enable64QAM; + char *pusch_groupHoppingEnabled; + int32_t pusch_groupAssignment; + char *pusch_sequenceHoppingEnabled; + int32_t pusch_nDMRS1; + char *phich_duration; + char *phich_resource; + char *srs_enable; + int32_t srs_BandwidthConfig; + int32_t srs_SubframeConfig; + char *srs_ackNackST; + char *srs_MaxUpPts; + int32_t pusch_p0_Nominal; + char *pusch_alpha; + int32_t pucch_p0_Nominal; + int32_t msg3_delta_Preamble; + int32_t ul_CyclicPrefixLength; + char *pucch_deltaF_Format1; + char *pucch_deltaF_Format1a; + char *pucch_deltaF_Format1b; + char *pucch_deltaF_Format2; + char *pucch_deltaF_Format2a; + char *pucch_deltaF_Format2b; + int32_t rach_numberOfRA_Preambles; + char *rach_preamblesGroupAConfig; + int32_t rach_sizeOfRA_PreamblesGroupA; + int32_t rach_messageSizeGroupA; + char *rach_messagePowerOffsetGroupB; + int32_t rach_powerRampingStep; + int32_t rach_preambleInitialReceivedTargetPower; + int32_t rach_preambleTransMax; + int32_t rach_raResponseWindowSize; + int32_t rach_macContentionResolutionTimer; + int32_t rach_maxHARQ_Msg3Tx; + int32_t pcch_defaultPagingCycle; + char *pcch_nB; + int32_t bcch_modificationPeriodCoeff; + int32_t ue_TimersAndConstants_t300; + int32_t ue_TimersAndConstants_t301; + int32_t ue_TimersAndConstants_t310; + int32_t ue_TimersAndConstants_t311; + int32_t ue_TimersAndConstants_n310; + int32_t ue_TimersAndConstants_n311; + int32_t ue_TransmissionMode; + int32_t ue_multiple_max; + int32_t srb1_timer_poll_retransmit; + int32_t srb1_timer_reordering; + int32_t srb1_timer_status_prohibit; + int32_t srb1_poll_pdu; + int32_t srb1_poll_byte; + int32_t srb1_max_retx_threshold; +} ccparams_lte_t; + #define CCPARAMS_CHECK { \ { .s5= {NULL }} , \ { .s5= {NULL }} , \ @@ -535,133 +610,83 @@ typedef enum { { .s5= {NULL }} , \ { .s5= {NULL }} , \ { .s5= {NULL }} , \ - { .s5= {NULL }} , \ - { .s5= {NULL }} , \ - { .s5= {NULL }} , \ - { .s5= {NULL }} , \ - { .s5= {NULL }} , \ - { .s5= {NULL }} , \ - { .s5= {NULL }} \ + { .s5= {NULL }} \ } /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* component carriers configuration parameters */ /* optname helpstr paramflags XXXptr defXXXval type numelt checked_param */ /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -#define CCPARAMS_DESC { \ -{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&tdd_config, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&tdd_config_s, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB, defintval:1, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_MULTIPLE_MAX, NULL, 0, iptr:&ue_multiple_max, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_SC_CP_LEN, NULL, 0, strptr:(char **)&rxPool_sc_CP_Len, defstrval:"normal", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_SC_PRIOD, NULL, 0, strptr:(char **)&rxPool_sc_Period, defstrval:"sf40", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_DATA_CP_LEN, NULL, 0, strptr:(char **)&rxPool_data_CP_Len, defstrval:"normal", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_PRB_START, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_PRB_END, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&rxPool_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&rxPool_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&rxPool_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED, NULL, 0, iptr:(int32_t *)&rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_CP_LEN, NULL, 0, strptr:(char **)&discRxPool_cp_Len, defstrval:"normal", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_DISCPERIOD, NULL, 0, strptr:(char **)&discRxPool_discPeriod, defstrval:"rf32", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_NUMRETX, NULL, 0, iptr:(int32_t *)&discRxPool_numRetx, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_NUMREPETITION, NULL, 0, iptr:(int32_t *)&discRxPool_numRepetition, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_START, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_END, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&discRxPool_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&discRxPool_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_CP_LEN, NULL, 0, strptr:(char **)&discRxPoolPS_cp_Len, defstrval:"normal", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_DISCPERIOD, NULL, 0, strptr:(char **)&discRxPoolPS_discPeriod, defstrval:"rf32", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_NUMRETX, NULL, 0, iptr:(int32_t *)&discRxPoolPS_numRetx, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_NUMREPETITION, NULL, 0, iptr:(int32_t *)&discRxPoolPS_numRepetition, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_START, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_END, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0} \ +#define CCPARAMS_DESC(ccparams) { \ +{ENB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&ccparams.frame_type, defstrval:"FDD", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG, NULL, 0, iptr:&ccparams.tdd_config, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_TDD_CONFIG_S, NULL, 0, iptr:&ccparams.tdd_config_s, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREFIX_TYPE, NULL, 0, strptr:&ccparams.prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PBCH_REPETITION, NULL, 0, strptr:&ccparams.pbch_repetition, defstrval:"FALSE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&ccparams.eutra_band, defintval:7, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&ccparams.downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&ccparams.uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&ccparams.Nid_cell, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&ccparams.N_RB_DL, defintval:25, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_CELL_MBSFN, NULL, 0, iptr:&ccparams.Nid_cell_mbsfn, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&ccparams.nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&ccparams.prach_root, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&ccparams.prach_config_index, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&ccparams.prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&ccparams.prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&ccparams.prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&ccparams.pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&ccparams.pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&ccparams.pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&ccparams.pucch_n1_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&ccparams.pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&ccparams.pdsch_p_b, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&ccparams.pusch_n_SB, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&ccparams.pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&ccparams.pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&ccparams.pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&ccparams.pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&ccparams.pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&ccparams.pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&ccparams.pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&ccparams.phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&ccparams.phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&ccparams.srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&ccparams.srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&ccparams.srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&ccparams.srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&ccparams.srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&ccparams.pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&ccparams.pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&ccparams.pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&ccparams.msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&ccparams.pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&ccparams.pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&ccparams.pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&ccparams.pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&ccparams.pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&ccparams.rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&ccparams.rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&ccparams.rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&ccparams.rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&ccparams.rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&ccparams.rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&ccparams.rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&ccparams.rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&ccparams.rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&ccparams.rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&ccparams.rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&ccparams.pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&ccparams.pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&ccparams.bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ccparams.ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ccparams.ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_MULTIPLE_MAX, NULL, 0, iptr:&ccparams.ue_multiple_max, defintval:4, TYPE_UINT, 0} \ } @@ -735,7 +760,6 @@ typedef enum { #define ENB_CONFIG_UETIMERS_N311_IDX 66 #define ENB_CONFIG_UE_TRANSMISSION_MODE_IDX 67 -/*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /*------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* SRB1 configuration parameters section name */ #define ENB_CONFIG_STRING_SRB1 "srb1_parameters" @@ -752,21 +776,27 @@ typedef enum { /* SRB1 configuration parameters */ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/ -#define SRB1PARAMS_DESC { \ -{ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, NULL, 0, iptr:&srb1_timer_poll_retransmit, defintval:80, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, NULL, 0, iptr:&srb1_timer_reordering, defintval:35, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, NULL, 0, iptr:&srb1_timer_status_prohibit, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRB1_POLL_PDU, NULL, 0, iptr:&srb1_poll_pdu, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRB1_POLL_BYTE, NULL, 0, iptr:&srb1_poll_byte, defintval:99999, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, NULL, 0, iptr:&srb1_max_retx_threshold, defintval:4, TYPE_UINT, 0} \ +typedef struct srb1_params_s { + int32_t srb1_timer_poll_retransmit; + int32_t srb1_timer_reordering; + int32_t srb1_timer_status_prohibit; + int32_t srb1_poll_pdu; + int32_t srb1_poll_byte; + int32_t srb1_max_retx_threshold; +} srb1_params_t; + +#define SRB1PARAMS_DESC(srb1_params) { \ +{ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT, NULL, 0, iptr:&srb1_params.srb1_timer_poll_retransmit, defintval:80, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRB1_TIMER_REORDERING, NULL, 0, iptr:&srb1_params.srb1_timer_reordering, defintval:35, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRB1_TIMER_STATUS_PROHIBIT, NULL, 0, iptr:&srb1_params.srb1_timer_status_prohibit, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRB1_POLL_PDU, NULL, 0, iptr:&srb1_params.srb1_poll_pdu, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRB1_POLL_BYTE, NULL, 0, iptr:&srb1_params.srb1_poll_byte, defintval:99999, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRB1_MAX_RETX_THRESHOLD, NULL, 0, iptr:&srb1_params.srb1_max_retx_threshold, defintval:4, TYPE_UINT, 0} \ } -/*-----------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* MME configuration parameters section name */ #define ENB_CONFIG_STRING_MME_IP_ADDRESS "mme_ip_address" -/* SRB1 configuration parameters names */ - #define ENB_CONFIG_STRING_MME_IPV4_ADDRESS "ipv4" #define ENB_CONFIG_STRING_MME_IPV6_ADDRESS "ipv6" @@ -1000,3 +1030,4 @@ typedef enum { /*-------------------------------------------------------------------------------------------------------------------------------------------------------------*/ #include "enb_paramdef_emtc.h" +#include "enb_paramdef_sidelink.h" diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h index 2ae0a1752d..41205ab63d 100644 --- a/openair2/ENB_APP/enb_paramdef_emtc.h +++ b/openair2/ENB_APP/enb_paramdef_emtc.h @@ -33,10 +33,13 @@ #include "common/config/config_paramdesc.h" #include "RRC_paramsvalues.h" -#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br" - - - +#define ENB_CONFIG_STRING_EMTC_PARAMETERS "emtc_parameters" +#define ENB_CONFIG_STRING_SCHEDULING_INFO_BR "scheduling_info_br" +#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" +#define ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310 "prach_ConfigCommon_v1310" +#define ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13 "mpdcch_startSF_CSS_RA_r13" +#define ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL "mpdcch_startSF_CSS_RA_r13_val" +#define ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13 "prach_HoppingOffset_r13" #define ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13 "schedulingInfoSIB1_BR_r13" #define ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13 "cellSelectionInfoCE_r13" #define ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13 "q_RxLevMinCE_r13" @@ -57,175 +60,250 @@ #define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "mpdcch_pdsch_HoppingOffset_r13" #define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13 "preamble_TransMax_ce_r13" #define ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13_VAL "preamble_TransMax_ce_r13_val" +#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" +#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" +#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" +#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13 "firstPreamble_r13" +#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13 "lastPreamble_r13" +#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13" +#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13" +#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13 " +#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13" +#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br" +#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br" +#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13" +#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13" +#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13" +#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13" +#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13" +#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band" +#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" +#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" +#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" +#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" +#define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" -#define ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pdsch_maxNumRepetitionCEmodeA_r13" -#define ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13 "pusch_maxNumRepetitionCEmodeA_r13" +typedef struct ccparams_eMTC_s { + /// indicator that eMTC is configured for this cell + int32_t eMTC_configured; + /// the SIB2 parameters for eMTC SIB2 + ccparams_lte_t ccparams; + int si_Narrowband_r13; + int si_TBS_r13; + int systemInfoValueTagSi_r13; + int firstPreamble_r13; + int lastPreamble_r13; + int ra_ResponseWindowSize_r13; + int mac_ContentionResolutionTimer_r13; + int rar_HoppingConfig_r13; + int rsrp_range_br; + int prach_config_index_br; + int prach_freq_offset_br; + int prach_StartingSubframe_r13; + int maxNumPreambleAttemptCE_r13; + int numRepetitionPerPreambleAttempt_r13; + int mpdcch_NumRepetition_RA_r13; + int prach_HoppingConfig_r13; + int *maxavailablenarrowband; + int pucch_info_value; + int paging_narrowbands_r13; + int mpdcch_numrepetition_paging_r13; + int nb_v1310; + char *pucch_NumRepetitionCE_Msg4_Level0_r13; + char *pucch_NumRepetitionCE_Msg4_Level1_r13; + char *pucch_NumRepetitionCE_Msg4_Level2_r13; + char *pucch_NumRepetitionCE_Msg4_Level3_r13; + int sib2_mpdcch_pdsch_hoppingNB_r13; + char *sib2_interval_DLHoppingConfigCommonModeA_r13; + int sib2_interval_DLHoppingConfigCommonModeA_r13_val; + char *sib2_interval_DLHoppingConfigCommonModeB_r13; + int sib2_interval_DLHoppingConfigCommonModeB_r13_val; + char *sib2_interval_ULHoppingConfigCommonModeA_r13; + int sib2_interval_ULHoppingConfigCommonModeA_r13_val; + char *sib2_interval_ULHoppingConfigCommonModeB_r13; + int sib2_interval_ULHoppingConfigCommonModeB_r13_val; + int sib2_mpdcch_pdsch_hoppingOffset_r13; + int pusch_HoppingOffset_v1310; + int hyperSFN_r13; + int eDRX_Allowed_r13; + int q_RxLevMinCE_r13; + int q_QualMinRSRQ_CE_r13; + char *si_WindowLength_BR_r13; + char *si_RepetitionPattern_r13; + int startSymbolBR_r13; + char *si_HoppingConfigCommon_r13; + char *si_ValidityTime_r13; + char *mpdcch_pdsch_HoppingNB_r13; + int interval_DLHoppingConfigCommonModeA_r13_val; + int interval_DLHoppingConfigCommonModeB_r13_val; + int mpdcch_pdsch_HoppingOffset_r13; + char *preambleTransMax_CE_r13; + int prach_HoppingOffset_r13; + int schedulingInfoSIB1_BR_r13; + int64_t fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + char *cellSelectionInfoCE_r13; + char *bandwidthReducedAccessRelatedInfo_r13; + char *fdd_DownlinkOrTddSubframeBitmapBR_r13; + char *fdd_UplinkSubframeBitmapBR_r13; + char *freqHoppingParametersDL_r13; + char *interval_DLHoppingConfigCommonModeA_r13; + char *interval_DLHoppingConfigCommonModeB_r13; + char *prach_ConfigCommon_v1310; + char *mpdcch_startSF_CSS_RA_r13; + char *mpdcch_startSF_CSS_RA_r13_val; + char *pdsch_maxNumRepetitionCEmodeA_r13; + char *pdsch_maxNumRepetitionCEmodeB_r13; + char *pusch_maxNumRepetitionCEmodeA_r13; + char *pusch_maxNumRepetitionCEmodeB_r13; +} ccparams_eMTC_t; +#define EMTCPARAMS_DESC(eMTCconfig) { \ + {"eMTC_configured", NULL, 0, iptr:&eMTCconfig.eMTC_configured, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&eMTCconfig.ccparams.prach_root, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&eMTCconfig.ccparams.prach_config_index, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&eMTCconfig.ccparams.prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&eMTCconfig.ccparams.prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&eMTCconfig.ccparams.prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&eMTCconfig.ccparams.pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&eMTCconfig.ccparams.pdsch_p_b, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_n_SB, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&eMTCconfig.ccparams.phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&eMTCconfig.ccparams.phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&eMTCconfig.ccparams.srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&eMTCconfig.ccparams.srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&eMTCconfig.ccparams.srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&eMTCconfig.ccparams.srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&eMTCconfig.ccparams.srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&eMTCconfig.ccparams.msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&eMTCconfig.ccparams.rach_numberOfRA_Preambles, defstrval:"n4", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&eMTCconfig.ccparams.rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&eMTCconfig.ccparams.rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&eMTCconfig.ccparams.rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&eMTCconfig.ccparams.rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&eMTCconfig.ccparams.rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&eMTCconfig.ccparams.rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&eMTCconfig.ccparams.rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&eMTCconfig.ccparams.rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&eMTCconfig.ccparams.pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&eMTCconfig.ccparams.pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&eMTCconfig.ccparams.bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&eMTCconfig.ccparams.rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ + {ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&eMTCconfig.schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ + {ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&eMTCconfig.prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&eMTCconfig.mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&eMTCconfig.mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&eMTCconfig.prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ + {ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&eMTCconfig.pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&eMTCconfig.cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&eMTCconfig.q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&eMTCconfig.bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&eMTCconfig.si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&eMTCconfig.si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&eMTCconfig.startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&eMTCconfig.si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&eMTCconfig.si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&eMTCconfig.freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&eMTCconfig.mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&eMTCconfig.interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&eMTCconfig.interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&eMTCconfig.interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&eMTCconfig.interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&eMTCconfig.mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&eMTCconfig.preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0} \ + } -#define ENB_CONFIG_STRING_BR_PARAMETERS "br_parameters" -#define BRPARAMS_DESC { \ -{"eMTC_configured", NULL, 0, iptr:&eMTC_configured, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&prach_root_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&prach_config_index_emtc, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&prach_high_speed_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&prach_zero_correlation_emtc, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&prach_freq_offset_emtc, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&pucch_delta_shift_emtc, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&pucch_nRB_CQI_emtc, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&pucch_nCS_AN_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&pucch_n1_AN_emtc, defintval:32, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&pdsch_referenceSignalPower_emtc, defintval:-29, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&pdsch_p_b_emtc, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&pusch_n_SB_emtc, defintval:1, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&pusch_hoppingMode_emtc, defstrval:"interSubFrame", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&pusch_hoppingOffset_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&pusch_enable64QAM_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&pusch_groupHoppingEnabled_emtc, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&pusch_groupAssignment_emtc, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&pusch_sequenceHoppingEnabled_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&pusch_nDMRS1_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&phich_duration_emtc, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&phich_resource_emtc, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&srs_enable_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&srs_BandwidthConfig_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&srs_SubframeConfig_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&srs_ackNackST_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&srs_MaxUpPts_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&pusch_p0_Nominal_emtc, defintval:-90, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&pusch_alpha_emtc, defstrval:"AL1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&pucch_p0_Nominal_emtc, defintval:-96, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&msg3_delta_Preamble_emtc, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&pucch_deltaF_Format1_emtc, defstrval:"DELTAF2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&pucch_deltaF_Format1b_emtc, defstrval:"deltaF3", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&pucch_deltaF_Format2_emtc, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&pucch_deltaF_Format2a_emtc, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&pucch_deltaF_Format2b_emtc, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&rach_numberOfRA_Preambles_emtc, defstrval:"n4", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig_emtc, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_sizeOfRA_PreamblesGroupA_emtc, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&rach_messageSizeGroupA_emtc, defintval:56, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&rach_messagePowerOffsetGroupB_emtc, defstrval:"minusinfinity", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&rach_powerRampingStep_emtc, defintval:4, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&rach_preambleInitialReceivedTargetPower_emtc, defintval:-100, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&rach_preambleTransMax_emtc, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&rach_raResponseWindowSize_emtc, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_macContentionResolutionTimer_emtc, defintval:48, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&rach_maxHARQ_Msg3Tx_emtc, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&pcch_defaultPagingCycle_emtc, defintval:128, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&pcch_nB_emtc, defstrval:"oneT", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&bcch_modificationPeriodCoeff_emtc, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&ue_TimersAndConstants_t300_emtc, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&ue_TimersAndConstants_t301_emtc, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&ue_TimersAndConstants_t310_emtc, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&ue_TimersAndConstants_t311_emtc, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&ue_TimersAndConstants_n310_emtc, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&ue_TimersAndConstants_n311_emtc, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&ue_TransmissionMode_emtc, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&rach_preamblesGroupAConfig_emtc, defstrval:"", TYPE_STRING, 0}, \ -} -#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI" -#define SYSTEM_INFO_VALUE_TAG_SI_DESC { \ -{"systemInfoValueTagSi_r13", NULL, 0, iptr:&systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ +#define SYSTEM_INFO_VALUE_TAG_SI_DESC(eMTCconfig) { \ +{"systemInfoValueTagSi_r13", NULL, 0, iptr:&eMTCconfig.systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ } -#define ENB_CONFIG_STRING_SCHEDULING_INFO_BR "scheduling_info_br" -#define SI_INFO_BR_DESC { \ -{"si_Narrowband_r13", NULL, 0, iptr:&si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ -{"si_TBS_r13", NULL, 0, iptr:&si_TBS_r13, defintval:5, TYPE_UINT, 0} \ +#define SI_INFO_BR_DESC(eMTCconfig) { \ +{"si_Narrowband_r13", NULL, 0, iptr:&eMTCconfig.si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ +{"si_TBS_r13", NULL, 0, iptr:&eMTCconfig.si_TBS_r13, defintval:5, TYPE_UINT, 0} \ } -#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list" -#define RSRP_RANGE_LIST_DESC { \ -{"rsrp_range_br", NULL, 0, iptr:&rsrp_range_br, defintval:0, TYPE_UINT, 0} \ +#define RSRP_RANGE_LIST_DESC(eMTCconfig) { \ +{"rsrp_range_br", NULL, 0, iptr:&eMTCconfig.rsrp_range_br, defintval:0, TYPE_UINT, 0} \ } -#define ENB_CONFIG_STRING_FIRST_PREAMBLE_R13 "firstPreamble_r13" -#define ENB_CONFIG_STRING_LAST_PREAMBLE_R13 "lastPreamble_r13" -#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13" -#define ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13" -#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13 " - -#define ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13 "rach_CE_LevelInfoList_r13" -#define RACH_CE_LEVELINFOLIST_R13_DESC { \ -{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13, NULL, 0, iptr:&firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_LAST_PREAMBLE_R13, NULL, 0, iptr:&lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, NULL, 0, iptr:&ra_ResponseWindowSize_r13, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13, NULL, 0, iptr:&mac_ContentionResolutionTimer_r13, defintval:80, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, NULL, 0, iptr:&rar_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}\ +#define RACH_CE_LEVELINFOLIST_R13_DESC(eMTCconfig) { \ +{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13, NULL, 0, iptr:&eMTCconfig.firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_LAST_PREAMBLE_R13, NULL, 0, iptr:&eMTCconfig.lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, NULL, 0, iptr:&eMTCconfig.ra_ResponseWindowSize_r13, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13, NULL, 0, iptr:&eMTCconfig.mac_ContentionResolutionTimer_r13, defintval:80, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, NULL, 0, iptr:&eMTCconfig.rar_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}\ } -#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br" -#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br" -#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13" -#define ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13" -#define ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13" -#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13" -#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13" -#define ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band" - -#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13" -#define PRACH_PARAMS_CE_R13_DESC { \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&maxNumPreambleAttemptCE_r13, defintval:10, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&numRepetitionPerPreambleAttempt_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&mpdcch_NumRepetition_RA_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&prach_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}, \ +#define PRACH_PARAMS_CE_R13_DESC(eMTCconfig) { \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&eMTCconfig.prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&eMTCconfig.prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&eMTCconfig.prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&eMTCconfig.maxNumPreambleAttemptCE_r13, defintval:10, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&eMTCconfig.numRepetitionPerPreambleAttempt_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&eMTCconfig.mpdcch_NumRepetition_RA_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&eMTCconfig.prach_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_INTARRAY, 0} \ } -#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value" - -#define ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13 "n1PUCCH_AN_InfoList_r13" -#define N1PUCCH_AN_INFOLIST_R13_DESC { \ -{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&pucch_info_value, defintval:0, TYPE_UINT, 0} \ +#define N1PUCCH_AN_INFOLIST_R13_DESC(eMTCconfig) { \ +{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&eMTCconfig.pucch_info_value, defintval:0, TYPE_UINT, 0} \ } -#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310" -#define PCCH_CONFIG_V1310_DESC { \ -{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&mpdcch_numrepetition_paging_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&nb_v1310, defintval:256, TYPE_UINT, 0} \ + +#define PCCH_CONFIG_V1310_DESC(eMTCconfig) { \ +{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&eMTCconfig.paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&eMTCconfig.mpdcch_numrepetition_paging_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&eMTCconfig.nb_v1310, defintval:256, TYPE_UINT, 0} \ } -#define ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13 "sib2_freq_hoppingParameters_r13" -#define SIB2_FREQ_HOPPING_R13_DESC { \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingNB_r13, defintval:0, TYPE_UINT, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&sib2_interval_DLHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&sib2_interval_DLHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:4, TYPE_UINT, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, strptr:&sib2_interval_ULHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ + +#define SIB2_FREQ_HOPPING_R13_DESC(eMTCconfig) { \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, iptr:&eMTCconfig.sib2_mpdcch_pdsch_hoppingNB_r13, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:4, TYPE_UINT, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&eMTCconfig.sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 7f55aa8d23..911289ef7a 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -276,7 +276,8 @@ generate_Msg2(module_id_t module_idP, int CC_idP, frame_t frameP, if (absSF > absSF_Msg2) return; // we're not ready yet, need to be to start == - if (cc[CC_idP].radioResourceConfigCommon_BR) { + if (cc[CC_idP].mib->message.schedulingInfoSIB1_BR_r13 > 0 && + cc[CC_idP].radioResourceConfigCommon_BR) { ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; @@ -606,7 +607,8 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, int pucchreps[4] = { 1, 1, 1, 1 }; int n1pucchan[4] = { 0, 0, 0, 0 }; - if (cc[CC_idP].radioResourceConfigCommon_BR) { + if (cc[CC_idP].mib->message.schedulingInfoSIB1_BR_r13 > 0 && + cc[CC_idP].radioResourceConfigCommon_BR) { ext4_prach = cc[CC_idP].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; ext4_pucch = cc[CC_idP].radioResourceConfigCommon_BR->ext4->pucch_ConfigCommon_v1310; @@ -656,7 +658,7 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); UE_id = find_UE_id(module_idP, ra->rnti); - AssertFatal(UE_id >= 0, "Can't find UE for t-crnti\n"); + AssertFatal(UE_id >= 0, "Can't find UE for t-crnti %x\n",ra->rnti); // set HARQ process round to 0 for this UE @@ -1361,18 +1363,21 @@ initiate_ra_proc(module_id_t module_idP, COMMON_channels_t *cc = &RC.mac[module_idP]->common_channels[CC_id]; RA_t *ra = &cc->ra[0]; + static uint8_t failure_cnt = 0; #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) struct PRACH_ConfigSIB_v1310 *ext4_prach = NULL; PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13 = NULL; - static uint8_t failure_cnt = 0; - if (cc->radioResourceConfigCommon_BR - && cc->radioResourceConfigCommon_BR->ext4) { - ext4_prach = cc->radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; - prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; + + if (cc->mib->message.schedulingInfoSIB1_BR_r13>0) { + AssertFatal(cc->radioResourceConfigCommon_BR != NULL,"radioResourceConfigCommon_BR is null\n"); + AssertFatal(cc->radioResourceConfigCommon_BR->ext4 != NULL, "radioResourceConfigCommon_BR->ext4 is null\n"); + ext4_prach = cc->radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; + AssertFatal(ext4_prach!=NULL,"ext4_prach is null\n"); + prach_ParametersListCE_r13 = &ext4_prach->prach_ParametersListCE_r13; } #endif /* #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) */ diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 7e1ea7be67..1abe817aac 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -2704,7 +2704,7 @@ void dlsch_scheduler_qos_multiplexing(module_id_t Mod_id, int frameP, sub_frame_ } -#ifdef Rel14 +#if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) //------------------------------------------------------------------------------ void schedule_ue_spec_br( @@ -2713,9 +2713,9 @@ schedule_ue_spec_br( sub_frame_t subframeP ) { int CC_id = 0,UE_id; - eNB_MAC_INST *eNB = RC.mac[module_idP]; - COMMON_channels_t *cc = eNB->common_channels; - UE_list_t *UE_list = &eNB->UE_list; + eNB_MAC_INST *mac = RC.mac[module_idP]; + COMMON_channels_t *cc = mac->common_channels; + UE_list_t *UE_list = &mac->UE_list; UE_TEMPLATE *UE_template; UE_sched_ctrl *ue_sched_ctl; int32_t tpc=1; @@ -2749,11 +2749,13 @@ schedule_ue_spec_br( uint32_t ackNAK_absSF; int first_rb; - dl_req = &eNB->DL_req[CC_id].dl_config_request_body; + dl_req = &mac->DL_req[CC_id].dl_config_request_body; dl_config_pdu = &dl_req->dl_config_pdu_list[dl_req->number_pdu]; if ((frameP&1) == 0) return; + if (cc[CC_id].mib->message.schedulingInfoSIB1_BR_r13 ==0) return; + if (cc[CC_id].radioResourceConfigCommon_BR) { ext4_prach = cc[CC_id].radioResourceConfigCommon_BR->ext4->prach_ConfigCommon_v1310; @@ -3121,7 +3123,7 @@ schedule_ue_spec_br( if (opt_enabled == 1) { trace_pdu(1, (uint8_t *)UE_list->DLSCH_pdu[CC_id][0][UE_id].payload[0], TBS, module_idP, 3, UE_RNTI(module_idP,UE_id), - eNB->frame, eNB->subframe,0,0); + mac->frame, mac->subframe,0,0); LOG_D(OPT,"[eNB %d][DLSCH] CC_id %d Frame %d rnti %x with size %d\n", module_idP, CC_id, frameP, UE_RNTI(module_idP,UE_id), TBS); } @@ -3134,7 +3136,7 @@ schedule_ue_spec_br( /* TODO: fix how we deal with power, unit is not dBm, it's special from nfapi */ normalized_rx_power = (5*ue_sched_ctl->pucch1_snr[CC_id]-640)/10+30; - target_rx_power = eNB->puCch10xSnr/10+30; + target_rx_power = mac->puCch10xSnr/10+30; // this assumes accumulated tpc // make sure that we are only sending a tpc update once a frame, otherwise the control loop will freak out @@ -3241,7 +3243,7 @@ schedule_ue_spec_br( memset ((void *) dl_config_pdu, 0, sizeof (nfapi_dl_config_request_pdu_t)); dl_config_pdu->pdu_type = NFAPI_DL_CONFIG_DLSCH_PDU_TYPE; dl_config_pdu->pdu_size = (uint8_t) (2 + sizeof (nfapi_dl_config_dlsch_pdu)); - dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = eNB->pdu_index[CC_id]; + dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index = mac->pdu_index[CC_id]; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.rnti = rnti; dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.resource_allocation_type = 2; // format 1A/1B/1D dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.virtual_resource_block_assignment_flag = 0; // localized @@ -3273,18 +3275,18 @@ schedule_ue_spec_br( dl_req->number_pdu++; // DL request - eNB->TX_req[CC_id].sfn_sf = (frameP << 4) + subframeP; - TX_req = &eNB->TX_req[CC_id].tx_request_body.tx_pdu_list[eNB->TX_req[CC_id].tx_request_body.number_of_pdus]; + mac->TX_req[CC_id].sfn_sf = (frameP << 4) + subframeP; + TX_req = &mac->TX_req[CC_id].tx_request_body.tx_pdu_list[mac->TX_req[CC_id].tx_request_body.number_of_pdus]; TX_req->pdu_length = get_TBS_DL(UE_template->mcs[harq_pid], 6); - TX_req->pdu_index = eNB->pdu_index[CC_id]++; + TX_req->pdu_index = mac->pdu_index[CC_id]++; TX_req->num_segments = 1; TX_req->segments[0].segment_length = TX_req->pdu_length; - TX_req->segments[0].segment_data = eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0]; - eNB->TX_req[CC_id].tx_request_body.number_of_pdus++; + TX_req->segments[0].segment_data = mac->UE_list.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0]; + mac->TX_req[CC_id].tx_request_body.number_of_pdus++; ackNAK_absSF = absSF + 4; - ul_req = &eNB->UL_req_tmp[CC_id][ackNAK_absSF % 10].ul_config_request_body; + ul_req = &mac->UL_req_tmp[CC_id][ackNAK_absSF % 10].ul_config_request_body; ul_config_pdu = &ul_req->ul_config_pdu_list[ul_req->number_of_pdus]; ul_config_pdu->pdu_type = NFAPI_UL_CONFIG_UCI_HARQ_PDU_TYPE; @@ -3309,10 +3311,10 @@ schedule_ue_spec_br( } ul_req->number_of_pdus++; T (T_ENB_MAC_UE_DL_PDU_WITH_DATA, T_INT (module_idP), T_INT (CC_id), T_INT (rnti), T_INT (frameP), T_INT (subframeP), - T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&eNB->UE_list.DLSCH_pdu[CC_id][0][UE_id].payload[0], TX_req->pdu_length)); + T_INT (0 /*harq_pid always 0? */ ), T_BUFFER (&mac->UE_list.DLSCH_pdu[CC_id][0][UE_id].payload[0], TX_req->pdu_length)); if (opt_enabled == 1) { - trace_pdu (1, (uint8_t *) eNB->UE_list.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0], TX_req->pdu_length , UE_id, 3, rnti, frameP, subframeP, 0, 0); + trace_pdu (1, (uint8_t *) mac->UE_list.DLSCH_pdu[CC_id][0][(unsigned char) UE_id].payload[0], TX_req->pdu_length , UE_id, 3, rnti, frameP, subframeP, 0, 0); LOG_D (OPT, "[eNB %d][DLSCH] CC_id %d Frame %d trace pdu for rnti %x with size %d\n", module_idP, CC_id, frameP, rnti, TX_req->pdu_length ); } @@ -3818,6 +3820,7 @@ void schedule_PCH(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP) // dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.bf_vector = ; // Rel10 fields + #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) dl_config_pdu->dlsch_pdu.dlsch_pdu_rel10.pdsch_start = 3; #endif diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf index ba2e7f1ada..750936cfea 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf @@ -31,9 +31,9 @@ log_config = { global_log_verbosity ="medium"; hw_log_level ="info"; hw_log_verbosity ="medium"; - phy_log_level ="debug"; + phy_log_level ="info"; phy_log_verbosity ="medium"; - mac_log_level ="debug"; + mac_log_level ="info"; mac_log_verbosity ="high"; rlc_log_level ="info"; rlc_log_verbosity ="medium"; From 246ee327fb6a662a43e7a378bb955e3ea219b99e Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 18 Nov 2018 20:17:18 +0100 Subject: [PATCH 095/125] rework of configuration for eMTC/Sidelink. Removal of warnings introduced by eMTC code. Validation of configuration component for eMTC and regular LTE. Sidelink is still not configured. --- cmake_targets/CMakeLists.txt | 6 +- openair1/PHY/LTE_TRANSPORT/dci_tools.c | 1 - openair1/PHY/LTE_TRANSPORT/dci_tools_common.c | 2 +- openair1/PHY/LTE_TRANSPORT/edci.c | 6 +- openair1/PHY/LTE_TRANSPORT/transport_proto.h | 4 + openair2/COMMON/rrc_messages_types.h | 2 +- openair2/ENB_APP/enb_config.c | 1350 +---------------- openair2/ENB_APP/enb_config.h | 4 + openair2/ENB_APP/enb_paramdef.h | 3 + openair2/ENB_APP/enb_paramdef_emtc.h | 323 ++-- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 2 +- openair2/LAYER2/MAC/mac_proto.h | 10 +- openair2/LAYER2/MAC/rar_tools.c | 3 +- openair2/RRC/LTE/MESSAGES/asn1_msg.c | 622 ++++---- openair2/RRC/LTE/rrc_eNB.c | 159 +- .../CONF/enb.band13.tm1.50PRB.emtc.conf | 66 +- 16 files changed, 678 insertions(+), 1885 deletions(-) diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt index 3e00a5db0e..6242e636a3 100755 --- a/cmake_targets/CMakeLists.txt +++ b/cmake_targets/CMakeLists.txt @@ -231,8 +231,8 @@ add_definitions("-DPACKAGE_BUGREPORT=\"openair4g-devel@lists.eurecom.fr\"") # Debug related options ######################################### -add_boolean_option(ASN_DEBUG False "ASN1 coder/decoder Debug") -add_boolean_option(EMIT_ASN_DEBUG False "ASN1 coder/decoder Debug") +add_boolean_option(ASN_DEBUG False "ASN1 coder/decoder Debug") +add_boolean_option(ASN_EMIT_DEBUG False "ASN1 coder/decoder Debug") add_boolean_option(MSG_PRINT False "print debug messages") add_boolean_option(DISABLE_XER_PRINT False "print XER Format") add_boolean_option(XER_PRINT False "print XER Format") @@ -1369,6 +1369,8 @@ set (MAC_SRC_UE set (ENB_APP_SRC ${OPENAIR2_DIR}/ENB_APP/enb_app.c ${OPENAIR2_DIR}/ENB_APP/enb_config.c + ${OPENAIR2_DIR}/ENB_APP/enb_config_SL.c + ${OPENAIR2_DIR}/ENB_APP/enb_config_eMTC.c ${OPENAIR2_DIR}/ENB_APP/RRC_config_tools.c ) diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c index c23f1a2d1d..e221093714 100755 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools.c @@ -2145,7 +2145,6 @@ fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci nfapi_hi_dci0_mpdcch_dci_pdu_rel13_t *rel13 = &pdu->mpdcch_dci_pdu_rel13; uint32_t cqi_req = rel13->csi_request; - uint32_t dai = rel13->dl_assignment_index; uint32_t TPC = rel13->tpc; uint32_t mcs = rel13->mcs; uint32_t hopping = rel13->frequency_hopping_flag; diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c index 56dc211cc4..dbf5814f30 100644 --- a/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c +++ b/openair1/PHY/LTE_TRANSPORT/dci_tools_common.c @@ -296,7 +296,7 @@ void conv_eMTC_rballoc (uint16_t resource_block_coding, uint32_t N_RB_DL, uint32 int ind = first_rb >> 5; int ind_mod = first_rb & 31; - AssertFatal(RIV<32,"RIV is %d > 31\n"); + AssertFatal(RIV<32,"RIV is %d > 31\n",RIV); if (((N_RB_DL & 1) > 0) && (narrowband >= (N_NB_DL >> 1))) first_rb++; diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c index 04cfeecf1c..841900e5aa 100755 --- a/openair1/PHY/LTE_TRANSPORT/edci.c +++ b/openair1/PHY/LTE_TRANSPORT/edci.c @@ -39,6 +39,7 @@ #include "SCHED/sched_eNB.h" #include "SIMULATION/TOOLS/sim.h" // for taus #include "PHY/sse_intrin.h" +#include "PHY/LTE_REFSIG/lte_refsig.h" #include "assertions.h" #include "T.h" @@ -270,7 +271,6 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, LTE_DL_FRAME_PARMS *fp = &eNB->frame_parms; int i; int gain_lin_QPSK; - uint8_t bitsperCCE; uint16_t *mpdcchtab; uint32_t x1, x2, s = 0; @@ -278,7 +278,7 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, uint16_t j0, j, idelta; uint16_t i0; - int off; + int off=0; // Assumption: only handle a single MPDCCH per narrowband @@ -453,11 +453,13 @@ void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, (nprb<= last_prb)) { ((int16_t *) & yIQ)[0] = (((s >> (i & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; ((int16_t *) & yIQ)[1] = (((s >> ((i + 1) & 0x1f)) & 1) == 1) ? -gain_lin_QPSK : gain_lin_QPSK; + AssertFatal(mdci->transmission_type==1,"transmission_type %d!=1, handle this ...\n",mdci->transmission_type); if (mdci->transmission_type==1) { // same thing on both 107 and 109 txF[(5*mprime)] = yIQ; txF[1+(5*mprime)] = yIQ; } else { // put on selected antenna port with w sequence + if (((mprime+nprb)&1) == 0) txF[off+(5*mprime)] = yIQ*w[lprime]; else diff --git a/openair1/PHY/LTE_TRANSPORT/transport_proto.h b/openair1/PHY/LTE_TRANSPORT/transport_proto.h index 37ac335d02..65f042f946 100644 --- a/openair1/PHY/LTE_TRANSPORT/transport_proto.h +++ b/openair1/PHY/LTE_TRANSPORT/transport_proto.h @@ -385,6 +385,8 @@ uint8_t generate_dci_top(uint8_t num_pdcch_symbols, uint32_t sub_frame_offset); +void generate_mdci_top(PHY_VARS_eNB * eNB, int frame, int subframe, int16_t amp, int32_t ** txdataF); + void generate_64qam_table(void); void generate_16qam_table(void); @@ -421,6 +423,8 @@ void fill_dci0(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc,DC void fill_ulsch(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_ulsch_pdu *ulsch_pdu,int frame,int subframe); +void fill_mpdcch_dci0 (PHY_VARS_eNB * eNB, eNB_rxtx_proc_t * proc, mDCI_ALLOC_t * dci_alloc, nfapi_hi_dci0_mpdcch_dci_pdu * pdu); + int generate_eNB_ulsch_params_from_rar(PHY_VARS_eNB *eNB, unsigned char *rar_pdu, uint32_t frame, diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index d8d5fe5f9d..6ae297ba2b 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -186,7 +186,7 @@ typedef struct RrcConfigurationReq_s { int16_t Nid_cell[MAX_NUM_CCs];// for testing, change later int16_t N_RB_DL[MAX_NUM_CCs];// for testing, change later int nb_antenna_ports[MAX_NUM_CCs]; - + int eMBMS_configured; int eMTC_configured; int SL_configured; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 4f65d6098e..2dd978cd9e 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -368,19 +368,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK; paramdef_t CCsParams[] = CCPARAMS_DESC(ccparams_lte); paramlist_def_t CCsParamList = {ENB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0}; - paramdef_t brParams[] = EMTCPARAMS_DESC(eMTCconfig); - paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC(eMTCconfig); - paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; - paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC(eMTCconfig); - paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; - paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC(eMTCconfig); - paramlist_def_t rsrprangelist = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0}; - paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC(eMTCconfig); - paramlist_def_t prachParamslist = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0}; - paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC(eMTCconfig); - paramlist_def_t n1PUCCHInfoList = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0}; - paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC(eMTCconfig); - paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC(eMTCconfig); + + paramdef_t eMTCParams[] = EMTCPARAMS_DESC((&eMTCconfig)); + checkedparam_t config_check_eMTCparams[] = EMTCPARAMS_CHECK; srb1_params_t srb1_params; memset((void*)&srb1_params,0,sizeof(srb1_params_t)); @@ -395,6 +385,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { CCsParams[I].chkPptr = &(config_check_CCparams[I]); } + + for (int I = 0; I < (sizeof(CCsParams) / sizeof(paramdef_t)); I++) { + eMTCParams[I].chkPptr = &(config_check_eMTCparams[I]); + } + /* get global parameters, defined outside any section in the config file */ config_get( ENBSParams,sizeof(ENBSParams)/sizeof(paramdef_t),NULL); num_enbs = ENBSParams[ENB_ACTIVE_ENBS_IDX].numelt; @@ -1382,1334 +1377,33 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { break; } + // eMBMS configuration + RRC_CONFIGURATION_REQ(msg_p).eMBMS_configured = 0; + printf("No eMBMS configuration, skipping it\n"); + + // eMTC configuration char brparamspath[MAX_OPTNAME_SIZE*2 + 16]; sprintf(brparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_EMTC_PARAMETERS); - config_get( brParams, sizeof(brParams)/sizeof(paramdef_t), brparamspath); + config_get(eMTCParams, sizeof(eMTCParams)/sizeof(paramdef_t), brparamspath); RRC_CONFIGURATION_REQ(msg_p).eMTC_configured = eMTCconfig.eMTC_configured&1; - if (eMTCconfig.eMTC_configured > 0) { - printf("Found parameters for eMTC\n"); - RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[j] = eMTCconfig.schedulingInfoSIB1_BR_r13; - - - if (!strcmp(eMTCconfig.cellSelectionInfoCE_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[j]= eMTCconfig.q_RxLevMinCE_r13; - // RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= calloc(1, sizeof(long)); - // *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[j]= q_QualMinRSRQ_CE_r13; - } else { - RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[j] = FALSE; - } - - - - if (!strcmp(eMTCconfig.bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = TRUE; - - - - if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms20")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 0; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms40")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 1; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms60")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 2; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms80")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 3; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms120")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 4; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms160")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 5; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "ms200")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 6; - } else if (!strcmp(eMTCconfig.si_WindowLength_BR_r13, "spare")) { - RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[j] = 7; - } - - - if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "everyRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 0; - } else if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "every2ndRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 1; - } else if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "every4thRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 2; - } else if (!strcmp(eMTCconfig.si_RepetitionPattern_r13, "every8thRF")) { - RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[j] = 3; - } - - } else { - RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[j] = FALSE; - } - - char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = schedulingInfoBrParamList.numelt; - int siInfoindex; - for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) { - sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_EMTC_PARAMETERS, siInfoindex); - config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath); - RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][siInfoindex] = eMTCconfig.si_Narrowband_r13; - RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][siInfoindex] = eMTCconfig.si_TBS_r13; - } - - - - // RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[j].system_info_value_tag_SI_size[j] = 0; - - - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = CALLOC(1, sizeof(BOOLEAN_t)); - if (!strcmp(eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = FALSE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - } else { - *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[j] = eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_val_r13; - } - - RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[j] = eMTCconfig.startSymbolBR_r13; - - - if (!strcmp(eMTCconfig.si_HoppingConfigCommon_r13, "off")) { - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 1; - } else if (!strcmp(eMTCconfig.si_HoppingConfigCommon_r13, "on")) { - RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[j] = 0; - } - - - RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(eMTCconfig.si_ValidityTime_r13, "true")) { - *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[j] = 0; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", - RC.config_file_name, i); - } - - - if (!strcmp(eMTCconfig.freqHoppingParametersDL_r13, "ENABLE")) - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = TRUE; - - if (!strcmp(eMTCconfig.interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[j] = eMTCconfig.interval_DLHoppingConfigCommonModeA_r13_val; - - if (!strcmp(eMTCconfig.interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = FALSE; - else - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[j] = eMTCconfig.interval_DLHoppingConfigCommonModeB_r13_val; - - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = calloc(1, sizeof(long)); - if (!strcmp(eMTCconfig.mpdcch_pdsch_HoppingNB_r13, "nb2")) { - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 0; - } else if (!strcmp(eMTCconfig.mpdcch_pdsch_HoppingNB_r13, "nb4")) { - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[j] = 1; - } else { - AssertFatal(0, - "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", - RC.config_file_name, i); - } - - - RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[j] = eMTCconfig.mpdcch_pdsch_HoppingOffset_r13; - - } - else - { - RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[j] = FALSE; - } - - /** ------------------------------SIB2/3 BR------------------------------------------ */ - - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = eMTCconfig.ccparams.prach_root; - - if ((eMTCconfig.ccparams.prach_root <0) || (eMTCconfig.ccparams.prach_root > 1023)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.prach_root); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_config_index = eMTCconfig.ccparams.prach_config_index; - - if ((eMTCconfig.ccparams.prach_config_index <0) || (eMTCconfig.ccparams.prach_config_index > 63)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.prach_config_index); - - if (!eMTCconfig.ccparams.prach_high_speed) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PRACH_HIGH_SPEED); - else if (strcmp(eMTCconfig.ccparams.prach_high_speed, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = TRUE; - } else if (strcmp(eMTCconfig.ccparams.prach_high_speed, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_high_speed = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, eMTCconfig.ccparams.prach_high_speed); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_zero_correlation = eMTCconfig.ccparams.prach_zero_correlation; - - if ((eMTCconfig.ccparams.prach_zero_correlation <0) || (eMTCconfig.ccparams.prach_zero_correlation > 15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", - RC.config_file_name, i, eMTCconfig.ccparams.prach_zero_correlation); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_freq_offset = eMTCconfig.ccparams.prach_freq_offset; - - if ((eMTCconfig.ccparams.prach_freq_offset <0) || (eMTCconfig.ccparams.prach_freq_offset > 94)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", - RC.config_file_name, i, eMTCconfig.ccparams.prach_freq_offset); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_delta_shift = eMTCconfig.ccparams.pucch_delta_shift-1; - - if ((eMTCconfig.ccparams.pucch_delta_shift <1) || (eMTCconfig.ccparams.pucch_delta_shift > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_delta_shift); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nRB_CQI = eMTCconfig.ccparams.pucch_nRB_CQI; - - if ((eMTCconfig.ccparams.pucch_nRB_CQI <0) || (eMTCconfig.ccparams.pucch_nRB_CQI > 98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_nRB_CQI); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_nCS_AN = eMTCconfig.ccparams.pucch_nCS_AN; - - if ((eMTCconfig.ccparams.pucch_nCS_AN <0) || (eMTCconfig.ccparams.pucch_nCS_AN > 7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_nCS_AN); - - //#if (RRC_VERSION < MAKE_VERSION(10, 0, 0)) - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_n1_AN = eMTCconfig.ccparams.pucch_n1_AN; - - if ((eMTCconfig.ccparams.pucch_n1_AN <0) || (eMTCconfig.ccparams.pucch_n1_AN > 2047)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_n1_AN); - - //#endif - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_referenceSignalPower = eMTCconfig.ccparams.pdsch_referenceSignalPower; - - if ((eMTCconfig.ccparams.pdsch_referenceSignalPower <-60) || (eMTCconfig.ccparams.pdsch_referenceSignalPower > 50)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pdsch_referenceSignalPower); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pdsch_p_b = eMTCconfig.ccparams.pdsch_p_b; - - if ((eMTCconfig.ccparams.pdsch_p_b <0) || (eMTCconfig.ccparams.pdsch_p_b > 3)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pdsch_p_b); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_n_SB = eMTCconfig.ccparams.pusch_n_SB; - - if ((eMTCconfig.ccparams.pusch_n_SB <1) || (eMTCconfig.ccparams.pusch_n_SB > 4)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_n_SB); - - if (!eMTCconfig.ccparams.pusch_hoppingMode) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); - else if (strcmp(eMTCconfig.ccparams.pusch_hoppingMode,"interSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; - } else if (strcmp(eMTCconfig.ccparams.pusch_hoppingMode,"intraAndInterSubFrame")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingMode = PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_hoppingMode); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_hoppingOffset = eMTCconfig.ccparams.pusch_hoppingOffset; - - if ((eMTCconfig.ccparams.pusch_hoppingOffset<0) || (eMTCconfig.ccparams.pusch_hoppingOffset>98)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_hoppingMode); - - if (!eMTCconfig.ccparams.pusch_enable64QAM) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); - else if (strcmp(eMTCconfig.ccparams.pusch_enable64QAM, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = TRUE; - } else if (strcmp(eMTCconfig.ccparams.pusch_enable64QAM, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_enable64QAM = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_enable64QAM); - - if (!eMTCconfig.ccparams.pusch_groupHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); - else if (strcmp(eMTCconfig.ccparams.pusch_groupHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled = TRUE; - } else if (strcmp(eMTCconfig.ccparams.pusch_groupHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupHoppingEnabled= FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_groupHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_groupAssignment = eMTCconfig.ccparams.pusch_groupAssignment; - - if ((eMTCconfig.ccparams.pusch_groupAssignment<0)||(eMTCconfig.ccparams.pusch_groupAssignment>29)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_groupAssignment); - - if (!eMTCconfig.ccparams.pusch_sequenceHoppingEnabled) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", - RC.config_file_name, i, ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); - else if (strcmp(eMTCconfig.ccparams.pusch_sequenceHoppingEnabled, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = TRUE; - } else if (strcmp(eMTCconfig.ccparams.pusch_sequenceHoppingEnabled, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_sequenceHoppingEnabled = FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_sequenceHoppingEnabled); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_nDMRS1= eMTCconfig.ccparams.pusch_nDMRS1; //cyclic_shift in RRC! - - if ((eMTCconfig.ccparams.pusch_nDMRS1 <0) || (eMTCconfig.ccparams.pusch_nDMRS1>7)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_nDMRS1); - - if (strcmp(eMTCconfig.ccparams.phich_duration,"NORMAL")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_normal; - } else if (strcmp(eMTCconfig.ccparams.phich_duration,"EXTENDED")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration= PHICH_Config__phich_Duration_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", - RC.config_file_name, i, eMTCconfig.ccparams.phich_duration); - - if (strcmp(eMTCconfig.ccparams.phich_resource,"ONESIXTH")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_oneSixth ; - } else if (strcmp(eMTCconfig.ccparams.phich_resource,"HALF")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_half; - } else if (strcmp(eMTCconfig.ccparams.phich_resource,"ONE")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_one; - } else if (strcmp(eMTCconfig.ccparams.phich_resource,"TWO")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource= PHICH_Config__phich_Resource_two; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", - RC.config_file_name, i, eMTCconfig.ccparams.phich_resource); - - printf("phich.resource eMTC %ld (%s), phich.duration eMTC %ld (%s)\n", - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_resource,eMTCconfig.ccparams.phich_resource, - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].phich_duration,eMTCconfig.ccparams.phich_duration); - - if (strcmp(eMTCconfig.ccparams.srs_enable, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= TRUE; - } else if (strcmp(eMTCconfig.ccparams.srs_enable, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable= FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, eMTCconfig.ccparams.srs_enable); - - if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_enable== TRUE) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_BandwidthConfig= eMTCconfig.ccparams.srs_BandwidthConfig; - - if ((eMTCconfig.ccparams.srs_BandwidthConfig < 0) || (eMTCconfig.ccparams.srs_BandwidthConfig >7)) - AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", - RC.config_file_name, i, eMTCconfig.ccparams.srs_BandwidthConfig); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_SubframeConfig= eMTCconfig.ccparams.srs_SubframeConfig; - - if ((eMTCconfig.ccparams.srs_SubframeConfig<0) || (eMTCconfig.ccparams.srs_SubframeConfig>15)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.srs_SubframeConfig); - - if (strcmp(eMTCconfig.ccparams.srs_ackNackST, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= TRUE; - } else if (strcmp(eMTCconfig.ccparams.srs_ackNackST, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_ackNackST= FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, eMTCconfig.ccparams.srs_ackNackST); - - if (strcmp(eMTCconfig.ccparams.srs_MaxUpPts, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= TRUE; - } else if (strcmp(eMTCconfig.ccparams.srs_MaxUpPts, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].srs_MaxUpPts= FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, eMTCconfig.ccparams.srs_MaxUpPts); - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_p0_Nominal= eMTCconfig.ccparams.pusch_p0_Nominal; - - if ((eMTCconfig.ccparams.pusch_p0_Nominal<-126) || (eMTCconfig.ccparams.pusch_p0_Nominal>24)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_p0_Nominal); - -#if (RRC_VERSION <= MAKE_VERSION(12, 0, 0)) - - if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al0; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al04; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al05; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al06; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al07; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al08; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al09; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= UplinkPowerControlCommon__alpha_al1; - } - -#endif -#if (RRC_VERSION >= MAKE_VERSION(12, 0, 0)) - - if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al0; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL04")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al04; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL05")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al05; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL06")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al06; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL07")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al07; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL08")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al08; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL09")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al09; - } else if (strcmp(eMTCconfig.ccparams.pusch_alpha,"AL1")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pusch_alpha= Alpha_r12_al1; - } - -#endif - else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pusch_alpha); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_p0_Nominal= eMTCconfig.ccparams.pucch_p0_Nominal; - - if ((eMTCconfig.ccparams.pucch_p0_Nominal<-127) || (eMTCconfig.ccparams.pucch_p0_Nominal>-96)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_p0_Nominal); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].msg3_delta_Preamble= eMTCconfig.ccparams.msg3_delta_Preamble; - - if ((eMTCconfig.ccparams.msg3_delta_Preamble<-1) || (eMTCconfig.ccparams.msg3_delta_Preamble>6)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.msg3_delta_Preamble); - - if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1= DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format1); - - if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1b,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1b,"deltaF3")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format1b,"deltaF5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format1b= DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format1b); - - if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF1")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2= DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format2); - - if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2a,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2a,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2a,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2a= DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format2a); - - if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2b,"deltaF_2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2b,"deltaF0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; - } else if (strcmp(eMTCconfig.ccparams.pucch_deltaF_Format2b,"deltaF2")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pucch_deltaF_Format2b= DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pucch_deltaF_Format2b); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (eMTCconfig.ccparams.rach_numberOfRA_Preambles/4)-1; - - if ((eMTCconfig.ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig.ccparams.rach_numberOfRA_Preambles >64) || ((eMTCconfig.ccparams.rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_numberOfRA_Preambles); - - if (strcmp(eMTCconfig.ccparams.rach_preamblesGroupAConfig, "ENABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= TRUE; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_sizeOfRA_PreamblesGroupA= (eMTCconfig.ccparams.rach_sizeOfRA_PreamblesGroupA/4)-1; - - if ((eMTCconfig.ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig.ccparams.rach_numberOfRA_Preambles>60) || ((eMTCconfig.ccparams.rach_numberOfRA_Preambles&3)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_sizeOfRA_PreamblesGroupA); - - switch (eMTCconfig.ccparams.rach_messageSizeGroupA) { - case 56: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; - break; - - case 144: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; - break; - - case 208: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messageSizeGroupA= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_messageSizeGroupA); - break; - } - - if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"minusinfinity")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB0")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB5")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB8")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB10")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB12")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB15")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; - } else if (strcmp(eMTCconfig.ccparams.rach_messagePowerOffsetGroupB,"dB18")==0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_messagePowerOffsetGroupB= RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_messagePowerOffsetGroupB); - } else if (strcmp(eMTCconfig.ccparams.rach_preamblesGroupAConfig, "DISABLE") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preamblesGroupAConfig= FALSE; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_preamblesGroupAConfig); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleInitialReceivedTargetPower= (eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower+120)/2; - - if ((eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower<-120) || (eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower>-90) || ((eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_powerRampingStep= eMTCconfig.ccparams.rach_powerRampingStep/2; - - if ((eMTCconfig.ccparams.rach_powerRampingStep<0) || (eMTCconfig.ccparams.rach_powerRampingStep>6) || ((eMTCconfig.ccparams.rach_powerRampingStep&1)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_powerRampingStep); - - switch (eMTCconfig.ccparams.rach_preambleTransMax) { -#if (RRC_VERSION < MAKE_VERSION(14, 0, 0)) - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= RACH_ConfigCommon__ra_SupervisionInfo__preambleTransMax_n200; - break; -#else - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n7; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n8; - break; - - case 10: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n10; - break; - - case 20: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n20; - break; - - case 50: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n50; - break; - - case 100: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n100; - break; - - case 200: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_preambleTransMax= PreambleTransMax_n200; - break; -#endif - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_preambleTransMax); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_raResponseWindowSize= (eMTCconfig.ccparams.rach_raResponseWindowSize==10)?7:eMTCconfig.ccparams.rach_raResponseWindowSize-2; - - if ((eMTCconfig.ccparams.rach_raResponseWindowSize<0)||(eMTCconfig.ccparams.rach_raResponseWindowSize==9)||(eMTCconfig.ccparams.rach_raResponseWindowSize>10)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_raResponseWindowSize); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_macContentionResolutionTimer= (eMTCconfig.ccparams.rach_macContentionResolutionTimer/8)-1; - - if ((eMTCconfig.ccparams.rach_macContentionResolutionTimer<8) || (eMTCconfig.ccparams.rach_macContentionResolutionTimer>64) || ((eMTCconfig.ccparams.rach_macContentionResolutionTimer&7)!=0)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_macContentionResolutionTimer); - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].rach_maxHARQ_Msg3Tx= eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx; - - if ((eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx<0) || (eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx>8)) - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", - RC.config_file_name, i, eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx); - - switch (eMTCconfig.ccparams.pcch_defaultPagingCycle) { - case 32: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf32; - break; - - case 64: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf64; - break; - - case 128: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf128; - break; - - case 256: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_defaultPagingCycle= PCCH_Config__defaultPagingCycle_rf256; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", - RC.config_file_name, i, eMTCconfig.ccparams.pcch_defaultPagingCycle); - break; - } - - if (strcmp(eMTCconfig.ccparams.pcch_nB, "fourT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_fourT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "twoT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_twoT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "halfT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_halfT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "quarterT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_quarterT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneEighthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneEighthT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneSixteenthT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneSixteenthT; - } else if (strcmp(eMTCconfig.ccparams.pcch_nB, "oneThirtySecondT") == 0) { - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].pcch_nB= PCCH_Config__nB_oneThirtySecondT; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", - RC.config_file_name, i, eMTCconfig.ccparams.pcch_nB); - - switch (eMTCconfig.ccparams.bcch_modificationPeriodCoeff) { - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n2; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n4; - break; - - case 8: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n8; - break; - - case 16: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].bcch_modificationPeriodCoeff= BCCH_Config__modificationPeriodCoeff_n16; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", - RC.config_file_name, i, eMTCconfig.ccparams.bcch_modificationPeriodCoeff); - break; - } - - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t300= eMTCconfig.ccparams.ue_TimersAndConstants_t300; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t301= eMTCconfig.ccparams.ue_TimersAndConstants_t301; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t310= eMTCconfig.ccparams.ue_TimersAndConstants_t310; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_t311= eMTCconfig.ccparams.ue_TimersAndConstants_t311; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n310= eMTCconfig.ccparams.ue_TimersAndConstants_n310; - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TimersAndConstants_n311= eMTCconfig.ccparams.ue_TimersAndConstants_n311; - - switch (eMTCconfig.ccparams.ue_TransmissionMode) { - case 1: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm1; - break; - - case 2: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm2; - break; - - case 3: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm3; - break; - - case 4: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm4; - break; - - case 5: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm5; - break; - - case 6: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm6; - break; - - case 7: - RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].ue_TransmissionMode= AntennaInfoDedicated__transmissionMode_tm7; - break; - - default: - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", - RC.config_file_name, i, eMTCconfig.ccparams.ue_TransmissionMode); - break; - } - - - - - RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(eMTCconfig.pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { - *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(eMTCconfig.pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { - *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", - RC.config_file_name); - } - - - RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, "r8")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 0; - } else if (!strcmp(eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, "r16")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 1; - } else if (!strcmp(eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, "r32")) { - *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[j] = 2; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", - RC.config_file_name); - } - - char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&rachcelevellist, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = rachcelevellist.numelt; - int rachCEInfoIndex; - for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) { - sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); - config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath); - - RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rachCEInfoIndex] = eMTCconfig.firstPreamble_r13; - RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rachCEInfoIndex] = eMTCconfig.lastPreamble_r13; - - RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rachCEInfoIndex] = eMTCconfig.ra_ResponseWindowSize_r13; - AssertFatal(eMTCconfig.ra_ResponseWindowSize_r13 == 20 || - eMTCconfig.ra_ResponseWindowSize_r13 == 50 || - eMTCconfig.ra_ResponseWindowSize_r13 == 80 || - eMTCconfig.ra_ResponseWindowSize_r13 == 120 || - eMTCconfig.ra_ResponseWindowSize_r13 == 180 || - eMTCconfig.ra_ResponseWindowSize_r13 == 240 || - eMTCconfig.ra_ResponseWindowSize_r13 == 320 || - eMTCconfig.ra_ResponseWindowSize_r13 == 400, - "Illegal ra_ResponseWindowSize_r13 %d\n",eMTCconfig.ra_ResponseWindowSize_r13); - - RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rachCEInfoIndex] = eMTCconfig.mac_ContentionResolutionTimer_r13; - AssertFatal(eMTCconfig.mac_ContentionResolutionTimer_r13 == 80 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 100 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 120 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 80 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 160 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 200 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 240 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 480 || - eMTCconfig.mac_ContentionResolutionTimer_r13 == 960, - "Illegal mac_ContentionResolutionTimer_r13 %d\n", - eMTCconfig.mac_ContentionResolutionTimer_r13); - - RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rachCEInfoIndex] = eMTCconfig.rar_HoppingConfig_r13; - AssertFatal(eMTCconfig.rar_HoppingConfig_r13 == 0 || eMTCconfig.rar_HoppingConfig_r13 == 1, - "illegal rar_HoppingConfig_r13 %d\n",eMTCconfig.rar_HoppingConfig_r13); - } // end for loop (rach ce level info) - - char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&rsrprangelist, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = rsrprangelist.numelt; - - - int rsrprangeindex; - for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) { - sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex); - config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath); - RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrprangeindex] = eMTCconfig.rsrp_range_br; - - } - - - char prachparameterscePath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&prachParamslist, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = prachParamslist.numelt; - - int prachparamsindex; - for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) { - sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex); - config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath); - - RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prachparamsindex] = eMTCconfig.prach_config_index_br; - RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prachparamsindex] = eMTCconfig.prach_freq_offset_br; - - RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prachparamsindex] = eMTCconfig.prach_StartingSubframe_r13; - - RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = calloc(1, sizeof(long)); - *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prachparamsindex] = eMTCconfig.maxNumPreambleAttemptCE_r13-3; - AssertFatal(eMTCconfig.maxNumPreambleAttemptCE_r13 > 2 && eMTCconfig.maxNumPreambleAttemptCE_r13 <11, - "prachparamsindex %d: Illegal maxNumPreambleAttemptCE_r13 %d\n", - prachparamsindex,eMTCconfig.maxNumPreambleAttemptCE_r13); - - RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prachparamsindex] = eMTCconfig.numRepetitionPerPreambleAttempt_r13; - AssertFatal(eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 1 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 2 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 4 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 8 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 16 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 32 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 64 || - eMTCconfig.numRepetitionPerPreambleAttempt_r13 == 128, - "illegal numReptitionPerPreambleAttempt %d\n", - eMTCconfig.numRepetitionPerPreambleAttempt_r13); - - RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prachparamsindex] = eMTCconfig.mpdcch_NumRepetition_RA_r13; - AssertFatal (eMTCconfig.mpdcch_NumRepetition_RA_r13 == 1 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 2 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 4 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 8 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 16 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 32 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 64 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 128 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 256 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 512 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 1024 || - eMTCconfig.mpdcch_NumRepetition_RA_r13 == 2048, - "illegal mpdcch_NumRepeition_RA_r13 %d\n", - eMTCconfig.mpdcch_NumRepetition_RA_r13); - - - RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prachparamsindex] = eMTCconfig.prach_HoppingConfig_r13; - - AssertFatal (eMTCconfig.prach_HoppingConfig_r13 >=0 && eMTCconfig.prach_HoppingConfig_r13 < 2, - "Illegal prach_HoppingConfig_r13 %d\n",eMTCconfig.prach_HoppingConfig_r13); - - - int maxavailablenarrowband_count = prachParams[7].numelt; - - RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[j][prachparamsindex] = maxavailablenarrowband_count; - int narrow_band_index; - for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++) { - RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prachparamsindex][narrow_band_index] = prachParams[7].iptr[narrow_band_index]; - } - } - - char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2]; - config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath); - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = n1PUCCHInfoList.numelt; - - int n1PUCCHinfolistindex; - for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) { - sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex); - config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath); - RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][n1PUCCHinfolistindex] = eMTCconfig.pucch_info_value; - } - - char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16]; - sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); - config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path); - - - - /** PCCH CONFIG V1310 */ - - RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE; - RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = eMTCconfig.paging_narrowbands_r13; - RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = eMTCconfig.mpdcch_numrepetition_paging_r13; - AssertFatal (eMTCconfig.mpdcch_numrepetition_paging_r13 == 1 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 2 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 4 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 8 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 16 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 32 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 64 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 128 || - eMTCconfig.mpdcch_numrepetition_paging_r13 == 256, - "illegal mpdcch_numrepetition_paging_r13 %d\n", - eMTCconfig.mpdcch_numrepetition_paging_r13); - - - // RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long)); - // if (!strcmp(nb_v1310, "one64thT")) { - // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 0; - // } else if (!strcmp(nb_v1310, "one128thT")) { - // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 1; - // } else if (!strcmp(nb_v1310, "one256thT")) { - // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = 2; - // } else { - // AssertFatal(0, - // "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", - // RC.config_file_name); - // } - - - - RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = CALLOC(1, sizeof(long)); - // ++cnt; // check this ,, the conter is up above - if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 0; - } else if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 1; - } else if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 2; - } else if (!strcmp(eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { - *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[j] = 3; - } else { - AssertFatal (0, - "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", - RC.config_file_name); - } - - - - /** SIB2 FREQ HOPPING PARAMETERS R13 */ - RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; - - char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16]; - sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13); - config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path); - - - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); - if (!strcmp(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 0; - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val; - AssertFatal(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==2 || - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==4 || - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==8, - "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val); - } else if (!strcmp(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { - *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = 1; - RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val; - AssertFatal(eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==1 || - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==5 || - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==10 || - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val==20, - "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", - eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val); - } else { - AssertFatal (1==0, - "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", - RC.config_file_name); - } - RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=1; - } // BR parameters > 0 - else { - printf("No eMTC configuration, skipping it\n"); - RRC_CONFIGURATION_REQ (msg_p).eMTC_configured=0; - } + if (eMTCconfig.eMTC_configured > 0) fill_eMTC_configuration(msg_p,&eMTCconfig, i,j,RC.config_file_name,brparamspath); + else printf("No eMTC configuration, skipping it\n"); + + // Sidelink configuration char SLparamspath[MAX_OPTNAME_SIZE*2 + 16]; sprintf(SLparamspath,"%s.%s", ccspath, ENB_CONFIG_STRING_SL_PARAMETERS); config_get( SLParams, sizeof(SLParams)/sizeof(paramdef_t), SLparamspath); // Sidelink Resource pool information RRC_CONFIGURATION_REQ (msg_p).SL_configured=SLconfig.sidelink_configured&1; - if (SLconfig.sidelink_configured==1) { - - //SIB18 - if (strcmp(SLconfig.rxPool_sc_CP_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(SLconfig.rxPool_sc_CP_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_CP_Len choice: normal,extended!\n", - RC.config_file_name, i, SLconfig.rxPool_sc_CP_Len); - - if (strcmp(SLconfig.rxPool_sc_Period,"sf40")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf40; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf60")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf60; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf70")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf70; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf80")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf80; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf120")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf120; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf140")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf140; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf160")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf160; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf240")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf240; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf280")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf280; - } else if (strcmp(SLconfig.rxPool_sc_Period,"sf320")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_sf320; - } else if (strcmp(SLconfig.rxPool_sc_Period,"spare6")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare6; - } else if (strcmp(SLconfig.rxPool_sc_Period,"spare5")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare5; - } else if (strcmp(SLconfig.rxPool_sc_Period,"spare4")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare4; - } else if (strcmp(SLconfig.rxPool_sc_Period,"spare3")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare3; - } else if (strcmp(SLconfig.rxPool_sc_Period,"spare2")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare2; - } else if (strcmp(SLconfig.rxPool_sc_Period,"spare")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[j] = SL_PeriodComm_r12_spare; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_Period choice: sf40,sf60,sf70,sf80,sf120,sf140,sf160,sf240,sf280,sf320,spare6,spare5,spare4,spare3,spare2,spare!\n", - RC.config_file_name, i, SLconfig.rxPool_sc_Period); - - if (strcmp(SLconfig.rxPool_data_CP_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(SLconfig.rxPool_data_CP_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_data_CP_Len choice: normal,extended!\n", - RC.config_file_name, i, SLconfig.rxPool_data_CP_Len); - - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Num[j] = SLconfig.rxPool_ResourceConfig_prb_Num; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Start[j] = SLconfig.rxPool_ResourceConfig_prb_Start; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_End[j] = SLconfig.rxPool_ResourceConfig_prb_End; - - if (strcmp(SLconfig.rxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", - RC.config_file_name, i, SLconfig.rxPool_ResourceConfig_offsetIndicator_present); - - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_choice[j] = SLconfig.rxPool_ResourceConfig_offsetIndicator_choice; - - if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; - } else if (strcmp(SLconfig.rxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", - RC.config_file_name, i, SLconfig.rxPool_ResourceConfig_subframeBitmap_present); - - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = SLconfig.rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = SLconfig.rxPool_ResourceConfig_subframeBitmap_choice_bs_size; - RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = SLconfig.rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - - //SIB19 - for discRxPool - if (strcmp(SLconfig.discRxPool_cp_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(SLconfig.discRxPool_cp_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_cp_Len choice: normal,extended!\n", - RC.config_file_name, i, SLconfig.discRxPool_cp_Len); - - if (strcmp(SLconfig.discRxPool_discPeriod,"rf32")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf64")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf128")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf256")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf512")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf1024")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"rf16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; - } else if (strcmp(SLconfig.discRxPool_discPeriod,"spare")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", - RC.config_file_name, i, SLconfig.discRxPool_discPeriod); - - RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRetx[j] = SLconfig.discRxPool_numRetx; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRepetition[j] = SLconfig.discRxPool_numRepetition; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Num[j] = SLconfig.discRxPool_ResourceConfig_prb_Num; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Start[j] = SLconfig.discRxPool_ResourceConfig_prb_Start; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_End[j] = SLconfig.discRxPool_ResourceConfig_prb_End; - - if (strcmp(SLconfig.discRxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", - RC.config_file_name, i, SLconfig.discRxPool_ResourceConfig_offsetIndicator_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_choice[j] = SLconfig.discRxPool_ResourceConfig_offsetIndicator_choice; - - if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; - } else if (strcmp(SLconfig.discRxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", - RC.config_file_name, i, SLconfig.discRxPool_ResourceConfig_subframeBitmap_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[j] = SLconfig.discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[j] = SLconfig.discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; - RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = SLconfig.discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - - //SIB19 - For discRxPoolPS - if (strcmp(SLconfig.discRxPoolPS_cp_Len,"normal")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_normal; - } else if (strcmp(SLconfig.discRxPoolPS_cp_Len,"extended")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[j] = SL_CP_Len_r12_extended; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_cp_Len choice: normal,extended!\n", - RC.config_file_name, i, SLconfig.discRxPoolPS_cp_Len); - - if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf32")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf32; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf64")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf64; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf128")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf128; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf256")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf256; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf512")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf512; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf1024")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf1024; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"rf16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; - } else if (strcmp(SLconfig.discRxPoolPS_discPeriod,"spare")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[j] = SL_DiscResourcePool_r12__discPeriod_r12_spare; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", - RC.config_file_name, i, SLconfig.discRxPoolPS_discPeriod); - - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRetx[j] = SLconfig.discRxPoolPS_numRetx; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRepetition[j] = SLconfig.discRxPoolPS_numRepetition; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Num[j] = SLconfig.discRxPoolPS_ResourceConfig_prb_Num; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Start[j] = SLconfig.discRxPoolPS_ResourceConfig_prb_Start; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_End[j] = SLconfig.discRxPoolPS_ResourceConfig_prb_End; - - if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_NOTHING; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present,"prSmall")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_small_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present,"prLarge")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[j] = SL_OffsetIndicator_r12_PR_large_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", - RC.config_file_name, i, SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_choice[j] = SLconfig.discRxPoolPS_ResourceConfig_offsetIndicator_choice; - - if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prNothing")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_NOTHING; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs4")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs4_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs8")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs8_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs12")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs12_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs16")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs16_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs30")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs30_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs40")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs40_r12; - } else if (strcmp(SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs42")==0) { - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[j] = SubframeBitmapSL_r12_PR_bs42_r12; - } else - AssertFatal (0, - "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", - RC.config_file_name, i, SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_present); - - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[j] = SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[j] = SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; - RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[j] = SLconfig.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; - } + if (SLconfig.sidelink_configured==1) fill_SL_configuration(msg_p,&SLconfig,i,j,RC.config_file_name); + else printf("No SL configuration skipping it\n"); } } + + char srb1path[MAX_OPTNAME_SIZE*2 + 8]; sprintf(srb1path,"%s.%s",enbpath,ENB_CONFIG_STRING_SRB1); config_get( SRB1Params,sizeof(SRB1Params)/sizeof(paramdef_t), srb1path); diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h index ed1b4aeaa2..2e224850eb 100755 --- a/openair2/ENB_APP/enb_config.h +++ b/openair2/ENB_APP/enb_config.h @@ -48,6 +48,7 @@ #endif #include "RRC/LTE/rrc_defs.h" #include +#include "enb_paramdef.h" #define IPV4_STR_ADDR_TO_INT_NWBO(AdDr_StR,NwBo,MeSsAgE ) do {\ struct in_addr inp;\ @@ -108,5 +109,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc); int RCconfig_S1(MessageDef *msg_p, uint32_t i); int RCconfig_X2(MessageDef *msg_p, uint32_t i); +void fill_SL_configuration(MessageDef *msg_p, ccparams_sidelink_t *SLconfig,int cell_idx,int cc_idx,char *config_fname); +void fill_eMTC_configuration(MessageDef *msg_p, ccparams_eMTC_t *eMTCconfig, int cell_idx,int cc_idx,char *config_fname,char *brparamspath); + #endif /* ENB_CONFIG_H_ */ /** @} */ diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h index eae4e32482..0ed2d1bdf9 100755 --- a/openair2/ENB_APP/enb_paramdef.h +++ b/openair2/ENB_APP/enb_paramdef.h @@ -30,6 +30,8 @@ * \warning */ +#ifndef ENB_PARAMDEF_H_ +#define ENB_PARAMDEF_H_ #include "common/config/config_paramdesc.h" #include "RRC_paramsvalues.h" @@ -1031,3 +1033,4 @@ typedef struct srb1_params_s { #include "enb_paramdef_emtc.h" #include "enb_paramdef_sidelink.h" +#endif diff --git a/openair2/ENB_APP/enb_paramdef_emtc.h b/openair2/ENB_APP/enb_paramdef_emtc.h index 41205ab63d..ba8483ef9f 100644 --- a/openair2/ENB_APP/enb_paramdef_emtc.h +++ b/openair2/ENB_APP/enb_paramdef_emtc.h @@ -159,151 +159,240 @@ typedef struct ccparams_eMTC_s { #define EMTCPARAMS_DESC(eMTCconfig) { \ - {"eMTC_configured", NULL, 0, iptr:&eMTCconfig.eMTC_configured, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&eMTCconfig.ccparams.prach_root, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&eMTCconfig.ccparams.prach_config_index, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&eMTCconfig.ccparams.prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&eMTCconfig.ccparams.prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&eMTCconfig.ccparams.prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&eMTCconfig.ccparams.pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&eMTCconfig.ccparams.pdsch_p_b, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_n_SB, defintval:1, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&eMTCconfig.ccparams.phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&eMTCconfig.ccparams.phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&eMTCconfig.ccparams.srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&eMTCconfig.ccparams.srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&eMTCconfig.ccparams.srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&eMTCconfig.ccparams.srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&eMTCconfig.ccparams.srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&eMTCconfig.ccparams.pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&eMTCconfig.ccparams.pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&eMTCconfig.ccparams.pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&eMTCconfig.ccparams.msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&eMTCconfig.ccparams.pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&eMTCconfig.ccparams.rach_numberOfRA_Preambles, defstrval:"n4", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&eMTCconfig.ccparams.rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&eMTCconfig.ccparams.rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&eMTCconfig.ccparams.rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&eMTCconfig.ccparams.rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&eMTCconfig.ccparams.rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&eMTCconfig.ccparams.rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&eMTCconfig.ccparams.rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&eMTCconfig.ccparams.rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&eMTCconfig.ccparams.rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&eMTCconfig.ccparams.rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&eMTCconfig.ccparams.pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&eMTCconfig.ccparams.pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&eMTCconfig.ccparams.bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&eMTCconfig.ccparams.rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&eMTCconfig.ccparams.ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ - {ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&eMTCconfig.schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ - {ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&eMTCconfig.prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ - {ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&eMTCconfig.mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ - {ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&eMTCconfig.mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ - {ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&eMTCconfig.prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ - {ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&eMTCconfig.pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ - {ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&eMTCconfig.pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&eMTCconfig.cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&eMTCconfig.q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ -{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&eMTCconfig.bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&eMTCconfig.si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&eMTCconfig.si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&eMTCconfig.fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ -{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&eMTCconfig.startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&eMTCconfig.si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&eMTCconfig.si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&eMTCconfig.freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&eMTCconfig.mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&eMTCconfig.interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&eMTCconfig.interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&eMTCconfig.interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&eMTCconfig.interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&eMTCconfig.mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&eMTCconfig.preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ -{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ - {ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&eMTCconfig.pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0} \ + {"eMTC_configured", NULL, 0, iptr:&eMTCconfig->eMTC_configured, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_ROOT, NULL, 0, iptr:&eMTCconfig->ccparams.prach_root, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, NULL, 0, iptr:&eMTCconfig->ccparams.prach_config_index, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HIGH_SPEED, NULL, 0, strptr:&eMTCconfig->ccparams.prach_high_speed, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PRACH_ZERO_CORRELATION, NULL, 0, iptr:&eMTCconfig->ccparams.prach_zero_correlation, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET, NULL, 0, iptr:&eMTCconfig->ccparams.prach_freq_offset, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTA_SHIFT, NULL, 0, iptr:&eMTCconfig->ccparams.pucch_delta_shift, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NRB_CQI, NULL, 0, iptr:&eMTCconfig->ccparams.pucch_nRB_CQI, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NCS_AN, NULL, 0, iptr:&eMTCconfig->ccparams.pucch_nCS_AN, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_N1_AN, NULL, 0, iptr:&eMTCconfig->ccparams.pucch_n1_AN, defintval:32, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_RS_EPRE, NULL, 0, iptr:&eMTCconfig->ccparams.pdsch_referenceSignalPower, defintval:-29, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PDSCH_PB, NULL, 0, iptr:&eMTCconfig->ccparams.pdsch_p_b, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_N_SB, NULL, 0, iptr:&eMTCconfig->ccparams.pusch_n_SB, defintval:1, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGMODE, NULL, 0, strptr:&eMTCconfig->ccparams.pusch_hoppingMode, defstrval:"interSubFrame", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_HOPPINGOFFSET, NULL, 0, iptr:&eMTCconfig->ccparams.pusch_hoppingOffset, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ENABLE64QAM, NULL, 0, strptr:&eMTCconfig->ccparams.pusch_enable64QAM, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN, NULL, 0, strptr:&eMTCconfig->ccparams.pusch_groupHoppingEnabled, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_GROUP_ASSIGNMENT, NULL, 0, iptr:&eMTCconfig->ccparams.pusch_groupAssignment, defintval:0, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN, NULL, 0, strptr:&eMTCconfig->ccparams.pusch_sequenceHoppingEnabled, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_NDMRS1, NULL, 0, iptr:&eMTCconfig->ccparams.pusch_nDMRS1, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PHICH_DURATION, NULL, 0, strptr:&eMTCconfig->ccparams.phich_duration, defstrval:"NORMAL", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PHICH_RESOURCE, NULL, 0, strptr:&eMTCconfig->ccparams.phich_resource, defstrval:"ONESIXTH", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_ENABLE, NULL, 0, strptr:&eMTCconfig->ccparams.srs_enable, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_BANDWIDTH_CONFIG, NULL, 0, iptr:&eMTCconfig->ccparams.srs_BandwidthConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_SUBFRAME_CONFIG, NULL, 0, iptr:&eMTCconfig->ccparams.srs_SubframeConfig, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SRS_ACKNACKST_CONFIG, NULL, 0, strptr:&eMTCconfig->ccparams.srs_ackNackST, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SRS_MAXUPPTS, NULL, 0, strptr:&eMTCconfig->ccparams.srs_MaxUpPts, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUSCH_PO_NOMINAL, NULL, 0, iptr:&eMTCconfig->ccparams.pusch_p0_Nominal, defintval:-90, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PUSCH_ALPHA, NULL, 0, strptr:&eMTCconfig->ccparams.pusch_alpha, defstrval:"AL1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_PO_NOMINAL, NULL, 0, iptr:&eMTCconfig->ccparams.pucch_p0_Nominal, defintval:-96, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_MSG3_DELTA_PREAMBLE, NULL, 0, iptr:&eMTCconfig->ccparams.msg3_delta_Preamble, defintval:6, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1, NULL, 0, strptr:&eMTCconfig->ccparams.pucch_deltaF_Format1, defstrval:"DELTAF2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT1b, NULL, 0, strptr:&eMTCconfig->ccparams.pucch_deltaF_Format1b, defstrval:"deltaF3", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2, NULL, 0, strptr:&eMTCconfig->ccparams.pucch_deltaF_Format2, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2A, NULL, 0, strptr:&eMTCconfig->ccparams.pucch_deltaF_Format2a, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_DELTAF_FORMAT2B, NULL, 0, strptr:&eMTCconfig->ccparams.pucch_deltaF_Format2b, defstrval:"deltaF0", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_NUM_RA_PREAMBLES, NULL, 0, iptr:&eMTCconfig->ccparams.rach_numberOfRA_Preambles, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&eMTCconfig->ccparams.rach_preamblesGroupAConfig, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_SIZEOFRA_PREAMBLESGROUPA, NULL, 0, iptr:&eMTCconfig->ccparams.rach_sizeOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGESIZEGROUPA, NULL, 0, iptr:&eMTCconfig->ccparams.rach_messageSizeGroupA, defintval:56, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, strptr:&eMTCconfig->ccparams.rach_messagePowerOffsetGroupB, defstrval:"minusinfinity", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RACH_POWERRAMPINGSTEP, NULL, 0, iptr:&eMTCconfig->ccparams.rach_powerRampingStep, defintval:4, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLEINITIALRECEIVEDTARGETPOWER, NULL, 0, iptr:&eMTCconfig->ccparams.rach_preambleInitialReceivedTargetPower, defintval:-100, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLETRANSMAX, NULL, 0, iptr:&eMTCconfig->ccparams.rach_preambleTransMax, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, NULL, 0, iptr:&eMTCconfig->ccparams.rach_raResponseWindowSize, defintval:10, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&eMTCconfig->ccparams.rach_macContentionResolutionTimer, defintval:48, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, NULL, 0, iptr:&eMTCconfig->ccparams.rach_maxHARQ_Msg3Tx, defintval:4, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, NULL, 0, iptr:&eMTCconfig->ccparams.pcch_defaultPagingCycle, defintval:128, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_PCCH_NB, NULL, 0, strptr:&eMTCconfig->ccparams.pcch_nB, defstrval:"oneT", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, NULL, 0, iptr:&eMTCconfig->ccparams.bcch_modificationPeriodCoeff, defintval:2, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RACH_PREAMBLESGROUPACONFIG, NULL, 0, strptr:&eMTCconfig->ccparams.rach_preamblesGroupAConfig, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T300, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TimersAndConstants_t300, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T301, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TimersAndConstants_t301, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T310, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TimersAndConstants_t310, defintval:1000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_T311, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TimersAndConstants_t311, defintval:10000, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N310, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TimersAndConstants_n310, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UETIMERS_N311, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TimersAndConstants_n311, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, NULL, 0, iptr:&eMTCconfig->ccparams.ue_TransmissionMode, defintval:1, TYPE_UINT, 0}, \ + {ENB_CONFIG_STRING_SCHEDULING_INFO_SIB1_BR_R13, NULL, 0, iptr:&eMTCconfig->schedulingInfoSIB1_BR_r13, defintval:4, TYPE_UINT, 0}, \ + {ENB_CONFIG_STRING_PRACH_CONFIG_COMMON_V1310, NULL, 0, strptr:&eMTCconfig->prach_ConfigCommon_v1310, defstrval:"ENABLE", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13, NULL, 0, strptr:&eMTCconfig->mpdcch_startSF_CSS_RA_r13, defstrval:"fdd-r13", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_MPDCCH_START_SF_CSS_RA_R13_VAL, NULL, 0, strptr:&eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, defstrval:"v1", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_PRACH_HOPPING_OFFSET_R13, NULL, 0, iptr:&eMTCconfig->prach_HoppingOffset_r13, defintval:0, TYPE_INT, 0}, \ + {ENB_CONFIG_STRING_PDSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&eMTCconfig->pdsch_maxNumRepetitionCEmodeA_r13, defstrval:"r16", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_PUSCH_MAX_NUM_REPETITION_CE_MODE_A_R13, NULL, 0, strptr:&eMTCconfig->pusch_maxNumRepetitionCEmodeA_r13, defstrval:"r8", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_CELL_SELECTION_INFO_CE_R13, NULL, 0, strptr:&eMTCconfig->cellSelectionInfoCE_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_Q_RX_LEV_MIN_CE_R13, NULL, 0, iptr:&eMTCconfig->q_RxLevMinCE_r13, defintval:-70, TYPE_INT, 0}, \ +{ENB_CONFIG_STRING_BANDWIDTH_REDUCED_ACCESS_RELATED_INFO_R13, NULL, 0, strptr:&eMTCconfig->bandwidthReducedAccessRelatedInfo_r13, defstrval:"ENABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_WINDOW_LENGTH_BR_R13, NULL, 0, strptr:&eMTCconfig->si_WindowLength_BR_r13, defstrval:"ms20", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_REPETITION_PATTERN_R13, NULL, 0, strptr:&eMTCconfig->si_RepetitionPattern_r13, defstrval:"everyRF", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_R13, NULL, 0, strptr:&eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_r13, defstrval:"subframePattern40-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FDD_DOWNLINK_OR_TDD_SUBFRAME_BITMAP_BR_VAL_R13, NULL, 0, i64ptr:&eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_val_r13, defint64val:0xFFFFFFFFFF, TYPE_UINT64, 0}, \ +{ENB_CONFIG_STRING_START_SYMBOL_BR_R13, NULL, 0, iptr:&eMTCconfig->startSymbolBR_r13, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_SI_HOPPING_CONFIG_COMMON_R13, NULL, 0, strptr:&eMTCconfig->si_HoppingConfigCommon_r13 , defstrval:"off", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_SI_VALIDITY_TIME_R13, NULL, 0, strptr:&eMTCconfig->si_ValidityTime_r13, defstrval:"true", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_DL_R13, NULL, 0, strptr:&eMTCconfig->freqHoppingParametersDL_r13, defstrval:"DISABLE", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, strptr:&eMTCconfig->mpdcch_pdsch_HoppingNB_r13, defstrval:"nb2", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, NULL, 0, strptr:&eMTCconfig->interval_DLHoppingConfigCommonModeA_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, NULL, 0, iptr:&eMTCconfig->interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, NULL, 0, strptr:&eMTCconfig->interval_DLHoppingConfigCommonModeB_r13, defstrval:"interval-FDD-r13", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, NULL, 0, iptr:&eMTCconfig->interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, NULL, 0, iptr:&eMTCconfig->mpdcch_pdsch_HoppingOffset_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PREAMBLE_TRANSMAX_CE_R13, NULL, 0, strptr:&eMTCconfig->preambleTransMax_CE_r13, defstrval:"n10", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL0, NULL, 0, strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level0_r13, defstrval:"n1", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL1, NULL, 0, strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level1_r13, defstrval:"", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2, NULL, 0, strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level2_r13, defstrval:"", TYPE_STRING, 0}, \ + {ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3, NULL, 0, strptr:&eMTCconfig->pucch_NumRepetitionCE_Msg4_Level3_r13, defstrval:"", TYPE_STRING, 0} \ } +#define EMTCPARAMS_CHECK { \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s1a= { config_check_modify_integer, UETIMER_T300_OKVALUES, UETIMER_T300_MODVALUES,8}} , \ + { .s1a= { config_check_modify_integer, UETIMER_T301_OKVALUES, UETIMER_T301_MODVALUES,8}} , \ + { .s1a= { config_check_modify_integer, UETIMER_T310_OKVALUES, UETIMER_T310_MODVALUES,7}} , \ + { .s1a= { config_check_modify_integer, UETIMER_T311_OKVALUES, UETIMER_T311_MODVALUES,7}} , \ + { .s1a= { config_check_modify_integer, UETIMER_N310_OKVALUES, UETIMER_N310_MODVALUES,8}} , \ + { .s1a= { config_check_modify_integer, UETIMER_N311_OKVALUES, UETIMER_N311_MODVALUES,8}} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ +} #define SYSTEM_INFO_VALUE_TAG_SI_DESC(eMTCconfig) { \ -{"systemInfoValueTagSi_r13", NULL, 0, iptr:&eMTCconfig.systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ +{"systemInfoValueTagSi_r13", NULL, 0, iptr:&eMTCconfig->systemInfoValueTagSi_r13, defintval:0, TYPE_UINT, 0} \ } #define SI_INFO_BR_DESC(eMTCconfig) { \ -{"si_Narrowband_r13", NULL, 0, iptr:&eMTCconfig.si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ -{"si_TBS_r13", NULL, 0, iptr:&eMTCconfig.si_TBS_r13, defintval:5, TYPE_UINT, 0} \ +{"si_Narrowband_r13", NULL, 0, iptr:&eMTCconfig->si_Narrowband_r13, defintval:5, TYPE_UINT, 0}, \ +{"si_TBS_r13", NULL, 0, iptr:&eMTCconfig->si_TBS_r13, defintval:5, TYPE_UINT, 0} \ } #define RSRP_RANGE_LIST_DESC(eMTCconfig) { \ -{"rsrp_range_br", NULL, 0, iptr:&eMTCconfig.rsrp_range_br, defintval:0, TYPE_UINT, 0} \ +{"rsrp_range_br", NULL, 0, iptr:&eMTCconfig->rsrp_range_br, defintval:0, TYPE_UINT, 0} \ } #define RACH_CE_LEVELINFOLIST_R13_DESC(eMTCconfig) { \ -{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13, NULL, 0, iptr:&eMTCconfig.firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_LAST_PREAMBLE_R13, NULL, 0, iptr:&eMTCconfig.lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, NULL, 0, iptr:&eMTCconfig.ra_ResponseWindowSize_r13, defintval:20, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13, NULL, 0, iptr:&eMTCconfig.mac_ContentionResolutionTimer_r13, defintval:80, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, NULL, 0, iptr:&eMTCconfig.rar_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}\ +{ENB_CONFIG_STRING_FIRST_PREAMBLE_R13, NULL, 0, iptr:&eMTCconfig->firstPreamble_r13, defintval:60, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_LAST_PREAMBLE_R13, NULL, 0, iptr:&eMTCconfig->lastPreamble_r13, defintval:63, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, NULL, 0, iptr:&eMTCconfig->ra_ResponseWindowSize_r13, defintval:20, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAC_CONTENTION_RESOLUTION_TIMER_R13, NULL, 0, iptr:&eMTCconfig->mac_ContentionResolutionTimer_r13, defintval:80, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, NULL, 0, iptr:&eMTCconfig->rar_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}\ } #define PRACH_PARAMS_CE_R13_DESC(eMTCconfig) { \ -{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&eMTCconfig.prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&eMTCconfig.prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&eMTCconfig.prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&eMTCconfig.maxNumPreambleAttemptCE_r13, defintval:10, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&eMTCconfig.numRepetitionPerPreambleAttempt_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&eMTCconfig.mpdcch_NumRepetition_RA_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&eMTCconfig.prach_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, NULL, 0, iptr:&eMTCconfig->prach_config_index_br, defintval:3, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, NULL, 0, iptr:&eMTCconfig->prach_freq_offset_br, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, NULL, 0, iptr:&eMTCconfig->prach_StartingSubframe_r13, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MAX_NUM_PER_PREAMBLE_ATTEMPT_CE_R13, NULL, 0, iptr:&eMTCconfig->maxNumPreambleAttemptCE_r13, defintval:10, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_NUM_REPETITION_PER_PREAMBLE_ATTEMPT_R13, NULL, 0, iptr:&eMTCconfig->numRepetitionPerPreambleAttempt_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, NULL, 0, iptr:&eMTCconfig->mpdcch_NumRepetition_RA_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, NULL, 0, iptr:&eMTCconfig->prach_HoppingConfig_r13, defintval:0, TYPE_UINT, 0}, \ {ENB_CONFIG_SRING_MAX_AVAILABLE_NARROW_BAND, NULL, 0, uptr:NULL, defintarrayval:NULL, TYPE_INTARRAY, 0} \ } #define N1PUCCH_AN_INFOLIST_R13_DESC(eMTCconfig) { \ -{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&eMTCconfig.pucch_info_value, defintval:0, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_PUCCH_INFO_VALUE, NULL, 0, iptr:&eMTCconfig->pucch_info_value, defintval:0, TYPE_UINT, 0} \ } #define PCCH_CONFIG_V1310_DESC(eMTCconfig) { \ -{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&eMTCconfig.paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&eMTCconfig.mpdcch_numrepetition_paging_r13, defintval:1, TYPE_UINT, 0}, \ -{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&eMTCconfig.nb_v1310, defintval:256, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, NULL, 0, iptr:&eMTCconfig->paging_narrowbands_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, NULL, 0, iptr:&eMTCconfig->mpdcch_numrepetition_paging_r13, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_NB_V1310, NULL, 0, iptr:&eMTCconfig->nb_v1310, defintval:256, TYPE_UINT, 0} \ } #define SIB2_FREQ_HOPPING_R13_DESC(eMTCconfig) { \ -{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, iptr:&eMTCconfig.sib2_mpdcch_pdsch_hoppingNB_r13, defintval:0, TYPE_UINT, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:4, TYPE_UINT, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, strptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ -{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&eMTCconfig.sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ -{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&eMTCconfig.sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ +{ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, NULL, 0, iptr:&eMTCconfig->sib2_mpdcch_pdsch_hoppingNB_r13, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13", NULL, 0, strptr:&eMTCconfig->sib2_interval_DLHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&eMTCconfig->sib2_interval_DLHoppingConfigCommonModeA_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13", NULL, 0, strptr:&eMTCconfig->sib2_interval_DLHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_DLHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&eMTCconfig->sib2_interval_DLHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeA_r13", NULL, 0, strptr:&eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeA_r13_val", NULL, 0, iptr:&eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13_val, defintval:4, TYPE_UINT, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13", NULL, 0, strptr:&eMTCconfig->sib2_interval_ULHoppingConfigCommonModeB_r13, defstrval:"FDD", TYPE_STRING, 0}, \ +{"sib2_interval_ULHoppingConfigCommonModeB_r13_val", NULL, 0, iptr:&eMTCconfig->sib2_interval_ULHoppingConfigCommonModeB_r13_val, defintval:0, TYPE_UINT, 0}, \ +{"sib2_mpdcch_pdsch_hoppingOffset_r13", NULL, 0, iptr:&eMTCconfig->sib2_mpdcch_pdsch_hoppingOffset_r13, defintval:1, TYPE_UINT, 0} \ } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 00a13cc924..97fcffd4f6 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -1619,7 +1619,7 @@ void schedule_ulsch_rnti_emtc(module_id_t module_idP, frame_t frameP, sub_frame_t subframeP, unsigned char sched_subframeP, - uint16_t *emtc_active) + int *emtc_active) { int UE_id; rnti_t rnti = -1; diff --git a/openair2/LAYER2/MAC/mac_proto.h b/openair2/LAYER2/MAC/mac_proto.h index e0fdade419..bfdb26ee24 100755 --- a/openair2/LAYER2/MAC/mac_proto.h +++ b/openair2/LAYER2/MAC/mac_proto.h @@ -113,6 +113,12 @@ void schedule_ulsch_rnti(module_id_t module_idP, int slice_idx, frame_t frameP, unsigned char sched_subframe, uint16_t * first_rb); +void schedule_ulsch_rnti_emtc(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP, + unsigned char sched_subframeP, + int *emtc_active); + /** \brief Second stage of DLSCH scheduling, after schedule_SI, schedule_RA and schedule_dlsch have been called. This routine first allocates random frequency assignments for SI and RA SDUs using distributed VRB allocations and adds the corresponding DCI SDU to the DCI buffer for PHY. It then loops over the UE specific DCIs previously allocated and fills in the remaining DCI fields related to frequency allocation. It assumes localized allocation of type 0 (DCI.rah=0). The allocation is done for tranmission modes 1,2,4. @param Mod_id Instance of eNB @param frame Frame index @@ -133,7 +139,9 @@ void schedule_dlsch(module_id_t module_idP, frame_t frameP, void schedule_ue_spec(module_id_t module_idP, int slice_idxP, frame_t frameP,sub_frame_t subframe, int *mbsfn_flag); - +void schedule_ue_spec_br(module_id_t module_idP, + frame_t frameP, + sub_frame_t subframeP); void schedule_ue_spec_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t subframe,int *mbsfn_flag); void schedule_ulsch_phy_test(module_id_t module_idP,frame_t frameP,sub_frame_t subframeP); diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c index 22c20da021..0e6e403301 100755 --- a/openair2/LAYER2/MAC/rar_tools.c +++ b/openair2/LAYER2/MAC/rar_tools.c @@ -126,9 +126,8 @@ unsigned short fill_rar_br(eNB_MAC_INST *eNB, COMMON_channels_t *cc = &eNB->common_channels[CC_id]; uint8_t *rar = (uint8_t *)(dlsch_buffer+1); - int i; uint32_t rballoc,reps; - uint32_t mcs,TPC,ULdelay,cqireq,mpdcch_nb_index; + uint32_t TPC,ULdelay,cqireq,mpdcch_nb_index; int input_buffer_length; diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c index 62db7df304..1514a9f9bd 100755 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c @@ -1018,7 +1018,6 @@ uint8_t do_SIB23(uint8_t Mod_id, SystemInformationBlockType3_t **sib3 = &RC.rrc[Mod_id]->carrier[CC_id].sib3; #if defined(Rel10) || defined(Rel14) SystemInformationBlockType13_r9_t **sib13 = &RC.rrc[Mod_id]->carrier[CC_id].sib13; - uint8_t MBMS_flag = RC.rrc[Mod_id]->carrier[CC_id].MBMS_flag; #endif #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) @@ -1046,7 +1045,7 @@ uint8_t do_SIB23(uint8_t Mod_id, } #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - LOG_I(RRC,"[eNB %d] Configuration SIB2/3, MBMS = %d\n", Mod_id, MBMS_flag); + LOG_I(RRC,"[eNB %d] Configuration SIB2/3, eMBMS = %d\n", Mod_id, configuration->eMBMS_configured); #else LOG_I(RRC,"[eNB %d] Configuration SIB2/3\n", Mod_id); #endif @@ -1063,7 +1062,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - if ((MBMS_flag > 0) && (brOption==FALSE)) { + if ((configuration->eMBMS_configured > 0) && (brOption==FALSE)) { sib13_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); memset(sib13_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); sib13_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920; @@ -1073,22 +1072,23 @@ uint8_t do_SIB23(uint8_t Mod_id, #endif #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + if (configuration->SL_configured > 0) { //TTN - for D2D - sib18_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - sib19_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - sib21_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - memset(sib18_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - memset(sib19_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - memset(sib21_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); - - sib18_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250; - sib19_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250; - sib21_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430; - - *sib18 = &sib18_part->choice.sib18_v1250; - *sib19 = &sib19_part->choice.sib19_v1250; - *sib21 = &sib21_part->choice.sib21_v1430; - + sib18_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + sib19_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + sib21_part = CALLOC(1,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib18_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib19_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + memset(sib21_part,0,sizeof(struct SystemInformation_r8_IEs__sib_TypeAndInfo__Member)); + + sib18_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250; + sib19_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250; + sib21_part->present = SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430; + + *sib18 = &sib18_part->choice.sib18_v1250; + *sib19 = &sib19_part->choice.sib19_v1250; + *sib21 = &sib21_part->choice.sib21_v1430; + } #endif @@ -1701,7 +1701,7 @@ uint8_t do_SIB23(uint8_t Mod_id, #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - if (MBMS_flag > 0) { + if (configuration->eMBMS_configured > 0) { LOG_I(RRC,"Adding MBSFN subframe Configuration 1 to SIB2\n"); MBSFN_SubframeConfig_t *sib2_mbsfn_SubframeConfig1; (*sib2)->mbsfn_SubframeConfigList = CALLOC(1,sizeof(struct MBSFN_SubframeConfigList)); @@ -1721,7 +1721,7 @@ uint8_t do_SIB23(uint8_t Mod_id, ASN_SEQUENCE_ADD(&MBSFNSubframeConfigList->list, sib2_mbsfn_SubframeConfig1); - if (MBMS_flag == 4 ) { + if (configuration->eMBMS_configured == 4 ) { LOG_I(RRC,"Adding MBSFN subframe Configuration 2 to SIB2\n"); MBSFN_SubframeConfig_t *sib2_mbsfn_SubframeConfig2; sib2_mbsfn_SubframeConfig2= CALLOC(1,sizeof(*sib2_mbsfn_SubframeConfig2)); @@ -1791,7 +1791,7 @@ uint8_t do_SIB23(uint8_t Mod_id, // fill in all elements of SIB13 if present #if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - if (MBMS_flag > 0 ) { + if (configuration->eMBMS_configured > 0 ) { // Notification for mcch change (*sib13)->notificationConfig_r9.notificationRepetitionCoeff_r9= MBMS_NotificationConfig_r9__notificationRepetitionCoeff_r9_n2; (*sib13)->notificationConfig_r9.notificationOffset_r9= 0; @@ -1822,7 +1822,7 @@ uint8_t do_SIB23(uint8_t Mod_id, ASN_SEQUENCE_ADD(&MBSFNArea_list->list,MBSFN_Area1); //MBSFN Area 2: currently only activated for eMBMS relaying - if (MBMS_flag == 4 ) { + if (configuration->eMBMS_configured == 4 ) { MBSFN_Area2= CALLOC(1, sizeof(*MBSFN_Area2)); MBSFN_Area2->mbsfn_AreaId_r9= 2; MBSFN_Area2->non_MBSFNregionLength= MBSFN_AreaInfo_r9__non_MBSFNregionLength_s2; @@ -1850,295 +1850,297 @@ uint8_t do_SIB23(uint8_t Mod_id, #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - //TTN - for D2D - // SIB18 - //commRxPool_r12 - (*sib18)->commConfig_r12 = CALLOC (1, sizeof(*(*sib18)->commConfig_r12)); - SL_CommRxPoolList= &(*sib18)->commConfig_r12->commRxPool_r12; - memset(SL_CommRxPoolList,0,sizeof(*SL_CommRxPoolList)); - - SL_CommResourcePool = CALLOC(1, sizeof(*SL_CommResourcePool)); - memset(SL_CommResourcePool,0,sizeof(*SL_CommResourcePool)); - - SL_CommResourcePool->sc_CP_Len_r12 = configuration->rxPool_sc_CP_Len[CC_id]; - SL_CommResourcePool->sc_Period_r12 = configuration->rxPool_sc_Period[CC_id]; - SL_CommResourcePool->data_CP_Len_r12 = configuration->rxPool_data_CP_Len[CC_id]; - //sc_TF_ResourceConfig_r12 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_Num_r12 = configuration->rxPool_ResourceConfig_prb_Num[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_Start_r12 = configuration->rxPool_ResourceConfig_prb_Start[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_End_r12 = configuration->rxPool_ResourceConfig_prb_End[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = configuration->rxPool_ResourceConfig_offsetIndicator_present[CC_id]; - - if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { - SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; - } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ - SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + if (configuration->SL_configured>0) { + //TTN - for D2D + // SIB18 + //commRxPool_r12 + (*sib18)->commConfig_r12 = CALLOC (1, sizeof(*(*sib18)->commConfig_r12)); + SL_CommRxPoolList= &(*sib18)->commConfig_r12->commRxPool_r12; + memset(SL_CommRxPoolList,0,sizeof(*SL_CommRxPoolList)); + + SL_CommResourcePool = CALLOC(1, sizeof(*SL_CommResourcePool)); + memset(SL_CommResourcePool,0,sizeof(*SL_CommResourcePool)); + + SL_CommResourcePool->sc_CP_Len_r12 = configuration->rxPool_sc_CP_Len[CC_id]; + SL_CommResourcePool->sc_Period_r12 = configuration->rxPool_sc_Period[CC_id]; + SL_CommResourcePool->data_CP_Len_r12 = configuration->rxPool_data_CP_Len[CC_id]; + //sc_TF_ResourceConfig_r12 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_Num_r12 = configuration->rxPool_ResourceConfig_prb_Num[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_Start_r12 = configuration->rxPool_ResourceConfig_prb_Start[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.prb_End_r12 = configuration->rxPool_ResourceConfig_prb_End[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present = configuration->rxPool_ResourceConfig_offsetIndicator_present[CC_id]; + + if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { + SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ + SL_CommResourcePool->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->rxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } + + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = configuration->rxPool_ResourceConfig_subframeBitmap_present[CC_id]; + if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ + //for BS4 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ + //for BS8 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ + //for BS12 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ + //for BS16 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ + //for BS30 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ + //for BS40 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ + //for BS42 + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } + + //dataHoppingConfig_r12 + SL_CommResourcePool->dataHoppingConfig_r12.hoppingParameter_r12 = 0; + SL_CommResourcePool->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1; + SL_CommResourcePool->dataHoppingConfig_r12.rb_Offset_r12 = 0; + + //ue_SelectedResourceConfig_r12 + SL_CommResourcePool->ue_SelectedResourceConfig_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->ue_SelectedResourceConfig_r12)); + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Num_r12 = 20; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Start_r12 = 5; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_End_r12 = 44; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0 ; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 5; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,5); + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 0; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[0] = 0xF0; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[1] = 0xFF; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[2] = 0xFF; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[3] = 0xFF; + SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[4] = 0xFF; + //SL_CommResourcePool->ue_SelectedResourceConfig_r12->trpt_Subset_r12 = CALLOC (1, sizeof(*SL_CommResourcePool->ue_SelectedResourceConfig_r12->trpt_Subset_r12)); + //rxParametersNCell_r12 + SL_CommResourcePool->rxParametersNCell_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->rxParametersNCell_r12)); + SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12)); + SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12->subframeAssignment = 0 ; + SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12->specialSubframePatterns = 0; + SL_CommResourcePool->rxParametersNCell_r12->syncConfigIndex_r12 = 0; + //txParameters_r12 + SL_CommResourcePool->txParameters_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->txParameters_r12)); + SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.alpha_r12 = Alpha_r12_al0; + SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.p0_r12 = 0; + + SL_CommResourcePool->ext1 = NULL ; + //end SL_CommResourcePool + //add SL_CommResourcePool to SL_CommRxPoolList + ASN_SEQUENCE_ADD(&SL_CommRxPoolList->list,SL_CommResourcePool); + //end commRxPool_r12 + + //TODO: commTxPoolNormalCommon_r12, similar to commRxPool_r12 + //TODO: commTxPoolExceptional_r12 + //TODO: commSyncConfig_r12 + // may add commTxResourceUC-ReqAllowed with Ext1 + (*sib18)->ext1 = NULL; + (*sib18)->lateNonCriticalExtension = NULL; + // end SIB18 + + // SIB19 + // fill in all elements of SIB19 if present + + //discConfig_r12 + (*sib19)->discConfig_r12 = CALLOC (1, sizeof(*(*sib19)->discConfig_r12)); + SL_DiscRxPoolList = &(*sib19)->discConfig_r12->discRxPool_r12; + memset(SL_DiscRxPoolList,0,sizeof(*SL_DiscRxPoolList)); + //fill SL_DiscResourcePool + SL_DiscResourcePool = CALLOC(1, sizeof(*SL_DiscResourcePool)); + + SL_DiscResourcePool->cp_Len_r12 = configuration->discRxPool_cp_Len[CC_id]; + SL_DiscResourcePool->discPeriod_r12 = configuration->discRxPool_discPeriod[CC_id]; + //sc_TF_ResourceConfig_r12 + SL_DiscResourcePool->numRetx_r12 = configuration->discRxPool_numRetx[CC_id]; + SL_DiscResourcePool->numRepetition_r12 = configuration->discRxPool_numRepetition[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Num_r12 = configuration->discRxPool_ResourceConfig_prb_Num[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPool_ResourceConfig_prb_Start[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPool_ResourceConfig_prb_End[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPool_ResourceConfig_offsetIndicator_present[CC_id]; + if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { + SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ + SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; + } + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPool_ResourceConfig_subframeBitmap_present[CC_id]; + if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ + //for BS4 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ + //for BS8 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ + //for BS12 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ + //for BS16 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ + //for BS30 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ + //for BS40 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ + //for BS42 + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } + + //add SL_DiscResourcePool to SL_DiscRxPoolList + ASN_SEQUENCE_ADD(&SL_DiscRxPoolList->list,SL_DiscResourcePool); + + /* + //for DiscRxPoolPS + (*sib19)->ext1 = CALLOC (1, sizeof(*(*sib19)->ext1)); + (*sib19)->ext1->discConfigPS_13 = CALLOC (1, sizeof(*((*sib19)->ext1->discConfigPS_13))); + + SL_DiscRxPoolPSList = &(*sib19)->ext1->discConfigPS_13->discRxPoolPS_r13; + memset(SL_DiscRxPoolPSList,0,sizeof(*SL_DiscRxPoolPSList)); + //fill SL_DiscResourcePool + SL_DiscResourcePoolPS = CALLOC(1, sizeof(*SL_DiscResourcePoolPS)); + + SL_DiscResourcePoolPS->cp_Len_r12 = configuration->discRxPoolPS_cp_Len[CC_id]; + SL_DiscResourcePoolPS->discPeriod_r12 = configuration->discRxPoolPS_discPeriod[CC_id]; + //sc_TF_ResourceConfig_r12 + SL_DiscResourcePoolPS->numRetx_r12 = configuration->discRxPoolPS_numRetx[CC_id]; + SL_DiscResourcePoolPS->numRepetition_r12 = configuration->discRxPoolPS_numRepetition[CC_id]; + + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_Num_r12 = configuration->discRxPoolPS_ResourceConfig_prb_Num[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPoolPS_ResourceConfig_prb_Start[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPoolPS_ResourceConfig_prb_End[CC_id]; + + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_present[CC_id]; + if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_choice[CC_id] ; + } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_choice[CC_id] ; + } + + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_present[CC_id]; + if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ + //for BS4 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ + //for BS8 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ + //for BS12 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ + //for BS16 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ + //for BS30 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ + //for BS40 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ + //for BS42 + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; + SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; + } + + //add SL_DiscResourcePool to SL_DiscRxPoolList + ASN_SEQUENCE_ADD(&SL_DiscRxPoolPSList->list,SL_DiscResourcePoolPS); + */ + + (*sib19)->lateNonCriticalExtension = NULL; + //end SIB19 + + //SIB21 + (*sib21)->sl_V2X_ConfigCommon_r14 = CALLOC (1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14)); + //SL_V2X_ConfigCommon= (*sib21)->sl_V2X_ConfigCommon_r14; + memset((*sib21)->sl_V2X_ConfigCommon_r14,0,sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14)); + + struct SL_CommRxPoolListV2X_r14 *SL_CommRxPoolListV2X; + struct SL_CommResourcePoolV2X_r14 *SL_CommResourcePoolV2X; + (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 = CALLOC(1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14)); + SL_CommRxPoolListV2X = (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14; + + SL_CommResourcePoolV2X = CALLOC(1, sizeof(*SL_CommResourcePoolV2X)); + memset(SL_CommResourcePoolV2X,0,sizeof(*SL_CommResourcePoolV2X)); + + SL_CommResourcePoolV2X->sl_OffsetIndicator_r14 = CALLOC(1, sizeof(*SL_CommResourcePoolV2X->sl_OffsetIndicator_r14)); + SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->present = SL_OffsetIndicator_r12_PR_small_r12; + SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->choice.small_r12 = 0; + SL_CommResourcePoolV2X->sl_Subframe_r14.present = SubframeBitmapSL_r14_PR_bs40_r14; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.size = 5; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf = CALLOC(1,5); + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.bits_unused = 0; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[0] = 0xF0; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[1] = 0xFF; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[2] = 0xFF; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[3] = 0xFF; + SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[4] = 0xFF; + + SL_CommResourcePoolV2X->adjacencyPSCCH_PSSCH_r14 = 1; + SL_CommResourcePoolV2X->sizeSubchannel_r14 = 10; + SL_CommResourcePoolV2X->numSubchannel_r14 = 5; + SL_CommResourcePoolV2X->startRB_Subchannel_r14 = 10; + + //rxParametersNCell_r12 + SL_CommResourcePoolV2X->rxParametersNCell_r14 = CALLOC (1, sizeof (*SL_CommResourcePoolV2X->rxParametersNCell_r14)); + SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14 = CALLOC (1, sizeof (*SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14)); + SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->subframeAssignment = 0 ; + SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->specialSubframePatterns = 0; + SL_CommResourcePoolV2X->rxParametersNCell_r14->syncConfigIndex_r14 = 0; + + ASN_SEQUENCE_ADD(&SL_CommRxPoolListV2X->list,SL_CommResourcePoolV2X); + //end SIB21 } - - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present = configuration->rxPool_ResourceConfig_subframeBitmap_present[CC_id]; - if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ - //for BS4 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ - //for BS8 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ - //for BS12 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ - //for BS16 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ - //for BS30 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ - //for BS40 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ - //for BS42 - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_CommResourcePool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } - - //dataHoppingConfig_r12 - SL_CommResourcePool->dataHoppingConfig_r12.hoppingParameter_r12 = 0; - SL_CommResourcePool->dataHoppingConfig_r12.numSubbands_r12 = SL_HoppingConfigComm_r12__numSubbands_r12_ns1; - SL_CommResourcePool->dataHoppingConfig_r12.rb_Offset_r12 = 0; - - //ue_SelectedResourceConfig_r12 - SL_CommResourcePool->ue_SelectedResourceConfig_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->ue_SelectedResourceConfig_r12)); - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Num_r12 = 20; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_Start_r12 = 5; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.prb_End_r12 = 44; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.present = SL_OffsetIndicator_r12_PR_small_r12; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = 0 ; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.present = SubframeBitmapSL_r12_PR_bs40_r12; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = 5; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = CALLOC(1,5); - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = 0; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[0] = 0xF0; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[1] = 0xFF; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[2] = 0xFF; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[3] = 0xFF; - SL_CommResourcePool->ue_SelectedResourceConfig_r12->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf[4] = 0xFF; - //SL_CommResourcePool->ue_SelectedResourceConfig_r12->trpt_Subset_r12 = CALLOC (1, sizeof(*SL_CommResourcePool->ue_SelectedResourceConfig_r12->trpt_Subset_r12)); - //rxParametersNCell_r12 - SL_CommResourcePool->rxParametersNCell_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->rxParametersNCell_r12)); - SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12)); - SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12->subframeAssignment = 0 ; - SL_CommResourcePool->rxParametersNCell_r12->tdd_Config_r12->specialSubframePatterns = 0; - SL_CommResourcePool->rxParametersNCell_r12->syncConfigIndex_r12 = 0; - //txParameters_r12 - SL_CommResourcePool->txParameters_r12 = CALLOC (1, sizeof (*SL_CommResourcePool->txParameters_r12)); - SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.alpha_r12 = Alpha_r12_al0; - SL_CommResourcePool->txParameters_r12->sc_TxParameters_r12.p0_r12 = 0; - - SL_CommResourcePool->ext1 = NULL ; - //end SL_CommResourcePool - //add SL_CommResourcePool to SL_CommRxPoolList - ASN_SEQUENCE_ADD(&SL_CommRxPoolList->list,SL_CommResourcePool); - //end commRxPool_r12 - - //TODO: commTxPoolNormalCommon_r12, similar to commRxPool_r12 - //TODO: commTxPoolExceptional_r12 - //TODO: commSyncConfig_r12 - // may add commTxResourceUC-ReqAllowed with Ext1 - (*sib18)->ext1 = NULL; - (*sib18)->lateNonCriticalExtension = NULL; - // end SIB18 - - // SIB19 - // fill in all elements of SIB19 if present - - //discConfig_r12 - (*sib19)->discConfig_r12 = CALLOC (1, sizeof(*(*sib19)->discConfig_r12)); - SL_DiscRxPoolList = &(*sib19)->discConfig_r12->discRxPool_r12; - memset(SL_DiscRxPoolList,0,sizeof(*SL_DiscRxPoolList)); - //fill SL_DiscResourcePool - SL_DiscResourcePool = CALLOC(1, sizeof(*SL_DiscResourcePool)); - - SL_DiscResourcePool->cp_Len_r12 = configuration->discRxPool_cp_Len[CC_id]; - SL_DiscResourcePool->discPeriod_r12 = configuration->discRxPool_discPeriod[CC_id]; - //sc_TF_ResourceConfig_r12 - SL_DiscResourcePool->numRetx_r12 = configuration->discRxPool_numRetx[CC_id]; - SL_DiscResourcePool->numRepetition_r12 = configuration->discRxPool_numRepetition[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Num_r12 = configuration->discRxPool_ResourceConfig_prb_Num[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPool_ResourceConfig_prb_Start[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPool_ResourceConfig_prb_End[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPool_ResourceConfig_offsetIndicator_present[CC_id]; - if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { - SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; - } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ - SL_DiscResourcePool->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPool_ResourceConfig_offsetIndicator_choice[CC_id] ; - } - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPool_ResourceConfig_subframeBitmap_present[CC_id]; - if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ - //for BS4 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ - //for BS8 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ - //for BS12 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ - //for BS16 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ - //for BS30 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ - //for BS40 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ - //for BS42 - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = (uint8_t *)configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePool->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } - - //add SL_DiscResourcePool to SL_DiscRxPoolList - ASN_SEQUENCE_ADD(&SL_DiscRxPoolList->list,SL_DiscResourcePool); - -/* - //for DiscRxPoolPS - (*sib19)->ext1 = CALLOC (1, sizeof(*(*sib19)->ext1)); - (*sib19)->ext1->discConfigPS_13 = CALLOC (1, sizeof(*((*sib19)->ext1->discConfigPS_13))); - - SL_DiscRxPoolPSList = &(*sib19)->ext1->discConfigPS_13->discRxPoolPS_r13; - memset(SL_DiscRxPoolPSList,0,sizeof(*SL_DiscRxPoolPSList)); - //fill SL_DiscResourcePool - SL_DiscResourcePoolPS = CALLOC(1, sizeof(*SL_DiscResourcePoolPS)); - - SL_DiscResourcePoolPS->cp_Len_r12 = configuration->discRxPoolPS_cp_Len[CC_id]; - SL_DiscResourcePoolPS->discPeriod_r12 = configuration->discRxPoolPS_discPeriod[CC_id]; - //sc_TF_ResourceConfig_r12 - SL_DiscResourcePoolPS->numRetx_r12 = configuration->discRxPoolPS_numRetx[CC_id]; - SL_DiscResourcePoolPS->numRepetition_r12 = configuration->discRxPoolPS_numRepetition[CC_id]; - - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_Num_r12 = configuration->discRxPoolPS_ResourceConfig_prb_Num[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_Start_r12 = configuration->discRxPoolPS_ResourceConfig_prb_Start[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.prb_End_r12 = configuration->discRxPoolPS_ResourceConfig_prb_End[CC_id]; - - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_present[CC_id]; - if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_small_r12 ) { - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12 = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_choice[CC_id] ; - } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.present == SL_OffsetIndicator_r12_PR_large_r12 ){ - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.offsetIndicator_r12.choice.large_r12 = configuration->discRxPoolPS_ResourceConfig_offsetIndicator_choice[CC_id] ; - } - - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_present[CC_id]; - if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs4_r12){ - //for BS4 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs4_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs8_r12){ - //for BS8 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs8_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs12_r12){ - //for BS12 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs12_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs16_r12){ - //for BS16 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs30_r12){ - //for BS30 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs30_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs40_r12){ - //for BS40 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - }else if (SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.present == SubframeBitmapSL_r12_PR_bs42_r12){ - //for BS42 - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.size = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[CC_id]; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.buf = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[CC_id];; - SL_DiscResourcePoolPS->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs42_r12.bits_unused = configuration->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[CC_id]; - } - - //add SL_DiscResourcePool to SL_DiscRxPoolList - ASN_SEQUENCE_ADD(&SL_DiscRxPoolPSList->list,SL_DiscResourcePoolPS); -*/ - - (*sib19)->lateNonCriticalExtension = NULL; - //end SIB19 - - //SIB21 - (*sib21)->sl_V2X_ConfigCommon_r14 = CALLOC (1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14)); - //SL_V2X_ConfigCommon= (*sib21)->sl_V2X_ConfigCommon_r14; - memset((*sib21)->sl_V2X_ConfigCommon_r14,0,sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14)); - - struct SL_CommRxPoolListV2X_r14 *SL_CommRxPoolListV2X; - struct SL_CommResourcePoolV2X_r14 *SL_CommResourcePoolV2X; - (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 = CALLOC(1, sizeof(*(*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14)); - SL_CommRxPoolListV2X = (*sib21)->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14; - - SL_CommResourcePoolV2X = CALLOC(1, sizeof(*SL_CommResourcePoolV2X)); - memset(SL_CommResourcePoolV2X,0,sizeof(*SL_CommResourcePoolV2X)); - - SL_CommResourcePoolV2X->sl_OffsetIndicator_r14 = CALLOC(1, sizeof(*SL_CommResourcePoolV2X->sl_OffsetIndicator_r14)); - SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->present = SL_OffsetIndicator_r12_PR_small_r12; - SL_CommResourcePoolV2X->sl_OffsetIndicator_r14->choice.small_r12 = 0; - SL_CommResourcePoolV2X->sl_Subframe_r14.present = SubframeBitmapSL_r14_PR_bs40_r14; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.size = 5; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf = CALLOC(1,5); - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.bits_unused = 0; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[0] = 0xF0; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[1] = 0xFF; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[2] = 0xFF; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[3] = 0xFF; - SL_CommResourcePoolV2X->sl_Subframe_r14.choice.bs40_r14.buf[4] = 0xFF; - - SL_CommResourcePoolV2X->adjacencyPSCCH_PSSCH_r14 = 1; - SL_CommResourcePoolV2X->sizeSubchannel_r14 = 10; - SL_CommResourcePoolV2X->numSubchannel_r14 = 5; - SL_CommResourcePoolV2X->startRB_Subchannel_r14 = 10; - - //rxParametersNCell_r12 - SL_CommResourcePoolV2X->rxParametersNCell_r14 = CALLOC (1, sizeof (*SL_CommResourcePoolV2X->rxParametersNCell_r14)); - SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14 = CALLOC (1, sizeof (*SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14)); - SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->subframeAssignment = 0 ; - SL_CommResourcePoolV2X->rxParametersNCell_r14->tdd_Config_r14->specialSubframePatterns = 0; - SL_CommResourcePoolV2X->rxParametersNCell_r14->syncConfigIndex_r14 = 0; - - ASN_SEQUENCE_ADD(&SL_CommRxPoolListV2X->list,SL_CommResourcePoolV2X); - //end SIB21 #endif - + bcch_message->message.present = BCCH_DL_SCH_MessageType_PR_c1; bcch_message->message.choice.c1.present = BCCH_DL_SCH_MessageType__c1_PR_systemInformation; @@ -2158,7 +2160,7 @@ uint8_t do_SIB23(uint8_t Mod_id, sib3_part); #if (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - if (MBMS_flag > 0) { + if (configuration->eMBMS_configured > 0) { ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation.criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list, sib13_part); } #endif diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index 0faffc3983..d29a26a427 100755 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -140,11 +140,8 @@ openair_rrc_on( static void init_SI( const protocol_ctxt_t* const ctxt_pP, - const int CC_id -#if defined(ENABLE_ITTI) - , + const int CC_id, RrcConfigurationReq * configuration -#endif ) //----------------------------------------------------------------------------- { @@ -176,20 +173,12 @@ init_SI( LOG_I(RRC, "configuration->schedulingInfoSIB1_BR_r13[CC_id] %d\n",(int)configuration->schedulingInfoSIB1_BR_r13[CC_id]); #endif do_MIB(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id], -#ifdef ENABLE_ITTI configuration->N_RB_DL[CC_id], (int)configuration->radioresourceconfig[CC_id].phich_resource, (int)configuration->radioresourceconfig[CC_id].phich_duration, 0 -#else - 50, 0, 0, 0 -#endif #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) -#ifdef ENABLE_ITTI ,configuration->schedulingInfoSIB1_BR_r13[CC_id] -#else - ,0 -#endif #endif ); @@ -205,9 +194,7 @@ init_SI( #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,FALSE #endif -#if defined(ENABLE_ITTI) , configuration -#endif ); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 != 255,"FATAL, RC.rrc[enb_mod_idP].carrier[CC_id].sizeof_SIB1 == 255"); @@ -219,9 +206,7 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t*) malloc16(32); RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id ,TRUE -#if defined(ENABLE_ITTI) , configuration -#endif ); } #endif @@ -234,9 +219,7 @@ init_SI( #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,FALSE #endif -#if defined(ENABLE_ITTI) , configuration -#endif ); AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 != 255,"FATAL, RC.rrc[mod].carrier[CC_id].sizeof_SIB23 == 255"); @@ -252,10 +235,8 @@ init_SI( #if (RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,TRUE #endif -#if defined(ENABLE_ITTI) ,configuration ); -#endif } #endif @@ -315,7 +296,6 @@ init_SI( RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib2->mbsfn_SubframeConfigList->list.array[i]->radioframeAllocationOffset); } -#if (RRC_VERSION >= MAKE_VERSION(9, 0, 0)) // SIB13 for (i = 0; i < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13->mbsfn_AreaInfoList_r9.list.count; i++) { LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" SIB13 contents for MBSFN sync area %d/%d (partial)\n", @@ -329,80 +309,83 @@ init_SI( PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13->mbsfn_AreaInfoList_r9.list.array[i]->mcch_Config_r9.mcch_Offset_r9); } -#endif } else memset((void*)&RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13,0,sizeof(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib13)); //TTN - SIB 18 - for (int j = 0; j < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.count; j++) { - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Contents of SIB18 %d/%d \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - j+1, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.count); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 rxPool_sc_CP_Len: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_CP_Len_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 sc_Period_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_Period_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 data_CP_Len_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->data_CP_Len_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_Num_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_Num_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_Start_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_Start_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_End_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_End_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 offsetIndicator: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 subframeBitmap_choice_bs_buf: %s \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf); + if (configuration->SL_configured>0) { + for (int j = 0; j < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.count; j++) { + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Contents of SIB18 %d/%d \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + j+1, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.count); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 rxPool_sc_CP_Len: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_CP_Len_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 sc_Period_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_Period_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 data_CP_Len_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->data_CP_Len_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_Num_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_Start_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 prb_End_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.prb_End_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 offsetIndicator: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB18 subframeBitmap_choice_bs_buf: %s \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib18->commConfig_r12->commRxPool_r12.list.array[j]->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf); + + } + + + + for (int j = 0; j < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.count; j++) { + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Contents of SIB19 %d/%d \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + j+1, + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.count); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 cp_Len_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->cp_Len_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 discPeriod_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->discPeriod_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 numRetx_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->numRetx_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 numRepetition_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->numRepetition_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_Num_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_Start_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_End_r12: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_End_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 offsetIndicator: %ld \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12); + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 subframeBitmap_choice_bs_buf: %s \n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), + RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf); + + } } - //TTN - SIB 19 - for (int j = 0; j < RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.count; j++) { - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" Contents of SIB19 %d/%d \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - j+1, - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.count); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 cp_Len_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->cp_Len_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 discPeriod_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->discPeriod_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 numRetx_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->numRetx_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 numRepetition_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->numRepetition_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_Num_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_Num_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_Start_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_Start_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 prb_End_r12: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.prb_End_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 offsetIndicator: %ld \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.offsetIndicator_r12.choice.small_r12); - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" SIB19 tf_ResourceConfig_r12 subframeBitmap_choice_bs_buf: %s \n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), - RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sib19->discConfig_r12->discRxPool_r12.list.array[j]->tf_ResourceConfig_r12.subframeBitmap_r12.choice.bs16_r12.buf); - - } - -#endif +#endif // (RRC_VERSION >= MAKE_VERSION(10, 0, 0)) LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" RRC_UE --- MAC_CONFIG_REQ (SIB1.tdd & SIB2 params) ---> MAC_UE\n", diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 382cc9d2fc..d33a9dc41f 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -15,9 +15,7 @@ eNBs = // Tracking area code, 0x0000 and 0xfffe are reserved values tracking_area_code = "1"; - mobile_country_code = "208"; - - mobile_network_code = "92"; + plmn_list = ( { mcc = 208; mnc = 93; mnc_length = 2;} ); tr_s_preference = "local_mac" @@ -106,10 +104,10 @@ eNBs = ue_TimersAndConstants_n311 = "n1"; ue_TransmissionMode = "tm1"; - # BR Parameters - br_parameters : + # eMTC Parameters + emtc_parameters : { - + eMTC_configured = 1; #hyperSFN_r13 = 0; #eDRX_Allowed_r13 = 0; #q_QualMinRSRQ_CE_r13 = ; @@ -155,9 +153,9 @@ eNBs = # SIB23 frame_type = "FDD"; - preambleTransMax_CE_r13 = "n10"; #6 + preambleTransMax_CE_r13 = 10; #6 - rach_numberOfRA_Preambles = "n60"; #14 + rach_numberOfRA_Preambles = 60; #14 rach_powerRampingStep = 4; rach_preambleInitialReceivedTargetPower = -110; rach_preambleTransMax = 10; @@ -171,8 +169,8 @@ eNBs = { firstPreamble_r13 = 60; lastPreamble_r13 = 63; - ra_ResponseWindowSize_r13 = "sf20"; #0 - mac_ContentionResolutionTimer_r13 = "sf80"; #0 + ra_ResponseWindowSize_r13 = 20; #0 + mac_ContentionResolutionTimer_r13 = 80; #0 rar_HoppingConfig_r13 = "off"; #1; } ); @@ -252,11 +250,11 @@ eNBs = { prach_config_index_br = 3; prach_freq_offset_br = 2; - prach_StartingSubframe_r13 = 0; - maxNumPreambleAttemptCE_r13 = "n10"; #6 - numRepetitionPerPreambleAttempt_r13 = "n1"; #0 - mpdcch_NumRepetition_RA_r13 = "r1"; #0 - prach_HoppingConfig_r13 = "off"; #1 + prach_StartingSubframe_r13 = 2; + maxNumPreambleAttemptCE_r13 = 10; #6 + numRepetitionPerPreambleAttempt_r13 = 1; #0 + mpdcch_NumRepetition_RA_r13 = 1; #0 + prach_HoppingConfig_r13 = 0; #1 max_available_narrow_band = [3]; } ); @@ -370,6 +368,9 @@ eNBs = ENB_INTERFACE_NAME_FOR_S1U = "lo"; ENB_IPV4_ADDRESS_FOR_S1U = "127.0.0.4/24"; ENB_PORT_FOR_S1U = 2152; # Spec 2152 + + ENB_IPV4_ADDRESS_FOR_X2C = "127.0.0.2/24"; + ENB_PORT_FOR_X2C = 36422; # Spec 36422 }; log_config : @@ -393,31 +394,34 @@ eNBs = ); MACRLCs = ( - { - num_cc = 1; - tr_s_preference = "local_L1"; - tr_n_preference = "local_RRC"; + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + phy_test_mode = 0; + puSch10xSnr = 200; + puCch10xSnr = 200; } ); L1s = ( { - num_cc = 1; - tr_n_preference = "local_mac"; - } + num_cc = 1; + tr_n_preference = "local_mac"; + } ); RUs = ( { - local_rf = "yes" - nb_tx = 1 - nb_rx = 1 - att_tx = 0 - att_rx = 0; - bands = [13]; - max_pdschReferenceSignalPower = -27; - max_rxgain = 125; - eNB_instances = [0]; + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [13]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 125; + eNB_instances = [0]; } ); From 7474b69c2960b201dc2fabe5ea08fa3051dde12b Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 19 Nov 2018 09:26:03 +0100 Subject: [PATCH 096/125] added missing files. updates for testing in eMTC configuration after merge. --- openair1/SCHED/fapi_l1.c | 4 +- openair2/ENB_APP/enb_config_SL.c | 293 ++++ openair2/ENB_APP/enb_config_eMTC.c | 1210 +++++++++++++++++ openair2/ENB_APP/enb_paramdef_sidelink.h | 183 +++ openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 5 - .../LAYER2/MAC/eNB_scheduler_primitives.c | 3 +- 6 files changed, 1689 insertions(+), 9 deletions(-) create mode 100644 openair2/ENB_APP/enb_config_SL.c create mode 100644 openair2/ENB_APP/enb_config_eMTC.c create mode 100644 openair2/ENB_APP/enb_paramdef_sidelink.h diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 05ec1a7ce4..3c3f3b5136 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -98,9 +98,9 @@ void handle_nfapi_hi_dci0_mpdcch_dci_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc nfapi_hi_dci0_request_pdu_t *hi_dci0_config_pdu) { int idx = proc->subframe_tx&1; - LTE_eNB_PDCCH *pdcch_vars = &eNB->mpdcch_vars[idx]; + LTE_eNB_MPDCCH *pdcch_vars = &eNB->mpdcch_vars[idx]; // copy dci configuration in to eNB structure - fill_mpdcch_dci0(eNB,proc,&pdcch_vars->dci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu); + fill_mpdcch_dci0(eNB,proc,&pdcch_vars->mdci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu); } void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,eNB_rxtx_proc_t *proc, diff --git a/openair2/ENB_APP/enb_config_SL.c b/openair2/ENB_APP/enb_config_SL.c new file mode 100644 index 0000000000..7e3b4c09aa --- /dev/null +++ b/openair2/ENB_APP/enb_config_SL.c @@ -0,0 +1,293 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/* + enb_config_SL.c + ------------------- + AUTHOR : T.T.Nguyen / R. Knopp + COMPANY : EURECOM + EMAIL : raymond.knopp@eurecom.fr +*/ + +#include +#include + +#include "common/utils/LOG/log.h" +#include "assertions.h" +#include "enb_config.h" +#include "intertask_interface.h" +#include "SystemInformationBlockType2.h" +#include "common/config/config_userapi.h" +#include "RRC_config_tools.h" +#include "enb_paramdef.h" +#include "enb_paramdef_sidelink.h" + +void fill_SL_configuration(MessageDef *msg_p, ccparams_sidelink_t *SLconfig,int cell_idx,int cc_idx,char *config_fname) { + + printf("Configuring SL\n"); + //SIB18 + if (strcmp(SLconfig->rxPool_sc_CP_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[cc_idx] = LTE_SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig->rxPool_sc_CP_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_CP_Len[cc_idx] = LTE_SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_CP_Len choice: normal,extended!\n", + config_fname, cell_idx, SLconfig->rxPool_sc_CP_Len); + + if (strcmp(SLconfig->rxPool_sc_Period,"sf40")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf40; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf60")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf60; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf70")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf70; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf80")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf80; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf120")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf120; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf140")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf140; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf160")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf160; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf240")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf240; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf280")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf280; + } else if (strcmp(SLconfig->rxPool_sc_Period,"sf320")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_sf320; + } else if (strcmp(SLconfig->rxPool_sc_Period,"spare6")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_spare6; + } else if (strcmp(SLconfig->rxPool_sc_Period,"spare5")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_spare5; + } else if (strcmp(SLconfig->rxPool_sc_Period,"spare4")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_spare4; + } else if (strcmp(SLconfig->rxPool_sc_Period,"spare3")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_spare3; + } else if (strcmp(SLconfig->rxPool_sc_Period,"spare2")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_spare2; + } else if (strcmp(SLconfig->rxPool_sc_Period,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_sc_Period[cc_idx] = LTE_SL_PeriodComm_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_sc_Period choice: sf40,sf60,sf70,sf80,sf120,sf140,sf160,sf240,sf280,sf320,spare6,spare5,spare4,spare3,spare2,spare!\n", + config_fname, cell_idx, SLconfig->rxPool_sc_Period); + + if (strcmp(SLconfig->rxPool_data_CP_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[cc_idx] = LTE_SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig->rxPool_data_CP_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_data_CP_Len[cc_idx] = LTE_SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_data_CP_Len choice: normal,extended!\n", + config_fname, cell_idx, SLconfig->rxPool_data_CP_Len); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Num[cc_idx] = SLconfig->rxPool_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_Start[cc_idx] = SLconfig->rxPool_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_prb_End[cc_idx] = SLconfig->rxPool_ResourceConfig_prb_End; + + if (strcmp(SLconfig->rxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + config_fname, cell_idx, SLconfig->rxPool_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_offsetIndicator_choice[cc_idx] = SLconfig->rxPool_ResourceConfig_offsetIndicator_choice; + + if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(SLconfig->rxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + config_fname, cell_idx, SLconfig->rxPool_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_buf[cc_idx] = SLconfig->rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_size[cc_idx] = SLconfig->rxPool_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[cc_idx] = SLconfig->rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 - for discRxPool + if (strcmp(SLconfig->discRxPool_cp_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[cc_idx] = LTE_SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig->discRxPool_cp_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_cp_Len[cc_idx] = LTE_SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_cp_Len choice: normal,extended!\n", + config_fname, cell_idx, SLconfig->discRxPool_cp_Len); + + if (strcmp(SLconfig->discRxPool_discPeriod,"rf32")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf32; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"rf64")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf64; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"rf128")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf128; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"rf256")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf256; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"rf512")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf512; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"rf1024")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf1024; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"rf16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; + } else if (strcmp(SLconfig->discRxPool_discPeriod,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", + config_fname, cell_idx, SLconfig->discRxPool_discPeriod); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRetx[cc_idx] = SLconfig->discRxPool_numRetx; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_numRepetition[cc_idx] = SLconfig->discRxPool_numRepetition; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Num[cc_idx] = SLconfig->discRxPool_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_Start[cc_idx] = SLconfig->discRxPool_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_prb_End[cc_idx] = SLconfig->discRxPool_ResourceConfig_prb_End; + + if (strcmp(SLconfig->discRxPool_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + config_fname, cell_idx, SLconfig->discRxPool_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_offsetIndicator_choice[cc_idx] = SLconfig->discRxPool_ResourceConfig_offsetIndicator_choice; + + if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(SLconfig->discRxPool_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPool_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + config_fname, cell_idx, SLconfig->discRxPool_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf[cc_idx] = SLconfig->discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_size[cc_idx] = SLconfig->discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused[cc_idx] = SLconfig->discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + + //SIB19 - For discRxPoolPS + if (strcmp(SLconfig->discRxPoolPS_cp_Len,"normal")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[cc_idx] = LTE_SL_CP_Len_r12_normal; + } else if (strcmp(SLconfig->discRxPoolPS_cp_Len,"extended")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_cp_Len[cc_idx] = LTE_SL_CP_Len_r12_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_cp_Len choice: normal,extended!\n", + config_fname, cell_idx, SLconfig->discRxPoolPS_cp_Len); + + if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf32")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf32; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf64")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf64; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf128")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf128; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf256")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf256; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf512")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf512; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf1024")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf1024; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"rf16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_rf16_v1310; + } else if (strcmp(SLconfig->discRxPoolPS_discPeriod,"spare")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_discPeriod[cc_idx] = LTE_SL_DiscResourcePool_r12__discPeriod_r12_spare; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_discPeriod choice: rf32,rf64,rf128,rf512,rf1024,rf16,spare!\n", + config_fname, cell_idx, SLconfig->discRxPoolPS_discPeriod); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRetx[cc_idx] = SLconfig->discRxPoolPS_numRetx; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_numRepetition[cc_idx] = SLconfig->discRxPoolPS_numRepetition; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Num[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_prb_Num; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_Start[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_prb_Start; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_prb_End[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_prb_End; + + if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_offsetIndicator_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_NOTHING; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_offsetIndicator_present,"prSmall")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_small_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_offsetIndicator_present,"prLarge")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_present[cc_idx] = LTE_SL_OffsetIndicator_r12_PR_large_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_offsetIndicator_present choice: prNothing,prSmal,prLarge!\n", + config_fname, cell_idx, SLconfig->discRxPoolPS_ResourceConfig_offsetIndicator_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_offsetIndicator_choice[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_offsetIndicator_choice; + + if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prNothing")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_NOTHING; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs4")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs4_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs8")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs8_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs12")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs12_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs16")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs16_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs30")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs30_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs40")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs40_r12; + } else if (strcmp(SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present,"prBs42")==0) { + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_present[cc_idx] = LTE_SubframeBitmapSL_r12_PR_bs42_r12; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for discRxPoolPS_ResourceConfig_subframeBitmap_present choice: prNothing,prBs4,prBs8,prBs12,prBs16,prBs30,prBs40,prBs42!\n", + config_fname, cell_idx, SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_present); + + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; + RRC_CONFIGURATION_REQ (msg_p).discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused[cc_idx] = SLconfig->discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; +} // sidelink_configured==1 diff --git a/openair2/ENB_APP/enb_config_eMTC.c b/openair2/ENB_APP/enb_config_eMTC.c new file mode 100644 index 0000000000..d43e639f1f --- /dev/null +++ b/openair2/ENB_APP/enb_config_eMTC.c @@ -0,0 +1,1210 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/* + enb_config_SL.c + ------------------- + AUTHOR : R. Knopp + COMPANY : EURECOM + EMAIL : raymond.knopp@eurecom.fr +*/ + +#include +#include + +#include "common/utils/LOG/log.h" +#include "assertions.h" +#include "enb_config.h" +#include "intertask_interface.h" +#include "SystemInformationBlockType2.h" +#include "common/config/config_userapi.h" +#include "RRC_config_tools.h" +#include "enb_paramdef.h" + +void fill_eMTC_configuration(MessageDef *msg_p, ccparams_eMTC_t *eMTCconfig, int cell_idx,int cc_idx,char *config_fname,char *brparamspath) { + + paramdef_t schedulingInfoBrParams[] = SI_INFO_BR_DESC(eMTCconfig); + paramlist_def_t schedulingInfoBrParamList = {ENB_CONFIG_STRING_SCHEDULING_INFO_BR, NULL, 0}; + paramdef_t rachcelevelParams[] = RACH_CE_LEVELINFOLIST_R13_DESC(eMTCconfig); + paramlist_def_t rachcelevellist = {ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, NULL, 0}; + paramdef_t rsrprangeParams[] = RSRP_RANGE_LIST_DESC(eMTCconfig); + paramlist_def_t rsrprangelist = {ENB_CONFIG_STRING_RSRP_RANGE_LIST, NULL, 0}; + paramdef_t prachParams[] = PRACH_PARAMS_CE_R13_DESC(eMTCconfig); + paramlist_def_t prachParamslist = {ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, NULL, 0}; + paramdef_t n1PUCCH_ANR13Params[] = N1PUCCH_AN_INFOLIST_R13_DESC(eMTCconfig); + paramlist_def_t n1PUCCHInfoList = {ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, NULL, 0}; + paramdef_t pcchv1310Params[] = PCCH_CONFIG_V1310_DESC(eMTCconfig); + paramdef_t sib2freqhoppingParams[] = SIB2_FREQ_HOPPING_R13_DESC(eMTCconfig); + + + + printf("Found parameters for eMTC from %s : %s\n",config_fname,brparamspath); + RRC_CONFIGURATION_REQ(msg_p).schedulingInfoSIB1_BR_r13[cc_idx] = eMTCconfig->schedulingInfoSIB1_BR_r13; + + + if (!strcmp(eMTCconfig->cellSelectionInfoCE_r13, "ENABLE")) { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[cc_idx] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).q_RxLevMinCE_r13[cc_idx]= eMTCconfig->q_RxLevMinCE_r13; + // RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[cc_idx]= calloc(1, sizeof(long)); + // *RRC_CONFIGURATION_REQ(msg_p).q_QualMinRSRQ_CE_r13[cc_idx]= q_QualMinRSRQ_CE_r13; + } else { + RRC_CONFIGURATION_REQ(msg_p).cellSelectionInfoCE_r13[cc_idx] = FALSE; + } + + + + if (!strcmp(eMTCconfig->bandwidthReducedAccessRelatedInfo_r13, "ENABLE")) { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[cc_idx] = TRUE; + + + + if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms20")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 0; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms40")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 1; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms60")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 2; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms80")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 3; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms120")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 4; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms160")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 5; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "ms200")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 6; + } else if (!strcmp(eMTCconfig->si_WindowLength_BR_r13, "spare")) { + RRC_CONFIGURATION_REQ(msg_p).si_WindowLength_BR_r13[cc_idx] = 7; + } + + + if (!strcmp(eMTCconfig->si_RepetitionPattern_r13, "everyRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[cc_idx] = 0; + } else if (!strcmp(eMTCconfig->si_RepetitionPattern_r13, "every2ndRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[cc_idx] = 1; + } else if (!strcmp(eMTCconfig->si_RepetitionPattern_r13, "every4thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[cc_idx] = 2; + } else if (!strcmp(eMTCconfig->si_RepetitionPattern_r13, "every8thRF")) { + RRC_CONFIGURATION_REQ(msg_p).si_RepetitionPattern_r13[cc_idx] = 3; + } + + } else { + RRC_CONFIGURATION_REQ(msg_p).bandwidthReducedAccessRelatedInfo_r13[cc_idx] = FALSE; + } + + char schedulingInfoBrPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&schedulingInfoBrParamList, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[cc_idx] = schedulingInfoBrParamList.numelt; + int siInfoindex; + for (siInfoindex = 0; siInfoindex < schedulingInfoBrParamList.numelt; siInfoindex++) { + sprintf(schedulingInfoBrPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_EMTC_PARAMETERS, siInfoindex); + config_get(schedulingInfoBrParams, sizeof(schedulingInfoBrParams) / sizeof(paramdef_t), schedulingInfoBrPath); + RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[cc_idx][siInfoindex] = eMTCconfig->si_Narrowband_r13; + RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[cc_idx][siInfoindex] = eMTCconfig->si_TBS_r13; + } + + + + // RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig[cc_idx].system_info_value_tag_SI_size[cc_idx] = 0; + + + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = CALLOC(1, sizeof(BOOLEAN_t)); + if (!strcmp(eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_r13, "subframePattern40-r13")) { + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = FALSE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[cc_idx] = eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + } else { + *RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_r13[cc_idx] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).fdd_DownlinkOrTddSubframeBitmapBR_val_r13[cc_idx] = eMTCconfig->fdd_DownlinkOrTddSubframeBitmapBR_val_r13; + } + + RRC_CONFIGURATION_REQ(msg_p).startSymbolBR_r13[cc_idx] = eMTCconfig->startSymbolBR_r13; + + + if (!strcmp(eMTCconfig->si_HoppingConfigCommon_r13, "off")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[cc_idx] = 1; + } else if (!strcmp(eMTCconfig->si_HoppingConfigCommon_r13, "on")) { + RRC_CONFIGURATION_REQ(msg_p).si_HoppingConfigCommon_r13[cc_idx] = 0; + } + + + RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[cc_idx] = calloc(1, sizeof(long)); + if (!strcmp(eMTCconfig->si_ValidityTime_r13, "true")) { + *RRC_CONFIGURATION_REQ(msg_p).si_ValidityTime_r13[cc_idx] = 0; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d si_ValidityTime_r13 unknown value!\n", + config_fname, cell_idx); + } + + + if (!strcmp(eMTCconfig->freqHoppingParametersDL_r13, "ENABLE")) + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[cc_idx] = TRUE; + + if (!strcmp(eMTCconfig->interval_DLHoppingConfigCommonModeA_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[cc_idx] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13[cc_idx] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeA_r13_val[cc_idx] = eMTCconfig->interval_DLHoppingConfigCommonModeA_r13_val; + + if (!strcmp(eMTCconfig->interval_DLHoppingConfigCommonModeB_r13, "interval-TDD-r13")) + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[cc_idx] = FALSE; + else + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13[cc_idx] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).interval_DLHoppingConfigCommonModeB_r13_val[cc_idx] = eMTCconfig->interval_DLHoppingConfigCommonModeB_r13_val; + + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[cc_idx] = calloc(1, sizeof(long)); + if (!strcmp(eMTCconfig->mpdcch_pdsch_HoppingNB_r13, "nb2")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[cc_idx] = 0; + } else if (!strcmp(eMTCconfig->mpdcch_pdsch_HoppingNB_r13, "nb4")) { + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingNB_r13[cc_idx] = 1; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_pdsch_HoppingNB_r13 unknown value!\n", + config_fname, cell_idx); + } + + + RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[cc_idx] = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).mpdcch_pdsch_HoppingOffset_r13[cc_idx] = eMTCconfig->mpdcch_pdsch_HoppingOffset_r13; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).freqHoppingParametersDL_r13[cc_idx] = FALSE; + } + + /** ------------------------------SIB2/3 BR------------------------------------------ */ + + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_root = eMTCconfig->ccparams.prach_root; + + if ((eMTCconfig->ccparams.prach_root <0) || (eMTCconfig->ccparams.prach_root > 1023)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_root choice: 0..1023 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.prach_root); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_config_index = eMTCconfig->ccparams.prach_config_index; + + if ((eMTCconfig->ccparams.prach_config_index <0) || (eMTCconfig->ccparams.prach_config_index > 63)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_config_index choice: 0..1023 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.prach_config_index); + + if (!eMTCconfig->ccparams.prach_high_speed) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + config_fname, cell_idx,ENB_CONFIG_STRING_PRACH_HIGH_SPEED); + else if (strcmp(eMTCconfig->ccparams.prach_high_speed, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_high_speed = TRUE; + } else if (strcmp(eMTCconfig->ccparams.prach_high_speed, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_high_speed = FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for prach_config choice: ENABLE,DISABLE !\n", + config_fname, cell_idx,eMTCconfig->ccparams.prach_high_speed); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_zero_correlation = eMTCconfig->ccparams.prach_zero_correlation; + + if ((eMTCconfig->ccparams.prach_zero_correlation <0) || (eMTCconfig->ccparams.prach_zero_correlation > 15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_zero_correlation choice: 0..15!\n", + config_fname, cell_idx,eMTCconfig->ccparams.prach_zero_correlation); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].prach_freq_offset = eMTCconfig->ccparams.prach_freq_offset; + + if ((eMTCconfig->ccparams.prach_freq_offset <0) || (eMTCconfig->ccparams.prach_freq_offset > 94)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for prach_freq_offset choice: 0..94!\n", + config_fname, cell_idx,eMTCconfig->ccparams.prach_freq_offset); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_delta_shift = eMTCconfig->ccparams.pucch_delta_shift-1; + + if ((eMTCconfig->ccparams.pucch_delta_shift <1) || (eMTCconfig->ccparams.pucch_delta_shift > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_delta_shift choice: 1..3!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_delta_shift); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_nRB_CQI = eMTCconfig->ccparams.pucch_nRB_CQI; + + if ((eMTCconfig->ccparams.pucch_nRB_CQI <0) || (eMTCconfig->ccparams.pucch_nRB_CQI > 98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nRB_CQI choice: 0..98!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_nRB_CQI); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_nCS_AN = eMTCconfig->ccparams.pucch_nCS_AN; + + if ((eMTCconfig->ccparams.pucch_nCS_AN <0) || (eMTCconfig->ccparams.pucch_nCS_AN > 7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_nCS_AN choice: 0..7!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_nCS_AN); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_n1_AN = eMTCconfig->ccparams.pucch_n1_AN; + + if ((eMTCconfig->ccparams.pucch_n1_AN <0) || (eMTCconfig->ccparams.pucch_n1_AN > 2047)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_n1_AN choice: 0..2047!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_n1_AN); + + //#endif + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pdsch_referenceSignalPower = eMTCconfig->ccparams.pdsch_referenceSignalPower; + + if ((eMTCconfig->ccparams.pdsch_referenceSignalPower <-60) || (eMTCconfig->ccparams.pdsch_referenceSignalPower > 50)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_referenceSignalPower choice:-60..50!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pdsch_referenceSignalPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pdsch_p_b = eMTCconfig->ccparams.pdsch_p_b; + + if ((eMTCconfig->ccparams.pdsch_p_b <0) || (eMTCconfig->ccparams.pdsch_p_b > 3)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pdsch_p_b choice: 0..3!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pdsch_p_b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_n_SB = eMTCconfig->ccparams.pusch_n_SB; + + if ((eMTCconfig->ccparams.pusch_n_SB <1) || (eMTCconfig->ccparams.pusch_n_SB > 4)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_n_SB choice: 1..4!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_n_SB); + + if (!eMTCconfig->ccparams.pusch_hoppingMode) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: interSubframe,intraAndInterSubframe!\n", + config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_HOPPINGMODE); + else if (strcmp(eMTCconfig->ccparams.pusch_hoppingMode,"interSubFrame")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_hoppingMode = LTE_PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_interSubFrame; + } else if (strcmp(eMTCconfig->ccparams.pusch_hoppingMode,"intraAndInterSubFrame")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_hoppingMode = LTE_PUSCH_ConfigCommon__pusch_ConfigBasic__hoppingMode_intraAndInterSubFrame; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingMode choice: interSubframe,intraAndInterSubframe!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_hoppingMode); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_hoppingOffset = eMTCconfig->ccparams.pusch_hoppingOffset; + + if ((eMTCconfig->ccparams.pusch_hoppingOffset<0) || (eMTCconfig->ccparams.pusch_hoppingOffset>98)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_hoppingOffset choice: 0..98!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_hoppingMode); + + if (!eMTCconfig->ccparams.pusch_enable64QAM) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_ENABLE64QAM); + else if (strcmp(eMTCconfig->ccparams.pusch_enable64QAM, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_enable64QAM = TRUE; + } else if (strcmp(eMTCconfig->ccparams.pusch_enable64QAM, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_enable64QAM = FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_enable64QAM choice: ENABLE,DISABLE!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_enable64QAM); + + if (!eMTCconfig->ccparams.pusch_groupHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_GROUP_HOPPING_EN); + else if (strcmp(eMTCconfig->ccparams.pusch_groupHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupHoppingEnabled = TRUE; + } else if (strcmp(eMTCconfig->ccparams.pusch_groupHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupHoppingEnabled= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_groupHoppingEnabled choice: ENABLE,DISABLE!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_groupHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_groupAssignment = eMTCconfig->ccparams.pusch_groupAssignment; + + if ((eMTCconfig->ccparams.pusch_groupAssignment<0)||(eMTCconfig->ccparams.pusch_groupAssignment>29)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_groupAssignment choice: 0..29!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_groupAssignment); + + if (!eMTCconfig->ccparams.pusch_sequenceHoppingEnabled) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d define %s: ENABLE,DISABLE!\n", + config_fname, cell_idx,ENB_CONFIG_STRING_PUSCH_SEQUENCE_HOPPING_EN); + else if (strcmp(eMTCconfig->ccparams.pusch_sequenceHoppingEnabled, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_sequenceHoppingEnabled = TRUE; + } else if (strcmp(eMTCconfig->ccparams.pusch_sequenceHoppingEnabled, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_sequenceHoppingEnabled = FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pusch_sequenceHoppingEnabled choice: ENABLE,DISABLE!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_sequenceHoppingEnabled); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_nDMRS1= eMTCconfig->ccparams.pusch_nDMRS1; //cyclic_shift in RRC! + + if ((eMTCconfig->ccparams.pusch_nDMRS1 <0) || (eMTCconfig->ccparams.pusch_nDMRS1>7)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_nDMRS1 choice: 0..7!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_nDMRS1); + + if (strcmp(eMTCconfig->ccparams.phich_duration,"NORMAL")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_duration= LTE_PHICH_Config__phich_Duration_normal; + } else if (strcmp(eMTCconfig->ccparams.phich_duration,"EXTENDED")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_duration= LTE_PHICH_Config__phich_Duration_extended; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_duration choice: NORMAL,EXTENDED!\n", + config_fname, cell_idx,eMTCconfig->ccparams.phich_duration); + + if (strcmp(eMTCconfig->ccparams.phich_resource,"ONESIXTH")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_resource= LTE_PHICH_Config__phich_Resource_oneSixth ; + } else if (strcmp(eMTCconfig->ccparams.phich_resource,"HALF")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_resource= LTE_PHICH_Config__phich_Resource_half; + } else if (strcmp(eMTCconfig->ccparams.phich_resource,"ONE")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_resource= LTE_PHICH_Config__phich_Resource_one; + } else if (strcmp(eMTCconfig->ccparams.phich_resource,"TWO")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_resource= LTE_PHICH_Config__phich_Resource_two; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for phich_resource choice: ONESIXTH,HALF,ONE,TWO!\n", + config_fname, cell_idx,eMTCconfig->ccparams.phich_resource); + + printf("phich.resource eMTC %ld (%s), phich.duration eMTC %ld (%s)\n", + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_resource,eMTCconfig->ccparams.phich_resource, + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].phich_duration,eMTCconfig->ccparams.phich_duration); + + if (strcmp(eMTCconfig->ccparams.srs_enable, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable= TRUE; + } else if (strcmp(eMTCconfig->ccparams.srs_enable, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + config_fname, cell_idx,eMTCconfig->ccparams.srs_enable); + + if (RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_enable== TRUE) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_BandwidthConfig= eMTCconfig->ccparams.srs_BandwidthConfig; + + if ((eMTCconfig->ccparams.srs_BandwidthConfig < 0) || (eMTCconfig->ccparams.srs_BandwidthConfig >7)) + AssertFatal (0, "Failed to parse eNB configuration file %s, enb %d unknown value %d for srs_BandwidthConfig choice: 0...7\n", + config_fname, cell_idx,eMTCconfig->ccparams.srs_BandwidthConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_SubframeConfig= eMTCconfig->ccparams.srs_SubframeConfig; + + if ((eMTCconfig->ccparams.srs_SubframeConfig<0) || (eMTCconfig->ccparams.srs_SubframeConfig>15)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for srs_SubframeConfig choice: 0..15 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.srs_SubframeConfig); + + if (strcmp(eMTCconfig->ccparams.srs_ackNackST, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_ackNackST= TRUE; + } else if (strcmp(eMTCconfig->ccparams.srs_ackNackST, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_ackNackST= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_BandwidthConfig choice: ENABLE,DISABLE !\n", + config_fname, cell_idx,eMTCconfig->ccparams.srs_ackNackST); + + if (strcmp(eMTCconfig->ccparams.srs_MaxUpPts, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_MaxUpPts= TRUE; + } else if (strcmp(eMTCconfig->ccparams.srs_MaxUpPts, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].srs_MaxUpPts= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for srs_MaxUpPts choice: ENABLE,DISABLE !\n", + config_fname, cell_idx,eMTCconfig->ccparams.srs_MaxUpPts); + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_p0_Nominal= eMTCconfig->ccparams.pusch_p0_Nominal; + + if ((eMTCconfig->ccparams.pusch_p0_Nominal<-126) || (eMTCconfig->ccparams.pusch_p0_Nominal>24)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pusch_p0_Nominal choice: -126..24 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_p0_Nominal); + + if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al0; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL04")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al04; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL05")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al05; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL06")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al06; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL07")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al07; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL08")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al08; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL09")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al09; + } else if (strcmp(eMTCconfig->ccparams.pusch_alpha,"AL1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pusch_alpha= LTE_Alpha_r12_al1; + } + + else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_Alpha choice: AL0,AL04,AL05,AL06,AL07,AL08,AL09,AL1!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pusch_alpha); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_p0_Nominal= eMTCconfig->ccparams.pucch_p0_Nominal; + + if ((eMTCconfig->ccparams.pucch_p0_Nominal<-127) || (eMTCconfig->ccparams.pucch_p0_Nominal>-96)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pucch_p0_Nominal choice: -127..-96 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_p0_Nominal); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].msg3_delta_Preamble= eMTCconfig->ccparams.msg3_delta_Preamble; + + if ((eMTCconfig->ccparams.msg3_delta_Preamble<-1) || (eMTCconfig->ccparams.msg3_delta_Preamble>6)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for msg3_delta_Preamble choice: -1..6 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.msg3_delta_Preamble); + + if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format1,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format1= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF_2; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format1,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format1= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF0; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format1,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format1= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1 choice: deltaF_2,dltaF0,deltaF2!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_deltaF_Format1); + + if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format1b,"deltaF1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format1b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF1; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format1b,"deltaF3")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format1b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF3; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format1b,"deltaF5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format1b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format1b_deltaF5; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format1b choice: deltaF1,dltaF3,deltaF5!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_deltaF_Format1b); + + if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF_2; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF0; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2,"deltaF1")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF1; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2 choice: deltaF_2,dltaF0,deltaF1,deltaF2!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_deltaF_Format2); + + if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2a,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2a= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF_2; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2a,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2a= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF0; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2a,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2a= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2a_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2a choice: deltaF_2,dltaF0,deltaF2!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_deltaF_Format2a); + + if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2b,"deltaF_2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF_2; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2b,"deltaF0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF0; + } else if (strcmp(eMTCconfig->ccparams.pucch_deltaF_Format2b,"deltaF2")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pucch_deltaF_Format2b= LTE_DeltaFList_PUCCH__deltaF_PUCCH_Format2b_deltaF2; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pucch_deltaF_Format2b choice: deltaF_2,dltaF0,deltaF2!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pucch_deltaF_Format2b); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_numberOfRA_Preambles= (eMTCconfig->ccparams.rach_numberOfRA_Preambles/4)-1; + + if ((eMTCconfig->ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig->ccparams.rach_numberOfRA_Preambles >64) || ((eMTCconfig->ccparams.rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_numberOfRA_Preambles); + + if (strcmp(eMTCconfig->ccparams.rach_preamblesGroupAConfig, "ENABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preamblesGroupAConfig= TRUE; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_sizeOfRA_PreamblesGroupA= (eMTCconfig->ccparams.rach_sizeOfRA_PreamblesGroupA/4)-1; + + if ((eMTCconfig->ccparams.rach_numberOfRA_Preambles <4) || (eMTCconfig->ccparams.rach_numberOfRA_Preambles>60) || ((eMTCconfig->ccparams.rach_numberOfRA_Preambles&3)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_sizeOfRA_PreamblesGroupA choice: 4,8,12,...,60!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_sizeOfRA_PreamblesGroupA); + + switch (eMTCconfig->ccparams.rach_messageSizeGroupA) { + case 56: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messageSizeGroupA= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b56; + break; + + case 144: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messageSizeGroupA= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b144; + break; + + case 208: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messageSizeGroupA= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b208; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messageSizeGroupA= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messageSizeGroupA_b256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_messageSizeGroupA choice: 56,144,208,256!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_messageSizeGroupA); + break; + } + + if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"minusinfinity")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_minusinfinity; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB0")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB0; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB5")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB5; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB8")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB8; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB10")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB10; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB12")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB12; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB15")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB15; + } else if (strcmp(eMTCconfig->ccparams.rach_messagePowerOffsetGroupB,"dB18")==0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_messagePowerOffsetGroupB= LTE_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB_dB18; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_messagePowerOffsetGroupB choice: minusinfinity,dB0,dB5,dB8,dB10,dB12,dB15,dB18!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_messagePowerOffsetGroupB); + } else if (strcmp(eMTCconfig->ccparams.rach_preamblesGroupAConfig, "DISABLE") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preamblesGroupAConfig= FALSE; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for rach_preamblesGroupAConfig choice: ENABLE,DISABLE !\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_preamblesGroupAConfig); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleInitialReceivedTargetPower= (eMTCconfig->ccparams.rach_preambleInitialReceivedTargetPower+120)/2; + + if ((eMTCconfig->ccparams.rach_preambleInitialReceivedTargetPower<-120) || (eMTCconfig->ccparams.rach_preambleInitialReceivedTargetPower>-90) || ((eMTCconfig->ccparams.rach_preambleInitialReceivedTargetPower&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleInitialReceivedTargetPower choice: -120,-118,...,-90 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_preambleInitialReceivedTargetPower); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_powerRampingStep= eMTCconfig->ccparams.rach_powerRampingStep/2; + + if ((eMTCconfig->ccparams.rach_powerRampingStep<0) || (eMTCconfig->ccparams.rach_powerRampingStep>6) || ((eMTCconfig->ccparams.rach_powerRampingStep&1)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_powerRampingStep choice: 0,2,4,6 !\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_powerRampingStep); + + switch (eMTCconfig->ccparams.rach_preambleTransMax) { + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n7; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n8; + break; + + case 10: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n10; + break; + + case 20: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n20; + break; + + case 50: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n50; + break; + + case 100: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n100; + break; + + case 200: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_preambleTransMax= LTE_PreambleTransMax_n200; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_preambleTransMax choice: 3,4,5,6,7,8,10,20,50,100,200!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_preambleTransMax); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_raResponseWindowSize= (eMTCconfig->ccparams.rach_raResponseWindowSize==10)?7:eMTCconfig->ccparams.rach_raResponseWindowSize-2; + + if ((eMTCconfig->ccparams.rach_raResponseWindowSize<0)||(eMTCconfig->ccparams.rach_raResponseWindowSize==9)||(eMTCconfig->ccparams.rach_raResponseWindowSize>10)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_raResponseWindowSize choice: 2,3,4,5,6,7,8,10!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_raResponseWindowSize); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_macContentionResolutionTimer= (eMTCconfig->ccparams.rach_macContentionResolutionTimer/8)-1; + + if ((eMTCconfig->ccparams.rach_macContentionResolutionTimer<8) || (eMTCconfig->ccparams.rach_macContentionResolutionTimer>64) || ((eMTCconfig->ccparams.rach_macContentionResolutionTimer&7)!=0)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_macContentionResolutionTimer choice: 8,16,...,56,64!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_macContentionResolutionTimer); + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].rach_maxHARQ_Msg3Tx= eMTCconfig->ccparams.rach_maxHARQ_Msg3Tx; + + if ((eMTCconfig->ccparams.rach_maxHARQ_Msg3Tx<0) || (eMTCconfig->ccparams.rach_maxHARQ_Msg3Tx>8)) + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_maxHARQ_Msg3Tx choice: 1..8!\n", + config_fname, cell_idx,eMTCconfig->ccparams.rach_maxHARQ_Msg3Tx); + + switch (eMTCconfig->ccparams.pcch_defaultPagingCycle) { + case 32: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_defaultPagingCycle= LTE_PCCH_Config__defaultPagingCycle_rf32; + break; + + case 64: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_defaultPagingCycle= LTE_PCCH_Config__defaultPagingCycle_rf64; + break; + + case 128: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_defaultPagingCycle= LTE_PCCH_Config__defaultPagingCycle_rf128; + break; + + case 256: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_defaultPagingCycle= LTE_PCCH_Config__defaultPagingCycle_rf256; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for pcch_defaultPagingCycle choice: 32,64,128,256!\n", + config_fname, cell_idx,eMTCconfig->ccparams.pcch_defaultPagingCycle); + break; + } + + if (strcmp(eMTCconfig->ccparams.pcch_nB, "fourT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_fourT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "twoT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_twoT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "oneT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_oneT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "halfT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_halfT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "quarterT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_quarterT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "oneEighthT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_oneEighthT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "oneSixteenthT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_oneSixteenthT; + } else if (strcmp(eMTCconfig->ccparams.pcch_nB, "oneThirtySecondT") == 0) { + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].pcch_nB= LTE_PCCH_Config__nB_oneThirtySecondT; + } else + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%s\" for pcch_nB choice: fourT,twoT,oneT,halfT,quarterT,oneighthT,oneSixteenthT,oneThirtySecondT !\n", + config_fname, cell_idx,eMTCconfig->ccparams.pcch_nB); + + switch (eMTCconfig->ccparams.bcch_modificationPeriodCoeff) { + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].bcch_modificationPeriodCoeff= LTE_BCCH_Config__modificationPeriodCoeff_n2; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].bcch_modificationPeriodCoeff= LTE_BCCH_Config__modificationPeriodCoeff_n4; + break; + + case 8: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].bcch_modificationPeriodCoeff= LTE_BCCH_Config__modificationPeriodCoeff_n8; + break; + + case 16: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].bcch_modificationPeriodCoeff= LTE_BCCH_Config__modificationPeriodCoeff_n16; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for bcch_modificationPeriodCoeff choice: 2,4,8,16", + config_fname, cell_idx,eMTCconfig->ccparams.bcch_modificationPeriodCoeff); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TimersAndConstants_t300= eMTCconfig->ccparams.ue_TimersAndConstants_t300; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TimersAndConstants_t301= eMTCconfig->ccparams.ue_TimersAndConstants_t301; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TimersAndConstants_t310= eMTCconfig->ccparams.ue_TimersAndConstants_t310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TimersAndConstants_t311= eMTCconfig->ccparams.ue_TimersAndConstants_t311; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TimersAndConstants_n310= eMTCconfig->ccparams.ue_TimersAndConstants_n310; + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TimersAndConstants_n311= eMTCconfig->ccparams.ue_TimersAndConstants_n311; + + switch (eMTCconfig->ccparams.ue_TransmissionMode) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm1; + break; + + case 2: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm2; + break; + + case 3: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm3; + break; + + case 4: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm4; + break; + + case 5: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm5; + break; + + case 6: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm6; + break; + + case 7: + RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[cc_idx].ue_TransmissionMode= LTE_AntennaInfoDedicated__transmissionMode_tm7; + break; + + default: + AssertFatal (0, + "Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7", + config_fname, cell_idx, eMTCconfig->ccparams.ue_TransmissionMode); + break; + } + + + if (!strcmp(eMTCconfig->prach_ConfigCommon_v1310, "ENABLE")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_ConfigCommon_v1310 = TRUE; + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(BOOLEAN_t)); + + if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13, "tdd-r13")) { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = FALSE; + } else { + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13 = TRUE; + } + + if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v1")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 0; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v1dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 1; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v2")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 2; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v2dot5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 3; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v4")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 4; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v5")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 5; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "v8")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 6; + } else if (!strcmp(eMTCconfig->mpdcch_startSF_CSS_RA_r13_val, "10")) { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].mpdcch_startSF_CSS_RA_r13_val = 7; + } else { + AssertFatal(0, + "Failed to parse eNB configuration file %s, enb %d mpdcch_startSF_CSS_RA_r13_val! Unknown Value !!\n", + config_fname, cell_idx); + } + + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_HoppingOffset_r13 = calloc(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_HoppingOffset_r13 = eMTCconfig->prach_HoppingOffset_r13; + } else { + RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[cc_idx].prach_ConfigCommon_v1310 = FALSE; + } + + + RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[cc_idx] = CALLOC(1, sizeof(long)); + if (!strcmp(eMTCconfig->pdsch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[cc_idx] = 0; + } else if (!strcmp(eMTCconfig->pdsch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pdsch_maxNumRepetitionCEmodeA_r13[cc_idx] = 1; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pdsch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + config_fname); + } + + + RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[cc_idx] = CALLOC(1, sizeof(long)); + if (!strcmp(eMTCconfig->pusch_maxNumRepetitionCEmodeA_r13, "r8")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[cc_idx] = 0; + } else if (!strcmp(eMTCconfig->pusch_maxNumRepetitionCEmodeA_r13, "r16")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[cc_idx] = 1; + } else if (!strcmp(eMTCconfig->pusch_maxNumRepetitionCEmodeA_r13, "r32")) { + *RRC_CONFIGURATION_REQ(msg_p).pusch_maxNumRepetitionCEmodeA_r13[cc_idx] = 2; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pusch_maxNumRepetitionCEmodeA_r13 unknown value!\n", + config_fname); + } + + char rachCELevelInfoListPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&rachcelevellist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[cc_idx] = rachcelevellist.numelt; + int rachCEInfoIndex; + for (rachCEInfoIndex = 0; rachCEInfoIndex < rachcelevellist.numelt; rachCEInfoIndex++) { + sprintf(rachCELevelInfoListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RACH_CE_LEVELINFOLIST_R13, rachCEInfoIndex); + config_get(rachcelevelParams, sizeof(rachcelevelParams) / sizeof(paramdef_t), rachCELevelInfoListPath); + + RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[cc_idx][rachCEInfoIndex] = eMTCconfig->firstPreamble_r13; + RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[cc_idx][rachCEInfoIndex] = eMTCconfig->lastPreamble_r13; + + switch (eMTCconfig->ra_ResponseWindowSize_r13) { + case 20: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf20; + break; + case 50: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf50; + break; + case 80: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80; + break; + case 120: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf120; + break; + case 180: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf180; + break; + case 240: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf240; + break; + case 320: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf320; + break; + case 400: + RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf400; + break; + default: + AssertFatal(1==0, + "Illegal ra_ResponseWindowSize_r13 %d\n",eMTCconfig->ra_ResponseWindowSize_r13); + } + + + switch(eMTCconfig->mac_ContentionResolutionTimer_r13) { + case 80: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf80; + break; + case 100: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf100; + break; + case 120: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf120; + break; + case 160: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf160; + break; + case 200: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200; + break; + case 240: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf240; + break; + case 480: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf480; + break; + case 960: + RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[cc_idx][rachCEInfoIndex] = LTE_RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf960; + break; + default: + AssertFatal(1==0,"Illegal mac_ContentionResolutionTimer_r13 %d\n", + eMTCconfig->mac_ContentionResolutionTimer_r13); + break; + } + RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[cc_idx][rachCEInfoIndex] = eMTCconfig->rar_HoppingConfig_r13; + AssertFatal(eMTCconfig->rar_HoppingConfig_r13 == 0 || eMTCconfig->rar_HoppingConfig_r13 == 1, + "illegal rar_HoppingConfig_r13 %d\n",eMTCconfig->rar_HoppingConfig_r13); + } // end for loop (rach ce level info) + + char rsrpRangeListPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&rsrprangelist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[cc_idx] = rsrprangelist.numelt; + + + int rsrprangeindex; + for (rsrprangeindex = 0; rsrprangeindex < rsrprangelist.numelt; rsrprangeindex++) { + sprintf(rsrpRangeListPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_RSRP_RANGE_LIST, rsrprangeindex); + config_get(rsrprangeParams, sizeof(rsrprangeParams) / sizeof(paramdef_t), rsrpRangeListPath); + RRC_CONFIGURATION_REQ (msg_p).rsrp_range[cc_idx][rsrprangeindex] = eMTCconfig->rsrp_range_br; + + } + + + char prachparameterscePath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&prachParamslist, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[cc_idx] = prachParamslist.numelt; + + int prachparamsindex; + for (prachparamsindex = 0; prachparamsindex < prachParamslist.numelt; prachparamsindex++) { + sprintf(prachparameterscePath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13, prachparamsindex); + config_get(prachParams, sizeof(prachParams) / sizeof(paramdef_t), prachparameterscePath); + + RRC_CONFIGURATION_REQ (msg_p).prach_config_index[cc_idx][prachparamsindex] = eMTCconfig->prach_config_index_br; + RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[cc_idx][prachparamsindex] = eMTCconfig->prach_freq_offset_br; + + RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = calloc(1, sizeof(long)); + switch(eMTCconfig->prach_StartingSubframe_r13) { + case 2: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf2; + break; + case 4: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf4; + break; + case 8: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf8; + break; + case 16: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf16; + break; + case 32: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf32; + break; + case 64: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf64; + break; + case 128: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf128; + break; + case 256: + *RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__prach_StartingSubframe_r13_sf256; + break; + default: + AssertFatal(1==0,"prach_StartingSubframe_r13 %d is illegal\n", + eMTCconfig->prach_StartingSubframe_r13); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[cc_idx][prachparamsindex] = calloc(1, sizeof(long)); + if (eMTCconfig->maxNumPreambleAttemptCE_r13==10) *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[cc_idx][prachparamsindex] = 6; + else *RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[cc_idx][prachparamsindex] = eMTCconfig->maxNumPreambleAttemptCE_r13-3; + AssertFatal(eMTCconfig->maxNumPreambleAttemptCE_r13 > 2 && eMTCconfig->maxNumPreambleAttemptCE_r13 <11, + "prachparamsindex %d: Illegal maxNumPreambleAttemptCE_r13 %d\n", + prachparamsindex,eMTCconfig->maxNumPreambleAttemptCE_r13); + + + switch(eMTCconfig->numRepetitionPerPreambleAttempt_r13) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n2; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n4; + break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n8; + break; + case 16: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n16; + break; + case 32: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n32; + break; + case 64: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n64; + break; + case 128: + RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n128; + break; + default: + AssertFatal(1==0, + "illegal numReptitionPerPreambleAttempt %d\n", + eMTCconfig->numRepetitionPerPreambleAttempt_r13); + break; + } + switch (eMTCconfig->mpdcch_NumRepetition_RA_r13) { + case 1: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1; + break; + case 2: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r2; + break; + case 4: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r4; + break; + case 8: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r8; + break; + case 16: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r16; + break; + case 32: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r32; + break; + case 64: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r64; + break; + case 128: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r128; + break; + case 256: + RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[cc_idx][prachparamsindex] = LTE_PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r256; + break; + default: + AssertFatal (1==0, + "illegal mpdcch_NumRepeition_RA_r13 %d\n", + eMTCconfig->mpdcch_NumRepetition_RA_r13); + break; + } + + RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[cc_idx][prachparamsindex] = eMTCconfig->prach_HoppingConfig_r13; + + AssertFatal (eMTCconfig->prach_HoppingConfig_r13 >=0 && eMTCconfig->prach_HoppingConfig_r13 < 2, + "Illegal prach_HoppingConfig_r13 %d\n",eMTCconfig->prach_HoppingConfig_r13); + + + int maxavailablenarrowband_count = prachParams[7].numelt; + + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band_size[cc_idx][prachparamsindex] = maxavailablenarrowband_count; + int narrow_band_index; + for (narrow_band_index = 0; narrow_band_index < maxavailablenarrowband_count; narrow_band_index++) { + RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[cc_idx][prachparamsindex][narrow_band_index] = prachParams[7].iptr[narrow_band_index]; + } + } + + char n1PUCCHInfoParamsPath[MAX_OPTNAME_SIZE * 2]; + config_getlist(&n1PUCCHInfoList, NULL, 0, brparamspath); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[cc_idx] = n1PUCCHInfoList.numelt; + + int n1PUCCHinfolistindex; + for (n1PUCCHinfolistindex = 0; n1PUCCHinfolistindex < n1PUCCHInfoList.numelt; n1PUCCHinfolistindex++) { + sprintf(n1PUCCHInfoParamsPath, "%s.%s.[%i]", brparamspath, ENB_CONFIG_STRING_N1PUCCH_AN_INFOLIST_R13, n1PUCCHinfolistindex); + config_get(n1PUCCH_ANR13Params, sizeof(n1PUCCH_ANR13Params) / sizeof(paramdef_t), n1PUCCHInfoParamsPath); + RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[cc_idx][n1PUCCHinfolistindex] = eMTCconfig->pucch_info_value; + } + + char PCCHConfigv1310Path[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(PCCHConfigv1310Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_PCCH_CONFIG_V1310); + config_get(pcchv1310Params, sizeof(pcchv1310Params)/sizeof(paramdef_t), PCCHConfigv1310Path); + + + + /** PCCH CONFIG V1310 */ + + RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[cc_idx] = TRUE; + RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[cc_idx] = eMTCconfig->paging_narrowbands_r13; + RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[cc_idx] = eMTCconfig->mpdcch_numrepetition_paging_r13; + AssertFatal (eMTCconfig->mpdcch_numrepetition_paging_r13 == 1 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 2 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 4 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 8 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 16 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 32 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 64 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 128 || + eMTCconfig->mpdcch_numrepetition_paging_r13 == 256, + "illegal mpdcch_numrepetition_paging_r13 %d\n", + eMTCconfig->mpdcch_numrepetition_paging_r13); + + + // RRC_CONFIGURATION_REQ(msg_p).nb_v1310[cc_idx] = CALLOC(1, sizeof(long)); + // if (!strcmp(nb_v1310, "one64thT")) { + // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[cc_idx] = 0; + // } else if (!strcmp(nb_v1310, "one128thT")) { + // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[cc_idx] = 1; + // } else if (!strcmp(nb_v1310, "one256thT")) { + // *RRC_CONFIGURATION_REQ(msg_p).nb_v1310[cc_idx] = 2; + // } else { + // AssertFatal(0, + // "Failed to parse eNB configuration file %s, nb_v1310, unknown value !\n", + // config_fname); + // } + + + + RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[cc_idx] = CALLOC(1, sizeof(long)); + // ++cnt; // check this ,, the conter is up above + if (!strcmp(eMTCconfig->pucch_NumRepetitionCE_Msg4_Level0_r13, "n1")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[cc_idx] = 0; + } else if (!strcmp(eMTCconfig->pucch_NumRepetitionCE_Msg4_Level0_r13, "n2")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[cc_idx] = 1; + } else if (!strcmp(eMTCconfig->pucch_NumRepetitionCE_Msg4_Level0_r13, "n4")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[cc_idx] = 2; + } else if (!strcmp(eMTCconfig->pucch_NumRepetitionCE_Msg4_Level0_r13, "n8")) { + *RRC_CONFIGURATION_REQ (msg_p).pucch_NumRepetitionCE_Msg4_Level0_r13[cc_idx] = 3; + } else { + AssertFatal (0, + "Failed to parse eNB configuration file %s, pucch_NumRepetitionCE_Msg4_Level0_r13 unknown value!\n", + config_fname); + } + + + + /** SIB2 FREQ HOPPING PARAMETERS R13 */ + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[cc_idx] = TRUE; + + char sib2FreqHoppingParametersR13Path[MAX_OPTNAME_SIZE*2 + 16]; + sprintf(sib2FreqHoppingParametersR13Path, "%s.%s", brparamspath, ENB_CONFIG_STRING_SIB2_FREQ_HOPPINGPARAMETERS_R13); + config_get(sib2freqhoppingParams, sizeof(sib2freqhoppingParams)/sizeof(paramdef_t), sib2FreqHoppingParametersR13Path); + + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[cc_idx] = CALLOC(1, sizeof(long)); + if (!strcmp(eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13, "FDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[cc_idx] = 0; + + switch(eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13_val) { + case 1: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 0; + break; + case 2: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 1; + break; + case 4: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 2; + break; + case 8: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 3; + break; + default: + AssertFatal(1==0, + "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", + eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13_val); + } + } else if (!strcmp(eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13, "TDD")) { + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[cc_idx] = 1; + switch(eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13_val) { + case 1: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 0; + break; + case 5: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 1; + break; + case 10: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 2; + break; + case 20: + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[cc_idx] = 3; + break; + default: + AssertFatal(1==0, + "illegal sib2_interval_ULHoppingConfigCommonModeA_r13_val %d\n", + eMTCconfig->sib2_interval_ULHoppingConfigCommonModeA_r13_val); + break; + } + } else { + AssertFatal (1==0, + "Failed to parse eNB configuration file %s, sib2_interval_ULHoppingConfigCommonModeA_r13 unknown value !!\n", + config_fname); + } +} diff --git a/openair2/ENB_APP/enb_paramdef_sidelink.h b/openair2/ENB_APP/enb_paramdef_sidelink.h new file mode 100644 index 0000000000..3e73ba43b7 --- /dev/null +++ b/openair2/ENB_APP/enb_paramdef_sidelink.h @@ -0,0 +1,183 @@ +/* + * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The OpenAirInterface Software Alliance licenses this file to You under + * the OAI Public License, Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.openairinterface.org/?page_id=698 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + *------------------------------------------------------------------------------- + * For more information about the OpenAirInterface (OAI) Software Alliance: + * contact@openairinterface.org + */ + +/*! \file openair2/ENB_APP/enb_paramdef_sidelink.h + * \brief definition of configuration parameters for sidelink eNodeB modules + * \author Raymond KNOPP + * \date 2018 + * \version 0.1 + * \company EURECOM France + * \email: raymond.knopp@eurecom.fr + * \note + * \warning + */ + +#ifndef ENB_PARAMDEF_SIDELINK_H_ +#define ENB_PARAMDEF_SIDELINK_H_ +#include "common/config/config_paramdesc.h" +#include "RRC_paramsvalues.h" +#include + +#define ENB_CONFIG_STRING_SL_PARAMETERS "SLparameters" +//SIB18 +#define ENB_CONFIG_STRING_RXPOOL_SC_CP_LEN "rxPool_sc_CP_Len" +#define ENB_CONFIG_STRING_RXPOOL_SC_PRIOD "rxPool_sc_Period" +#define ENB_CONFIG_STRING_RXPOOL_DATA_CP_LEN "rxPool_data_CP_Len" +#define ENB_CONFIG_STRING_RXPOOL_RC_PRB_NUM "rxPool_ResourceConfig_prb_Num" +#define ENB_CONFIG_STRING_RXPOOL_RC_PRB_START "rxPool_ResourceConfig_prb_Start" +#define ENB_CONFIG_STRING_RXPOOL_RC_PRB_END "rxPool_ResourceConfig_prb_End" +#define ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_PRESENT "rxPool_ResourceConfig_offsetIndicator_present" +#define ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_CHOICE "rxPool_ResourceConfig_offsetIndicator_choice" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_PRESENT "rxPool_ResourceConfig_subframeBitmap_present" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_BUF "rxPool_ResourceConfig_subframeBitmap_choice_bs_buf" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE "rxPool_ResourceConfig_subframeBitmap_choice_bs_size" +#define ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED "rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused" +//SIB19 for DiscRxPool +#define ENB_CONFIG_STRING_DISCRXPOOL_CP_LEN "discRxPool_cp_Len" +#define ENB_CONFIG_STRING_DISCRXPOOL_DISCPERIOD "discRxPool_discPeriod" +#define ENB_CONFIG_STRING_DISCRXPOOL_NUMRETX "discRxPool_numRetx" +#define ENB_CONFIG_STRING_DISCRXPOOL_NUMREPETITION "discRxPool_numRepetition" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_NUM "discRxPool_ResourceConfig_prb_Num" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_START "discRxPool_ResourceConfig_prb_Start" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_END "discRxPool_ResourceConfig_prb_End" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_PRESENT "discRxPool_ResourceConfig_offsetIndicator_present" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_CHOICE "discRxPool_ResourceConfig_offsetIndicator_choice" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_PRESENT "discRxPool_ResourceConfig_subframeBitmap_present" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_BUF "discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE "discRxPool_ResourceConfig_subframeBitmap_choice_bs_size" +#define ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED "discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused" + +//SIB19 for DiscRxPoolPS +#define ENB_CONFIG_STRING_DISCRXPOOLPS_CP_LEN "DISCRXPOOLPS_cp_Len" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_DISCPERIOD "DISCRXPOOLPS_discPeriod" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_NUMRETX "DISCRXPOOLPS_numRetx" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_NUMREPETITION "DISCRXPOOLPS_numRepetition" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_NUM "DISCRXPOOLPS_ResourceConfig_prb_Num" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_START "DISCRXPOOLPS_ResourceConfig_prb_Start" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_END "DISCRXPOOLPS_ResourceConfig_prb_End" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_PRESENT "DISCRXPOOLPS_ResourceConfig_offsetIndicator_present" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_CHOICE "DISCRXPOOLPS_ResourceConfig_offsetIndicator_choice" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT "DISCRXPOOLPS_ResourceConfig_subframeBitmap_present" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF "DISCRXPOOLPS_ResourceConfig_subframeBitmap_choice_bs_buf" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE "DISCRXPOOLPS_ResourceConfig_subframeBitmap_choice_bs_size" +#define ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED "DISCRXPOOLPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused" + + +/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* component carriers configuration parameters */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* init for checkedparam_t structure */ + +typedef struct ccparams_sidelink_s { + int sidelink_configured; + //SIB18 + char *rxPool_sc_CP_Len; + char *rxPool_sc_Period; + char *rxPool_data_CP_Len; + libconfig_int rxPool_ResourceConfig_prb_Num; + libconfig_int rxPool_ResourceConfig_prb_Start; + libconfig_int rxPool_ResourceConfig_prb_End; + char *rxPool_ResourceConfig_offsetIndicator_present; + libconfig_int rxPool_ResourceConfig_offsetIndicator_choice; + char *rxPool_ResourceConfig_subframeBitmap_present; + char *rxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_size; + libconfig_int rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + //SIB19 + //For discRxPool + char *discRxPool_cp_Len; + char *discRxPool_discPeriod; + libconfig_int discRxPool_numRetx; + libconfig_int discRxPool_numRepetition; + libconfig_int discRxPool_ResourceConfig_prb_Num; + libconfig_int discRxPool_ResourceConfig_prb_Start; + libconfig_int discRxPool_ResourceConfig_prb_End; + char *discRxPool_ResourceConfig_offsetIndicator_present; + libconfig_int discRxPool_ResourceConfig_offsetIndicator_choice; + char *discRxPool_ResourceConfig_subframeBitmap_present; + char *discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf; + libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_size; + libconfig_int discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused; + //For discRxPoolPS + char *discRxPoolPS_cp_Len; + const char *discRxPoolPS_discPeriod; + libconfig_int discRxPoolPS_numRetx; + libconfig_int discRxPoolPS_numRepetition; + libconfig_int discRxPoolPS_ResourceConfig_prb_Num; + libconfig_int discRxPoolPS_ResourceConfig_prb_Start; + libconfig_int discRxPoolPS_ResourceConfig_prb_End; + const char *discRxPoolPS_ResourceConfig_offsetIndicator_present; + libconfig_int discRxPoolPS_ResourceConfig_offsetIndicator_choice; + const char *discRxPoolPS_ResourceConfig_subframeBitmap_present; + char *discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf; + libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size; + libconfig_int discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused; +} ccparams_sidelink_t; + +/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* component carriers configuration parameters */ +/* optname helpstr paramflags XXXptr defXXXval type numelt checked_param */ +/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ + +#define CCPARAMS_SIDELINK_DESC(SLparams) { \ +{"sidelink_configured", NULL, 0, iptr:(int*)&SLparams.sidelink_configured, defintval:0, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_SC_CP_LEN, NULL, 0, strptr:(char **)&SLparams.rxPool_sc_CP_Len, defstrval:"normal", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_SC_PRIOD, NULL, 0, strptr:(char **)&SLparams.rxPool_sc_Period, defstrval:"sf40", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_DATA_CP_LEN, NULL, 0, strptr:(char **)&SLparams.rxPool_data_CP_Len, defstrval:"normal", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&SLparams.rxPool_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_PRB_START, NULL, 0, iptr:(int32_t *)&SLparams.rxPool_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_PRB_END, NULL, 0, iptr:(int32_t *)&SLparams.rxPool_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&SLparams.rxPool_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&SLparams.rxPool_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&SLparams.rxPool_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&SLparams.rxPool_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&SLparams.rxPool_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_RXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED, NULL, 0, iptr:(int32_t *)&SLparams.rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_CP_LEN, NULL, 0, strptr:(char **)&SLparams.discRxPool_cp_Len, defstrval:"normal", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_DISCPERIOD, NULL, 0, strptr:(char **)&SLparams.discRxPool_discPeriod, defstrval:"rf32", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_NUMRETX, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_numRetx, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_NUMREPETITION, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_numRepetition, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_START, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_PRB_END, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&SLparams.discRxPool_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&SLparams.discRxPool_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&SLparams.discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOL_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&SLparams.discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_CP_LEN, NULL, 0, strptr:(char **)&SLparams.discRxPoolPS_cp_Len, defstrval:"normal", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_DISCPERIOD, NULL, 0, strptr:(char **)&SLparams.discRxPoolPS_discPeriod, defstrval:"rf32", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_NUMRETX, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_numRetx, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_NUMREPETITION, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_numRepetition, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_NUM, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_ResourceConfig_prb_Num, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_START, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_ResourceConfig_prb_Start, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_PRB_END, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_ResourceConfig_prb_End, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_PRESENT, NULL, 0, strptr:(char **)&SLparams.discRxPoolPS_ResourceConfig_offsetIndicator_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_OFFSETIND_CHOICE, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_ResourceConfig_offsetIndicator_choice, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_PRESENT, NULL, 0, strptr:(char **)&SLparams.discRxPoolPS_ResourceConfig_subframeBitmap_present, defstrval:"prNothing", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_BUF, NULL, 0, strptr:(char **)&SLparams.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_buf, defstrval:"001001", TYPE_STRING, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_SIZE, NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_size, defintval:1, TYPE_UINT, 0}, \ +{ENB_CONFIG_STRING_DISCRXPOOLPS_RC_SFBITMAP_CHOICE_BS_ASN_BITS_UNUSED,NULL, 0, iptr:(int32_t *)&SLparams.discRxPoolPS_ResourceConfig_subframeBitmap_choice_bs_bits_unused, defintval:1, TYPE_UINT, 0} \ +} +#endif + diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index 06eaeb3b89..eec5a52b81 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -2743,7 +2743,6 @@ schedule_ue_spec_br( struct LTE_PUCCH_ConfigCommon_v1310 *ext4_pucch; LTE_PRACH_ParametersListCE_r13_t *prach_ParametersListCE_r13; struct LTE_N1PUCCH_AN_InfoList_r13 *pucch_N1PUCCH_AN_InfoList_r13; - LTE_PRACH_ParametersCE_r13_t *p[4] = { NULL, NULL, NULL, NULL }; int pucchreps[4] = { 1, 1, 1, 1 }; int n1pucchan[4] = { 0, 0, 0, 0 }; uint32_t ackNAK_absSF; @@ -2769,23 +2768,19 @@ schedule_ue_spec_br( switch (prach_ParametersListCE_r13->list.count) { case 4: - p[3] = prach_ParametersListCE_r13->list.array[3]; n1pucchan[3] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[3]; AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level3 shouldn't be NULL\n"); pucchreps[3] = (int) (4 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level3_r13); case 3: - p[2] = prach_ParametersListCE_r13->list.array[2]; n1pucchan[2] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[2]; AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level2 shouldn't be NULL\n"); pucchreps[2] = (int) (4 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level2_r13); case 2: - p[1] = prach_ParametersListCE_r13->list.array[1]; n1pucchan[1] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[1]; AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level1 shouldn't be NULL\n"); pucchreps[1] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level1_r13); case 1: - p[0] = prach_ParametersListCE_r13->list.array[0]; n1pucchan[0] = *pucch_N1PUCCH_AN_InfoList_r13->list.array[0]; AssertFatal (ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13 != NULL, "pucch_NumRepetitionCE_Msg4_Level0 shouldn't be NULL\n"); pucchreps[0] = (int) (1 << *ext4_pucch->pucch_NumRepetitionCE_Msg4_Level0_r13); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 24d2ea6dad..9c6efc60b6 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -2272,8 +2272,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP) eNB_MAC_INST *eNB = RC.mac[module_idP]; COMMON_channels_t *cc = &eNB->common_channels[CC_idP]; - struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = - eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP]; + struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = &eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP]; if (physicalConfigDedicated == NULL) { // RRCConnectionSetup not received by UE yet AssertFatal(cc->p_eNB <= 2, "p_eNB is %d, should be <2\n", From 55ed97ebfaf877964e3782c5af2908960d8a4e73 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 19 Nov 2018 12:53:20 +0100 Subject: [PATCH 097/125] correction to include file name. --- openair2/ENB_APP/enb_config_SL.c | 2 +- openair2/ENB_APP/enb_config_eMTC.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/openair2/ENB_APP/enb_config_SL.c b/openair2/ENB_APP/enb_config_SL.c index 7e3b4c09aa..e9f2515f81 100644 --- a/openair2/ENB_APP/enb_config_SL.c +++ b/openair2/ENB_APP/enb_config_SL.c @@ -34,7 +34,7 @@ #include "assertions.h" #include "enb_config.h" #include "intertask_interface.h" -#include "SystemInformationBlockType2.h" +#include "LTE_SystemInformationBlockType2.h" #include "common/config/config_userapi.h" #include "RRC_config_tools.h" #include "enb_paramdef.h" diff --git a/openair2/ENB_APP/enb_config_eMTC.c b/openair2/ENB_APP/enb_config_eMTC.c index d43e639f1f..f0a829c424 100644 --- a/openair2/ENB_APP/enb_config_eMTC.c +++ b/openair2/ENB_APP/enb_config_eMTC.c @@ -34,7 +34,7 @@ #include "assertions.h" #include "enb_config.h" #include "intertask_interface.h" -#include "SystemInformationBlockType2.h" +#include "LTE_SystemInformationBlockType2.h" #include "common/config/config_userapi.h" #include "RRC_config_tools.h" #include "enb_paramdef.h" From 7900864fe48275e8f1e07ab3f078f88a592d915a Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 19 Nov 2018 18:01:36 +0100 Subject: [PATCH 098/125] testing after integration of eMTC --- openair2/LAYER2/MAC/config.c | 129 +++++++----------- openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 2 +- .../LAYER2/MAC/eNB_scheduler_primitives.c | 8 +- openair2/LAYER2/MAC/mac.h | 72 +++++----- openair2/RRC/LTE/MESSAGES/asn1_msg.c | 2 + 5 files changed, 92 insertions(+), 121 deletions(-) diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 7ee78d697e..68e9e52eb8 100755 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -727,55 +727,54 @@ config_dedicated_scell(int Mod_idP, } -int -rrc_mac_config_req_eNB(module_id_t Mod_idP, - int CC_idP, - int physCellId, - int p_eNB, - int Ncp, int eutra_band, uint32_t dl_CarrierFreq, +int rrc_mac_config_req_eNB(module_id_t Mod_idP, + int CC_idP, + int physCellId, + int p_eNB, + int Ncp, int eutra_band, uint32_t dl_CarrierFreq, #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - int pbch_repetition, + int pbch_repetition, #endif - rnti_t rntiP, - LTE_BCCH_BCH_Message_t * mib, - LTE_RadioResourceConfigCommonSIB_t * - radioResourceConfigCommon, + rnti_t rntiP, + LTE_BCCH_BCH_Message_t * mib, + LTE_RadioResourceConfigCommonSIB_t * + radioResourceConfigCommon, #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - LTE_RadioResourceConfigCommonSIB_t * - radioResourceConfigCommon_BR, + LTE_RadioResourceConfigCommonSIB_t * + radioResourceConfigCommon_BR, #endif - struct LTE_PhysicalConfigDedicated - *physicalConfigDedicated, + struct LTE_PhysicalConfigDedicated + *physicalConfigDedicated, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - LTE_SCellToAddMod_r10_t * sCellToAddMod_r10, - //struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + LTE_SCellToAddMod_r10_t * sCellToAddMod_r10, + //struct LTE_PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - LTE_MeasObjectToAddMod_t ** measObj, - LTE_MAC_MainConfig_t * mac_MainConfig, - long logicalChannelIdentity, - LTE_LogicalChannelConfig_t * logicalChannelConfig, - LTE_MeasGapConfig_t * measGapConfig, - LTE_TDD_Config_t * tdd_Config, - LTE_MobilityControlInfo_t * mobilityControlInfo, - LTE_SchedulingInfoList_t * schedulingInfoList, - uint32_t ul_CarrierFreq, - long *ul_Bandwidth, - LTE_AdditionalSpectrumEmission_t * - additionalSpectrumEmission, - struct LTE_MBSFN_SubframeConfigList - *mbsfn_SubframeConfigList + LTE_MeasObjectToAddMod_t ** measObj, + LTE_MAC_MainConfig_t * mac_MainConfig, + long logicalChannelIdentity, + LTE_LogicalChannelConfig_t * logicalChannelConfig, + LTE_MeasGapConfig_t * measGapConfig, + LTE_TDD_Config_t * tdd_Config, + LTE_MobilityControlInfo_t * mobilityControlInfo, + LTE_SchedulingInfoList_t * schedulingInfoList, + uint32_t ul_CarrierFreq, + long *ul_Bandwidth, + LTE_AdditionalSpectrumEmission_t * + additionalSpectrumEmission, + struct LTE_MBSFN_SubframeConfigList + *mbsfn_SubframeConfigList #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , uint8_t MBMS_Flag, - LTE_MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList, - LTE_PMCH_InfoList_r9_t * pmch_InfoList + , uint8_t MBMS_Flag, + LTE_MBSFN_AreaInfoList_r9_t * mbsfn_AreaInfoList, + LTE_PMCH_InfoList_r9_t * pmch_InfoList #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0)) - , - LTE_SystemInformationBlockType1_v1310_IEs_t * - sib1_v13ext + , + LTE_SystemInformationBlockType1_v1310_IEs_t * + sib1_v13ext #endif - ) { - + ) { + int i; int UE_id = -1; @@ -897,36 +896,18 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, if (logicalChannelConfig != NULL) { // check for eMTC specific things UE_id = find_UE_id(Mod_idP, rntiP); - if (UE_id == -1) { - LOG_E(MAC, "%s:%d:%s: ERROR, UE_id == -1\n", __FILE__, - __LINE__, __FUNCTION__); - } else { - if (logicalChannelConfig) { - UE_list-> - UE_template[CC_idP][UE_id].lcgidmap - [logicalChannelIdentity] = - *logicalChannelConfig-> - ul_SpecificParameters->logicalChannelGroup; - UE_list-> - UE_template[CC_idP][UE_id].lcgidpriority - [logicalChannelIdentity]= - logicalChannelConfig->ul_SpecificParameters->priority; - - } else - UE_list-> - UE_template[CC_idP][UE_id].lcgidmap - [logicalChannelIdentity] = 0; - } + AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + if (logicalChannelConfig) { + UE_list->UE_template[CC_idP][UE_id].lcgidmap[logicalChannelIdentity] = *logicalChannelConfig->ul_SpecificParameters->logicalChannelGroup; + UE_list->UE_template[CC_idP][UE_id].lcgidpriority[logicalChannelIdentity] = logicalChannelConfig->ul_SpecificParameters->priority; + } else UE_list->UE_template[CC_idP][UE_id].lcgidmap[logicalChannelIdentity] = 0; } - - + if (physicalConfigDedicated != NULL) { UE_id = find_UE_id(Mod_idP, rntiP); - - if (UE_id == -1) - LOG_E(MAC, "%s:%d:%s: ERROR, UE_id == -1\n", __FILE__, __LINE__, __FUNCTION__); - else - UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; + AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; + LOG_I(MAC,"Added physicalConfigDedicated %p for %d.%d\n",physicalConfigDedicated,CC_idP,UE_id); } @@ -934,27 +915,19 @@ rrc_mac_config_req_eNB(module_id_t Mod_idP, if (sCellToAddMod_r10 != NULL) { UE_id = find_UE_id(Mod_idP, rntiP); - if (UE_id == -1) - LOG_E(MAC, "%s:%d:%s: ERROR, UE_id == -1\n", __FILE__, - __LINE__, __FUNCTION__); - else - config_dedicated_scell(Mod_idP, rntiP, sCellToAddMod_r10); + AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + config_dedicated_scell(Mod_idP, rntiP, sCellToAddMod_r10); } #endif - - - if (mbsfn_SubframeConfigList != NULL) { LOG_I(MAC, "[eNB %d][CONFIG] Received %d subframe allocation pattern for MBSFN\n", Mod_idP, mbsfn_SubframeConfigList->list.count); - RC.mac[Mod_idP]->common_channels[0].num_sf_allocation_pattern = - mbsfn_SubframeConfigList->list.count; + RC.mac[Mod_idP]->common_channels[0].num_sf_allocation_pattern = mbsfn_SubframeConfigList->list.count; for (i = 0; i < mbsfn_SubframeConfigList->list.count; i++) { - RC.mac[Mod_idP]->common_channels[0].mbsfn_SubframeConfig[i] = - mbsfn_SubframeConfigList->list.array[i]; + RC.mac[Mod_idP]->common_channels[0].mbsfn_SubframeConfig[i] = mbsfn_SubframeConfigList->list.array[i]; LOG_I(MAC, "[eNB %d][CONFIG] MBSFN_SubframeConfig[%d] pattern is %x\n", Mod_idP, i, diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c index eec5a52b81..18c49c92b7 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c @@ -1704,7 +1704,7 @@ schedule_ue_spec(module_id_t module_idP, int slice_idxP, format2A); break; default: - LOG_W(MAC, "Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); + AssertFatal(1==0,"Unsupported transmission mode %d\n", get_tmode(module_idP, CC_id, UE_id)); aggregation = 2; } } diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c index 9c6efc60b6..a26f658dd8 100755 --- a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c @@ -2272,7 +2272,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP) eNB_MAC_INST *eNB = RC.mac[module_idP]; COMMON_channels_t *cc = &eNB->common_channels[CC_idP]; - struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = &eNB->UE_list.physicalConfigDedicated[CC_idP][UE_idP]; + struct LTE_PhysicalConfigDedicated *physicalConfigDedicated = eNB->UE_list.UE_template[CC_idP][UE_idP].physicalConfigDedicated; if (physicalConfigDedicated == NULL) { // RRCConnectionSetup not received by UE yet AssertFatal(cc->p_eNB <= 2, "p_eNB is %d, should be <2\n", @@ -2280,8 +2280,8 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP) return (cc->p_eNB); } else { AssertFatal(physicalConfigDedicated->antennaInfo != NULL, - "antennaInfo is null for CCId %d, UEid %d\n", CC_idP, - UE_idP); + "antennaInfo (mod_id %d) is null for CCId %d, UEid %d, physicalConfigDedicated %p\n", module_idP,CC_idP, + UE_idP,physicalConfigDedicated); AssertFatal(physicalConfigDedicated->antennaInfo->present != LTE_PhysicalConfigDedicated__antennaInfo_PR_NOTHING, @@ -2290,7 +2290,7 @@ uint8_t get_tmode(module_id_t module_idP, int CC_idP, int UE_idP) if (physicalConfigDedicated->antennaInfo->present == LTE_PhysicalConfigDedicated__antennaInfo_PR_explicitValue) { - return (physicalConfigDedicated->antennaInfo-> + return (1+physicalConfigDedicated->antennaInfo-> choice.explicitValue.transmissionMode); } else if (physicalConfigDedicated->antennaInfo->present == LTE_PhysicalConfigDedicated__antennaInfo_PR_defaultValue) { diff --git a/openair2/LAYER2/MAC/mac.h b/openair2/LAYER2/MAC/mac.h index 27b0485c46..c8497a123c 100644 --- a/openair2/LAYER2/MAC/mac.h +++ b/openair2/LAYER2/MAC/mac.h @@ -1070,44 +1070,40 @@ typedef struct { } SBMAP_CONF; /*! \brief UE list used by eNB to order UEs/CC for scheduling*/ typedef struct { - /// Dedicated information for UEs - struct PhysicalConfigDedicated - *physicalConfigDedicated[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; - /// DLSCH pdu - DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB]; - /// DCI template and MAC connection parameters for UEs - UE_TEMPLATE UE_template[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; - /// DCI template and MAC connection for RA processes - int pCC_id[MAX_MOBILES_PER_ENB]; - /// sorted downlink component carrier for the scheduler - int ordered_CCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; - /// number of downlink active component carrier - int numactiveCCs[MAX_MOBILES_PER_ENB]; - /// sorted uplink component carrier for the scheduler - int ordered_ULCCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; - /// number of uplink active component carrier - int numactiveULCCs[MAX_MOBILES_PER_ENB]; - /// number of downlink active component carrier - uint8_t dl_CC_bitmap[MAX_MOBILES_PER_ENB]; - /// eNB to UE statistics - eNB_UE_STATS eNB_UE_stats[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; - /// scheduling control info - UE_sched_ctrl UE_sched_ctrl[MAX_MOBILES_PER_ENB]; - int next[MAX_MOBILES_PER_ENB]; - int head; - int next_ul[MAX_MOBILES_PER_ENB]; - int head_ul; - int avail; - int num_UEs; - boolean_t active[MAX_MOBILES_PER_ENB]; - - /// Sorting criteria for the UE list in the MAC preprocessor - uint16_t sorting_criteria[MAX_NUM_SLICES][CR_NUM]; - uint16_t first_rb_offset[NFAPI_CC_MAX][MAX_NUM_SLICES]; - - int assoc_dl_slice_idx[MAX_MOBILES_PER_ENB]; - int assoc_ul_slice_idx[MAX_MOBILES_PER_ENB]; - + DLSCH_PDU DLSCH_pdu[NFAPI_CC_MAX][2][MAX_MOBILES_PER_ENB]; + /// DCI template and MAC connection parameters for UEs + UE_TEMPLATE UE_template[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; + /// DCI template and MAC connection for RA processes + int pCC_id[MAX_MOBILES_PER_ENB]; + /// sorted downlink component carrier for the scheduler + int ordered_CCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; + /// number of downlink active component carrier + int numactiveCCs[MAX_MOBILES_PER_ENB]; + /// sorted uplink component carrier for the scheduler + int ordered_ULCCids[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; + /// number of uplink active component carrier + int numactiveULCCs[MAX_MOBILES_PER_ENB]; + /// number of downlink active component carrier + uint8_t dl_CC_bitmap[MAX_MOBILES_PER_ENB]; + /// eNB to UE statistics + eNB_UE_STATS eNB_UE_stats[NFAPI_CC_MAX][MAX_MOBILES_PER_ENB]; + /// scheduling control info + UE_sched_ctrl UE_sched_ctrl[MAX_MOBILES_PER_ENB]; + int next[MAX_MOBILES_PER_ENB]; + int head; + int next_ul[MAX_MOBILES_PER_ENB]; + int head_ul; + int avail; + int num_UEs; + boolean_t active[MAX_MOBILES_PER_ENB]; + + /// Sorting criteria for the UE list in the MAC preprocessor + uint16_t sorting_criteria[MAX_NUM_SLICES][CR_NUM]; + uint16_t first_rb_offset[NFAPI_CC_MAX][MAX_NUM_SLICES]; + + int assoc_dl_slice_idx[MAX_MOBILES_PER_ENB]; + int assoc_ul_slice_idx[MAX_MOBILES_PER_ENB]; + } UE_list_t; /*! \brief deleting control information*/ diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c index ab80705edc..693c6be0e8 100755 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg.c @@ -2855,6 +2855,8 @@ do_RRCConnectionSetup( //assign_enum(&physicalConfigDedicated2->antennaInfo->choice.explicitValue.transmissionMode, // AntennaInfoDedicated__transmissionMode_tm2); + LOG_D(RRC,"physicalConfigDedicated2 %p, physicalConfigDedicated2->antennaInfo %p => %d\n",physicalConfigDedicated2,physicalConfigDedicated2->antennaInfo,transmission_mode); + switch (transmission_mode) { default: LOG_W(RRC,"At RRCConnectionSetup Transmission mode can only take values 1 or 2! Defaulting to 1!\n"); From c88d3e062c92809790a395f3fbd47d13451a9397 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Mon, 19 Nov 2018 20:56:49 +0100 Subject: [PATCH 099/125] fixed call to check_band_frequencies in enb_config.c (order was was wrong). --- openair2/ENB_APP/enb_config.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index c8917cb421..be62effdeb 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -528,15 +528,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j] = (uint32_t) ccparams_lte.downlink_frequency; RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j] = (unsigned int) ccparams_lte.uplink_frequency_offset; - if (config_check_band_frequencies(j, - RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], - RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], - RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], - RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { - AssertFatal(0, "error calling enb_check_band_frequencies\n"); - } - - RRC_CONFIGURATION_REQ (msg_p).Nid_cell[j]= ccparams_lte.Nid_cell; @@ -569,6 +560,14 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RC.config_file_name, i, ccparams_lte.frame_type); } + if (config_check_band_frequencies(j, + RRC_CONFIGURATION_REQ (msg_p).eutra_band[j], + RRC_CONFIGURATION_REQ (msg_p).downlink_frequency[j], + RRC_CONFIGURATION_REQ (msg_p).uplink_frequency_offset[j], + RRC_CONFIGURATION_REQ (msg_p).frame_type[j])) { + AssertFatal(0, "error calling enb_check_band_frequencies\n"); + } + if ((ccparams_lte.nb_antenna_ports <1) || (ccparams_lte.nb_antenna_ports > 2)) AssertFatal (0, From 5962870800674f71ad4f4de4cbf6cb04076ecf78 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Thu, 22 Nov 2018 15:39:54 +0100 Subject: [PATCH 100/125] CI: adding a LTE-M conf file Signed-off-by: Raphael Defosseux --- .../conf_files/enb.band13.tm1.50PRB.emtc.conf | 443 ++++++++++++++++++ 1 file changed, 443 insertions(+) create mode 100755 ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf diff --git a/ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf b/ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf new file mode 100755 index 0000000000..e3d3402c1c --- /dev/null +++ b/ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf @@ -0,0 +1,443 @@ +Active_eNBs = ( "eNB_Eurecom_LTEBox"); +# Asn1_verbosity, choice in: none, info, annoying +Asn1_verbosity = "none"; + +eNBs = +( + { + ////////// Identification parameters: + eNB_ID = 0xe00; + + cell_type = "CELL_MACRO_ENB"; + + eNB_name = "eNB_Eurecom_LTEBox"; + + // Tracking area code, 0x0000 and 0xfffe are reserved values + tracking_area_code = "1"; + + plmn_list = ( { mcc = 208; mnc = 93; mnc_length = 2;} ); + + tr_s_preference = "local_mac" + + ////////// Physical parameters: + + component_carriers = ( + { + node_function = "3GPP_eNodeB"; + node_timing = "synch_to_ext_device"; + node_synch_ref = 0; + frame_type = "FDD"; + tdd_config = 3; + tdd_config_s = 0; + prefix_type = "NORMAL"; + eutra_band = 13; + downlink_frequency = 751000000L; + uplink_frequency_offset = 31000000; + Nid_cell = 0; + N_RB_DL = 50; + Nid_cell_mbsfn = 0; + nb_antenna_ports = 1; + nb_antennas_tx = 1; + nb_antennas_rx = 1; + tx_gain = 90; + rx_gain = 110; + pbch_repetition = "FALSE"; + prach_root = 0; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 1; + pucch_delta_shift = 1; + pucch_nRB_CQI = 1; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + pdsch_referenceSignalPower = -27; + pdsch_p_b = 0; + pusch_n_SB = 1; + pusch_enable64QAM = "DISABLE"; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + /* srs_BandwidthConfig =; + srs_SubframeConfig =; + srs_ackNackST =; + srs_MaxUpPts =;*/ + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + msg3_delta_Preamble = 6; + pucch_deltaF_Format1 = "deltaF2"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + rach_numberOfRA_Preambles = "n64"; #64 + rach_preamblesGroupAConfig = "DISABLE"; + /* + rach_sizeOfRA_PreamblesGroupA = ; + rach_messageSizeGroupA = ; + rach_messagePowerOffsetGroupB = ; + */ + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -108; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 48; + rach_maxHARQ_Msg3Tx = 4; + + pcch_default_PagingCycle = "rf128"; #128 + pcch_nB = "oneT"; + bcch_modificationPeriodCoeff = 2; + ue_TimersAndConstants_t300 = "ms1000"; + ue_TimersAndConstants_t301 = "ms1000"; + ue_TimersAndConstants_t310 = "ms1000"; + ue_TimersAndConstants_t311 = "ms10000"; + ue_TimersAndConstants_n310 = "n20"; + ue_TimersAndConstants_n311 = "n1"; + ue_TransmissionMode = "tm1"; + + # eMTC Parameters + emtc_parameters : + { + eMTC_configured = 1; + #hyperSFN_r13 = 0; + #eDRX_Allowed_r13 = 0; + #q_QualMinRSRQ_CE_r13 = ; + + #SIB1 + schedulingInfoSIB1_BR_r13 = 4; + + #system_info_value_tag_SI = + #( + # { + # systemInfoValueTagSi_r13 = 0; + # } + #); + + cellSelectionInfoCE_r13 = "ENABLE"; + q_RxLevMinCE_r13 = -70; + bandwidthReducedAccessRelatedInfo_r13 = "ENABLE" + si_WindowLength_BR_r13 = "ms20"; #0 + si_RepetitionPattern_r13 = "everyRF"; #0 + + scheduling_info_br = + ( + { + si_Narrowband_r13 = 8; + si_TBS_r13 = 5; + } + ); + + fdd_DownlinkOrTddSubframeBitmapBR_r13 = "subframePattern40-r13"; + fdd_DownlinkOrTddSubframeBitmapBR_val_r13 = 0xFFFFFFFFFF; + startSymbolBR_r13 = 2; + si_HoppingConfigCommon_r13 = "off"; #1; # Note: 1==OFF ! + si_ValidityTime_r13 = "true"; #0 + + freqHoppingParametersDL_r13 = "DISABLE" + mpdcch_pdsch_HoppingNB_r13 = "nb2"; #0 + interval_DLHoppingConfigCommonModeA_r13 = "interval-FDD-r13" + interval_DLHoppingConfigCommonModeA_r13_val = 0; + interval_DLHoppingConfigCommonModeB_r13 = "interval-FDD-r13" + interval_DLHoppingConfigCommonModeB_r13_val = 0; + mpdcch_pdsch_HoppingOffset_r13 = 1; + + + # SIB23 + frame_type = "FDD"; + preambleTransMax_CE_r13 = 10; #6 + + rach_numberOfRA_Preambles = 60; #14 + rach_powerRampingStep = 4; + rach_preambleInitialReceivedTargetPower = -110; + rach_preambleTransMax = 10; + rach_raResponseWindowSize = 10; + rach_macContentionResolutionTimer = 64; + rach_maxHARQ_Msg3Tx = 4; + + # max size for this array is 4 + rach_CE_LevelInfoList_r13 = + ( + { + firstPreamble_r13 = 60; + lastPreamble_r13 = 63; + ra_ResponseWindowSize_r13 = 20; #0 + mac_ContentionResolutionTimer_r13 = 80; #0 + rar_HoppingConfig_r13 = "off"; #1; + } + ); + + # BCCH CONFIG + bcch_modificationPeriodCoeff = 2; + + #PCCH Config + pcch_default_PagingCycle = "rf128"; #128 + pcch_nB = "oneT"; + + #PRACH Config + prach_root = 89; + prach_config_index = 0; + prach_high_speed = "DISABLE"; + prach_zero_correlation = 1; + prach_freq_offset = 1; + + #PDSCH Config Common + pdsch_referenceSignalPower = -27 + pdsch_p_b = 0; + + + # PUSCH Config Common + pusch_n_SB = 1; + pusch_hoppingMode = "interSubFrame"; + pusch_hoppingOffset = 0; + pusch_enable64QAM = "DISABLE"; + pusch_groupHoppingEnabled = "ENABLE"; + pusch_groupAssignment = 0; + pusch_sequenceHoppingEnabled = "DISABLE"; + pusch_nDMRS1 = 1; + + # PUCCH Config Common + pucch_delta_shift = 1; + pucch_nRB_CQI = 0; + pucch_nCS_AN = 0; + pucch_n1_AN = 32; + + pusch_p0_Nominal = -96; + pusch_alpha = "AL1"; + pucch_p0_Nominal = -104; + pucch_deltaF_Format1 = "deltaF0"; + pucch_deltaF_Format1b = "deltaF3"; + pucch_deltaF_Format2 = "deltaF0"; + pucch_deltaF_Format2a = "deltaF0"; + pucch_deltaF_Format2b = "deltaF0"; + + msg3_delta_Preamble = 6; + + + prach_ConfigCommon_v1310 = "ENABLE"; + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13"; + mpdcch_startSF_CSS_RA_r13_val = "v1"; #0 + prach_HoppingOffset_r13 = 0; + + + pdsch_maxNumRepetitionCEmodeA_r13 = "r16"; #0 + #pdsch_maxNumRepetitionCEmodeB_r13 = "r384"; # NULL - 2 + + pusch_maxNumRepetitionCEmodeA_r13 = "r8"; #0 + #pusch_maxNumRepetitionCEmodeB_r13 = "r768"; #4 #NULL + #pusch_HoppingOffset_v1310 = 5; #NULL + + # max size for this array is 3 + rsrp_range_list = + ( + { + rsrp_range_br = 0; + } + ); + + # max size for this array is 4 + prach_parameters_ce_r13 = + ( + { + prach_config_index_br = 3; + prach_freq_offset_br = 2; + prach_StartingSubframe_r13 = 2; + maxNumPreambleAttemptCE_r13 = 10; #6 + numRepetitionPerPreambleAttempt_r13 = 1; #0 + mpdcch_NumRepetition_RA_r13 = 1; #0 + prach_HoppingConfig_r13 = 0; #1 + max_available_narrow_band = [3]; + } + ); + + n1PUCCH_AN_InfoList_r13 = + ( + { + pucch_info_value = 0; + } + ); + + + ue_TimersAndConstants_t300 = "ms1000"; + ue_TimersAndConstants_t301 = "ms400"; + ue_TimersAndConstants_t310 = "ms50"; + ue_TimersAndConstants_t311 = "ms30000"; + ue_TimersAndConstants_n310 = "n1"; + ue_TimersAndConstants_n311 = "n10"; + ue_TransmissionMode = "tm1"; + + pcch_config_v1310 : + { + paging_narrowbands_r13 = 1; + mpdcch_numrepetition_paging_r13 = "r1"; #0 + #nb_v1310 = "one256thT"; #2 + } + + + pucch_NumRepetitionCE_Msg4_Level0_r13 = "n1"; #0 + #pucch_NumRepetitionCE_Msg4_Level1_r13 = "n2"; #1 + #pucch_NumRepetitionCE_Msg4_Level2_r13 = "n16"; #2 + #pucch_NumRepetitionCE_Msg4_Level3_r13 = "n32"; #3 + + sib2_freq_hoppingParameters_r13 : + { + #sib2_mpdcch_pdsch_hoppingNB_r13 = "nb2"; #0 + #sib2_interval_DLHoppingConfigCommonModeA_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) + #sib2_interval_DLHoppingConfigCommonModeA_r13_val = "int1"; + #sib2_interval_DLHoppingConfigCommonModeB_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) + #sib2_interval_DLHoppingConfigCommonModeB_r13_val = "int2"; + + sib2_interval_ULHoppingConfigCommonModeA_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeA_r13_val = "int4"; #2 +# sib2_interval_ULHoppingConfigCommonModeB_r13 = "FDD"; # choice -> (0, FDD) (1, TDD) +# sib2_interval_ULHoppingConfigCommonModeB_r13_val = "int2"; #0 + +# sib2_mpdcch_pdsch_hoppingOffset_r13 = 1; + } + + rach_preamblesGroupAConfig = "DISABLE"; + + phich_duration = "NORMAL"; + phich_resource = "ONESIXTH"; + srs_enable = "DISABLE"; + + } + + + +} + + + + + ); + + + srb1_parameters : + { + # timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500] + timer_poll_retransmit = 80; + + # timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200] + timer_reordering = 35; + + # timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500] + timer_status_prohibit = 0; + + # poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)] + poll_pdu = 4; + + # poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)] + poll_byte = 99999; + + # max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32] + max_retx_threshold = 4; + } + + # ------- SCTP definitions + SCTP : + { + # Number of streams to use in input/output + SCTP_INSTREAMS = 2; + SCTP_OUTSTREAMS = 2; + }; + + + ////////// MME parameters: + mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR"; + ipv6 = "192:168:30::17"; + active = "yes"; + preference = "ipv4"; + } + ); + + NETWORK_INTERFACES : + { + ENB_INTERFACE_NAME_FOR_S1_MME = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR"; + ENB_INTERFACE_NAME_FOR_S1U = "eth0"; + ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR"; + ENB_PORT_FOR_S1U = 2152; # Spec 2152 + ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR"; + ENB_PORT_FOR_X2C = 36422; # Spec 36422 + }; + + log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + } +); + +MACRLCs = ( + { + num_cc = 1; + tr_s_preference = "local_L1"; + tr_n_preference = "local_RRC"; + phy_test_mode = 0; + puSch10xSnr = 200; + puCch10xSnr = 200; + } +); + +L1s = ( + { + num_cc = 1; + tr_n_preference = "local_mac"; + } +); + +RUs = ( + { + local_rf = "yes" + nb_tx = 1 + nb_rx = 1 + att_tx = 0 + att_rx = 0; + bands = [13]; + max_pdschReferenceSignalPower = -27; + max_rxgain = 125; + eNB_instances = [0]; + } +); + +log_config : + { + global_log_level ="info"; + global_log_verbosity ="medium"; + hw_log_level ="info"; + hw_log_verbosity ="medium"; + phy_log_level ="info"; + phy_log_verbosity ="medium"; + mac_log_level ="info"; + mac_log_verbosity ="high"; + rlc_log_level ="info"; + rlc_log_verbosity ="medium"; + pdcp_log_level ="info"; + pdcp_log_verbosity ="medium"; + rrc_log_level ="info"; + rrc_log_verbosity ="medium"; + }; + From ffea699962af7e8e305b59b7867767b1882d4260 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 27 Nov 2018 11:03:00 +0100 Subject: [PATCH 101/125] change of log level on trace in fapi_l1.c --- openair1/SCHED/fapi_l1.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 3c3f3b5136..4f2aedee6c 100755 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -706,7 +706,7 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, AssertFatal((UE_id = find_uci(ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti, proc->frame_tx,proc->subframe_tx,eNB,SEARCH_EXIST_OR_FREE))>=0, "No available UE UCI for rnti %x\n",ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti); - LOG_I(PHY,"Applying UL UCI_HARQ config for UE %d, rnti %x for frame %d, subframe %d\n", + LOG_D(PHY,"Applying UL UCI_HARQ config for UE %d, rnti %x for frame %d, subframe %d\n", UE_id,ul_config_pdu->uci_harq_pdu.ue_information.ue_information_rel8.rnti,frame,subframe); handle_uci_harq_pdu(eNB,UE_id,ul_config_pdu,frame,subframe,srs_present); From 27b7431cf487f96eca66bfbaf039e15f90ff43cc Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 4 Jan 2019 15:41:34 +0100 Subject: [PATCH 102/125] bugfix: fix some merge error --- openair1/SCHED/phy_procedures_lte_eNb.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index 519a0ea512..8978f79f37 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -1779,12 +1779,13 @@ void fill_ulsch_harq_indication (PHY_VARS_eNB * eNB, LTE_UL_eNB_HARQ_t * ulsch_h release_harq(eNB,UE_id,1,frame,subframe,1<o_ACK[i] == 1); } } - //LOG_E(PHY,"eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs:%d\n", eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs); - eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs++; - - pthread_mutex_unlock(&eNB->UL_INFO_mutex); - } + + //LOG_E(PHY,"eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs:%d\n", eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs); + eNB->UL_INFO.harq_ind.harq_indication_body.number_of_harqs++; + + pthread_mutex_unlock(&eNB->UL_INFO_mutex); + } void fill_uci_harq_indication (PHY_VARS_eNB * eNB, LTE_eNB_UCI * uci, int frame, int subframe, uint8_t * harq_ack, uint8_t tdd_mapping_mode, uint16_t tdd_multiplexing_mask) { From aea6b4b5a6fea3ffa886631d09e39546f3f431a9 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Mon, 7 Jan 2019 16:22:28 +0100 Subject: [PATCH 103/125] fix a lot of file mode For whatever reason most of the files had their permission changed from 644 to 755, which is not wanted. --- .gitlab-ci.yml | 0 LICENSE | 0 NOTICE.txt | 0 README.txt | 0 .../conf_files/enb.band13.tm1.50PRB.emtc.conf | 0 cmake_targets/CMakeLists.txt | 0 cmake_targets/at_commands/CMakeLists.txt | 0 cmake_targets/autotests/README.txt | 0 cmake_targets/autotests/core.py | 0 cmake_targets/autotests/log.py | 0 cmake_targets/autotests/openair.py | 0 cmake_targets/autotests/templates/index.html | 0 .../autotests/templates/testcase_report.html | 0 cmake_targets/autotests/test_case_list.xml | 0 cmake_targets/autotests/testsuite_ue_noS1.xml | 0 cmake_targets/autotests/testsuite_ue_noS1_TCL.xml | 0 cmake_targets/autotests/tools/lib_autotest.py | 0 .../autotests/tools/lib_autotest_analyser.py | 0 cmake_targets/autotests/tools/wdial.bandrich.conf | 0 cmake_targets/autotests/v2/actions/alu_epc.bash | 0 .../autotests/v2/actions/alu_epc_stop.bash | 0 cmake_targets/autotests/v2/actions/alu_hss.bash | 0 cmake_targets/autotests/v2/actions/bandrich.txt | 0 cmake_targets/autotests/v2/actions/client_tcp.bash | 0 cmake_targets/autotests/v2/actions/client_udp.bash | 0 .../autotests/v2/actions/clone_repository.bash | 0 cmake_targets/autotests/v2/actions/compilation.bash | 0 cmake_targets/autotests/v2/actions/execution.bash | 0 .../autotests/v2/actions/execution_compile.bash | 0 cmake_targets/autotests/v2/actions/modem.py | 0 cmake_targets/autotests/v2/actions/run_enb.bash | 0 cmake_targets/autotests/v2/actions/server_tcp.bash | 0 cmake_targets/autotests/v2/actions/server_udp.bash | 0 cmake_targets/autotests/v2/actions/start_3276.bash | 0 cmake_targets/autotests/v2/actions/start_3276.py | 0 .../autotests/v2/actions/start_bandrich.bash | 0 .../autotests/v2/actions/start_bandrich.py | 0 cmake_targets/autotests/v2/actions/stop_3276.py | 0 cmake_targets/autotests/v2/actions/stop_bandrich.py | 0 cmake_targets/autotests/v2/actions/wvdial.3276.conf | 0 .../autotests/v2/actions/wvdial.bandrich.conf | 0 cmake_targets/autotests/v2/alu_test.py | 0 .../config/enb.band38.tm1.usrpb210.tdd.10MHz.conf | 0 .../config/enb.band38.tm1.usrpb210.tdd.20MHz.conf | 0 .../v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf | 0 .../v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf | 0 .../v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf | 0 .../v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf | 0 .../v2/config/rcc.band7.tm1.if4p5.10MHz.conf | 0 .../v2/config/rcc.band7.tm1.if4p5.20MHz.conf | 0 .../v2/config/rcc.band7.tm1.if4p5.5MHz.conf | 0 .../rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf | 0 .../rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf | 0 .../rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf | 0 cmake_targets/autotests/v2/connection.py | 0 cmake_targets/autotests/v2/machine_list.py | 0 cmake_targets/autotests/v2/main.py | 0 cmake_targets/autotests/v2/task.py | 0 cmake_targets/autotests/v2/utils.py | 0 cmake_targets/doxygen/CMakeLists.txt | 0 cmake_targets/epc_test/CMakeLists.template | 0 cmake_targets/lte-simulators/CMakeLists.txt | 0 .../lte_noS1_build_oai/CMakeLists.template | 0 cmake_targets/nas_sim_tools/CMakeLists.txt | 0 cmake_targets/oaisim_build_oai/CMakeLists.template | 0 .../oaisim_mme_build_oai/CMakeLists.template | 0 .../oaisim_noS1_build_oai/CMakeLists.template | 0 cmake_targets/s1c_mme_test/CMakeLists.template | 0 cmake_targets/tools/Kbuild.cmake | 0 .../tools/MODULES/CMakeParseArguments.cmake | 0 .../tools/MODULES/CMakeUserFindMySQL.cmake | 0 cmake_targets/tools/MODULES/CMakeUserUseBison.cmake | 0 cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake | 0 cmake_targets/tools/MODULES/FindFreeDiameter.cmake | 0 cmake_targets/tools/MODULES/FindGCCXML.cmake | 0 cmake_targets/tools/MODULES/FindGcrypt.cmake | 0 cmake_targets/tools/MODULES/FindGnuTLS.cmake | 0 cmake_targets/tools/MODULES/FindKbuild.cmake | 0 cmake_targets/tools/MODULES/FindLibXml2.cmake | 0 cmake_targets/tools/MODULES/FindMySQL.cmake | 0 cmake_targets/tools/MODULES/FindNettle.cmake | 0 cmake_targets/tools/MODULES/FindPostgreSQL.cmake | 0 cmake_targets/tools/MODULES/FindSCTP.cmake | 0 cmake_targets/tools/MODULES/Kbuild.cmake | 0 cmake_targets/tools/MODULES/cmake_useful.cmake | 0 cmake_targets/tools/MODULES/kbuild_system.cmake | 0 cmake_targets/tools/MODULES/kmodule.cmake | 0 cmake_targets/tools/MODULES/path_prefixes.cmake | 0 cmake_targets/tools/asn1tostruct.py | 0 cmake_targets/tools/example_enb_exmimo_mme_hss.txt | 0 .../tools/example_oaisim_enb_ue_mme_virtual.txt | 0 cmake_targets/tools/exmimo2_2arxg.lime | 0 cmake_targets/tools/exmimo2_2brxg.lime | 0 cmake_targets/tools/exmimo_stop_octave.m | 0 .../RRC.rel10/SystemInformation-r8-IEs.h.diff | 0 .../RRC.rel14/SystemInformation-r8-IEs.h.diff | 0 .../X2ap-CriticalityDiagnostics-IE-List.h.diff | 0 cmake_targets/tools/test_helper | 0 common/config/config_cmdline.c | 0 common/config/config_load_configmodule.c | 0 common/config/config_load_configmodule.h | 0 common/config/config_paramdesc.h | 0 common/config/config_userapi.c | 0 common/config/config_userapi.h | 0 common/config/libconfig/config_libconfig.c | 0 common/config/libconfig/config_libconfig.h | 0 common/config/libconfig/config_libconfig_private.h | 0 common/ran_context.h | 0 common/utils/LOG/README.txt | 0 common/utils/LOG/log_extern.h | 0 common/utils/LOG/log_if.h | 0 common/utils/LOG/vcd_signal_dumper.c | 0 common/utils/LOG/vcd_signal_dumper.h | 0 common/utils/T/.gitignore | 0 common/utils/T/Makefile | 0 common/utils/T/README | 0 common/utils/T/T.c | 0 common/utils/T/T.h | 0 common/utils/T/T_defs.h | 0 common/utils/T/T_messages.txt | 0 common/utils/T/defs.h | 0 common/utils/T/generate_Txx.c | 0 common/utils/T/genids.c | 0 common/utils/T/local_tracer.c | 0 common/utils/T/plot.c | 0 common/utils/T/tracee/Makefile | 0 common/utils/T/tracee/README | 0 common/utils/T/tracee/tracee.c | 0 common/utils/T/tracer/Makefile | 0 common/utils/T/tracer/config.c | 0 common/utils/T/tracer/config.h | 0 common/utils/T/tracer/database.c | 0 common/utils/T/tracer/database.h | 0 common/utils/T/tracer/defs.h | 0 common/utils/T/tracer/enb.c | 0 common/utils/T/tracer/event.c | 0 common/utils/T/tracer/event.h | 0 common/utils/T/tracer/event_selector.c | 0 common/utils/T/tracer/event_selector.h | 0 common/utils/T/tracer/extract_config.c | 0 common/utils/T/tracer/extract_input_subframe.c | 0 common/utils/T/tracer/filter/Makefile | 0 common/utils/T/tracer/filter/filter.c | 0 common/utils/T/tracer/filter/filter.h | 0 common/utils/T/tracer/gui.c | 0 common/utils/T/tracer/gui/Makefile | 0 common/utils/T/tracer/gui/container.c | 0 common/utils/T/tracer/gui/event.c | 0 common/utils/T/tracer/gui/gui.c | 0 common/utils/T/tracer/gui/gui.h | 0 common/utils/T/tracer/gui/gui_defs.h | 0 common/utils/T/tracer/gui/image.c | 0 common/utils/T/tracer/gui/init.c | 0 common/utils/T/tracer/gui/label.c | 0 common/utils/T/tracer/gui/loop.c | 0 common/utils/T/tracer/gui/notify.c | 0 common/utils/T/tracer/gui/positioner.c | 0 common/utils/T/tracer/gui/space.c | 0 common/utils/T/tracer/gui/test.c | 0 common/utils/T/tracer/gui/textarea.c | 0 common/utils/T/tracer/gui/textlist.c | 0 common/utils/T/tracer/gui/timeline.c | 0 common/utils/T/tracer/gui/toplevel_window.c | 0 common/utils/T/tracer/gui/widget.c | 0 common/utils/T/tracer/gui/x.c | 0 common/utils/T/tracer/gui/x.h | 0 common/utils/T/tracer/gui/x_defs.h | 0 common/utils/T/tracer/gui/xy_plot.c | 0 common/utils/T/tracer/hacks/Makefile | 0 common/utils/T/tracer/hacks/dump_nack_signal.c | 0 common/utils/T/tracer/hacks/time_meas.c | 0 common/utils/T/tracer/hacks/timeplot.c | 0 common/utils/T/tracer/handler.c | 0 common/utils/T/tracer/handler.h | 0 common/utils/T/tracer/logger/Makefile | 0 common/utils/T/tracer/logger/framelog.c | 0 common/utils/T/tracer/logger/iqdotlog.c | 0 common/utils/T/tracer/logger/iqlog.c | 0 common/utils/T/tracer/logger/logger.c | 0 common/utils/T/tracer/logger/logger.h | 0 common/utils/T/tracer/logger/logger_defs.h | 0 common/utils/T/tracer/logger/textlog.c | 0 common/utils/T/tracer/logger/throughputlog.c | 0 common/utils/T/tracer/logger/ticked_ttilog.c | 0 common/utils/T/tracer/logger/ticklog.c | 0 common/utils/T/tracer/logger/timelog.c | 0 common/utils/T/tracer/logger/ttilog.c | 0 common/utils/T/tracer/macpdu2wireshark.c | 0 common/utils/T/tracer/openair_logo.h | 0 common/utils/T/tracer/openair_logo.png | Bin common/utils/T/tracer/packet-mac-lte.h | 0 common/utils/T/tracer/plot.c | 0 common/utils/T/tracer/record.c | 0 common/utils/T/tracer/replay.c | 0 common/utils/T/tracer/textlog.c | 0 common/utils/T/tracer/ue.c | 0 common/utils/T/tracer/utils.c | 0 common/utils/T/tracer/utils.h | 0 common/utils/T/tracer/vcd.c | 0 common/utils/T/tracer/view/Makefile | 0 common/utils/T/tracer/view/scrolltti.c | 0 common/utils/T/tracer/view/stdout.c | 0 common/utils/T/tracer/view/textlist.c | 0 common/utils/T/tracer/view/ticktime.c | 0 common/utils/T/tracer/view/time.c | 0 common/utils/T/tracer/view/tti.c | 0 common/utils/T/tracer/view/view.h | 0 common/utils/T/tracer/view/xy.c | 0 common/utils/asn1_conversions.h | 0 common/utils/assertions.h | 0 common/utils/backtrace.c | 0 common/utils/backtrace.h | 0 common/utils/collection/queue.h | 0 common/utils/collection/tree.h | 0 common/utils/hashtable/hashtable.c | 0 common/utils/hashtable/hashtable.h | 0 common/utils/hashtable/obj_hashtable.c | 0 common/utils/hashtable/obj_hashtable.h | 0 common/utils/itti_analyzer/AUTHORS | 0 common/utils/itti_analyzer/ChangeLog | 0 common/utils/itti_analyzer/INSTALL | 0 common/utils/itti_analyzer/Makefile.am | 0 common/utils/itti_analyzer/NEWS | 0 common/utils/itti_analyzer/README | 0 common/utils/itti_analyzer/common/itti_types.h | 0 common/utils/itti_analyzer/common/logs.h | 0 common/utils/itti_analyzer/common/queue.h | 0 common/utils/itti_analyzer/common/rc.h | 0 common/utils/itti_analyzer/configure.ac | 0 common/utils/itti_analyzer/filters.xml | 0 common/utils/itti_analyzer/filters_mme.xml | 0 common/utils/itti_analyzer/filters_ue_enb.xml | 0 common/utils/itti_analyzer/itti_analyzer.c | 0 common/utils/itti_analyzer/libbuffers/Makefile.am | 0 common/utils/itti_analyzer/libbuffers/buffers.c | 0 common/utils/itti_analyzer/libbuffers/buffers.h | 0 common/utils/itti_analyzer/libbuffers/file.c | 0 common/utils/itti_analyzer/libbuffers/file.h | 0 common/utils/itti_analyzer/libbuffers/socket.c | 0 common/utils/itti_analyzer/libbuffers/socket.h | 0 common/utils/itti_analyzer/libparser/Makefile.am | 0 common/utils/itti_analyzer/libparser/array_type.c | 0 common/utils/itti_analyzer/libparser/array_type.h | 0 common/utils/itti_analyzer/libparser/enum_type.c | 0 common/utils/itti_analyzer/libparser/enum_type.h | 0 .../utils/itti_analyzer/libparser/enum_value_type.c | 0 .../utils/itti_analyzer/libparser/enum_value_type.h | 0 common/utils/itti_analyzer/libparser/field_type.c | 0 common/utils/itti_analyzer/libparser/field_type.h | 0 common/utils/itti_analyzer/libparser/file_type.c | 0 common/utils/itti_analyzer/libparser/file_type.h | 0 .../itti_analyzer/libparser/fundamental_type.c | 0 .../itti_analyzer/libparser/fundamental_type.h | 0 .../itti_analyzer/libparser/intertask_contexts.h | 0 common/utils/itti_analyzer/libparser/pointer_type.c | 0 common/utils/itti_analyzer/libparser/pointer_type.h | 0 .../utils/itti_analyzer/libparser/reference_type.c | 0 .../utils/itti_analyzer/libparser/reference_type.h | 0 common/utils/itti_analyzer/libparser/struct_type.c | 0 common/utils/itti_analyzer/libparser/struct_type.h | 0 common/utils/itti_analyzer/libparser/typedef_type.c | 0 common/utils/itti_analyzer/libparser/typedef_type.h | 0 common/utils/itti_analyzer/libparser/types.c | 0 common/utils/itti_analyzer/libparser/types.h | 0 common/utils/itti_analyzer/libparser/union_type.c | 0 common/utils/itti_analyzer/libparser/union_type.h | 0 common/utils/itti_analyzer/libparser/xml_parse.c | 0 common/utils/itti_analyzer/libparser/xml_parse.h | 0 common/utils/itti_analyzer/libresolver/Makefile.am | 0 .../utils/itti_analyzer/libresolver/locate_root.c | 0 .../utils/itti_analyzer/libresolver/locate_root.h | 0 common/utils/itti_analyzer/libresolver/resolvers.c | 0 common/utils/itti_analyzer/libresolver/resolvers.h | 0 common/utils/itti_analyzer/libui/Makefile.am | 0 common/utils/itti_analyzer/libui/ui_callbacks.c | 0 common/utils/itti_analyzer/libui/ui_callbacks.h | 0 common/utils/itti_analyzer/libui/ui_filters.c | 0 common/utils/itti_analyzer/libui/ui_filters.h | 0 common/utils/itti_analyzer/libui/ui_interface.c | 0 common/utils/itti_analyzer/libui/ui_interface.h | 0 common/utils/itti_analyzer/libui/ui_main_screen.c | 0 common/utils/itti_analyzer/libui/ui_main_screen.h | 0 common/utils/itti_analyzer/libui/ui_menu_bar.c | 0 common/utils/itti_analyzer/libui/ui_menu_bar.h | 0 common/utils/itti_analyzer/libui/ui_notebook.c | 0 common/utils/itti_analyzer/libui/ui_notebook.h | 0 common/utils/itti_analyzer/libui/ui_notif_dlg.c | 0 common/utils/itti_analyzer/libui/ui_notif_dlg.h | 0 common/utils/itti_analyzer/libui/ui_notifications.c | 0 common/utils/itti_analyzer/libui/ui_notifications.h | 0 .../itti_analyzer/libui/ui_signal_dissect_view.c | 0 .../itti_analyzer/libui/ui_signal_dissect_view.h | 0 common/utils/itti_analyzer/libui/ui_tree_view.c | 0 common/utils/itti_analyzer/libui/ui_tree_view.h | 0 common/utils/load_module_shlib.c | 0 common/utils/load_module_shlib.h | 0 common/utils/memory_pools.c | 0 common/utils/memory_pools.h | 0 common/utils/msc/msc.c | 0 common/utils/msc/msc.h | 0 common/utils/system.c | 0 common/utils/system.h | 0 common/utils/telnetsrv/telnetsrv.c | 0 common/utils/telnetsrv/telnetsrv.h | 0 common/utils/telnetsrv/telnetsrv_loader.h | 0 common/utils/telnetsrv/telnetsrv_phycmd.c | 0 common/utils/telnetsrv/telnetsrv_phycmd.h | 0 common/utils/telnetsrv/telnetsrv_proccmd.c | 0 common/utils/telnetsrv/telnetsrv_proccmd.h | 0 common/utils/time_utils.h | 0 common/utils/utils.c | 0 common/utils/utils.h | 0 nfapi/oai_integration/nfapi_vnf.h | 0 oaienv | 0 openair1/PHY/CODING/3gpplte.c | 0 openair1/PHY/CODING/3gpplte_sse.c | 0 openair1/PHY/CODING/3gpplte_turbo_decoder.c | 0 .../PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c | 0 openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c | 0 .../PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c | 0 .../PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c | 0 openair1/PHY/CODING/Makefile | 0 openair1/PHY/CODING/Makefile.arm | 0 openair1/PHY/CODING/README.txt | 0 openair1/PHY/CODING/TESTBENCH/Makefile | 0 openair1/PHY/CODING/TESTBENCH/README.txt | 0 openair1/PHY/CODING/TESTBENCH/ltetest.c | 0 openair1/PHY/CODING/TESTBENCH/pdcch_test.c | 0 openair1/PHY/CODING/TESTBENCH/viterbi_test.c | 0 openair1/PHY/CODING/ccoding_byte.c | 0 openair1/PHY/CODING/ccoding_byte_lte.c | 0 openair1/PHY/CODING/coding_defs.h | 0 openair1/PHY/CODING/coding_extern.h | 0 openair1/PHY/CODING/crc_byte.c | 0 openair1/PHY/CODING/lte_interleaver_inline.h | 0 openair1/PHY/CODING/lte_rate_matching.c | 0 openair1/PHY/CODING/lte_segmentation.c | 0 openair1/PHY/CODING/lte_tf.m | 0 openair1/PHY/CODING/scrambler.h | 0 openair1/PHY/CODING/viterbi.c | 0 openair1/PHY/CODING/viterbi_lte.c | 0 openair1/PHY/INIT/README.txt | 0 openair1/PHY/INIT/init_extern.h | 0 openair1/PHY/INIT/init_top.c | 0 openair1/PHY/INIT/init_vars.h | 0 openair1/PHY/INIT/lte_init.c | 0 openair1/PHY/INIT/lte_param_init.c | 0 openair1/PHY/INIT/lte_parms.c | 0 openair1/PHY/INIT/phy_init.h | 0 openair1/PHY/LTE_ESTIMATION/README.txt | 0 openair1/PHY/LTE_ESTIMATION/adjust_gain.c | 0 .../PHY/LTE_ESTIMATION/bf_freq_domain_filters.m | 0 openair1/PHY/LTE_ESTIMATION/filt16_32.h | 0 openair1/PHY/LTE_ESTIMATION/filt96_32.h | 0 openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m | 0 openair1/PHY/LTE_ESTIMATION/freq_equalization.c | 0 openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c | 0 .../LTE_ESTIMATION/lte_dl_bf_channel_estimation.c | 0 .../PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c | 0 .../lte_dl_mbsfn_channel_estimation.c | 0 openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c | 0 openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c | 0 openair1/PHY/LTE_ESTIMATION/lte_estimation.h | 0 openair1/PHY/LTE_ESTIMATION/lte_estimation_extern.h | 0 openair1/PHY/LTE_ESTIMATION/lte_estimation_vars.h | 0 openair1/PHY/LTE_ESTIMATION/lte_sync_time.c | 0 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c | 0 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m | 0 openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c | 0 .../PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c | 0 openair1/PHY/LTE_ESTIMATION/pss6144.h | 0 openair1/PHY/LTE_REFSIG/README.txt | 0 openair1/PHY/LTE_REFSIG/gen_mod_table.m | 0 openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c | 0 openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c | 0 openair1/PHY/LTE_REFSIG/lte_dl_uespec.c | 0 openair1/PHY/LTE_REFSIG/lte_gold.c | 0 openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c | 0 openair1/PHY/LTE_REFSIG/lte_refsig.h | 0 openair1/PHY/LTE_REFSIG/lte_ul.m | 0 openair1/PHY/LTE_REFSIG/lte_ul_ref.c | 0 openair1/PHY/LTE_REFSIG/mod_table.h | 0 openair1/PHY/LTE_REFSIG/primary_synch.h | 0 openair1/PHY/LTE_REFSIG/primary_synch.m | 0 openair1/PHY/LTE_TRANSPORT/README.txt | 0 openair1/PHY/LTE_TRANSPORT/dci.c | 0 openair1/PHY/LTE_TRANSPORT/dci.h | 0 openair1/PHY/LTE_TRANSPORT/dci_tools.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_coding.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c | 0 openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h | 0 openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h | 0 openair1/PHY/LTE_TRANSPORT/edci.c | 0 openair1/PHY/LTE_TRANSPORT/group_hopping.c | 0 openair1/PHY/LTE_TRANSPORT/if4_tools.c | 0 openair1/PHY/LTE_TRANSPORT/if4_tools.h | 0 openair1/PHY/LTE_TRANSPORT/if5_tools.c | 0 openair1/PHY/LTE_TRANSPORT/if5_tools.h | 0 openair1/PHY/LTE_TRANSPORT/lte_mcs.c | 0 openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h | 0 openair1/PHY/LTE_TRANSPORT/mdci.h | 0 openair1/PHY/LTE_TRANSPORT/pbch.c | 0 openair1/PHY/LTE_TRANSPORT/pcfich.c | 0 openair1/PHY/LTE_TRANSPORT/phich.c | 0 openair1/PHY/LTE_TRANSPORT/pilots.c | 0 openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c | 0 openair1/PHY/LTE_TRANSPORT/pmch.c | 0 openair1/PHY/LTE_TRANSPORT/power_control.c | 0 openair1/PHY/LTE_TRANSPORT/prach.c | 0 openair1/PHY/LTE_TRANSPORT/print_stats.c | 0 openair1/PHY/LTE_TRANSPORT/pss.c | 0 openair1/PHY/LTE_TRANSPORT/pucch.c | 0 openair1/PHY/LTE_TRANSPORT/pucch_extern.h | 0 openair1/PHY/LTE_TRANSPORT/rar_tools.c | 0 openair1/PHY/LTE_TRANSPORT/sss.c | 0 openair1/PHY/LTE_TRANSPORT/transport_eNB.h | 0 openair1/PHY/LTE_TRANSPORT/transport_extern.h | 0 openair1/PHY/LTE_TRANSPORT/transport_vars.h | 0 openair1/PHY/LTE_TRANSPORT/uci_common.h | 0 openair1/PHY/LTE_TRANSPORT/uci_tools.c | 0 openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c | 0 openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c | 0 openair1/PHY/LTE_TRANSPORT/vrb_maps.m | 0 openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c | 0 openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c | 0 openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c | 0 .../PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c | 0 .../LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c | 0 openair1/PHY/LTE_UE_TRANSPORT/drs_modulation.c | 0 openair1/PHY/LTE_UE_TRANSPORT/get_pmi.c | 0 openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c | 0 .../PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h | 0 openair1/PHY/LTE_UE_TRANSPORT/pch_ue.c | 0 openair1/PHY/LTE_UE_TRANSPORT/slss.c | 0 openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c | 0 openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h | 0 openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c | 0 openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c | 0 openair1/PHY/MODULATION/beamforming.c | 0 openair1/PHY/MODULATION/compute_bf_weights.c | 0 openair1/PHY/MODULATION/ofdm_mod.c | 0 openair1/PHY/MODULATION/prach625Hz.h | 0 openair1/PHY/MODULATION/slot_fep.c | 0 openair1/PHY/MODULATION/slot_fep_mbsfn.c | 0 openair1/PHY/MODULATION/slot_fep_ul.c | 0 openair1/PHY/MODULATION/ul_7_5_kHz.c | 0 openair1/PHY/Makefile.inc | 0 openair1/PHY/TOOLS/8bit_rxdemux.c | 0 openair1/PHY/TOOLS/8bit_txmux.c | 0 openair1/PHY/TOOLS/Makefile | 0 openair1/PHY/TOOLS/alaw_lut.h | 0 openair1/PHY/TOOLS/angle.c | 0 openair1/PHY/TOOLS/cadd_sv.c | 0 openair1/PHY/TOOLS/cadd_vv.c | 0 openair1/PHY/TOOLS/cdot_prod.c | 0 openair1/PHY/TOOLS/cmult_sv.c | 0 openair1/PHY/TOOLS/cmult_vv.c | 0 openair1/PHY/TOOLS/costable.h | 0 openair1/PHY/TOOLS/dB_routines.c | 0 openair1/PHY/TOOLS/dB_routines.h | 0 openair1/PHY/TOOLS/invSqrt.c | 0 openair1/PHY/TOOLS/log2_approx.c | 0 openair1/PHY/TOOLS/lte_dfts.c | 0 openair1/PHY/TOOLS/lte_phy_scope.c | 0 openair1/PHY/TOOLS/lte_phy_scope.h | 0 openair1/PHY/TOOLS/lte_phy_scope_tm4.c | 0 openair1/PHY/TOOLS/lut.c | 0 openair1/PHY/TOOLS/memory_routines.c | 0 openair1/PHY/TOOLS/read_F.c | 0 openair1/PHY/TOOLS/signal_energy.c | 0 openair1/PHY/TOOLS/smbv.c | 0 openair1/PHY/TOOLS/smbv.h | 0 openair1/PHY/TOOLS/sqrt.c | 0 openair1/PHY/TOOLS/time_meas.c | 0 openair1/PHY/TOOLS/time_meas.h | 0 openair1/PHY/TOOLS/tools_defs.h | 0 openair1/PHY/TOOLS/tools_extern.h | 0 openair1/PHY/TOOLS/tools_vars.h | 0 openair1/PHY/defs_eNB.h | 0 openair1/PHY/impl_defs_lte.h | 0 openair1/PHY/impl_defs_top.h | 0 openair1/PHY/phy_extern.h | 0 openair1/PHY/phy_vars.h | 0 openair1/PHY/sse_intrin.h | 0 openair1/PHY/types.h | 0 openair1/README.TXT | 0 openair1/SCHED/Makefile.inc | 0 openair1/SCHED/fapi_l1.c | 0 openair1/SCHED/fapi_l1.h | 0 openair1/SCHED/phy_mac_stub.c | 0 openair1/SCHED/phy_procedures_lte_common.c | 0 openair1/SCHED/phy_procedures_lte_eNb.c | 0 openair1/SCHED/ru_procedures.c | 0 openair1/SCHED/sched_common.h | 0 openair1/SCHED_UE/phy_procedures_lte_ue.c | 0 openair1/SCHED_UE/pucch_pc.c | 0 openair1/SCHED_UE/srs_pc.c | 0 openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc | 0 openair1/SIMULATION/ETH_TRANSPORT/README.txt | 0 .../SIMULATION/ETH_TRANSPORT/bypass_session_layer.c | 0 openair1/SIMULATION/ETH_TRANSPORT/defs.h | 0 openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c | 0 openair1/SIMULATION/ETH_TRANSPORT/extern.h | 0 openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c | 0 openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h | 0 openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c | 0 openair1/SIMULATION/ETH_TRANSPORT/proto.h | 0 openair1/SIMULATION/ETH_TRANSPORT/socket.c | 0 openair1/SIMULATION/ETH_TRANSPORT/socket.h | 0 openair1/SIMULATION/ETH_TRANSPORT/vars.h | 0 .../LTE_PHY/Abstraction/Training/IEEEtran.cls | 0 .../LTE_PHY/Abstraction/Training/bare_adv.tex | 0 .../LTE_PHY/Abstraction/Training/bare_jrnl.tex | 0 .../Abstraction/Training/bare_jrnl_compsoc.tex | 0 .../LTE_PHY/Abstraction/Training/create_plots.m | 0 .../LTE_PHY/Abstraction/Training/delta_BLER_1.m | 0 .../Abstraction/Training/polyfit_beta_training.m | 0 .../Abstraction/Training/polyfit_delta_BLER.m | 0 .../LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m | 0 .../Abstraction/Training/training_abstraction.m | 0 .../Abstraction/Training/training_top_script.m | 0 .../LTE_PHY/Abstraction/beta_training_EESM.m | 0 .../LTE_PHY/Abstraction/data_collection_mode5.m | 0 .../LTE_PHY/Abstraction/data_extraction.m | 0 .../SIMULATION/LTE_PHY/Abstraction/delta_BLER.m | 0 .../SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m | 0 openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m | 0 .../Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat | Bin .../Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat | Bin .../Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat | Bin .../Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat | Bin .../Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat | Bin .../Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat | Bin .../Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat | Bin .../Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat | Bin .../Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat | Bin .../Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat | Bin .../Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat | Bin .../Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat | Bin .../Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat | Bin .../Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat | Bin .../Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat | Bin .../matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat | Bin .../Abstraction/matFiles/data_mode5_16_16.mat | Bin .../matFiles/data_mode5_4_4_morerealizations.mat | Bin .../Abstraction/matFiles/siso_MI_abs_16Qam.mat | Bin .../Abstraction/matFiles/siso_MI_abs_4Qam.mat | Bin .../Abstraction/matFiles/siso_MI_abs_64Qam.mat | Bin .../SIMULATION/LTE_PHY/Abstraction/opposite_q.m | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv | 0 .../AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv | 0 .../AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv | 0 .../AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m | 0 .../SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m | 0 .../LTE_PHY/BLER_SIMULATIONS/eval_results.m | 0 openair1/SIMULATION/LTE_PHY/LTE_Configuration.c | 0 openair1/SIMULATION/LTE_PHY/LTE_Configuration.h | 0 openair1/SIMULATION/LTE_PHY/README.txt | 0 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m | 0 .../SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m | 0 .../LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png | Bin .../LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m | 0 .../SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt | 0 openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex | 0 openair1/SIMULATION/LTE_PHY/blerSimus.zip | Bin openair1/SIMULATION/LTE_PHY/dlsim.c | 0 openair1/SIMULATION/LTE_PHY/dlsim_tm4.c | 0 openair1/SIMULATION/LTE_PHY/dlsim_tm7.c | 0 openair1/SIMULATION/LTE_PHY/fancyheadings.sty | 0 openair1/SIMULATION/LTE_PHY/framegen.c | 0 openair1/SIMULATION/LTE_PHY/gpib_send.c | 0 openair1/SIMULATION/LTE_PHY/gpib_send.h | 0 openair1/SIMULATION/LTE_PHY/mat2wv.m | 0 openair1/SIMULATION/LTE_PHY/mbmssim.c | 0 openair1/SIMULATION/LTE_PHY/pbch_awgn.txt | 0 openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt | 0 openair1/SIMULATION/LTE_PHY/pbchsim.c | 0 openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m | 0 openair1/SIMULATION/LTE_PHY/pdcchsim.c | 0 openair1/SIMULATION/LTE_PHY/plotTools/p | 0 openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m | 0 .../LTE_PHY/plotTools/plot_channel_PePu.m | 0 .../LTE_PHY/plotTools/plot_channel_SePu.m | 0 .../SIMULATION/LTE_PHY/plotTools/plot_channels.m | 0 .../LTE_PHY/plotTools/plot_constellations.m | 0 .../LTE_PHY/plotTools/plot_dl_ce_prec_ul.m | 0 .../SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m | 0 .../LTE_PHY/plotTools/plot_floating_point_signals.m | 0 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m | 0 .../SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m | 0 .../SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m | 0 .../SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m | 0 openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m | 0 openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m | 0 openair1/SIMULATION/LTE_PHY/prachsim.c | 0 openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h | 0 openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c | 0 openair1/SIMULATION/LTE_PHY/pucchsim.c | 0 openair1/SIMULATION/LTE_PHY/scansim.c | 0 openair1/SIMULATION/LTE_PHY/signalanalyzer.c | 0 openair1/SIMULATION/LTE_PHY/signalanalyzer.h | 0 openair1/SIMULATION/LTE_PHY/syncsim.c | 0 openair1/SIMULATION/LTE_PHY/test.c | 0 openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c | 0 openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h | 0 openair1/SIMULATION/LTE_PHY/ulsim.c | 0 openair1/SIMULATION/LTE_PHY/ulsim2.c | 0 openair1/SIMULATION/LTE_PHY/unitary_defs.h | 0 openair1/SIMULATION/Makefile.inc | 0 openair1/SIMULATION/RF/Makefile | 0 openair1/SIMULATION/RF/README.txt | 0 openair1/SIMULATION/RF/adc.c | 0 openair1/SIMULATION/RF/dac.c | 0 openair1/SIMULATION/RF/rf.c | 0 openair1/SIMULATION/RF/rf.h | 0 openair1/SIMULATION/TOOLS/abstraction.c | 0 openair1/SIMULATION/TOOLS/ch_desc_proto.c | 0 openair1/SIMULATION/TOOLS/corr_mat.m | 0 openair1/SIMULATION/TOOLS/gauss.c | 0 openair1/SIMULATION/TOOLS/llr_quantization.c | 0 openair1/SIMULATION/TOOLS/multipath_channel.c | 0 openair1/SIMULATION/TOOLS/multipath_tv_channel.c | 0 openair1/SIMULATION/TOOLS/random_channel.c | 0 openair1/SIMULATION/TOOLS/rangen_double.c | 0 openair1/SIMULATION/TOOLS/scm.m | 0 openair1/SIMULATION/TOOLS/scm_corrmat.h | 0 openair1/SIMULATION/TOOLS/sim.h | 0 openair1/SIMULATION/TOOLS/taus.c | 0 openair2/COMMON/as_message.h | 0 openair2/COMMON/commonDef.h | 0 openair2/COMMON/gtpv1_u_messages_def.h | 0 openair2/COMMON/gtpv1_u_messages_types.h | 0 openair2/COMMON/intertask_interface_conf.h | 0 openair2/COMMON/mac_messages_def.h | 0 openair2/COMMON/mac_messages_types.h | 0 openair2/COMMON/mac_primitives.h | 0 openair2/COMMON/mac_rlc_primitives.h | 0 openair2/COMMON/mac_rrc_primitives.h | 0 openair2/COMMON/messages_def.h | 0 openair2/COMMON/messages_types.h | 0 openair2/COMMON/nas_messages_def.h | 0 openair2/COMMON/nas_messages_types.h | 0 openair2/COMMON/networkDef.h | 0 openair2/COMMON/openair_defs.h | 0 openair2/COMMON/pdcp_messages_def.h | 0 openair2/COMMON/pdcp_messages_types.h | 0 openair2/COMMON/phy_messages_def.h | 0 openair2/COMMON/phy_messages_types.h | 0 openair2/COMMON/platform_constants.h | 0 openair2/COMMON/platform_types.h | 0 openair2/COMMON/ral_messages_def.h | 0 openair2/COMMON/ral_messages_types.h | 0 openair2/COMMON/rlc_messages_def.h | 0 openair2/COMMON/rlc_messages_types.h | 0 openair2/COMMON/rrc_messages_def.h | 0 openair2/COMMON/rrc_messages_types.h | 0 openair2/COMMON/rrm_config_structs.h | 0 openair2/COMMON/rrm_constants.h | 0 openair2/COMMON/rtos_header.h | 0 openair2/COMMON/s1ap_messages_def.h | 0 openair2/COMMON/s1ap_messages_types.h | 0 openair2/COMMON/sctp_messages_def.h | 0 openair2/COMMON/sctp_messages_types.h | 0 openair2/COMMON/tasks_def.h | 0 openair2/COMMON/udp_messages_def.h | 0 openair2/COMMON/udp_messages_types.h | 0 openair2/COMMON/x2ap_messages_def.h | 0 openair2/COMMON/x2ap_messages_types.h | 0 openair2/DOCS/DOXYGEN/Doxyfile | 0 openair2/DOCS/DOXYGEN/images/DLC_arch.png | Bin openair2/DOCS/DOXYGEN/images/Diapositive6.JPG | Bin openair2/DOCS/DOXYGEN/images/Framing.png | Bin openair2/DOCS/DOXYGEN/images/Framing.vsd | Bin openair2/DOCS/DOXYGEN/images/MAC Services.vsd | Bin openair2/DOCS/DOXYGEN/images/MAC_Measurements.png | Bin openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd | Bin openair2/DOCS/DOXYGEN/images/MAC_Services.eps | Bin openair2/DOCS/DOXYGEN/images/MAC_Services.vsd | Bin openair2/DOCS/DOXYGEN/images/MAC_Services2.eps | 0 openair2/DOCS/DOXYGEN/images/MAC_Services2.png | Bin openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd | Bin openair2/DOCS/DOXYGEN/images/MAC_arch.eps | Bin openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG | Bin openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png | Bin openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd | Bin openair2/DOCS/DOXYGEN/images/PHY_arch.eps | Bin openair2/DOCS/DOXYGEN/images/PHY_arch.png | Bin openair2/DOCS/DOXYGEN/images/PHY_arch.vsd | Bin openair2/DOCS/DOXYGEN/images/QAM modulation.png | Bin openair2/DOCS/DOXYGEN/images/QAM modulation.vsd | Bin openair2/DOCS/DOXYGEN/images/QAMmodulation.png | Bin openair2/DOCS/DOXYGEN/images/Transmission.pdf | Bin openair2/DOCS/DOXYGEN/images/Transmission.png | Bin openair2/DOCS/DOXYGEN/images/Transmission.ps | 0 openair2/DOCS/DOXYGEN/images/cellular_topology.doc | Bin openair2/DOCS/DOXYGEN/images/cellular_topology.pdf | Bin .../DOCS/DOXYGEN/images/cellular_topology_small.png | Bin openair2/DOCS/DOXYGEN/images/channel server.png | Bin openair2/DOCS/DOXYGEN/images/channel server.vsd | Bin openair2/DOCS/DOXYGEN/images/convolutional.png | Bin openair2/DOCS/DOXYGEN/images/convolutional.vsd | Bin openair2/DOCS/DOXYGEN/images/irs_dcf.jpg | Bin openair2/DOCS/DOXYGEN/images/irs_pcf.jpg | Bin openair2/DOCS/DOXYGEN/images/layer2_stack.jpg | Bin openair2/DOCS/DOXYGEN/images/layer2_stack.pdf | Bin openair2/DOCS/DOXYGEN/images/layer2_stack.png | Bin openair2/DOCS/DOXYGEN/images/mac_channels.png | Bin .../DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf | Bin .../DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png | Bin .../DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd | Bin openair2/DOCS/DOXYGEN/images/mac_wbs.jpg | Bin openair2/DOCS/DOXYGEN/images/macphynet.eps | 0 openair2/DOCS/DOXYGEN/images/macphynet.png | Bin openair2/DOCS/DOXYGEN/images/mesh_frame.pdf | Bin openair2/DOCS/DOXYGEN/images/mesh_topology.pdf | Bin .../DOCS/DOXYGEN/images/mesh_topology_small.png | Bin openair2/DOCS/DOXYGEN/images/scrambler.png | Bin openair2/DOCS/DOXYGEN/images/scrambler.vsd | Bin openair2/DOCS/DOXYGEN/images/w3g4f_framing.png | Bin openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd | Bin .../DOCS/DOXYGEN/images/widens_mac_channels.vsd | Bin openair2/DOCS/Documentation/flow.txt | 0 openair2/DOCS/TEMPLATES/CODE/Doxyfile | 0 openair2/DOCS/TEMPLATES/CODE/example_doxy.h | 0 openair2/DOCS/TEMPLATES/CODE/images/arch.eps | 0 openair2/DOCS/TEMPLATES/CODE/images/arch.png | Bin openair2/DOCS/TEMPLATES/README/Readme.doxy | 0 openair2/DOCS/TEMPLATES/README/readme.txt | 0 .../ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c | 0 .../ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h | 0 .../CONTROL_MODULES/MAC/flexran_agent_mac_defs.h | 0 .../MAC/flexran_agent_mac_internal.c | 0 .../MAC/flexran_agent_mac_internal.h | 0 .../MAC/flexran_agent_mac_slice_verification.h | 0 .../CONTROL_MODULES/PDCP/flexran_agent_pdcp_defs.h | 0 .../CONTROL_MODULES/RRC/flexran_agent_rrc_defs.h | 0 openair2/ENB_APP/MESSAGES/V2/config_common.proto | 0 openair2/ENB_APP/MESSAGES/V2/config_messages.proto | 0 .../ENB_APP/MESSAGES/V2/control_delegation.proto | 0 .../ENB_APP/MESSAGES/V2/controller_commands.proto | 0 openair2/ENB_APP/MESSAGES/V2/flexran.proto | 0 openair2/ENB_APP/MESSAGES/V2/header.proto | 0 openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto | 0 openair2/ENB_APP/MESSAGES/V2/stats_common.proto | 0 openair2/ENB_APP/MESSAGES/V2/stats_messages.proto | 0 openair2/ENB_APP/MESSAGES/V2/time_common.proto | 0 openair2/ENB_APP/Makefile.inc | 0 openair2/ENB_APP/NB_IoT_config.h | 0 openair2/ENB_APP/NB_IoT_interface.h | 0 openair2/ENB_APP/RRC_config_tools.h | 0 openair2/ENB_APP/enb_app.c | 0 openair2/ENB_APP/enb_app.h | 0 openair2/ENB_APP/enb_config.c | 0 openair2/ENB_APP/enb_config.h | 0 openair2/ENB_APP/enb_paramdef.h | 0 openair2/ENB_APP/flexran_agent.c | 0 openair2/ENB_APP/flexran_agent.h | 0 openair2/ENB_APP/flexran_agent_async.c | 0 openair2/ENB_APP/flexran_agent_async.h | 0 openair2/ENB_APP/flexran_agent_common.c | 0 openair2/ENB_APP/flexran_agent_common.h | 0 openair2/ENB_APP/flexran_agent_common_internal.c | 0 openair2/ENB_APP/flexran_agent_common_internal.h | 0 openair2/ENB_APP/flexran_agent_defs.h | 0 openair2/ENB_APP/flexran_agent_extern.h | 0 openair2/ENB_APP/flexran_agent_handler.c | 0 openair2/ENB_APP/flexran_agent_net_comm.c | 0 openair2/ENB_APP/flexran_agent_net_comm.h | 0 openair2/ENB_APP/flexran_agent_task_manager.c | 0 openair2/ENB_APP/flexran_agent_task_manager.h | 0 openair2/LAYER2/MAC/config.c | 0 openair2/LAYER2/MAC/defs.h | 0 openair2/LAYER2/MAC/eNB_scheduler.c | 0 openair2/LAYER2/MAC/eNB_scheduler_RA.c | 0 openair2/LAYER2/MAC/eNB_scheduler_bch.c | 0 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c | 0 openair2/LAYER2/MAC/eNB_scheduler_mch.c | 0 openair2/LAYER2/MAC/eNB_scheduler_primitives.c | 0 openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 0 openair2/LAYER2/MAC/l1_helpers.c | 0 openair2/LAYER2/MAC/lte_transport_init.c | 0 openair2/LAYER2/MAC/mac_extern.h | 0 openair2/LAYER2/MAC/mac_proto.h | 0 openair2/LAYER2/MAC/main.c | 0 openair2/LAYER2/MAC/pre_processor.c | 0 openair2/LAYER2/MAC/ra_procedures.c | 0 openair2/LAYER2/MAC/rar_tools.c | 0 openair2/LAYER2/MAC/ue_procedures.c | 0 openair2/LAYER2/Makefile.inc | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp.h | 0 .../LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c | 0 .../pdcp_control_primitives_proto_extern.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c | 0 .../LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c | 0 .../LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c | 0 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h | 0 .../RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c | 0 .../RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c | 0 .../LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h | 0 .../RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c | 0 .../RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c | 0 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h | 0 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/Makefile | 0 openair2/LAYER2/RLC/UM_v9.3.0/README | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h | 0 .../RLC/UM_v9.3.0/rlc_um_control_primitives.c | 0 .../RLC/UM_v9.3.0/rlc_um_control_primitives.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c | 0 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c | 0 .../LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h | 0 openair2/LAYER2/RLC/mac_primitives.h | 0 openair2/LAYER2/RLC/rlc.c | 0 openair2/LAYER2/RLC/rlc.h | 0 openair2/LAYER2/RLC/rlc_def.h | 0 openair2/LAYER2/RLC/rlc_def_lte.h | 0 openair2/LAYER2/RLC/rlc_mac.c | 0 openair2/LAYER2/RLC/rlc_mpls.c | 0 openair2/LAYER2/RLC/rlc_primitives.h | 0 openair2/LAYER2/RLC/rlc_rrc.c | 0 openair2/LAYER2/openair2_proc.c | 0 openair2/LAYER2/register.h | 0 openair2/NETWORK_DRIVER/LITE/RB_TOOL/Makefile | 0 openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c | 0 openair2/NETWORK_DRIVER/LITE/classifier.c | 0 openair2/NETWORK_DRIVER/LITE/common.c | 0 openair2/NETWORK_DRIVER/LITE/constant.h | 0 openair2/NETWORK_DRIVER/LITE/device.c | 0 openair2/NETWORK_DRIVER/LITE/ioctl.c | 0 openair2/NETWORK_DRIVER/LITE/ioctl.h | 0 openair2/NETWORK_DRIVER/LITE/local.h | 0 openair2/NETWORK_DRIVER/LITE/netlink.c | 0 openair2/NETWORK_DRIVER/LITE/proto_extern.h | 0 openair2/NETWORK_DRIVER/LITE/sap.h | 0 openair2/NETWORK_DRIVER/LITE/tool.c | 0 openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile | 0 openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c | 0 openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c | 0 openair2/NETWORK_DRIVER/MESH/classifier.c | 0 openair2/NETWORK_DRIVER/MESH/common.c | 0 openair2/NETWORK_DRIVER/MESH/constant.h | 0 openair2/NETWORK_DRIVER/MESH/device.c | 0 openair2/NETWORK_DRIVER/MESH/ioctl.c | 0 openair2/NETWORK_DRIVER/MESH/ioctl.h | 0 openair2/NETWORK_DRIVER/MESH/local.h | 0 openair2/NETWORK_DRIVER/MESH/mesh.c | 0 openair2/NETWORK_DRIVER/MESH/netlink.c | 0 openair2/NETWORK_DRIVER/MESH/proto_extern.h | 0 openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h | 0 openair2/NETWORK_DRIVER/MESH/sap.h | 0 openair2/NETWORK_DRIVER/MESH/tool.c | 0 openair2/NETWORK_DRIVER/UE_IP/README | 0 openair2/NETWORK_DRIVER/UE_IP/common.c | 0 openair2/NETWORK_DRIVER/UE_IP/constant.h | 0 openair2/NETWORK_DRIVER/UE_IP/device.c | 0 openair2/NETWORK_DRIVER/UE_IP/local.h | 0 openair2/NETWORK_DRIVER/UE_IP/netlink.c | 0 openair2/NETWORK_DRIVER/UE_IP/proto_extern.h | 0 openair2/NETWORK_DRIVER/UE_IP/sap.h | 0 openair2/PHY_INTERFACE/IF_Module.c | 0 openair2/PHY_INTERFACE/IF_Module.h | 0 openair2/PHY_INTERFACE/mac_phy_primitives.c | 0 openair2/PHY_INTERFACE/mac_phy_primitives.h | 0 openair2/PHY_INTERFACE/phy_interface_extern.h | 0 openair2/PHY_INTERFACE/phy_interface_vars.h | 0 .../RRC/L2_INTERFACE/openair_rrc_L2_interface.c | 0 .../RRC/L2_INTERFACE/openair_rrc_L2_interface.h | 0 openair2/RRC/LITE/rrc_common.c | 0 openair2/RRC/LTE/L2_interface_ue.c | 0 openair2/RRC/LTE/MESSAGES/Makefile.inc | 0 openair2/RRC/LTE/MESSAGES/README.txt | 0 openair2/RRC/LTE/MESSAGES/asn1_msg.c | 0 openair2/RRC/LTE/MESSAGES/asn1_msg.h | 0 openair2/RRC/LTE/MESSAGES/asn1_patch | 0 .../RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-860.txt | 0 .../RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-a20.txt | 0 .../RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt | 0 .../RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-c60.txt | 0 .../ASN1_files/EUTRA-InterNodeDefinitions-86.asn | 0 .../ASN1_files/EUTRA-InterNodeDefinitions-a20.asn | 0 .../ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn | 0 .../ASN1_files/EUTRA-InterNodeDefinitions-c60.asn | 0 .../asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn | 0 .../ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn | 0 .../asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn | 0 .../ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig | 0 .../asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn | 0 .../asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn | 0 .../asn1c/ASN1_files/EUTRA-UE-Variables-86.asn | 0 .../asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn | 0 .../asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn | 0 .../asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn | 0 .../RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn | 0 .../asn1c/ASN1_files/extract_asn1_from_spec.pl | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 | 0 .../MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 | 0 openair2/RRC/LTE/plmn_data.h | 0 openair2/RRC/LTE/rrc_2_rrm_msg.c | 0 openair2/RRC/LTE/rrc_UE.c | 0 openair2/RRC/LTE/rrc_UE_ral.c | 0 openair2/RRC/LTE/rrc_UE_ral.h | 0 openair2/RRC/LTE/rrc_defs.h | 0 openair2/RRC/LTE/rrc_eNB.c | 0 openair2/RRC/LTE/rrc_eNB_GTPV1U.c | 0 openair2/RRC/LTE/rrc_eNB_GTPV1U.h | 0 openair2/RRC/LTE/rrc_eNB_S1AP.c | 0 openair2/RRC/LTE/rrc_eNB_S1AP.h | 0 openair2/RRC/LTE/rrc_eNB_UE_context.c | 0 openair2/RRC/LTE/rrc_eNB_UE_context.h | 0 openair2/RRC/LTE/rrc_eNB_ral.c | 0 openair2/RRC/LTE/rrc_eNB_ral.h | 0 openair2/RRC/LTE/rrc_extern.h | 0 openair2/RRC/LTE/rrc_proto.h | 0 openair2/RRC/LTE/rrc_rrm_interface.c | 0 openair2/RRC/LTE/rrc_rrm_interface.h | 0 openair2/RRC/LTE/rrc_types.h | 0 openair2/RRC/LTE/rrc_vars.h | 0 openair2/RRC/LTE/rrm_2_rrc_msg.c | 0 openair2/RRC/LTE/utils.c | 0 openair2/RRC/NAS/Makefile.inc | 0 openair2/RRC/NAS/nas_config.c | 0 openair2/RRC/NAS/nas_config.h | 0 openair2/RRC/NAS/rb_config.c | 0 openair2/RRC/NAS/rb_config.h | 0 openair2/UTIL/ASYNC_IF/link_manager.c | 0 openair2/UTIL/ASYNC_IF/link_manager.h | 0 openair2/UTIL/ASYNC_IF/message_queue.c | 0 openair2/UTIL/ASYNC_IF/message_queue.h | 0 openair2/UTIL/ASYNC_IF/ringbuffer_queue.c | 0 openair2/UTIL/ASYNC_IF/ringbuffer_queue.h | 0 openair2/UTIL/ASYNC_IF/socket_link.c | 0 openair2/UTIL/ASYNC_IF/socket_link.h | 0 openair2/UTIL/BIGPHYS/bigphys.c | 0 openair2/UTIL/BIGPHYS/defs.h | 0 openair2/UTIL/CLI/cli.c | 0 openair2/UTIL/CLI/cli.h | 0 openair2/UTIL/CLI/cli_cmd.c | 0 openair2/UTIL/CLI/cli_if.h | 0 openair2/UTIL/CLI/cli_server.c | 0 openair2/UTIL/FIFO/pad_list.c | 0 openair2/UTIL/FIFO/pad_list.h | 0 openair2/UTIL/FIFO/types.h | 0 .../UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt | 0 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs | 0 .../LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h | 0 .../LFDS/liblfds6.1.1/liblfds611/liblfds611.def | 0 .../LFDS/liblfds6.1.1/liblfds611/liblfds611.sln | 0 .../LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj | 0 .../LFDS/liblfds6.1.1/liblfds611/makefile.linux | 0 .../LFDS/liblfds6.1.1/liblfds611/makefile.windows | 0 .../UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt | 0 .../runme_before_win_kernel_build_readme.txt | 0 .../runme_before_win_kernel_dynamic_lib_build.bat | 0 .../runme_before_win_kernel_static_lib_build.bat | 0 .../LFDS/liblfds6.1.1/liblfds611/sources.dynamic | 0 .../LFDS/liblfds6.1.1/liblfds611/sources.static | 0 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs | 0 .../LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c | 0 .../liblfds611/src/driver_entry_readme.txt | 0 .../lfds611_abstraction/lfds611_abstraction_cas.c | 0 .../lfds611_abstraction/lfds611_abstraction_dcas.c | 0 .../lfds611_abstraction/lfds611_abstraction_free.c | 0 .../lfds611_abstraction_increment.c | 0 .../lfds611_abstraction_internal_body.h | 0 .../lfds611_abstraction_internal_wrapper.h | 0 .../lfds611_abstraction_malloc.c | 0 .../src/lfds611_freelist/lfds611_freelist_delete.c | 0 .../lfds611_freelist/lfds611_freelist_get_and_set.c | 0 .../lfds611_freelist/lfds611_freelist_internal.h | 0 .../src/lfds611_freelist/lfds611_freelist_new.c | 0 .../lfds611_freelist/lfds611_freelist_pop_push.c | 0 .../src/lfds611_freelist/lfds611_freelist_query.c | 0 .../lfds611_liblfds_abstraction_test_helpers.c | 0 .../lfds611_liblfds/lfds611_liblfds_aligned_free.c | 0 .../lfds611_liblfds_aligned_malloc.c | 0 .../src/lfds611_liblfds/lfds611_liblfds_internal.h | 0 .../src/lfds611_liblfds/lfds611_liblfds_readme.txt | 0 .../src/lfds611_queue/lfds611_queue_delete.c | 0 .../src/lfds611_queue/lfds611_queue_internal.h | 0 .../src/lfds611_queue/lfds611_queue_new.c | 0 .../src/lfds611_queue/lfds611_queue_query.c | 0 .../src/lfds611_queue/lfds611_queue_queue.c | 0 .../lfds611_ringbuffer/lfds611_ringbuffer_delete.c | 0 .../lfds611_ringbuffer_get_and_put.c | 0 .../lfds611_ringbuffer_internal.h | 0 .../src/lfds611_ringbuffer/lfds611_ringbuffer_new.c | 0 .../lfds611_ringbuffer/lfds611_ringbuffer_query.c | 0 .../src/lfds611_slist/lfds611_slist_delete.c | 0 .../src/lfds611_slist/lfds611_slist_get_and_set.c | 0 .../src/lfds611_slist/lfds611_slist_internal.h | 0 .../src/lfds611_slist/lfds611_slist_link.c | 0 .../src/lfds611_slist/lfds611_slist_new.c | 0 .../src/lfds611_stack/lfds611_stack_delete.c | 0 .../src/lfds611_stack/lfds611_stack_internal.h | 0 .../src/lfds611_stack/lfds611_stack_new.c | 0 .../src/lfds611_stack/lfds611_stack_push_pop.c | 0 .../src/lfds611_stack/lfds611_stack_query.c | 0 .../liblfds611/src/liblfds611_internal.h | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux | 0 .../UTIL/LFDS/liblfds6.1.1/test/makefile.windows | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h | 0 .../liblfds6.1.1/test/src/abstraction_cpu_count.c | 0 .../test/src/abstraction_thread_start.c | 0 .../liblfds6.1.1/test/src/abstraction_thread_wait.c | 0 .../LFDS/liblfds6.1.1/test/src/benchmark_freelist.c | 0 .../LFDS/liblfds6.1.1/test/src/benchmark_queue.c | 0 .../liblfds6.1.1/test/src/benchmark_ringbuffer.c | 0 .../LFDS/liblfds6.1.1/test/src/benchmark_stack.c | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/structures.h | 0 .../LFDS/liblfds6.1.1/test/src/test_abstraction.c | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c | 0 .../LFDS/liblfds6.1.1/test/src/test_ringbuffer.c | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c | 0 .../UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln | 0 openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj | 0 .../liblfds700/build/gcc_and_gnumake/Makefile | 0 .../liblfds700/build/gcc_kbuild_and_gnumake/Kbuild | 0 .../build/gcc_kbuild_and_gnumake/Makefile | 0 .../sdk_for_windows_7_and_gnumake/liblfds700.def | 0 .../build/sdk_for_windows_7_and_gnumake/makefile | 0 .../visual_studio_professional_2012/liblfds700.def | 0 .../visual_studio_professional_2012/liblfds700.sln | 0 .../liblfds700.vcxproj | 0 .../liblfds700.vcxproj.filters | 0 .../liblfds700.vcxproj.user | 0 .../driver_entry.c | 0 .../liblfds700.def | 0 .../liblfds700.sln | 0 .../liblfds700.vcxproj | 0 .../liblfds700.vcxproj.filters | 0 .../liblfds700.vcxproj.user | 0 .../driver_entry.c | 0 .../liblfds700.def | 0 .../liblfds700.sln | 0 .../liblfds700.vcxproj | 0 .../liblfds700.vcxproj.filters | 0 .../liblfds700.vcxproj.user | 0 .../LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs | 0 ...driver_entry_renamed_to_avoid_compiler_warning.c | 0 .../liblfds700/build/wdk_7.1/liblfds700.def | 0 .../wdk_7.1/readme_before_win_kernel_build.txt | 0 .../runme_before_win_kernel_dynamic_lib_build.bat | 0 .../runme_before_win_kernel_static_lib_build.bat | 0 .../liblfds700/build/wdk_7.1/sources.dynamic | 0 .../liblfds700/build/wdk_7.1/sources.static | 0 .../LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h | 0 .../liblfds700/lfds700_btree_addonly_unbalanced.h | 0 .../liblfds700/inc/liblfds700/lfds700_freelist.h | 0 .../inc/liblfds700/lfds700_hash_addonly.h | 0 .../lfds700_list_addonly_ordered_singlylinked.h | 0 .../lfds700_list_addonly_singlylinked_unordered.h | 0 .../liblfds700/inc/liblfds700/lfds700_misc.h | 0 .../lfds700_porting_abstraction_layer_compiler.h | 0 ...700_porting_abstraction_layer_operating_system.h | 0 .../lfds700_porting_abstraction_layer_processor.h | 0 .../liblfds700/inc/liblfds700/lfds700_queue.h | 0 ...00_queue_bounded_singleconsumer_singleproducer.h | 0 .../liblfds700/inc/liblfds700/lfds700_ringbuffer.h | 0 .../liblfds700/inc/liblfds700/lfds700_stack.h | 0 .../lfds700_btree_addonly_unbalanced_cleanup.c | 0 .../lfds700_btree_addonly_unbalanced_get.c | 0 .../lfds700_btree_addonly_unbalanced_init.c | 0 .../lfds700_btree_addonly_unbalanced_insert.c | 0 .../lfds700_btree_addonly_unbalanced_internal.h | 0 .../lfds700_btree_addonly_unbalanced_query.c | 0 .../src/lfds700_freelist/lfds700_freelist_cleanup.c | 0 .../src/lfds700_freelist/lfds700_freelist_init.c | 0 .../lfds700_freelist/lfds700_freelist_internal.h | 0 .../src/lfds700_freelist/lfds700_freelist_pop.c | 0 .../src/lfds700_freelist/lfds700_freelist_push.c | 0 .../src/lfds700_freelist/lfds700_freelist_query.c | 0 .../lfds700_hash_addonly_cleanup.c | 0 .../lfds700_hash_addonly/lfds700_hash_addonly_get.c | 0 .../lfds700_hash_addonly_init.c | 0 .../lfds700_hash_addonly_insert.c | 0 .../lfds700_hash_addonly_internal.h | 0 .../lfds700_hash_addonly_iterate.c | 0 .../lfds700_hash_addonly_query.c | 0 ...s700_list_addonly_ordered_singlylinked_cleanup.c | 0 .../lfds700_list_addonly_ordered_singlylinked_get.c | 0 ...lfds700_list_addonly_ordered_singlylinked_init.c | 0 ...ds700_list_addonly_ordered_singlylinked_insert.c | 0 ...700_list_addonly_ordered_singlylinked_internal.h | 0 ...fds700_list_addonly_ordered_singlylinked_query.c | 0 ...00_list_addonly_singlylinked_unordered_cleanup.c | 0 ...fds700_list_addonly_singlylinked_unordered_get.c | 0 ...ds700_list_addonly_singlylinked_unordered_init.c | 0 ...700_list_addonly_singlylinked_unordered_insert.c | 0 ...0_list_addonly_singlylinked_unordered_internal.h | 0 ...s700_list_addonly_singlylinked_unordered_query.c | 0 .../src/lfds700_misc/lfds700_misc_cleanup.c | 0 .../src/lfds700_misc/lfds700_misc_globals.c | 0 .../liblfds700/src/lfds700_misc/lfds700_misc_init.c | 0 .../src/lfds700_misc/lfds700_misc_internal.h | 0 .../liblfds700/src/lfds700_misc/lfds700_misc_prng.c | 0 .../src/lfds700_misc/lfds700_misc_query.c | 0 .../src/lfds700_queue/lfds700_queue_cleanup.c | 0 .../src/lfds700_queue/lfds700_queue_dequeue.c | 0 .../src/lfds700_queue/lfds700_queue_enqueue.c | 0 .../src/lfds700_queue/lfds700_queue_init.c | 0 .../src/lfds700_queue/lfds700_queue_internal.h | 0 .../src/lfds700_queue/lfds700_queue_query.c | 0 ..._bounded_singleconsumer_singleproducer_cleanup.c | 0 ..._bounded_singleconsumer_singleproducer_dequeue.c | 0 ..._bounded_singleconsumer_singleproducer_enqueue.c | 0 ...eue_bounded_singleconsumer_singleproducer_init.c | 0 ...bounded_singleconsumer_singleproducer_internal.h | 0 ...ue_bounded_singleconsumer_singleproducer_query.c | 0 .../lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c | 0 .../lfds700_ringbuffer/lfds700_ringbuffer_init.c | 0 .../lfds700_ringbuffer_internal.h | 0 .../lfds700_ringbuffer/lfds700_ringbuffer_query.c | 0 .../lfds700_ringbuffer/lfds700_ringbuffer_read.c | 0 .../lfds700_ringbuffer/lfds700_ringbuffer_write.c | 0 .../src/lfds700_stack/lfds700_stack_cleanup.c | 0 .../src/lfds700_stack/lfds700_stack_init.c | 0 .../src/lfds700_stack/lfds700_stack_internal.h | 0 .../src/lfds700_stack/lfds700_stack_pop.c | 0 .../src/lfds700_stack/lfds700_stack_push.c | 0 .../src/lfds700_stack/lfds700_stack_query.c | 0 .../liblfds700/src/liblfds700_internal.h | 0 .../test/build/gcc_and_gnumake/Makefile | 0 .../build/sdk_for_windows_7_and_gnumake/makefile | 0 .../build/visual_studio_professional_2012/test.sln | 0 .../visual_studio_professional_2012/test.vcxproj | 0 .../test.vcxproj.filters | 0 .../test.vcxproj.user | 0 openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h | 0 openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c | 0 openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c | 0 .../src/test_lfds700_btree_addonly_unbalanced.c | 0 ...est_lfds700_btree_addonly_unbalanced_alignment.c | 0 ...s700_btree_addonly_unbalanced_random_adds_fail.c | 0 ...only_unbalanced_random_adds_fail_and_overwrite.c | 0 ...btree_addonly_unbalanced_random_adds_overwrite.c | 0 .../liblfds7.0.0/test/src/test_lfds700_freelist.c | 0 .../test/src/test_lfds700_freelist_alignment.c | 0 .../test/src/test_lfds700_freelist_popping.c | 0 .../src/test_lfds700_freelist_popping_and_pushing.c | 0 .../test/src/test_lfds700_freelist_pushing.c | 0 ...est_lfds700_freelist_rapid_popping_and_pushing.c | 0 .../test/src/test_lfds700_hash_addonly.c | 0 .../test/src/test_lfds700_hash_addonly_alignment.c | 0 .../test/src/test_lfds700_hash_addonly_iterate.c | 0 .../test_lfds700_hash_addonly_random_adds_fail.c | 0 ...00_hash_addonly_random_adds_fail_and_overwrite.c | 0 ...est_lfds700_hash_addonly_random_adds_overwrite.c | 0 ...test_lfds700_list_addonly_ordered_singlylinked.c | 0 ...00_list_addonly_ordered_singlylinked_alignment.c | 0 ..._list_addonly_ordered_singlylinked_new_ordered.c | 0 ...y_ordered_singlylinked_new_ordered_with_cursor.c | 0 ...st_lfds700_list_addonly_singlylinked_unordered.c | 0 ..._list_addonly_singlylinked_unordered_alignment.c | 0 ..._list_addonly_singlylinked_unordered_new_after.c | 0 ...00_list_addonly_singlylinked_unordered_new_end.c | 0 ..._list_addonly_singlylinked_unordered_new_start.c | 0 .../test_lfds700_porting_abstraction_layer_atomic.c | 0 ...t_lfds700_porting_abstraction_layer_atomic_cas.c | 0 ..._lfds700_porting_abstraction_layer_atomic_dcas.c | 0 ...s700_porting_abstraction_layer_atomic_exchange.c | 0 .../LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c | 0 .../test/src/test_lfds700_queue_alignment.c | 0 ...00_queue_bounded_singleconsumer_singleproducer.c | 0 ...ounded_singleconsumer_singleproducer_dequeuing.c | 0 ...ounded_singleconsumer_singleproducer_enqueuing.c | 0 ...onsumer_singleproducer_enqueuing_and_dequeuing.c | 0 .../test/src/test_lfds700_queue_dequeuing.c | 0 .../test/src/test_lfds700_queue_enqueuing.c | 0 .../test_lfds700_queue_enqueuing_and_dequeuing.c | 0 ...fds700_queue_enqueuing_and_dequeuing_with_free.c | 0 ..._enqueuing_with_malloc_and_dequeuing_with_free.c | 0 ...st_lfds700_queue_rapid_enqueuing_and_dequeuing.c | 0 .../liblfds7.0.0/test/src/test_lfds700_ringbuffer.c | 0 .../test/src/test_lfds700_ringbuffer_reading.c | 0 .../test_lfds700_ringbuffer_reading_and_writing.c | 0 .../test/src/test_lfds700_ringbuffer_writing.c | 0 .../LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c | 0 .../test/src/test_lfds700_stack_alignment.c | 0 .../test/src/test_lfds700_stack_popping.c | 0 .../src/test_lfds700_stack_popping_and_pushing.c | 0 .../test/src/test_lfds700_stack_pushing.c | 0 .../test_lfds700_stack_rapid_popping_and_pushing.c | 0 ...porting_abstraction_layer_get_logical_core_ids.c | 0 ...est_porting_abstraction_layer_operating_system.h | 0 .../test_porting_abstraction_layer_thread_start.c | 0 .../test_porting_abstraction_layer_thread_wait.c | 0 .../UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c | 0 .../UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h | 0 .../liblfds7.0.0/test/src/util_memory_helpers.c | 0 .../liblfds7.0.0/test/src/util_memory_helpers.h | 0 .../liblfds7.0.0/test/src/util_thread_starter.c | 0 .../liblfds7.0.0/test/src/util_thread_starter.h | 0 openair2/UTIL/LISTS/list.c | 0 openair2/UTIL/LISTS/list.h | 0 openair2/UTIL/LISTS/list2.c | 0 openair2/UTIL/MATH/crc_byte.c | 0 openair2/UTIL/MATH/oml.c | 0 openair2/UTIL/MATH/oml.h | 0 openair2/UTIL/MATH/random.c | 0 openair2/UTIL/MATH/random_proto_extern.h | 0 openair2/UTIL/MATH/taus.c | 0 openair2/UTIL/MEM/mem_block.c | 0 openair2/UTIL/MEM/mem_block.h | 0 openair2/UTIL/MEM/mem_mngt.c | 0 openair2/UTIL/MEM/mem_mngt_proto_extern.h | 0 openair2/UTIL/MEM/mem_pool.h | 0 openair2/UTIL/Makefile.inc | 0 openair2/UTIL/OCG/.directory | 0 openair2/UTIL/OCG/Doxyfile | 0 openair2/UTIL/OCG/OCG.c | 0 openair2/UTIL/OCG/OCG.h | 0 openair2/UTIL/OCG/OCG_call_emu.c | 0 openair2/UTIL/OCG/OCG_call_emu.h | 0 openair2/UTIL/OCG/OCG_config_mobi.c | 0 openair2/UTIL/OCG/OCG_config_mobi.h | 0 openair2/UTIL/OCG/OCG_create_dir.c | 0 openair2/UTIL/OCG/OCG_create_dir.h | 0 openair2/UTIL/OCG/OCG_detect_file.c | 0 openair2/UTIL/OCG/OCG_detect_file.h | 0 openair2/UTIL/OCG/OCG_extern.h | 0 openair2/UTIL/OCG/OCG_generate_report.c | 0 openair2/UTIL/OCG/OCG_generate_report.h | 0 openair2/UTIL/OCG/OCG_get_opt.c | 0 openair2/UTIL/OCG/OCG_get_opt.h | 0 openair2/UTIL/OCG/OCG_if.h | 0 openair2/UTIL/OCG/OCG_parse_XML.c | 0 openair2/UTIL/OCG/OCG_parse_XML.h | 0 openair2/UTIL/OCG/OCG_parse_filename.c | 0 openair2/UTIL/OCG/OCG_parse_filename.h | 0 openair2/UTIL/OCG/OCG_save_XML.c | 0 openair2/UTIL/OCG/OCG_save_XML.h | 0 openair2/UTIL/OCG/OCG_vars.h | 0 openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml | 0 openair2/UTIL/OCG/eurecom_20110208110244.xml | 0 .../UTIL/OCG/local_XML/Lusheng.20110208110244.xml | 0 openair2/UTIL/OCG/makefile | 0 openair2/UTIL/OCG/readme.txt | 0 openair2/UTIL/OCG/temp_output/OCG_report.xml | 0 openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf | Bin openair2/UTIL/OMG/README.TXT | 0 openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf | Bin openair2/UTIL/OMG/TRACE/README.TXT | 0 openair2/UTIL/OMG/TRACE/example_trace.tr | 0 openair2/UTIL/OMG/TRACE/handover.tr | 0 openair2/UTIL/OMG/TRACE/handover_1ue.tr | 0 openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr | 0 openair2/UTIL/OMG/TRACE/mobility_2ues.tr | 0 openair2/UTIL/OMG/TRACE/mobility_3ues.tr | 0 openair2/UTIL/OMG/TRACE/regular.tr | 0 openair2/UTIL/OMG/TRACE/static_1enb.tr | 0 openair2/UTIL/OMG/TRACE/static_2ues.tr | 0 openair2/UTIL/OMG/TRACE/zero_speed.tr | 0 openair2/UTIL/OMG/common.c | 0 openair2/UTIL/OMG/defs.h | 0 openair2/UTIL/OMG/grid.c | 0 openair2/UTIL/OMG/grid.h | 0 openair2/UTIL/OMG/job.c | 0 openair2/UTIL/OMG/makefile | 0 openair2/UTIL/OMG/makefile_old | 0 openair2/UTIL/OMG/makefile_standalone | 0 openair2/UTIL/OMG/mobility.txt | 0 openair2/UTIL/OMG/mobility_parser.c | 0 openair2/UTIL/OMG/mobility_parser.h | 0 openair2/UTIL/OMG/omg.c | 0 openair2/UTIL/OMG/omg.h | 0 openair2/UTIL/OMG/omg_constants.h | 0 openair2/UTIL/OMG/omg_hashtable.c | 0 openair2/UTIL/OMG/omg_hashtable.h | 0 openair2/UTIL/OMG/omg_vars.h | 0 openair2/UTIL/OMG/rwalk.c | 0 openair2/UTIL/OMG/rwalk.h | 0 openair2/UTIL/OMG/rwp.c | 0 openair2/UTIL/OMG/rwp.h | 0 openair2/UTIL/OMG/static.c | 0 openair2/UTIL/OMG/static.h | 0 openair2/UTIL/OMG/steadystaterwp.c | 0 openair2/UTIL/OMG/steadystaterwp.h | 0 openair2/UTIL/OMG/trace.c | 0 openair2/UTIL/OMG/trace.h | 0 openair2/UTIL/OMG/trace_hashtable.c | 0 openair2/UTIL/OMG/trace_hashtable.h | 0 openair2/UTIL/OMV/README.txt | 0 openair2/UTIL/OMV/blue.png | Bin openair2/UTIL/OMV/communicationthread.cpp | 0 openair2/UTIL/OMV/communicationthread.h | 0 openair2/UTIL/OMV/green.png | Bin openair2/UTIL/OMV/jpg.jpeg | Bin openair2/UTIL/OMV/mus.png | Bin openair2/UTIL/OMV/mywindow.cpp | 0 openair2/UTIL/OMV/mywindow.h | 0 openair2/UTIL/OMV/new.jpg | Bin openair2/UTIL/OMV/new2.jpg | Bin openair2/UTIL/OMV/omv.cpp | 0 openair2/UTIL/OMV/openglwidget.cpp | 0 openair2/UTIL/OMV/openglwidget.h | 0 openair2/UTIL/OMV/red.png | Bin openair2/UTIL/OMV/structures.h | 0 openair2/UTIL/OMV/white.png | Bin openair2/UTIL/OMV/wow.png | Bin openair2/UTIL/OPT/README.txt | 0 openair2/UTIL/OPT/mac_pcap.h | 0 openair2/UTIL/OPT/opt.h | 0 openair2/UTIL/OPT/packet-mac-lte.h | 0 openair2/UTIL/OPT/probe.c | 0 openair2/UTIL/OPT/vars.h | 0 openair2/UTIL/OSA/README | 0 openair2/UTIL/OSA/osa_defs.h | 0 openair2/UTIL/OSA/osa_internal.h | 0 openair2/UTIL/OSA/osa_key_deriver.c | 0 openair2/UTIL/OSA/osa_rijndael.c | 0 openair2/UTIL/OSA/osa_rijndael.h | 0 openair2/UTIL/OSA/osa_snow3g.c | 0 openair2/UTIL/OSA/osa_snow3g.h | 0 openair2/UTIL/OSA/osa_stream_eea.c | 0 openair2/UTIL/OSA/osa_stream_eia.c | 0 openair2/UTIL/OSD/OCG.pid | 0 openair2/UTIL/OSD/OpenAirEmu.conf | 0 openair2/UTIL/OSD/Platform_is_running.php | 0 openair2/UTIL/OSD/README.txt | 0 openair2/UTIL/OSD/css/blueprint.css | 0 openair2/UTIL/OSD/css/fix-ie-rtl.css | 0 openair2/UTIL/OSD/css/fix-ie.css | 0 openair2/UTIL/OSD/css/ie.css | 0 openair2/UTIL/OSD/css/ie6.css | 0 openair2/UTIL/OSD/css/images/false.png | Bin openair2/UTIL/OSD/css/images/false2.png | Bin openair2/UTIL/OSD/css/images/lquote.png | Bin openair2/UTIL/OSD/css/images/true.png | Bin openair2/UTIL/OSD/css/images/warning.png | Bin openair2/UTIL/OSD/css/print.css | 0 openair2/UTIL/OSD/css/screen.css | 0 openair2/UTIL/OSD/css/style.css | 0 openair2/UTIL/OSD/form.php | 0 openair2/UTIL/OSD/header.php | 0 openair2/UTIL/OSD/httpd-result.conf | 0 openair2/UTIL/OSD/index.php | 0 openair2/UTIL/OSD/jquery/jquery.js | 0 openair2/UTIL/OSD/recep.php | 0 openair2/UTIL/OSD/toto.php | 0 openair2/UTIL/OTG/Doxyfile | 0 openair2/UTIL/OTG/help_OTGplot.txt | 0 openair2/UTIL/OTG/main.c | 0 openair2/UTIL/OTG/makefile | 0 openair2/UTIL/OTG/otg.c | 0 openair2/UTIL/OTG/otg.h | 0 openair2/UTIL/OTG/otg_config.h | 0 openair2/UTIL/OTG/otg_defs.h | 0 openair2/UTIL/OTG/otg_externs.h | 0 openair2/UTIL/OTG/otg_form.c | 0 openair2/UTIL/OTG/otg_form.h | 0 openair2/UTIL/OTG/otg_kpi.c | 0 openair2/UTIL/OTG/otg_kpi.h | 0 openair2/UTIL/OTG/otg_models.c | 0 openair2/UTIL/OTG/otg_models.h | 0 openair2/UTIL/OTG/otg_rx.c | 0 openair2/UTIL/OTG/otg_rx.h | 0 openair2/UTIL/OTG/otg_rx_socket.c | 0 openair2/UTIL/OTG/otg_rx_socket.h | 0 openair2/UTIL/OTG/otg_tx.c | 0 openair2/UTIL/OTG/otg_tx.h | 0 openair2/UTIL/OTG/otg_tx_socket.c | 0 openair2/UTIL/OTG/otg_tx_socket.h | 0 openair2/UTIL/OTG/otg_vars.h | 0 openair2/UTIL/OTG/traffic_config.h | 0 openair2/UTIL/TIMER/umts_timer.c | 0 openair2/UTIL/TIMER/umts_timer.h | 0 openair2/UTIL/TIMER/umts_timer_proto_extern.h | 0 openair2/UTIL/TIMER/umts_timer_struct.h | 0 openair2/UTIL/TRACE/fifo_printf.c | 0 openair2/UTIL/TRACE/fifo_printf.h | 0 openair2/UTIL/TRACE/fifo_printf_proto_extern.h | 0 openair2/UTIL/TRACE/print.h | 0 openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 | 0 openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py | 0 openair2/X2AP/Makefile.inc | 0 openair2/X2AP/x2ap_common.c | 0 openair2/X2AP/x2ap_common.h | 0 openair2/X2AP/x2ap_eNB.h | 0 openair2/X2AP/x2ap_eNB_encoder.c | 0 openair2/X2AP/x2ap_eNB_handler.h | 0 openair2/X2AP/x2ap_eNB_management_procedures.h | 0 openair3/COMMON/as_message.h | 0 openair3/COMMON/common_types.h | 0 openair3/COMMON/gtpv1_u_messages_def.h | 0 openair3/COMMON/gtpv1_u_messages_types.h | 0 openair3/COMMON/intertask_interface_conf.h | 0 openair3/COMMON/messages_def.h | 0 openair3/COMMON/messages_types.h | 0 openair3/COMMON/nas_messages_def.h | 0 openair3/COMMON/nas_messages_types.h | 0 openair3/COMMON/s1ap_messages_def.h | 0 openair3/COMMON/s1ap_messages_types.h | 0 openair3/COMMON/sctp_messages_def.h | 0 openair3/COMMON/sctp_messages_types.h | 0 openair3/COMMON/security_types.h | 0 openair3/COMMON/tasks_def.h | 0 openair3/COMMON/udp_messages_def.h | 0 openair3/COMMON/udp_messages_types.h | 0 openair3/DOCS/DOXYGEN/Doxyfile.in | 0 openair3/DOCS/DOXYGEN/Makefile.am | 0 openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf | Bin openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex | 0 openair3/DOCS/Latex/EPC/EPC.pdf | Bin openair3/DOCS/Latex/EPC/EPC.tex | 0 openair3/DOCS/Latex/EPC/Makefile | 0 openair3/DOCS/Makefile.am | 0 openair3/GTPV1-U/Makefile.am | 0 openair3/GTPV1-U/Makefile.eNB | 0 openair3/GTPV1-U/gtpv1u.h | 0 openair3/GTPV1-U/gtpv1u_eNB.c | 0 openair3/GTPV1-U/gtpv1u_eNB_defs.h | 0 openair3/GTPV1-U/gtpv1u_eNB_task.h | 0 openair3/GTPV1-U/gtpv1u_sgw_defs.h | 0 openair3/GTPV1-U/gtpv1u_task.c | 0 openair3/GTPV1-U/gtpv1u_teid_pool.c | 0 openair3/GTPV1-U/nw-gtpv1u/AUTHORS | 0 openair3/GTPV1-U/nw-gtpv1u/COPYING | 0 openair3/GTPV1-U/nw-gtpv1u/ChangeLog | 0 openair3/GTPV1-U/nw-gtpv1u/NEWS | 0 openair3/GTPV1-U/nw-gtpv1u/README | 0 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h | 0 .../GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h | 0 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h | 0 .../nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h | 0 openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h | 0 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c | 0 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c | 0 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c | 0 .../GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c | 0 openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am | 0 openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in | 0 .../nw-gtpv1u/test-app/nw-helloworld/Makefile.am | 0 .../nw-gtpv1u/test-app/nw-helloworld/Makefile.in | 0 .../nw-gtpv1u/test-app/nw-helloworld/NwEvt.h | 0 .../test-app/nw-helloworld/NwMiniLogMgrEntity.c | 0 .../test-app/nw-helloworld/NwMiniLogMgrEntity.h | 0 .../test-app/nw-helloworld/NwMiniTmrMgrEntity.c | 0 .../test-app/nw-helloworld/NwMiniTmrMgrEntity.h | 0 .../test-app/nw-helloworld/NwMiniUdpEntity.c | 0 .../test-app/nw-helloworld/NwMiniUdpEntity.h | 0 .../test-app/nw-helloworld/NwMiniUlpEntity.c | 0 .../test-app/nw-helloworld/NwMiniUlpEntity.h | 0 .../nw-gtpv1u/test-app/nw-helloworld/helloworld.c | 0 openair3/NAS/COMMON/API/NETWORK/Makefile | 0 openair3/NAS/COMMON/API/NETWORK/as_message.c | 0 openair3/NAS/COMMON/API/NETWORK/as_message.h | 0 openair3/NAS/COMMON/API/NETWORK/l2_message.h | 0 openair3/NAS/COMMON/API/NETWORK/nas_message.c | 0 openair3/NAS/COMMON/API/NETWORK/nas_message.h | 0 openair3/NAS/COMMON/API/NETWORK/network_api.c | 0 openair3/NAS/COMMON/API/NETWORK/network_api.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachAccept.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachAccept.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachComplete.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachComplete.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachReject.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachReject.h | 0 openair3/NAS/COMMON/EMM/MSG/AttachRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/AttachRequest.h | 0 openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c | 0 openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h | 0 openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c | 0 openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h | 0 openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h | 0 .../NAS/COMMON/EMM/MSG/AuthenticationResponse.c | 0 .../NAS/COMMON/EMM/MSG/AuthenticationResponse.h | 0 openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c | 0 openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h | 0 openair3/NAS/COMMON/EMM/MSG/DetachAccept.c | 0 openair3/NAS/COMMON/EMM/MSG/DetachAccept.h | 0 openair3/NAS/COMMON/EMM/MSG/DetachRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/DetachRequest.h | 0 openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c | 0 openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h | 0 openair3/NAS/COMMON/EMM/MSG/EmmInformation.c | 0 openair3/NAS/COMMON/EMM/MSG/EmmInformation.h | 0 openair3/NAS/COMMON/EMM/MSG/EmmStatus.c | 0 openair3/NAS/COMMON/EMM/MSG/EmmStatus.h | 0 .../NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c | 0 .../NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h | 0 .../NAS/COMMON/EMM/MSG/GutiReallocationCommand.c | 0 .../NAS/COMMON/EMM/MSG/GutiReallocationCommand.h | 0 .../NAS/COMMON/EMM/MSG/GutiReallocationComplete.c | 0 .../NAS/COMMON/EMM/MSG/GutiReallocationComplete.h | 0 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h | 0 openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c | 0 openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h | 0 openair3/NAS/COMMON/EMM/MSG/Makefile | 0 .../NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h | 0 .../NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h | 0 openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c | 0 openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c | 0 openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c | 0 openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h | 0 openair3/NAS/COMMON/EMM/MSG/ServiceReject.c | 0 openair3/NAS/COMMON/EMM/MSG/ServiceReject.h | 0 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c | 0 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c | 0 .../NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h | 0 openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c | 0 openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h | 0 openair3/NAS/COMMON/EMM/MSG/emm_cause.h | 0 openair3/NAS/COMMON/EMM/MSG/emm_msg.c | 0 openair3/NAS/COMMON/EMM/MSG/emm_msg.h | 0 openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h | 0 .../MSG/ActivateDedicatedEpsBearerContextAccept.c | 0 .../MSG/ActivateDedicatedEpsBearerContextAccept.h | 0 .../MSG/ActivateDedicatedEpsBearerContextReject.c | 0 .../MSG/ActivateDedicatedEpsBearerContextReject.h | 0 .../MSG/ActivateDedicatedEpsBearerContextRequest.c | 0 .../MSG/ActivateDedicatedEpsBearerContextRequest.h | 0 .../ESM/MSG/ActivateDefaultEpsBearerContextAccept.c | 0 .../ESM/MSG/ActivateDefaultEpsBearerContextAccept.h | 0 .../ESM/MSG/ActivateDefaultEpsBearerContextReject.c | 0 .../ESM/MSG/ActivateDefaultEpsBearerContextReject.h | 0 .../MSG/ActivateDefaultEpsBearerContextRequest.c | 0 .../MSG/ActivateDefaultEpsBearerContextRequest.h | 0 .../COMMON/ESM/MSG/BearerResourceAllocationReject.c | 0 .../COMMON/ESM/MSG/BearerResourceAllocationReject.h | 0 .../ESM/MSG/BearerResourceAllocationRequest.c | 0 .../ESM/MSG/BearerResourceAllocationRequest.h | 0 .../ESM/MSG/BearerResourceModificationReject.c | 0 .../ESM/MSG/BearerResourceModificationReject.h | 0 .../ESM/MSG/BearerResourceModificationRequest.c | 0 .../ESM/MSG/BearerResourceModificationRequest.h | 0 .../ESM/MSG/DeactivateEpsBearerContextAccept.c | 0 .../ESM/MSG/DeactivateEpsBearerContextAccept.h | 0 .../ESM/MSG/DeactivateEpsBearerContextRequest.c | 0 .../ESM/MSG/DeactivateEpsBearerContextRequest.h | 0 openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c | 0 openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h | 0 .../NAS/COMMON/ESM/MSG/EsmInformationResponse.c | 0 .../NAS/COMMON/ESM/MSG/EsmInformationResponse.h | 0 openair3/NAS/COMMON/ESM/MSG/EsmStatus.c | 0 openair3/NAS/COMMON/ESM/MSG/EsmStatus.h | 0 openair3/NAS/COMMON/ESM/MSG/Makefile | 0 .../COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c | 0 .../COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h | 0 .../COMMON/ESM/MSG/ModifyEpsBearerContextReject.c | 0 .../COMMON/ESM/MSG/ModifyEpsBearerContextReject.h | 0 .../COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c | 0 .../COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h | 0 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c | 0 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h | 0 .../NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c | 0 .../NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h | 0 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c | 0 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h | 0 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c | 0 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h | 0 openair3/NAS/COMMON/ESM/MSG/esm_cause.h | 0 openair3/NAS/COMMON/ESM/MSG/esm_msg.c | 0 openair3/NAS/COMMON/ESM/MSG/esm_msg.h | 0 openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h | 0 openair3/NAS/COMMON/IES/AccessPointName.c | 0 openair3/NAS/COMMON/IES/AccessPointName.h | 0 openair3/NAS/COMMON/IES/AdditionalUpdateResult.c | 0 openair3/NAS/COMMON/IES/AdditionalUpdateResult.h | 0 openair3/NAS/COMMON/IES/AdditionalUpdateType.c | 0 openair3/NAS/COMMON/IES/AdditionalUpdateType.h | 0 .../NAS/COMMON/IES/ApnAggregateMaximumBitRate.c | 0 .../NAS/COMMON/IES/ApnAggregateMaximumBitRate.h | 0 .../NAS/COMMON/IES/AuthenticationFailureParameter.c | 0 .../NAS/COMMON/IES/AuthenticationFailureParameter.h | 0 .../NAS/COMMON/IES/AuthenticationParameterAutn.c | 0 .../NAS/COMMON/IES/AuthenticationParameterAutn.h | 0 .../NAS/COMMON/IES/AuthenticationParameterRand.c | 0 .../NAS/COMMON/IES/AuthenticationParameterRand.h | 0 .../COMMON/IES/AuthenticationResponseParameter.c | 0 .../COMMON/IES/AuthenticationResponseParameter.h | 0 .../NAS/COMMON/IES/CipheringKeySequenceNumber.c | 0 .../NAS/COMMON/IES/CipheringKeySequenceNumber.h | 0 openair3/NAS/COMMON/IES/Cli.c | 0 openair3/NAS/COMMON/IES/Cli.h | 0 openair3/NAS/COMMON/IES/CsfbResponse.c | 0 openair3/NAS/COMMON/IES/CsfbResponse.h | 0 openair3/NAS/COMMON/IES/DaylightSavingTime.c | 0 openair3/NAS/COMMON/IES/DaylightSavingTime.h | 0 openair3/NAS/COMMON/IES/DetachType.c | 0 openair3/NAS/COMMON/IES/DetachType.h | 0 openair3/NAS/COMMON/IES/DrxParameter.c | 0 openair3/NAS/COMMON/IES/DrxParameter.h | 0 openair3/NAS/COMMON/IES/EmergencyNumberList.c | 0 openair3/NAS/COMMON/IES/EmergencyNumberList.h | 0 openair3/NAS/COMMON/IES/EmmCause.c | 0 openair3/NAS/COMMON/IES/EmmCause.h | 0 openair3/NAS/COMMON/IES/EpsAttachResult.c | 0 openair3/NAS/COMMON/IES/EpsAttachResult.h | 0 openair3/NAS/COMMON/IES/EpsAttachType.c | 0 openair3/NAS/COMMON/IES/EpsAttachType.h | 0 openair3/NAS/COMMON/IES/EpsBearerContextStatus.c | 0 openair3/NAS/COMMON/IES/EpsBearerContextStatus.h | 0 openair3/NAS/COMMON/IES/EpsBearerIdentity.c | 0 openair3/NAS/COMMON/IES/EpsBearerIdentity.h | 0 openair3/NAS/COMMON/IES/EpsMobileIdentity.c | 0 openair3/NAS/COMMON/IES/EpsMobileIdentity.h | 0 openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c | 0 openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h | 0 openair3/NAS/COMMON/IES/EpsQualityOfService.c | 0 openair3/NAS/COMMON/IES/EpsQualityOfService.h | 0 openair3/NAS/COMMON/IES/EpsUpdateResult.c | 0 openair3/NAS/COMMON/IES/EpsUpdateResult.h | 0 openair3/NAS/COMMON/IES/EpsUpdateType.c | 0 openair3/NAS/COMMON/IES/EpsUpdateType.h | 0 openair3/NAS/COMMON/IES/EsmCause.c | 0 openair3/NAS/COMMON/IES/EsmCause.h | 0 .../NAS/COMMON/IES/EsmInformationTransferFlag.c | 0 .../NAS/COMMON/IES/EsmInformationTransferFlag.h | 0 openair3/NAS/COMMON/IES/EsmMessageContainer.c | 0 openair3/NAS/COMMON/IES/EsmMessageContainer.h | 0 openair3/NAS/COMMON/IES/GprsTimer.c | 0 openair3/NAS/COMMON/IES/GprsTimer.h | 0 openair3/NAS/COMMON/IES/GutiType.c | 0 openair3/NAS/COMMON/IES/GutiType.h | 0 openair3/NAS/COMMON/IES/IdentityType2.c | 0 openair3/NAS/COMMON/IES/IdentityType2.h | 0 openair3/NAS/COMMON/IES/ImeisvRequest.c | 0 openair3/NAS/COMMON/IES/ImeisvRequest.h | 0 openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c | 0 openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h | 0 openair3/NAS/COMMON/IES/LcsClientIdentity.c | 0 openair3/NAS/COMMON/IES/LcsClientIdentity.h | 0 openair3/NAS/COMMON/IES/LcsIndicator.c | 0 openair3/NAS/COMMON/IES/LcsIndicator.h | 0 openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c | 0 openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h | 0 .../COMMON/IES/LlcServiceAccessPointIdentifier.c | 0 .../COMMON/IES/LlcServiceAccessPointIdentifier.h | 0 .../NAS/COMMON/IES/LocationAreaIdentification.c | 0 .../NAS/COMMON/IES/LocationAreaIdentification.h | 0 openair3/NAS/COMMON/IES/Makefile | 0 openair3/NAS/COMMON/IES/MessageType.c | 0 openair3/NAS/COMMON/IES/MessageType.h | 0 openair3/NAS/COMMON/IES/MobileIdentity.c | 0 openair3/NAS/COMMON/IES/MobileIdentity.h | 0 openair3/NAS/COMMON/IES/MobileStationClassmark2.c | 0 openair3/NAS/COMMON/IES/MobileStationClassmark2.h | 0 openair3/NAS/COMMON/IES/MobileStationClassmark3.c | 0 openair3/NAS/COMMON/IES/MobileStationClassmark3.h | 0 openair3/NAS/COMMON/IES/MsNetworkCapability.c | 0 openair3/NAS/COMMON/IES/MsNetworkCapability.h | 0 openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c | 0 openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h | 0 openair3/NAS/COMMON/IES/NasKeySetIdentifier.c | 0 openair3/NAS/COMMON/IES/NasKeySetIdentifier.h | 0 openair3/NAS/COMMON/IES/NasMessageContainer.c | 0 openair3/NAS/COMMON/IES/NasMessageContainer.h | 0 openair3/NAS/COMMON/IES/NasRequestType.c | 0 openair3/NAS/COMMON/IES/NasRequestType.h | 0 openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c | 0 openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h | 0 openair3/NAS/COMMON/IES/NetworkName.c | 0 openair3/NAS/COMMON/IES/NetworkName.h | 0 openair3/NAS/COMMON/IES/Nonce.c | 0 openair3/NAS/COMMON/IES/Nonce.h | 0 openair3/NAS/COMMON/IES/PTmsiSignature.c | 0 openair3/NAS/COMMON/IES/PTmsiSignature.h | 0 openair3/NAS/COMMON/IES/PacketFlowIdentifier.c | 0 openair3/NAS/COMMON/IES/PacketFlowIdentifier.h | 0 openair3/NAS/COMMON/IES/PagingIdentity.c | 0 openair3/NAS/COMMON/IES/PagingIdentity.h | 0 openair3/NAS/COMMON/IES/PdnAddress.c | 0 openair3/NAS/COMMON/IES/PdnAddress.h | 0 openair3/NAS/COMMON/IES/PdnType.c | 0 openair3/NAS/COMMON/IES/PdnType.h | 0 openair3/NAS/COMMON/IES/PlmnList.c | 0 openair3/NAS/COMMON/IES/PlmnList.h | 0 .../NAS/COMMON/IES/ProcedureTransactionIdentity.c | 0 .../NAS/COMMON/IES/ProcedureTransactionIdentity.h | 0 .../NAS/COMMON/IES/ProtocolConfigurationOptions.c | 0 .../NAS/COMMON/IES/ProtocolConfigurationOptions.h | 0 openair3/NAS/COMMON/IES/ProtocolDiscriminator.c | 0 openair3/NAS/COMMON/IES/ProtocolDiscriminator.h | 0 openair3/NAS/COMMON/IES/QualityOfService.c | 0 openair3/NAS/COMMON/IES/QualityOfService.h | 0 openair3/NAS/COMMON/IES/RadioPriority.c | 0 openair3/NAS/COMMON/IES/RadioPriority.h | 0 openair3/NAS/COMMON/IES/SecurityHeaderType.c | 0 openair3/NAS/COMMON/IES/SecurityHeaderType.h | 0 openair3/NAS/COMMON/IES/ServiceType.c | 0 openair3/NAS/COMMON/IES/ServiceType.h | 0 openair3/NAS/COMMON/IES/ShortMac.c | 0 openair3/NAS/COMMON/IES/ShortMac.h | 0 openair3/NAS/COMMON/IES/SsCode.c | 0 openair3/NAS/COMMON/IES/SsCode.h | 0 openair3/NAS/COMMON/IES/SupportedCodecList.c | 0 openair3/NAS/COMMON/IES/SupportedCodecList.h | 0 openair3/NAS/COMMON/IES/TimeZone.c | 0 openair3/NAS/COMMON/IES/TimeZone.h | 0 openair3/NAS/COMMON/IES/TimeZoneAndTime.c | 0 openair3/NAS/COMMON/IES/TimeZoneAndTime.h | 0 openair3/NAS/COMMON/IES/TmsiStatus.c | 0 openair3/NAS/COMMON/IES/TmsiStatus.h | 0 openair3/NAS/COMMON/IES/TrackingAreaIdentity.c | 0 openair3/NAS/COMMON/IES/TrackingAreaIdentity.h | 0 openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c | 0 openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h | 0 .../COMMON/IES/TrafficFlowAggregateDescription.c | 0 .../COMMON/IES/TrafficFlowAggregateDescription.h | 0 openair3/NAS/COMMON/IES/TrafficFlowTemplate.c | 0 openair3/NAS/COMMON/IES/TrafficFlowTemplate.h | 0 openair3/NAS/COMMON/IES/TransactionIdentifier.c | 0 openair3/NAS/COMMON/IES/TransactionIdentifier.h | 0 openair3/NAS/COMMON/IES/UeNetworkCapability.c | 0 openair3/NAS/COMMON/IES/UeNetworkCapability.h | 0 .../IES/UeRadioCapabilityInformationUpdateNeeded.c | 0 .../IES/UeRadioCapabilityInformationUpdateNeeded.h | 0 openair3/NAS/COMMON/IES/UeSecurityCapability.c | 0 openair3/NAS/COMMON/IES/UeSecurityCapability.h | 0 .../IES/VoiceDomainPreferenceAndUeUsageSetting.c | 0 .../IES/VoiceDomainPreferenceAndUeUsageSetting.h | 0 openair3/NAS/COMMON/UTIL/Makefile | 0 openair3/NAS/COMMON/UTIL/OctetString.c | 0 openair3/NAS/COMMON/UTIL/OctetString.h | 0 openair3/NAS/COMMON/UTIL/TLVDecoder.c | 0 openair3/NAS/COMMON/UTIL/TLVDecoder.h | 0 openair3/NAS/COMMON/UTIL/TLVEncoder.c | 0 openair3/NAS/COMMON/UTIL/TLVEncoder.h | 0 openair3/NAS/COMMON/UTIL/device.c | 0 openair3/NAS/COMMON/UTIL/device.h | 0 openair3/NAS/COMMON/UTIL/memory.c | 0 openair3/NAS/COMMON/UTIL/memory.h | 0 openair3/NAS/COMMON/UTIL/nas_log.h | 0 openair3/NAS/COMMON/UTIL/nas_timer.c | 0 openair3/NAS/COMMON/UTIL/nas_timer.h | 0 openair3/NAS/COMMON/UTIL/parser.c | 0 openair3/NAS/COMMON/UTIL/parser.h | 0 openair3/NAS/COMMON/UTIL/socket.c | 0 openair3/NAS/COMMON/UTIL/socket.h | 0 openair3/NAS/COMMON/UTIL/stty.c | 0 openair3/NAS/COMMON/UTIL/tst/Makefile | 0 openair3/NAS/COMMON/UTIL/tst/timer.c | 0 openair3/NAS/COMMON/UTIL/tst/timer_debug.txt | 0 openair3/NAS/COMMON/commonDef.h | 0 openair3/NAS/COMMON/networkDef.h | 0 openair3/NAS/COMMON/securityDef.h | 0 openair3/NAS/COMMON/userDef.h | 0 openair3/NAS/TEST/AS_SIMULATOR/Makefile | 0 openair3/NAS/TEST/AS_SIMULATOR/as_data.c | 0 openair3/NAS/TEST/AS_SIMULATOR/as_data.h | 0 openair3/NAS/TEST/AS_SIMULATOR/as_process.c | 0 openair3/NAS/TEST/AS_SIMULATOR/as_process.h | 0 openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c | 0 .../NAS/TEST/AS_SIMULATOR/as_simulator_parser.c | 0 .../NAS/TEST/AS_SIMULATOR/as_simulator_parser.h | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_data.c | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_data.h | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_process.c | 0 openair3/NAS/TEST/AS_SIMULATOR/nas_process.h | 0 openair3/NAS/TEST/MSC/ActivatePDN.png | Bin openair3/NAS/TEST/MSC/AuthenticationReject.png | Bin openair3/NAS/TEST/MSC/DeactivatePDN.png | Bin openair3/NAS/TEST/MSC/InitialAttach.png | Bin openair3/NAS/TEST/MSC/InitialAttachReject.png | Bin openair3/NAS/TEST/MSC/NomalDetach.png | Bin openair3/NAS/TEST/MSC/README | 0 openair3/NAS/TEST/MSC/SwitchOffDetach.png | Bin openair3/NAS/TEST/NETWORK/Makefile | 0 openair3/NAS/TEST/NETWORK/README | 0 openair3/NAS/TEST/NETWORK/network_parser.c | 0 openair3/NAS/TEST/NETWORK/network_parser.h | 0 openair3/NAS/TEST/NETWORK/network_simulator.c | 0 openair3/NAS/TEST/USER/Makefile | 0 openair3/NAS/TEST/USER/user_parser.c | 0 openair3/NAS/TEST/USER/user_parser.h | 0 openair3/NAS/TEST/USER/user_simulator.c | 0 openair3/NAS/TOOLS/conf2uedata.c | 0 openair3/NAS/TOOLS/conf2uedata.h | 0 openair3/NAS/TOOLS/conf_emm.c | 0 openair3/NAS/TOOLS/conf_emm.h | 0 openair3/NAS/TOOLS/conf_network.c | 0 openair3/NAS/TOOLS/conf_network.h | 0 openair3/NAS/TOOLS/conf_parser.c | 0 openair3/NAS/TOOLS/conf_parser.h | 0 openair3/NAS/TOOLS/conf_user_data.c | 0 openair3/NAS/TOOLS/conf_user_data.h | 0 openair3/NAS/TOOLS/conf_user_plmn.c | 0 openair3/NAS/TOOLS/conf_user_plmn.h | 0 openair3/NAS/TOOLS/conf_usim.c | 0 openair3/NAS/TOOLS/conf_usim.h | 0 openair3/NAS/TOOLS/display.c | 0 openair3/NAS/TOOLS/display.h | 0 openair3/NAS/TOOLS/fs.c | 0 openair3/NAS/TOOLS/fs.h | 0 openair3/NAS/TOOLS/network.h | 0 openair3/NAS/TOOLS/nvram.c | 0 openair3/NAS/TOOLS/ue_bcom_test.conf | 0 openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf | 0 openair3/NAS/TOOLS/ue_tcl_test.conf | 0 openair3/NAS/TOOLS/usim.c | 0 openair3/NAS/UE/API/USER/at_command.c | 0 openair3/NAS/UE/API/USER/at_command.h | 0 openair3/NAS/UE/API/USER/at_error.c | 0 openair3/NAS/UE/API/USER/at_error.h | 0 openair3/NAS/UE/API/USER/at_response.c | 0 openair3/NAS/UE/API/USER/at_response.h | 0 openair3/NAS/UE/API/USER/tst/at_parser.c | 0 openair3/NAS/UE/API/USER/tst/at_parser.in | 0 openair3/NAS/UE/API/USER/tst/at_parser.in.bis | 0 openair3/NAS/UE/API/USER/tst/at_parser.out | 0 openair3/NAS/UE/API/USER/tst/at_parser.out.bis | 0 openair3/NAS/UE/API/USER/tst/smartcom.txt | 0 openair3/NAS/UE/API/USER/user_api.c | 0 openair3/NAS/UE/API/USER/user_api.h | 0 openair3/NAS/UE/API/USER/user_api_defs.h | 0 openair3/NAS/UE/API/USER/user_indication.c | 0 openair3/NAS/UE/API/USER/user_indication.h | 0 openair3/NAS/UE/API/USIM/aka_functions.c | 0 openair3/NAS/UE/API/USIM/aka_functions.h | 0 openair3/NAS/UE/API/USIM/usim_api.c | 0 openair3/NAS/UE/API/USIM/usim_api.h | 0 openair3/NAS/UE/EMM/Attach.c | 0 openair3/NAS/UE/EMM/Authentication.c | 0 openair3/NAS/UE/EMM/Authentication.h | 0 openair3/NAS/UE/EMM/Detach.c | 0 openair3/NAS/UE/EMM/EmmStatusHdl.c | 0 openair3/NAS/UE/EMM/Identification.c | 0 openair3/NAS/UE/EMM/IdleMode.c | 0 openair3/NAS/UE/EMM/IdleMode.h | 0 openair3/NAS/UE/EMM/IdleMode_defs.h | 0 openair3/NAS/UE/EMM/LowerLayer.c | 0 openair3/NAS/UE/EMM/LowerLayer.h | 0 openair3/NAS/UE/EMM/LowerLayer_defs.h | 0 openair3/NAS/UE/EMM/SAP/EmmDeregistered.c | 0 .../NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c | 0 .../UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c | 0 openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c | 0 .../NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c | 0 .../NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c | 0 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c | 0 .../NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c | 0 openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c | 0 openair3/NAS/UE/EMM/SAP/EmmNull.c | 0 openair3/NAS/UE/EMM/SAP/EmmRegistered.c | 0 .../UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c | 0 .../UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c | 0 openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c | 0 .../NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c | 0 .../NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c | 0 .../NAS/UE/EMM/SAP/EmmRegisteredNormalService.c | 0 openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c | 0 openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c | 0 .../NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c | 0 .../UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c | 0 openair3/NAS/UE/EMM/SAP/emm_as.c | 0 openair3/NAS/UE/EMM/SAP/emm_as.h | 0 openair3/NAS/UE/EMM/SAP/emm_asDef.h | 0 openair3/NAS/UE/EMM/SAP/emm_esm.c | 0 openair3/NAS/UE/EMM/SAP/emm_esm.h | 0 openair3/NAS/UE/EMM/SAP/emm_esmDef.h | 0 openair3/NAS/UE/EMM/SAP/emm_fsm.c | 0 openair3/NAS/UE/EMM/SAP/emm_fsm.h | 0 openair3/NAS/UE/EMM/SAP/emm_recv.c | 0 openair3/NAS/UE/EMM/SAP/emm_recv.h | 0 openair3/NAS/UE/EMM/SAP/emm_reg.c | 0 openair3/NAS/UE/EMM/SAP/emm_reg.h | 0 openair3/NAS/UE/EMM/SAP/emm_regDef.h | 0 openair3/NAS/UE/EMM/SAP/emm_sap.c | 0 openair3/NAS/UE/EMM/SAP/emm_sap.h | 0 openair3/NAS/UE/EMM/SAP/emm_send.c | 0 openair3/NAS/UE/EMM/SAP/emm_send.h | 0 openair3/NAS/UE/EMM/SecurityModeControl.c | 0 openair3/NAS/UE/EMM/SecurityModeControl.h | 0 openair3/NAS/UE/EMM/ServiceRequestHdl.c | 0 openair3/NAS/UE/EMM/TrackingAreaUpdate.c | 0 openair3/NAS/UE/EMM/emmData.h | 0 openair3/NAS/UE/EMM/emm_fsm_defs.h | 0 openair3/NAS/UE/EMM/emm_main.c | 0 openair3/NAS/UE/EMM/emm_main.h | 0 openair3/NAS/UE/EMM/emm_proc.h | 0 openair3/NAS/UE/EMM/emm_proc_defs.h | 0 openair3/NAS/UE/EMM/emm_timers.h | 0 .../UE/ESM/DedicatedEpsBearerContextActivation.c | 0 .../NAS/UE/ESM/DefaultEpsBearerContextActivation.c | 0 openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c | 0 openair3/NAS/UE/ESM/EsmStatusHdl.c | 0 openair3/NAS/UE/ESM/PdnConnectivity.c | 0 openair3/NAS/UE/ESM/PdnDisconnect.c | 0 openair3/NAS/UE/ESM/SAP/esm_recv.c | 0 openair3/NAS/UE/ESM/SAP/esm_recv.h | 0 openair3/NAS/UE/ESM/SAP/esm_sap.c | 0 openair3/NAS/UE/ESM/SAP/esm_sap.h | 0 openair3/NAS/UE/ESM/SAP/esm_sapDef.h | 0 openair3/NAS/UE/ESM/SAP/esm_send.c | 0 openair3/NAS/UE/ESM/SAP/esm_send.h | 0 openair3/NAS/UE/ESM/esmData.h | 0 openair3/NAS/UE/ESM/esm_ebr.c | 0 openair3/NAS/UE/ESM/esm_ebr.h | 0 openair3/NAS/UE/ESM/esm_ebr_context.c | 0 openair3/NAS/UE/ESM/esm_ebr_context.h | 0 openair3/NAS/UE/ESM/esm_ip.c | 0 openair3/NAS/UE/ESM/esm_main.c | 0 openair3/NAS/UE/ESM/esm_main.h | 0 openair3/NAS/UE/ESM/esm_proc.h | 0 openair3/NAS/UE/ESM/esm_pt.c | 0 openair3/NAS/UE/ESM/esm_pt.h | 0 openair3/NAS/UE/ESM/esm_pt_defs.h | 0 openair3/NAS/UE/UEprocess.c | 0 openair3/NAS/UE/nas_itti_messaging.c | 0 openair3/NAS/UE/nas_itti_messaging.h | 0 openair3/NAS/UE/nas_network.c | 0 openair3/NAS/UE/nas_network.h | 0 openair3/NAS/UE/nas_parser.c | 0 openair3/NAS/UE/nas_parser.h | 0 openair3/NAS/UE/nas_proc.c | 0 openair3/NAS/UE/nas_proc.h | 0 openair3/NAS/UE/nas_proc_defs.h | 0 openair3/NAS/UE/nas_ue_task.c | 0 openair3/NAS/UE/nas_ue_task.h | 0 openair3/NAS/UE/nas_user.c | 0 openair3/NAS/UE/nas_user.h | 0 openair3/NAS/UE/user_defs.h | 0 openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 | 0 openair3/S1AP/MESSAGES/ASN1/README | 0 openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py | 0 openair3/S1AP/s1ap_common.c | 0 openair3/S1AP/s1ap_common.h | 0 openair3/S1AP/s1ap_eNB.c | 0 openair3/S1AP/s1ap_eNB.h | 0 .../S1AP/s1ap_eNB_context_management_procedures.c | 0 .../S1AP/s1ap_eNB_context_management_procedures.h | 0 openair3/S1AP/s1ap_eNB_decoder.c | 0 openair3/S1AP/s1ap_eNB_decoder.h | 0 openair3/S1AP/s1ap_eNB_default_values.h | 0 openair3/S1AP/s1ap_eNB_defs.h | 0 openair3/S1AP/s1ap_eNB_encoder.c | 0 openair3/S1AP/s1ap_eNB_encoder.h | 0 openair3/S1AP/s1ap_eNB_handlers.c | 0 openair3/S1AP/s1ap_eNB_handlers.h | 0 openair3/S1AP/s1ap_eNB_itti_messaging.c | 0 openair3/S1AP/s1ap_eNB_itti_messaging.h | 0 openair3/S1AP/s1ap_eNB_management_procedures.c | 0 openair3/S1AP/s1ap_eNB_management_procedures.h | 0 openair3/S1AP/s1ap_eNB_nas_procedures.c | 0 openair3/S1AP/s1ap_eNB_nas_procedures.h | 0 openair3/S1AP/s1ap_eNB_nnsf.c | 0 openair3/S1AP/s1ap_eNB_nnsf.h | 0 openair3/S1AP/s1ap_eNB_overload.c | 0 openair3/S1AP/s1ap_eNB_overload.h | 0 openair3/S1AP/s1ap_eNB_trace.c | 0 openair3/S1AP/s1ap_eNB_trace.h | 0 openair3/S1AP/s1ap_eNB_ue_context.c | 0 openair3/S1AP/s1ap_eNB_ue_context.h | 0 openair3/SCTP/sctp_common.c | 0 openair3/SCTP/sctp_common.h | 0 openair3/SCTP/sctp_default_values.h | 0 openair3/SCTP/sctp_eNB_defs.h | 0 openair3/SCTP/sctp_eNB_itti_messaging.c | 0 openair3/SCTP/sctp_eNB_itti_messaging.h | 0 openair3/SCTP/sctp_eNB_task.c | 0 openair3/SCTP/sctp_eNB_task.h | 0 openair3/SCTP/sctp_primitives_client.c | 0 openair3/SCTP/sctp_primitives_client.h | 0 openair3/SECU/kdf.c | 0 openair3/SECU/key_nas_deriver.c | 0 openair3/SECU/key_nas_encryption.c | 0 openair3/SECU/nas_stream_eea1.c | 0 openair3/SECU/nas_stream_eea2.c | 0 openair3/SECU/nas_stream_eia1.c | 0 openair3/SECU/nas_stream_eia2.c | 0 openair3/SECU/rijndael.c | 0 openair3/SECU/rijndael.h | 0 openair3/SECU/secu_defs.h | 0 openair3/SECU/snow3g.c | 0 openair3/SECU/snow3g.h | 0 .../attach_complete.pdml | 0 .../enb.band7.tm1.usrpb210.epc.local.conf | 0 .../TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf | 0 .../TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml | 0 openair3/TEST/EPC_TEST/generate_scenario.c | 0 openair3/TEST/EPC_TEST/generate_scenario.h | 0 openair3/TEST/EPC_TEST/play_scenario.c | 0 openair3/TEST/EPC_TEST/play_scenario.h | 0 openair3/TEST/EPC_TEST/play_scenario_decode.c | 0 openair3/TEST/EPC_TEST/play_scenario_display.c | 0 openair3/TEST/EPC_TEST/play_scenario_fsm.c | 0 openair3/TEST/EPC_TEST/play_scenario_parse.c | 0 openair3/TEST/EPC_TEST/play_scenario_s1ap.c | 0 .../TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c | 0 .../TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h | 0 openair3/TEST/EPC_TEST/play_scenario_sctp.c | 0 openair3/TEST/Makefile.am | 0 openair3/TEST/oaisim_mme_client_test.c | 0 openair3/TEST/oaisim_mme_itti_test.c | 0 openair3/TEST/oaisim_mme_list_benchmark.c | 0 openair3/TEST/oaisim_mme_s1ap_test.c | 0 openair3/TEST/oaisim_mme_sctp_test.c | 0 openair3/TEST/oaisim_mme_test_s1c.c | 0 openair3/TEST/oaisim_mme_test_s1c.h | 0 openair3/TEST/oaisim_mme_test_s1c_s1ap.c | 0 openair3/TEST/oaisim_mme_test_s1c_s1ap.h | 0 openair3/TEST/oaisim_mme_test_s1c_scenario.c | 0 openair3/TEST/oaisim_mme_test_s1c_scenario.h | 0 openair3/TEST/oaisim_mme_test_s1c_scenario1.c | 0 openair3/TEST/test_aes128_cmac_encrypt.c | 0 openair3/TEST/test_aes128_ctr_decrypt.c | 0 openair3/TEST/test_aes128_ctr_encrypt.c | 0 openair3/TEST/test_kdf.c | 0 openair3/TEST/test_s1ap.c | 0 openair3/TEST/test_secu.c | 0 openair3/TEST/test_secu_kenb.c | 0 openair3/TEST/test_secu_knas.c | 0 openair3/TEST/test_secu_knas_encrypt_eea1.c | 0 openair3/TEST/test_secu_knas_encrypt_eea2.c | 0 openair3/TEST/test_secu_knas_encrypt_eia1.c | 0 openair3/TEST/test_secu_knas_encrypt_eia2.c | 0 openair3/TEST/test_secu_knas_stream_int.c | 0 openair3/UDP/udp_eNB_task.c | 0 openair3/UDP/udp_eNB_task.h | 0 openair3/UTILS/CONF/COPYING | 0 openair3/UTILS/Makefile.am | 0 openair3/UTILS/conversions.c | 0 openair3/UTILS/conversions.h | 0 openair3/UTILS/enum_string.c | 0 openair3/UTILS/enum_string.h | 0 openair3/UTILS/mcc_mnc_itu.c | 0 openair3/UTILS/mcc_mnc_itu.h | 0 openair3/UTILS/mme_config.c | 0 openair3/UTILS/mme_config.h | 0 openair3/UTILS/mme_default_values.h | 0 openair3/UTILS/mme_parser.y | 0 openair3/UTILS/mme_scanner.l | 0 openair3/UTILS/queue.h | 0 openair3/UTILS/tree.h | 0 pre-commit | 0 svn2git/README.txt | 0 svn2git/authors.txt | 0 svn2git/authors_original.txt | 0 svn2git/authors_original_java_output.txt | 0 targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c | 0 targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h | 0 targets/ARCH/COMMON/common_lib.c | 0 targets/ARCH/COMMON/common_lib.h | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h | 0 targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h | 0 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi | 0 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs | 0 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm | 0 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit | Bin targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf | Bin targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk | Bin targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd | 0 targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd | 0 targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd | 0 targets/ARCH/EXMIMO/DEFS/openair_device.h | 0 targets/ARCH/EXMIMO/DEFS/pcie_interface.h | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/Makefile | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c | 0 targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/Makefile | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c | 0 targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h | 0 targets/ARCH/EXMIMO/DRIVER/readme.txt | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/Makefile | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c | 0 .../ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/example.c | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c | 0 targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h | 0 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile | 0 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h | 0 .../ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h | 0 .../ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c | 0 .../ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m | 0 .../USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m | 0 .../USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m | 0 .../EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m | 0 .../EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m | 0 .../EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m | 0 .../EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h | 0 .../EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc | 0 .../USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc | 0 .../ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc | 0 .../USERSPACE/OCTAVE/oarf_stop_without_reset.cc | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m | 0 .../EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m | 0 .../USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m | 0 .../EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m | 0 .../USERSPACE/OCTAVE/rx_spec_multicard_sync.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m | 0 .../EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m | 0 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m | 0 targets/ARCH/LMSSDR/LimeSDR.ini | 0 targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini | 0 targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini | 0 targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini | 0 targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini | 0 targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp | 0 targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp | 0 targets/ARCH/mobipass/interface.c | 0 targets/ARCH/mobipass/mobipass.c | 0 targets/ARCH/mobipass/mobipass.h | 0 targets/ARCH/mobipass/queues.c | 0 targets/ARCH/mobipass/queues.h | 0 targets/COMMON/Makefile.inc | 0 targets/COMMON/create_tasks.c | 0 targets/COMMON/create_tasks.h | 0 targets/COMMON/openairinterface5g_limits.h | 0 targets/COMMON/threads_t.h | 0 targets/DOCS/Doxyfile | 0 targets/DOCS/E-UTRAN_User_Guide.docx | Bin targets/DOCS/E-UTRAN_User_Guide.pdf | Bin targets/DOCS/images/oai_logo.png | Bin targets/DOCS/oai_L1_L2_procedures.ipe | 0 targets/Makefile.common | 0 targets/Makerules | 0 .../CONF/enb.centos.calisson.conf | 0 .../CONF/enb.centos.memphis.conf | 0 .../CONF/enb.centos.nord.conf | 0 targets/PROJECTS/E-MBMS/enb.conf | 0 targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml | 0 .../CONF/enb.band13.tm1.50PRB.emtc.conf | 0 .../CONF/enb.band7.tm1.50PRB.usrpb210.conf | 0 .../GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf | 0 .../CONF/rcc.band7.tm1.50PRB.nfapi.conf | 0 .../CONF/rcc.band7.tm1.if4p5.50PRB.conf | 0 .../CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf | 0 .../PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf | 0 targets/PROJECTS/LOCALIZATION/filesave0811.mat | 0 targets/PROJECTS/LOCALIZATION/generation.m | 0 targets/PROJECTS/LOCALIZATION/initial_sync.m | 0 targets/PROJECTS/LOCALIZATION/initparams.m | 0 targets/PROJECTS/LOCALIZATION/plots.m | 0 targets/PROJECTS/LOCALIZATION/recup.m | 0 targets/PROJECTS/LOCALIZATION/where2.m | 0 targets/PROJECTS/LOCALIZATION/where2_v1_final.mat | 0 targets/PROJECTS/LOCALIZATION/where2_vf.m | 0 targets/PROJECTS/TDDREC/f_ch_est.m | 0 targets/PROJECTS/TDDREC/f_ofdm_mod.m | 0 targets/PROJECTS/TDDREC/f_ofdm_rx.m | 0 targets/PROJECTS/TDDREC/f_ofdm_tx.m | 0 targets/PROJECTS/TDDREC/f_tls_ap.m | 0 targets/PROJECTS/TDDREC/f_tls_diag.m | 0 targets/PROJECTS/TDDREC/f_tls_svd.m | 0 targets/PROJECTS/TDDREC/s_beamforming.m | 0 targets/PROJECTS/TDDREC/s_calib.m | 0 targets/PROJECTS/TDDREC/s_draw_F.m | 0 targets/PROJECTS/TDDREC/s_init_params.m | 0 targets/PROJECTS/TDDREC/s_run_meas.m | 0 targets/PROJECTS/TDDREC/v0/alterproj.m | 0 targets/PROJECTS/TDDREC/v0/beamforming.m | 0 targets/PROJECTS/TDDREC/v0/calibration.m | 0 targets/PROJECTS/TDDREC/v0/genorthqpskseq.m | 0 targets/PROJECTS/TDDREC/v0/genrandpskseq.m | 0 targets/PROJECTS/TDDREC/v0/initparams.m | 0 targets/PROJECTS/TDDREC/v0/initparams2.m | 0 targets/PROJECTS/TDDREC/v0/ofdm_mod.m | 0 targets/PROJECTS/TDDREC/v0/readme.txt | 0 targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_mimo.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m | 0 targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m | 0 targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m | 0 targets/README.txt | 0 targets/RT/LAUNCH_SCRIPTS/load_module.sh | 0 targets/RT/LAUNCH_SCRIPTS/nas_enb.sh | 0 targets/RT/LAUNCH_SCRIPTS/nas_ue.sh | 0 targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_emos.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_rf.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_ue.sh | 0 targets/RT/LAUNCH_SCRIPTS/start_ue2.sh | 0 targets/RT/LAUNCH_SCRIPTS/stop_rf.sh | 0 targets/RT/USER/.runinfo | 0 targets/RT/USER/.ue.nvram | Bin targets/RT/USER/.ue_emm.nvram | Bin targets/RT/USER/.usim.nvram | Bin targets/RT/USER/TOOLS/thread_ipc.c | 0 targets/RT/USER/TOOLS/thread_ipc.h | 0 targets/RT/USER/eNB_exmimo2.gtkw | 0 targets/RT/USER/eNB_usrp.gtkw | 0 targets/RT/USER/exmimo2_2arxg.lime | 0 targets/RT/USER/exmimo2_2brxg.lime | 0 targets/RT/USER/init_b200.sh | 0 targets/RT/USER/init_exmimo.sh | 0 targets/RT/USER/init_exmimo2.sh | 0 targets/RT/USER/lte-enb.c | 0 targets/RT/USER/lte-ru.c | 0 targets/RT/USER/lte-softmodem.c | 0 targets/RT/USER/lte-softmodem.h | 0 targets/RT/USER/lte-ue.c | 0 targets/RT/USER/rau_if4_single_thread.gtkw | 0 targets/RT/USER/rcc_if4.gtkw | 0 targets/RT/USER/rcc_if5.gtkw | 0 targets/RT/USER/rfsim.h | 0 targets/RT/USER/rru_if4p5_single_thread.gtkw | 0 targets/RT/USER/rru_if4p5_usrp.gtkw | 0 targets/RT/USER/rru_if5_usrp.gtkw | 0 targets/RT/USER/rt_wrapper.c | 0 targets/RT/USER/rt_wrapper.h | 0 targets/RT/USER/stats.c | 0 targets/RT/USER/stats.fd | 0 targets/RT/USER/stats.h | 0 targets/RT/USER/ue_exmimo2.gtkw | 0 targets/RT/USER/ue_usrp.gtkw | 0 targets/SCRIPTS/install_asn1.sh | 0 targets/TEST/AT_COMMANDS/Makefile | 0 targets/TEST/AT_COMMANDS/oaisim.c | 0 targets/TEST/OAI/README | 0 targets/TEST/OAI/case01.py | 0 targets/TEST/OAI/case02.py | 0 targets/TEST/OAI/case03.py | 0 targets/TEST/OAI/case04.py | 0 targets/TEST/OAI/case05.py | 0 targets/TEST/OAI/case11.py | 0 targets/TEST/OAI/case12.py | 0 targets/TEST/OAI/case13.py | 0 targets/TEST/OAI/core.py | 0 targets/TEST/OAI/log.py | 0 targets/TEST/OAI/openair.py | 0 targets/TEST/OAI/test01.py | 0 targets/TEST/OAI/test02.py | 0 targets/TEST/PACKET_TRACER/Makefile | 0 targets/TEST/PACKET_TRACER/README.txt | 0 targets/TEST/PACKET_TRACER/messages/Msg4.txt | 0 .../messages/rrcconnectionreconfiguration.txt | 0 .../PACKET_TRACER/messages/rrcconnectionsetup.txt | 0 targets/TEST/PACKET_TRACER/messages/sib1.txt | 0 targets/TEST/PACKET_TRACER/messages/sib2.txt | 0 targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt | 0 .../PACKET_TRACER/messages/sib2_3_oai_Rel10.txt | 0 targets/TEST/PACKET_TRACER/messages/sib3.txt | 0 targets/TEST/PACKET_TRACER/pt.c | 0 targets/TEST/PDCP/Makefile | 0 targets/TEST/PDCP/readme.txt | 0 targets/TEST/PDCP/test_pdcp.c | 0 targets/TEST/PDCP/test_pdcp.h | 0 targets/TEST/PDCP/test_util.h | 0 targets/TEST/PDCP/todo.txt | 0 targets/TEST/PDCP/with_rlc/Makefile.data_bearer | 0 targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt | 0 targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c | 0 targets/TEST/RLC_AM_V9.3.0/Makefile | 0 targets/TEST/RLC_AM_V9.3.0/oaisim.c | 0 targets/TEST/RLC_UM_V9.3.0/Makefile | 0 targets/TEST/RLC_UM_V9.3.0/oaisim.c | 0 targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp | 0 targets/TEST/ROHDE_SCHWARZ/Makefile | 0 targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp | 0 targets/TEST/ROHDE_SCHWARZ/TcpClient.h | 0 targets/itti_vcd_tasks.sav | 0 2468 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .gitlab-ci.yml mode change 100755 => 100644 LICENSE mode change 100755 => 100644 NOTICE.txt mode change 100755 => 100644 README.txt mode change 100755 => 100644 ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf mode change 100755 => 100644 cmake_targets/CMakeLists.txt mode change 100755 => 100644 cmake_targets/at_commands/CMakeLists.txt mode change 100755 => 100644 cmake_targets/autotests/README.txt mode change 100755 => 100644 cmake_targets/autotests/core.py mode change 100755 => 100644 cmake_targets/autotests/log.py mode change 100755 => 100644 cmake_targets/autotests/openair.py mode change 100755 => 100644 cmake_targets/autotests/templates/index.html mode change 100755 => 100644 cmake_targets/autotests/templates/testcase_report.html mode change 100755 => 100644 cmake_targets/autotests/test_case_list.xml mode change 100755 => 100644 cmake_targets/autotests/testsuite_ue_noS1.xml mode change 100755 => 100644 cmake_targets/autotests/testsuite_ue_noS1_TCL.xml mode change 100755 => 100644 cmake_targets/autotests/tools/lib_autotest.py mode change 100755 => 100644 cmake_targets/autotests/tools/lib_autotest_analyser.py mode change 100755 => 100644 cmake_targets/autotests/tools/wdial.bandrich.conf mode change 100755 => 100644 cmake_targets/autotests/v2/actions/alu_epc.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/alu_epc_stop.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/alu_hss.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/bandrich.txt mode change 100755 => 100644 cmake_targets/autotests/v2/actions/client_tcp.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/client_udp.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/clone_repository.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/compilation.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/execution.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/execution_compile.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/modem.py mode change 100755 => 100644 cmake_targets/autotests/v2/actions/run_enb.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/server_tcp.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/server_udp.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/start_3276.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/start_3276.py mode change 100755 => 100644 cmake_targets/autotests/v2/actions/start_bandrich.bash mode change 100755 => 100644 cmake_targets/autotests/v2/actions/start_bandrich.py mode change 100755 => 100644 cmake_targets/autotests/v2/actions/stop_3276.py mode change 100755 => 100644 cmake_targets/autotests/v2/actions/stop_bandrich.py mode change 100755 => 100644 cmake_targets/autotests/v2/actions/wvdial.3276.conf mode change 100755 => 100644 cmake_targets/autotests/v2/actions/wvdial.bandrich.conf mode change 100755 => 100644 cmake_targets/autotests/v2/alu_test.py mode change 100755 => 100644 cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf mode change 100755 => 100644 cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf mode change 100755 => 100644 cmake_targets/autotests/v2/connection.py mode change 100755 => 100644 cmake_targets/autotests/v2/machine_list.py mode change 100755 => 100644 cmake_targets/autotests/v2/main.py mode change 100755 => 100644 cmake_targets/autotests/v2/task.py mode change 100755 => 100644 cmake_targets/autotests/v2/utils.py mode change 100755 => 100644 cmake_targets/doxygen/CMakeLists.txt mode change 100755 => 100644 cmake_targets/epc_test/CMakeLists.template mode change 100755 => 100644 cmake_targets/lte-simulators/CMakeLists.txt mode change 100755 => 100644 cmake_targets/lte_noS1_build_oai/CMakeLists.template mode change 100755 => 100644 cmake_targets/nas_sim_tools/CMakeLists.txt mode change 100755 => 100644 cmake_targets/oaisim_build_oai/CMakeLists.template mode change 100755 => 100644 cmake_targets/oaisim_mme_build_oai/CMakeLists.template mode change 100755 => 100644 cmake_targets/oaisim_noS1_build_oai/CMakeLists.template mode change 100755 => 100644 cmake_targets/s1c_mme_test/CMakeLists.template mode change 100755 => 100644 cmake_targets/tools/Kbuild.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/CMakeParseArguments.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/CMakeUserUseBison.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindFreeDiameter.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindGCCXML.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindGcrypt.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindGnuTLS.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindKbuild.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindLibXml2.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindMySQL.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindNettle.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindPostgreSQL.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/FindSCTP.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/Kbuild.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/cmake_useful.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/kbuild_system.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/kmodule.cmake mode change 100755 => 100644 cmake_targets/tools/MODULES/path_prefixes.cmake mode change 100755 => 100644 cmake_targets/tools/asn1tostruct.py mode change 100755 => 100644 cmake_targets/tools/example_enb_exmimo_mme_hss.txt mode change 100755 => 100644 cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt mode change 100755 => 100644 cmake_targets/tools/exmimo2_2arxg.lime mode change 100755 => 100644 cmake_targets/tools/exmimo2_2brxg.lime mode change 100755 => 100644 cmake_targets/tools/exmimo_stop_octave.m mode change 100755 => 100644 cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff mode change 100755 => 100644 cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff mode change 100755 => 100644 cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff mode change 100755 => 100644 cmake_targets/tools/test_helper mode change 100755 => 100644 common/config/config_cmdline.c mode change 100755 => 100644 common/config/config_load_configmodule.c mode change 100755 => 100644 common/config/config_load_configmodule.h mode change 100755 => 100644 common/config/config_paramdesc.h mode change 100755 => 100644 common/config/config_userapi.c mode change 100755 => 100644 common/config/config_userapi.h mode change 100755 => 100644 common/config/libconfig/config_libconfig.c mode change 100755 => 100644 common/config/libconfig/config_libconfig.h mode change 100755 => 100644 common/config/libconfig/config_libconfig_private.h mode change 100755 => 100644 common/ran_context.h mode change 100755 => 100644 common/utils/LOG/README.txt mode change 100755 => 100644 common/utils/LOG/log_extern.h mode change 100755 => 100644 common/utils/LOG/log_if.h mode change 100755 => 100644 common/utils/LOG/vcd_signal_dumper.c mode change 100755 => 100644 common/utils/LOG/vcd_signal_dumper.h mode change 100755 => 100644 common/utils/T/.gitignore mode change 100755 => 100644 common/utils/T/Makefile mode change 100755 => 100644 common/utils/T/README mode change 100755 => 100644 common/utils/T/T.c mode change 100755 => 100644 common/utils/T/T.h mode change 100755 => 100644 common/utils/T/T_defs.h mode change 100755 => 100644 common/utils/T/T_messages.txt mode change 100755 => 100644 common/utils/T/defs.h mode change 100755 => 100644 common/utils/T/generate_Txx.c mode change 100755 => 100644 common/utils/T/genids.c mode change 100755 => 100644 common/utils/T/local_tracer.c mode change 100755 => 100644 common/utils/T/plot.c mode change 100755 => 100644 common/utils/T/tracee/Makefile mode change 100755 => 100644 common/utils/T/tracee/README mode change 100755 => 100644 common/utils/T/tracee/tracee.c mode change 100755 => 100644 common/utils/T/tracer/Makefile mode change 100755 => 100644 common/utils/T/tracer/config.c mode change 100755 => 100644 common/utils/T/tracer/config.h mode change 100755 => 100644 common/utils/T/tracer/database.c mode change 100755 => 100644 common/utils/T/tracer/database.h mode change 100755 => 100644 common/utils/T/tracer/defs.h mode change 100755 => 100644 common/utils/T/tracer/enb.c mode change 100755 => 100644 common/utils/T/tracer/event.c mode change 100755 => 100644 common/utils/T/tracer/event.h mode change 100755 => 100644 common/utils/T/tracer/event_selector.c mode change 100755 => 100644 common/utils/T/tracer/event_selector.h mode change 100755 => 100644 common/utils/T/tracer/extract_config.c mode change 100755 => 100644 common/utils/T/tracer/extract_input_subframe.c mode change 100755 => 100644 common/utils/T/tracer/filter/Makefile mode change 100755 => 100644 common/utils/T/tracer/filter/filter.c mode change 100755 => 100644 common/utils/T/tracer/filter/filter.h mode change 100755 => 100644 common/utils/T/tracer/gui.c mode change 100755 => 100644 common/utils/T/tracer/gui/Makefile mode change 100755 => 100644 common/utils/T/tracer/gui/container.c mode change 100755 => 100644 common/utils/T/tracer/gui/event.c mode change 100755 => 100644 common/utils/T/tracer/gui/gui.c mode change 100755 => 100644 common/utils/T/tracer/gui/gui.h mode change 100755 => 100644 common/utils/T/tracer/gui/gui_defs.h mode change 100755 => 100644 common/utils/T/tracer/gui/image.c mode change 100755 => 100644 common/utils/T/tracer/gui/init.c mode change 100755 => 100644 common/utils/T/tracer/gui/label.c mode change 100755 => 100644 common/utils/T/tracer/gui/loop.c mode change 100755 => 100644 common/utils/T/tracer/gui/notify.c mode change 100755 => 100644 common/utils/T/tracer/gui/positioner.c mode change 100755 => 100644 common/utils/T/tracer/gui/space.c mode change 100755 => 100644 common/utils/T/tracer/gui/test.c mode change 100755 => 100644 common/utils/T/tracer/gui/textarea.c mode change 100755 => 100644 common/utils/T/tracer/gui/textlist.c mode change 100755 => 100644 common/utils/T/tracer/gui/timeline.c mode change 100755 => 100644 common/utils/T/tracer/gui/toplevel_window.c mode change 100755 => 100644 common/utils/T/tracer/gui/widget.c mode change 100755 => 100644 common/utils/T/tracer/gui/x.c mode change 100755 => 100644 common/utils/T/tracer/gui/x.h mode change 100755 => 100644 common/utils/T/tracer/gui/x_defs.h mode change 100755 => 100644 common/utils/T/tracer/gui/xy_plot.c mode change 100755 => 100644 common/utils/T/tracer/hacks/Makefile mode change 100755 => 100644 common/utils/T/tracer/hacks/dump_nack_signal.c mode change 100755 => 100644 common/utils/T/tracer/hacks/time_meas.c mode change 100755 => 100644 common/utils/T/tracer/hacks/timeplot.c mode change 100755 => 100644 common/utils/T/tracer/handler.c mode change 100755 => 100644 common/utils/T/tracer/handler.h mode change 100755 => 100644 common/utils/T/tracer/logger/Makefile mode change 100755 => 100644 common/utils/T/tracer/logger/framelog.c mode change 100755 => 100644 common/utils/T/tracer/logger/iqdotlog.c mode change 100755 => 100644 common/utils/T/tracer/logger/iqlog.c mode change 100755 => 100644 common/utils/T/tracer/logger/logger.c mode change 100755 => 100644 common/utils/T/tracer/logger/logger.h mode change 100755 => 100644 common/utils/T/tracer/logger/logger_defs.h mode change 100755 => 100644 common/utils/T/tracer/logger/textlog.c mode change 100755 => 100644 common/utils/T/tracer/logger/throughputlog.c mode change 100755 => 100644 common/utils/T/tracer/logger/ticked_ttilog.c mode change 100755 => 100644 common/utils/T/tracer/logger/ticklog.c mode change 100755 => 100644 common/utils/T/tracer/logger/timelog.c mode change 100755 => 100644 common/utils/T/tracer/logger/ttilog.c mode change 100755 => 100644 common/utils/T/tracer/macpdu2wireshark.c mode change 100755 => 100644 common/utils/T/tracer/openair_logo.h mode change 100755 => 100644 common/utils/T/tracer/openair_logo.png mode change 100755 => 100644 common/utils/T/tracer/packet-mac-lte.h mode change 100755 => 100644 common/utils/T/tracer/plot.c mode change 100755 => 100644 common/utils/T/tracer/record.c mode change 100755 => 100644 common/utils/T/tracer/replay.c mode change 100755 => 100644 common/utils/T/tracer/textlog.c mode change 100755 => 100644 common/utils/T/tracer/ue.c mode change 100755 => 100644 common/utils/T/tracer/utils.c mode change 100755 => 100644 common/utils/T/tracer/utils.h mode change 100755 => 100644 common/utils/T/tracer/vcd.c mode change 100755 => 100644 common/utils/T/tracer/view/Makefile mode change 100755 => 100644 common/utils/T/tracer/view/scrolltti.c mode change 100755 => 100644 common/utils/T/tracer/view/stdout.c mode change 100755 => 100644 common/utils/T/tracer/view/textlist.c mode change 100755 => 100644 common/utils/T/tracer/view/ticktime.c mode change 100755 => 100644 common/utils/T/tracer/view/time.c mode change 100755 => 100644 common/utils/T/tracer/view/tti.c mode change 100755 => 100644 common/utils/T/tracer/view/view.h mode change 100755 => 100644 common/utils/T/tracer/view/xy.c mode change 100755 => 100644 common/utils/asn1_conversions.h mode change 100755 => 100644 common/utils/assertions.h mode change 100755 => 100644 common/utils/backtrace.c mode change 100755 => 100644 common/utils/backtrace.h mode change 100755 => 100644 common/utils/collection/queue.h mode change 100755 => 100644 common/utils/collection/tree.h mode change 100755 => 100644 common/utils/hashtable/hashtable.c mode change 100755 => 100644 common/utils/hashtable/hashtable.h mode change 100755 => 100644 common/utils/hashtable/obj_hashtable.c mode change 100755 => 100644 common/utils/hashtable/obj_hashtable.h mode change 100755 => 100644 common/utils/itti_analyzer/AUTHORS mode change 100755 => 100644 common/utils/itti_analyzer/ChangeLog mode change 100755 => 100644 common/utils/itti_analyzer/INSTALL mode change 100755 => 100644 common/utils/itti_analyzer/Makefile.am mode change 100755 => 100644 common/utils/itti_analyzer/NEWS mode change 100755 => 100644 common/utils/itti_analyzer/README mode change 100755 => 100644 common/utils/itti_analyzer/common/itti_types.h mode change 100755 => 100644 common/utils/itti_analyzer/common/logs.h mode change 100755 => 100644 common/utils/itti_analyzer/common/queue.h mode change 100755 => 100644 common/utils/itti_analyzer/common/rc.h mode change 100755 => 100644 common/utils/itti_analyzer/configure.ac mode change 100755 => 100644 common/utils/itti_analyzer/filters.xml mode change 100755 => 100644 common/utils/itti_analyzer/filters_mme.xml mode change 100755 => 100644 common/utils/itti_analyzer/filters_ue_enb.xml mode change 100755 => 100644 common/utils/itti_analyzer/itti_analyzer.c mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/Makefile.am mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/buffers.c mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/buffers.h mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/file.c mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/file.h mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/socket.c mode change 100755 => 100644 common/utils/itti_analyzer/libbuffers/socket.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/Makefile.am mode change 100755 => 100644 common/utils/itti_analyzer/libparser/array_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/array_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/enum_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/enum_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/enum_value_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/enum_value_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/field_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/field_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/file_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/file_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/fundamental_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/fundamental_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/intertask_contexts.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/pointer_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/pointer_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/reference_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/reference_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/struct_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/struct_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/typedef_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/typedef_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/types.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/types.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/union_type.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/union_type.h mode change 100755 => 100644 common/utils/itti_analyzer/libparser/xml_parse.c mode change 100755 => 100644 common/utils/itti_analyzer/libparser/xml_parse.h mode change 100755 => 100644 common/utils/itti_analyzer/libresolver/Makefile.am mode change 100755 => 100644 common/utils/itti_analyzer/libresolver/locate_root.c mode change 100755 => 100644 common/utils/itti_analyzer/libresolver/locate_root.h mode change 100755 => 100644 common/utils/itti_analyzer/libresolver/resolvers.c mode change 100755 => 100644 common/utils/itti_analyzer/libresolver/resolvers.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/Makefile.am mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_callbacks.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_callbacks.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_filters.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_filters.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_interface.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_interface.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_main_screen.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_main_screen.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_menu_bar.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_menu_bar.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_notebook.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_notebook.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_notif_dlg.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_notif_dlg.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_notifications.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_notifications.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_signal_dissect_view.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_signal_dissect_view.h mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_tree_view.c mode change 100755 => 100644 common/utils/itti_analyzer/libui/ui_tree_view.h mode change 100755 => 100644 common/utils/load_module_shlib.c mode change 100755 => 100644 common/utils/load_module_shlib.h mode change 100755 => 100644 common/utils/memory_pools.c mode change 100755 => 100644 common/utils/memory_pools.h mode change 100755 => 100644 common/utils/msc/msc.c mode change 100755 => 100644 common/utils/msc/msc.h mode change 100755 => 100644 common/utils/system.c mode change 100755 => 100644 common/utils/system.h mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv.c mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv.h mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv_loader.h mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv_phycmd.c mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv_phycmd.h mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv_proccmd.c mode change 100755 => 100644 common/utils/telnetsrv/telnetsrv_proccmd.h mode change 100755 => 100644 common/utils/time_utils.h mode change 100755 => 100644 common/utils/utils.c mode change 100755 => 100644 common/utils/utils.h mode change 100755 => 100644 nfapi/oai_integration/nfapi_vnf.h mode change 100755 => 100644 oaienv mode change 100755 => 100644 openair1/PHY/CODING/3gpplte.c mode change 100755 => 100644 openair1/PHY/CODING/3gpplte_sse.c mode change 100755 => 100644 openair1/PHY/CODING/3gpplte_turbo_decoder.c mode change 100755 => 100644 openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c mode change 100755 => 100644 openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c mode change 100755 => 100644 openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c mode change 100755 => 100644 openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c mode change 100755 => 100644 openair1/PHY/CODING/Makefile mode change 100755 => 100644 openair1/PHY/CODING/Makefile.arm mode change 100755 => 100644 openair1/PHY/CODING/README.txt mode change 100755 => 100644 openair1/PHY/CODING/TESTBENCH/Makefile mode change 100755 => 100644 openair1/PHY/CODING/TESTBENCH/README.txt mode change 100755 => 100644 openair1/PHY/CODING/TESTBENCH/ltetest.c mode change 100755 => 100644 openair1/PHY/CODING/TESTBENCH/pdcch_test.c mode change 100755 => 100644 openair1/PHY/CODING/TESTBENCH/viterbi_test.c mode change 100755 => 100644 openair1/PHY/CODING/ccoding_byte.c mode change 100755 => 100644 openair1/PHY/CODING/ccoding_byte_lte.c mode change 100755 => 100644 openair1/PHY/CODING/coding_defs.h mode change 100755 => 100644 openair1/PHY/CODING/coding_extern.h mode change 100755 => 100644 openair1/PHY/CODING/crc_byte.c mode change 100755 => 100644 openair1/PHY/CODING/lte_interleaver_inline.h mode change 100755 => 100644 openair1/PHY/CODING/lte_rate_matching.c mode change 100755 => 100644 openair1/PHY/CODING/lte_segmentation.c mode change 100755 => 100644 openair1/PHY/CODING/lte_tf.m mode change 100755 => 100644 openair1/PHY/CODING/scrambler.h mode change 100755 => 100644 openair1/PHY/CODING/viterbi.c mode change 100755 => 100644 openair1/PHY/CODING/viterbi_lte.c mode change 100755 => 100644 openair1/PHY/INIT/README.txt mode change 100755 => 100644 openair1/PHY/INIT/init_extern.h mode change 100755 => 100644 openair1/PHY/INIT/init_top.c mode change 100755 => 100644 openair1/PHY/INIT/init_vars.h mode change 100755 => 100644 openair1/PHY/INIT/lte_init.c mode change 100755 => 100644 openair1/PHY/INIT/lte_param_init.c mode change 100755 => 100644 openair1/PHY/INIT/lte_parms.c mode change 100755 => 100644 openair1/PHY/INIT/phy_init.h mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/README.txt mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/adjust_gain.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/filt16_32.h mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/filt96_32.h mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/freq_equalization.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_estimation.h mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_estimation_extern.h mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_estimation_vars.h mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_sync_time.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c mode change 100755 => 100644 openair1/PHY/LTE_ESTIMATION/pss6144.h mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/README.txt mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/gen_mod_table.m mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_dl_uespec.c mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_gold.c mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_refsig.h mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_ul.m mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/lte_ul_ref.c mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/mod_table.h mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/primary_synch.h mode change 100755 => 100644 openair1/PHY/LTE_REFSIG/primary_synch.m mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/README.txt mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dci.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dci.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dci_tools.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dlsch_coding.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/edci.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/group_hopping.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/if4_tools.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/if4_tools.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/if5_tools.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/if5_tools.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/lte_mcs.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/mdci.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pbch.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pcfich.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/phich.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pilots.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pmch.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/power_control.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/prach.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/print_stats.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pss.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pucch.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/pucch_extern.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/rar_tools.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/sss.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/transport_eNB.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/transport_extern.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/transport_vars.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/uci_common.h mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/uci_tools.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c mode change 100755 => 100644 openair1/PHY/LTE_TRANSPORT/vrb_maps.m mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/drs_modulation.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/get_pmi.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/pch_ue.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/slss.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c mode change 100755 => 100644 openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c mode change 100755 => 100644 openair1/PHY/MODULATION/beamforming.c mode change 100755 => 100644 openair1/PHY/MODULATION/compute_bf_weights.c mode change 100755 => 100644 openair1/PHY/MODULATION/ofdm_mod.c mode change 100755 => 100644 openair1/PHY/MODULATION/prach625Hz.h mode change 100755 => 100644 openair1/PHY/MODULATION/slot_fep.c mode change 100755 => 100644 openair1/PHY/MODULATION/slot_fep_mbsfn.c mode change 100755 => 100644 openair1/PHY/MODULATION/slot_fep_ul.c mode change 100755 => 100644 openair1/PHY/MODULATION/ul_7_5_kHz.c mode change 100755 => 100644 openair1/PHY/Makefile.inc mode change 100755 => 100644 openair1/PHY/TOOLS/8bit_rxdemux.c mode change 100755 => 100644 openair1/PHY/TOOLS/8bit_txmux.c mode change 100755 => 100644 openair1/PHY/TOOLS/Makefile mode change 100755 => 100644 openair1/PHY/TOOLS/alaw_lut.h mode change 100755 => 100644 openair1/PHY/TOOLS/angle.c mode change 100755 => 100644 openair1/PHY/TOOLS/cadd_sv.c mode change 100755 => 100644 openair1/PHY/TOOLS/cadd_vv.c mode change 100755 => 100644 openair1/PHY/TOOLS/cdot_prod.c mode change 100755 => 100644 openair1/PHY/TOOLS/cmult_sv.c mode change 100755 => 100644 openair1/PHY/TOOLS/cmult_vv.c mode change 100755 => 100644 openair1/PHY/TOOLS/costable.h mode change 100755 => 100644 openair1/PHY/TOOLS/dB_routines.c mode change 100755 => 100644 openair1/PHY/TOOLS/dB_routines.h mode change 100755 => 100644 openair1/PHY/TOOLS/invSqrt.c mode change 100755 => 100644 openair1/PHY/TOOLS/log2_approx.c mode change 100755 => 100644 openair1/PHY/TOOLS/lte_dfts.c mode change 100755 => 100644 openair1/PHY/TOOLS/lte_phy_scope.c mode change 100755 => 100644 openair1/PHY/TOOLS/lte_phy_scope.h mode change 100755 => 100644 openair1/PHY/TOOLS/lte_phy_scope_tm4.c mode change 100755 => 100644 openair1/PHY/TOOLS/lut.c mode change 100755 => 100644 openair1/PHY/TOOLS/memory_routines.c mode change 100755 => 100644 openair1/PHY/TOOLS/read_F.c mode change 100755 => 100644 openair1/PHY/TOOLS/signal_energy.c mode change 100755 => 100644 openair1/PHY/TOOLS/smbv.c mode change 100755 => 100644 openair1/PHY/TOOLS/smbv.h mode change 100755 => 100644 openair1/PHY/TOOLS/sqrt.c mode change 100755 => 100644 openair1/PHY/TOOLS/time_meas.c mode change 100755 => 100644 openair1/PHY/TOOLS/time_meas.h mode change 100755 => 100644 openair1/PHY/TOOLS/tools_defs.h mode change 100755 => 100644 openair1/PHY/TOOLS/tools_extern.h mode change 100755 => 100644 openair1/PHY/TOOLS/tools_vars.h mode change 100755 => 100644 openair1/PHY/defs_eNB.h mode change 100755 => 100644 openair1/PHY/impl_defs_lte.h mode change 100755 => 100644 openair1/PHY/impl_defs_top.h mode change 100755 => 100644 openair1/PHY/phy_extern.h mode change 100755 => 100644 openair1/PHY/phy_vars.h mode change 100755 => 100644 openair1/PHY/sse_intrin.h mode change 100755 => 100644 openair1/PHY/types.h mode change 100755 => 100644 openair1/README.TXT mode change 100755 => 100644 openair1/SCHED/Makefile.inc mode change 100755 => 100644 openair1/SCHED/fapi_l1.c mode change 100755 => 100644 openair1/SCHED/fapi_l1.h mode change 100755 => 100644 openair1/SCHED/phy_mac_stub.c mode change 100755 => 100644 openair1/SCHED/phy_procedures_lte_common.c mode change 100755 => 100644 openair1/SCHED/phy_procedures_lte_eNb.c mode change 100755 => 100644 openair1/SCHED/ru_procedures.c mode change 100755 => 100644 openair1/SCHED/sched_common.h mode change 100755 => 100644 openair1/SCHED_UE/phy_procedures_lte_ue.c mode change 100755 => 100644 openair1/SCHED_UE/pucch_pc.c mode change 100755 => 100644 openair1/SCHED_UE/srs_pc.c mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/README.txt mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/defs.h mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/extern.h mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/proto.h mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/socket.c mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/socket.h mode change 100755 => 100644 openair1/SIMULATION/ETH_TRANSPORT/vars.h mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/LTE_Configuration.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/LTE_Configuration.h mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/README.txt mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/blerSimus.zip mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/dlsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/dlsim_tm4.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/dlsim_tm7.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/fancyheadings.sty mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/framegen.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/gpib_send.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/gpib_send.h mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/mat2wv.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/mbmssim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pbch_awgn.txt mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pbchsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pdcchsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/p mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/prachsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/pucchsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/scansim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/signalanalyzer.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/signalanalyzer.h mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/syncsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/test.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/ulsim.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/ulsim2.c mode change 100755 => 100644 openair1/SIMULATION/LTE_PHY/unitary_defs.h mode change 100755 => 100644 openair1/SIMULATION/Makefile.inc mode change 100755 => 100644 openair1/SIMULATION/RF/Makefile mode change 100755 => 100644 openair1/SIMULATION/RF/README.txt mode change 100755 => 100644 openair1/SIMULATION/RF/adc.c mode change 100755 => 100644 openair1/SIMULATION/RF/dac.c mode change 100755 => 100644 openair1/SIMULATION/RF/rf.c mode change 100755 => 100644 openair1/SIMULATION/RF/rf.h mode change 100755 => 100644 openair1/SIMULATION/TOOLS/abstraction.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/ch_desc_proto.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/corr_mat.m mode change 100755 => 100644 openair1/SIMULATION/TOOLS/gauss.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/llr_quantization.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/multipath_channel.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/multipath_tv_channel.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/random_channel.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/rangen_double.c mode change 100755 => 100644 openair1/SIMULATION/TOOLS/scm.m mode change 100755 => 100644 openair1/SIMULATION/TOOLS/scm_corrmat.h mode change 100755 => 100644 openair1/SIMULATION/TOOLS/sim.h mode change 100755 => 100644 openair1/SIMULATION/TOOLS/taus.c mode change 100755 => 100644 openair2/COMMON/as_message.h mode change 100755 => 100644 openair2/COMMON/commonDef.h mode change 100755 => 100644 openair2/COMMON/gtpv1_u_messages_def.h mode change 100755 => 100644 openair2/COMMON/gtpv1_u_messages_types.h mode change 100755 => 100644 openair2/COMMON/intertask_interface_conf.h mode change 100755 => 100644 openair2/COMMON/mac_messages_def.h mode change 100755 => 100644 openair2/COMMON/mac_messages_types.h mode change 100755 => 100644 openair2/COMMON/mac_primitives.h mode change 100755 => 100644 openair2/COMMON/mac_rlc_primitives.h mode change 100755 => 100644 openair2/COMMON/mac_rrc_primitives.h mode change 100755 => 100644 openair2/COMMON/messages_def.h mode change 100755 => 100644 openair2/COMMON/messages_types.h mode change 100755 => 100644 openair2/COMMON/nas_messages_def.h mode change 100755 => 100644 openair2/COMMON/nas_messages_types.h mode change 100755 => 100644 openair2/COMMON/networkDef.h mode change 100755 => 100644 openair2/COMMON/openair_defs.h mode change 100755 => 100644 openair2/COMMON/pdcp_messages_def.h mode change 100755 => 100644 openair2/COMMON/pdcp_messages_types.h mode change 100755 => 100644 openair2/COMMON/phy_messages_def.h mode change 100755 => 100644 openair2/COMMON/phy_messages_types.h mode change 100755 => 100644 openair2/COMMON/platform_constants.h mode change 100755 => 100644 openair2/COMMON/platform_types.h mode change 100755 => 100644 openair2/COMMON/ral_messages_def.h mode change 100755 => 100644 openair2/COMMON/ral_messages_types.h mode change 100755 => 100644 openair2/COMMON/rlc_messages_def.h mode change 100755 => 100644 openair2/COMMON/rlc_messages_types.h mode change 100755 => 100644 openair2/COMMON/rrc_messages_def.h mode change 100755 => 100644 openair2/COMMON/rrc_messages_types.h mode change 100755 => 100644 openair2/COMMON/rrm_config_structs.h mode change 100755 => 100644 openair2/COMMON/rrm_constants.h mode change 100755 => 100644 openair2/COMMON/rtos_header.h mode change 100755 => 100644 openair2/COMMON/s1ap_messages_def.h mode change 100755 => 100644 openair2/COMMON/s1ap_messages_types.h mode change 100755 => 100644 openair2/COMMON/sctp_messages_def.h mode change 100755 => 100644 openair2/COMMON/sctp_messages_types.h mode change 100755 => 100644 openair2/COMMON/tasks_def.h mode change 100755 => 100644 openair2/COMMON/udp_messages_def.h mode change 100755 => 100644 openair2/COMMON/udp_messages_types.h mode change 100755 => 100644 openair2/COMMON/x2ap_messages_def.h mode change 100755 => 100644 openair2/COMMON/x2ap_messages_types.h mode change 100755 => 100644 openair2/DOCS/DOXYGEN/Doxyfile mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/DLC_arch.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/Diapositive6.JPG mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/Framing.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/Framing.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC Services.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Measurements.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Services.eps mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Services.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Services2.eps mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Services2.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_arch.eps mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/PHY_arch.eps mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/PHY_arch.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/PHY_arch.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/QAM modulation.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/QAM modulation.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/QAMmodulation.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/Transmission.pdf mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/Transmission.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/Transmission.ps mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/cellular_topology.doc mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/cellular_topology.pdf mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/cellular_topology_small.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/channel server.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/channel server.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/convolutional.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/convolutional.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/irs_dcf.jpg mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/irs_pcf.jpg mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/layer2_stack.jpg mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/layer2_stack.pdf mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/layer2_stack.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mac_channels.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mac_wbs.jpg mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/macphynet.eps mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/macphynet.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mesh_frame.pdf mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mesh_topology.pdf mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/mesh_topology_small.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/scrambler.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/scrambler.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/w3g4f_framing.png mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd mode change 100755 => 100644 openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd mode change 100755 => 100644 openair2/DOCS/Documentation/flow.txt mode change 100755 => 100644 openair2/DOCS/TEMPLATES/CODE/Doxyfile mode change 100755 => 100644 openair2/DOCS/TEMPLATES/CODE/example_doxy.h mode change 100755 => 100644 openair2/DOCS/TEMPLATES/CODE/images/arch.eps mode change 100755 => 100644 openair2/DOCS/TEMPLATES/CODE/images/arch.png mode change 100755 => 100644 openair2/DOCS/TEMPLATES/README/Readme.doxy mode change 100755 => 100644 openair2/DOCS/TEMPLATES/README/readme.txt mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_slice_verification.h mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/PDCP/flexran_agent_pdcp_defs.h mode change 100755 => 100644 openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc_defs.h mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/config_common.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/config_messages.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/control_delegation.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/controller_commands.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/flexran.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/header.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/stats_common.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/stats_messages.proto mode change 100755 => 100644 openair2/ENB_APP/MESSAGES/V2/time_common.proto mode change 100755 => 100644 openair2/ENB_APP/Makefile.inc mode change 100755 => 100644 openair2/ENB_APP/NB_IoT_config.h mode change 100755 => 100644 openair2/ENB_APP/NB_IoT_interface.h mode change 100755 => 100644 openair2/ENB_APP/RRC_config_tools.h mode change 100755 => 100644 openair2/ENB_APP/enb_app.c mode change 100755 => 100644 openair2/ENB_APP/enb_app.h mode change 100755 => 100644 openair2/ENB_APP/enb_config.c mode change 100755 => 100644 openair2/ENB_APP/enb_config.h mode change 100755 => 100644 openair2/ENB_APP/enb_paramdef.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_async.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_async.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_common.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_common.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_common_internal.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_common_internal.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_defs.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_extern.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_handler.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_net_comm.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_net_comm.h mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_task_manager.c mode change 100755 => 100644 openair2/ENB_APP/flexran_agent_task_manager.h mode change 100755 => 100644 openair2/LAYER2/MAC/config.c mode change 100755 => 100644 openair2/LAYER2/MAC/defs.h mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler.c mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler_RA.c mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler_bch.c mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler_dlsch.c mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler_mch.c mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler_primitives.c mode change 100755 => 100644 openair2/LAYER2/MAC/eNB_scheduler_ulsch.c mode change 100755 => 100644 openair2/LAYER2/MAC/l1_helpers.c mode change 100755 => 100644 openair2/LAYER2/MAC/lte_transport_init.c mode change 100755 => 100644 openair2/LAYER2/MAC/mac_extern.h mode change 100755 => 100644 openair2/LAYER2/MAC/mac_proto.h mode change 100755 => 100644 openair2/LAYER2/MAC/main.c mode change 100755 => 100644 openair2/LAYER2/MAC/pre_processor.c mode change 100755 => 100644 openair2/LAYER2/MAC/ra_procedures.c mode change 100755 => 100644 openair2/LAYER2/MAC/rar_tools.c mode change 100755 => 100644 openair2/LAYER2/MAC/ue_procedures.c mode change 100755 => 100644 openair2/LAYER2/Makefile.inc mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp.h mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c mode change 100755 => 100644 openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c mode change 100755 => 100644 openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h mode change 100755 => 100644 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c mode change 100755 => 100644 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h mode change 100755 => 100644 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h mode change 100755 => 100644 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c mode change 100755 => 100644 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h mode change 100755 => 100644 openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/Makefile mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/README mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c mode change 100755 => 100644 openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h mode change 100755 => 100644 openair2/LAYER2/RLC/mac_primitives.h mode change 100755 => 100644 openair2/LAYER2/RLC/rlc.c mode change 100755 => 100644 openair2/LAYER2/RLC/rlc.h mode change 100755 => 100644 openair2/LAYER2/RLC/rlc_def.h mode change 100755 => 100644 openair2/LAYER2/RLC/rlc_def_lte.h mode change 100755 => 100644 openair2/LAYER2/RLC/rlc_mac.c mode change 100755 => 100644 openair2/LAYER2/RLC/rlc_mpls.c mode change 100755 => 100644 openair2/LAYER2/RLC/rlc_primitives.h mode change 100755 => 100644 openair2/LAYER2/RLC/rlc_rrc.c mode change 100755 => 100644 openair2/LAYER2/openair2_proc.c mode change 100755 => 100644 openair2/LAYER2/register.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/RB_TOOL/Makefile mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/classifier.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/common.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/constant.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/device.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/ioctl.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/ioctl.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/local.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/netlink.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/proto_extern.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/sap.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/LITE/tool.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/classifier.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/common.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/constant.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/device.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/ioctl.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/ioctl.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/local.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/mesh.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/netlink.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/proto_extern.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/sap.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/MESH/tool.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/README mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/common.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/constant.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/device.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/local.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/netlink.c mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/proto_extern.h mode change 100755 => 100644 openair2/NETWORK_DRIVER/UE_IP/sap.h mode change 100755 => 100644 openair2/PHY_INTERFACE/IF_Module.c mode change 100755 => 100644 openair2/PHY_INTERFACE/IF_Module.h mode change 100755 => 100644 openair2/PHY_INTERFACE/mac_phy_primitives.c mode change 100755 => 100644 openair2/PHY_INTERFACE/mac_phy_primitives.h mode change 100755 => 100644 openair2/PHY_INTERFACE/phy_interface_extern.h mode change 100755 => 100644 openair2/PHY_INTERFACE/phy_interface_vars.h mode change 100755 => 100644 openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c mode change 100755 => 100644 openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h mode change 100755 => 100644 openair2/RRC/LITE/rrc_common.c mode change 100755 => 100644 openair2/RRC/LTE/L2_interface_ue.c mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/Makefile.inc mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/README.txt mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1_msg.c mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1_msg.h mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1_patch mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-860.txt mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-a20.txt mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-c60.txt mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 mode change 100755 => 100644 openair2/RRC/LTE/plmn_data.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_2_rrm_msg.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_UE.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_UE_ral.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_UE_ral.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_defs.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_GTPV1U.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_GTPV1U.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_S1AP.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_S1AP.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_UE_context.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_UE_context.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_ral.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_eNB_ral.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_extern.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_proto.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_rrm_interface.c mode change 100755 => 100644 openair2/RRC/LTE/rrc_rrm_interface.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_types.h mode change 100755 => 100644 openair2/RRC/LTE/rrc_vars.h mode change 100755 => 100644 openair2/RRC/LTE/rrm_2_rrc_msg.c mode change 100755 => 100644 openair2/RRC/LTE/utils.c mode change 100755 => 100644 openair2/RRC/NAS/Makefile.inc mode change 100755 => 100644 openair2/RRC/NAS/nas_config.c mode change 100755 => 100644 openair2/RRC/NAS/nas_config.h mode change 100755 => 100644 openair2/RRC/NAS/rb_config.c mode change 100755 => 100644 openair2/RRC/NAS/rb_config.h mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/link_manager.c mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/link_manager.h mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/message_queue.c mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/message_queue.h mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/ringbuffer_queue.c mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/ringbuffer_queue.h mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/socket_link.c mode change 100755 => 100644 openair2/UTIL/ASYNC_IF/socket_link.h mode change 100755 => 100644 openair2/UTIL/BIGPHYS/bigphys.c mode change 100755 => 100644 openair2/UTIL/BIGPHYS/defs.h mode change 100755 => 100644 openair2/UTIL/CLI/cli.c mode change 100755 => 100644 openair2/UTIL/CLI/cli.h mode change 100755 => 100644 openair2/UTIL/CLI/cli_cmd.c mode change 100755 => 100644 openair2/UTIL/CLI/cli_if.h mode change 100755 => 100644 openair2/UTIL/CLI/cli_server.c mode change 100755 => 100644 openair2/UTIL/FIFO/pad_list.c mode change 100755 => 100644 openair2/UTIL/FIFO/pad_list.h mode change 100755 => 100644 openair2/UTIL/FIFO/types.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.linux mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.windows mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.windows mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_and_gnumake/Makefile mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Makefile mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.user mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.user mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.user mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/build/gcc_and_gnumake/Makefile mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/build/sdk_for_windows_7_and_gnumake/makefile mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.user mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c mode change 100755 => 100644 openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h mode change 100755 => 100644 openair2/UTIL/LISTS/list.c mode change 100755 => 100644 openair2/UTIL/LISTS/list.h mode change 100755 => 100644 openair2/UTIL/LISTS/list2.c mode change 100755 => 100644 openair2/UTIL/MATH/crc_byte.c mode change 100755 => 100644 openair2/UTIL/MATH/oml.c mode change 100755 => 100644 openair2/UTIL/MATH/oml.h mode change 100755 => 100644 openair2/UTIL/MATH/random.c mode change 100755 => 100644 openair2/UTIL/MATH/random_proto_extern.h mode change 100755 => 100644 openair2/UTIL/MATH/taus.c mode change 100755 => 100644 openair2/UTIL/MEM/mem_block.c mode change 100755 => 100644 openair2/UTIL/MEM/mem_block.h mode change 100755 => 100644 openair2/UTIL/MEM/mem_mngt.c mode change 100755 => 100644 openair2/UTIL/MEM/mem_mngt_proto_extern.h mode change 100755 => 100644 openair2/UTIL/MEM/mem_pool.h mode change 100755 => 100644 openair2/UTIL/Makefile.inc mode change 100755 => 100644 openair2/UTIL/OCG/.directory mode change 100755 => 100644 openair2/UTIL/OCG/Doxyfile mode change 100755 => 100644 openair2/UTIL/OCG/OCG.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_call_emu.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_call_emu.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_config_mobi.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_config_mobi.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_create_dir.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_create_dir.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_detect_file.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_detect_file.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_extern.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_generate_report.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_generate_report.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_get_opt.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_get_opt.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_if.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_parse_XML.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_parse_XML.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_parse_filename.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_parse_filename.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_save_XML.c mode change 100755 => 100644 openair2/UTIL/OCG/OCG_save_XML.h mode change 100755 => 100644 openair2/UTIL/OCG/OCG_vars.h mode change 100755 => 100644 openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml mode change 100755 => 100644 openair2/UTIL/OCG/eurecom_20110208110244.xml mode change 100755 => 100644 openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml mode change 100755 => 100644 openair2/UTIL/OCG/makefile mode change 100755 => 100644 openair2/UTIL/OCG/readme.txt mode change 100755 => 100644 openair2/UTIL/OCG/temp_output/OCG_report.xml mode change 100755 => 100644 openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf mode change 100755 => 100644 openair2/UTIL/OMG/README.TXT mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/README.TXT mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/example_trace.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/handover.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/handover_1ue.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/mobility_2ues.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/mobility_3ues.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/regular.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/static_1enb.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/static_2ues.tr mode change 100755 => 100644 openair2/UTIL/OMG/TRACE/zero_speed.tr mode change 100755 => 100644 openair2/UTIL/OMG/common.c mode change 100755 => 100644 openair2/UTIL/OMG/defs.h mode change 100755 => 100644 openair2/UTIL/OMG/grid.c mode change 100755 => 100644 openair2/UTIL/OMG/grid.h mode change 100755 => 100644 openair2/UTIL/OMG/job.c mode change 100755 => 100644 openair2/UTIL/OMG/makefile mode change 100755 => 100644 openair2/UTIL/OMG/makefile_old mode change 100755 => 100644 openair2/UTIL/OMG/makefile_standalone mode change 100755 => 100644 openair2/UTIL/OMG/mobility.txt mode change 100755 => 100644 openair2/UTIL/OMG/mobility_parser.c mode change 100755 => 100644 openair2/UTIL/OMG/mobility_parser.h mode change 100755 => 100644 openair2/UTIL/OMG/omg.c mode change 100755 => 100644 openair2/UTIL/OMG/omg.h mode change 100755 => 100644 openair2/UTIL/OMG/omg_constants.h mode change 100755 => 100644 openair2/UTIL/OMG/omg_hashtable.c mode change 100755 => 100644 openair2/UTIL/OMG/omg_hashtable.h mode change 100755 => 100644 openair2/UTIL/OMG/omg_vars.h mode change 100755 => 100644 openair2/UTIL/OMG/rwalk.c mode change 100755 => 100644 openair2/UTIL/OMG/rwalk.h mode change 100755 => 100644 openair2/UTIL/OMG/rwp.c mode change 100755 => 100644 openair2/UTIL/OMG/rwp.h mode change 100755 => 100644 openair2/UTIL/OMG/static.c mode change 100755 => 100644 openair2/UTIL/OMG/static.h mode change 100755 => 100644 openair2/UTIL/OMG/steadystaterwp.c mode change 100755 => 100644 openair2/UTIL/OMG/steadystaterwp.h mode change 100755 => 100644 openair2/UTIL/OMG/trace.c mode change 100755 => 100644 openair2/UTIL/OMG/trace.h mode change 100755 => 100644 openair2/UTIL/OMG/trace_hashtable.c mode change 100755 => 100644 openair2/UTIL/OMG/trace_hashtable.h mode change 100755 => 100644 openair2/UTIL/OMV/README.txt mode change 100755 => 100644 openair2/UTIL/OMV/blue.png mode change 100755 => 100644 openair2/UTIL/OMV/communicationthread.cpp mode change 100755 => 100644 openair2/UTIL/OMV/communicationthread.h mode change 100755 => 100644 openair2/UTIL/OMV/green.png mode change 100755 => 100644 openair2/UTIL/OMV/jpg.jpeg mode change 100755 => 100644 openair2/UTIL/OMV/mus.png mode change 100755 => 100644 openair2/UTIL/OMV/mywindow.cpp mode change 100755 => 100644 openair2/UTIL/OMV/mywindow.h mode change 100755 => 100644 openair2/UTIL/OMV/new.jpg mode change 100755 => 100644 openair2/UTIL/OMV/new2.jpg mode change 100755 => 100644 openair2/UTIL/OMV/omv.cpp mode change 100755 => 100644 openair2/UTIL/OMV/openglwidget.cpp mode change 100755 => 100644 openair2/UTIL/OMV/openglwidget.h mode change 100755 => 100644 openair2/UTIL/OMV/red.png mode change 100755 => 100644 openair2/UTIL/OMV/structures.h mode change 100755 => 100644 openair2/UTIL/OMV/white.png mode change 100755 => 100644 openair2/UTIL/OMV/wow.png mode change 100755 => 100644 openair2/UTIL/OPT/README.txt mode change 100755 => 100644 openair2/UTIL/OPT/mac_pcap.h mode change 100755 => 100644 openair2/UTIL/OPT/opt.h mode change 100755 => 100644 openair2/UTIL/OPT/packet-mac-lte.h mode change 100755 => 100644 openair2/UTIL/OPT/probe.c mode change 100755 => 100644 openair2/UTIL/OPT/vars.h mode change 100755 => 100644 openair2/UTIL/OSA/README mode change 100755 => 100644 openair2/UTIL/OSA/osa_defs.h mode change 100755 => 100644 openair2/UTIL/OSA/osa_internal.h mode change 100755 => 100644 openair2/UTIL/OSA/osa_key_deriver.c mode change 100755 => 100644 openair2/UTIL/OSA/osa_rijndael.c mode change 100755 => 100644 openair2/UTIL/OSA/osa_rijndael.h mode change 100755 => 100644 openair2/UTIL/OSA/osa_snow3g.c mode change 100755 => 100644 openair2/UTIL/OSA/osa_snow3g.h mode change 100755 => 100644 openair2/UTIL/OSA/osa_stream_eea.c mode change 100755 => 100644 openair2/UTIL/OSA/osa_stream_eia.c mode change 100755 => 100644 openair2/UTIL/OSD/OCG.pid mode change 100755 => 100644 openair2/UTIL/OSD/OpenAirEmu.conf mode change 100755 => 100644 openair2/UTIL/OSD/Platform_is_running.php mode change 100755 => 100644 openair2/UTIL/OSD/README.txt mode change 100755 => 100644 openair2/UTIL/OSD/css/blueprint.css mode change 100755 => 100644 openair2/UTIL/OSD/css/fix-ie-rtl.css mode change 100755 => 100644 openair2/UTIL/OSD/css/fix-ie.css mode change 100755 => 100644 openair2/UTIL/OSD/css/ie.css mode change 100755 => 100644 openair2/UTIL/OSD/css/ie6.css mode change 100755 => 100644 openair2/UTIL/OSD/css/images/false.png mode change 100755 => 100644 openair2/UTIL/OSD/css/images/false2.png mode change 100755 => 100644 openair2/UTIL/OSD/css/images/lquote.png mode change 100755 => 100644 openair2/UTIL/OSD/css/images/true.png mode change 100755 => 100644 openair2/UTIL/OSD/css/images/warning.png mode change 100755 => 100644 openair2/UTIL/OSD/css/print.css mode change 100755 => 100644 openair2/UTIL/OSD/css/screen.css mode change 100755 => 100644 openair2/UTIL/OSD/css/style.css mode change 100755 => 100644 openair2/UTIL/OSD/form.php mode change 100755 => 100644 openair2/UTIL/OSD/header.php mode change 100755 => 100644 openair2/UTIL/OSD/httpd-result.conf mode change 100755 => 100644 openair2/UTIL/OSD/index.php mode change 100755 => 100644 openair2/UTIL/OSD/jquery/jquery.js mode change 100755 => 100644 openair2/UTIL/OSD/recep.php mode change 100755 => 100644 openair2/UTIL/OSD/toto.php mode change 100755 => 100644 openair2/UTIL/OTG/Doxyfile mode change 100755 => 100644 openair2/UTIL/OTG/help_OTGplot.txt mode change 100755 => 100644 openair2/UTIL/OTG/main.c mode change 100755 => 100644 openair2/UTIL/OTG/makefile mode change 100755 => 100644 openair2/UTIL/OTG/otg.c mode change 100755 => 100644 openair2/UTIL/OTG/otg.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_config.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_defs.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_externs.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_form.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_form.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_kpi.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_kpi.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_models.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_models.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_rx.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_rx.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_rx_socket.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_rx_socket.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_tx.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_tx.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_tx_socket.c mode change 100755 => 100644 openair2/UTIL/OTG/otg_tx_socket.h mode change 100755 => 100644 openair2/UTIL/OTG/otg_vars.h mode change 100755 => 100644 openair2/UTIL/OTG/traffic_config.h mode change 100755 => 100644 openair2/UTIL/TIMER/umts_timer.c mode change 100755 => 100644 openair2/UTIL/TIMER/umts_timer.h mode change 100755 => 100644 openair2/UTIL/TIMER/umts_timer_proto_extern.h mode change 100755 => 100644 openair2/UTIL/TIMER/umts_timer_struct.h mode change 100755 => 100644 openair2/UTIL/TRACE/fifo_printf.c mode change 100755 => 100644 openair2/UTIL/TRACE/fifo_printf.h mode change 100755 => 100644 openair2/UTIL/TRACE/fifo_printf_proto_extern.h mode change 100755 => 100644 openair2/UTIL/TRACE/print.h mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 mode change 100755 => 100644 openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py mode change 100755 => 100644 openair2/X2AP/Makefile.inc mode change 100755 => 100644 openair2/X2AP/x2ap_common.c mode change 100755 => 100644 openair2/X2AP/x2ap_common.h mode change 100755 => 100644 openair2/X2AP/x2ap_eNB.h mode change 100755 => 100644 openair2/X2AP/x2ap_eNB_encoder.c mode change 100755 => 100644 openair2/X2AP/x2ap_eNB_handler.h mode change 100755 => 100644 openair2/X2AP/x2ap_eNB_management_procedures.h mode change 100755 => 100644 openair3/COMMON/as_message.h mode change 100755 => 100644 openair3/COMMON/common_types.h mode change 100755 => 100644 openair3/COMMON/gtpv1_u_messages_def.h mode change 100755 => 100644 openair3/COMMON/gtpv1_u_messages_types.h mode change 100755 => 100644 openair3/COMMON/intertask_interface_conf.h mode change 100755 => 100644 openair3/COMMON/messages_def.h mode change 100755 => 100644 openair3/COMMON/messages_types.h mode change 100755 => 100644 openair3/COMMON/nas_messages_def.h mode change 100755 => 100644 openair3/COMMON/nas_messages_types.h mode change 100755 => 100644 openair3/COMMON/s1ap_messages_def.h mode change 100755 => 100644 openair3/COMMON/s1ap_messages_types.h mode change 100755 => 100644 openair3/COMMON/sctp_messages_def.h mode change 100755 => 100644 openair3/COMMON/sctp_messages_types.h mode change 100755 => 100644 openair3/COMMON/security_types.h mode change 100755 => 100644 openair3/COMMON/tasks_def.h mode change 100755 => 100644 openair3/COMMON/udp_messages_def.h mode change 100755 => 100644 openair3/COMMON/udp_messages_types.h mode change 100755 => 100644 openair3/DOCS/DOXYGEN/Doxyfile.in mode change 100755 => 100644 openair3/DOCS/DOXYGEN/Makefile.am mode change 100755 => 100644 openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf mode change 100755 => 100644 openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex mode change 100755 => 100644 openair3/DOCS/Latex/EPC/EPC.pdf mode change 100755 => 100644 openair3/DOCS/Latex/EPC/EPC.tex mode change 100755 => 100644 openair3/DOCS/Latex/EPC/Makefile mode change 100755 => 100644 openair3/DOCS/Makefile.am mode change 100755 => 100644 openair3/GTPV1-U/Makefile.am mode change 100755 => 100644 openair3/GTPV1-U/Makefile.eNB mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u.h mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u_eNB.c mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u_eNB_defs.h mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u_eNB_task.h mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u_sgw_defs.h mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u_task.c mode change 100755 => 100644 openair3/GTPV1-U/gtpv1u_teid_pool.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/AUTHORS mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/COPYING mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/ChangeLog mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/NEWS mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/README mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.am mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.in mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h mode change 100755 => 100644 openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/Makefile mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/as_message.c mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/as_message.h mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/l2_message.h mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/nas_message.c mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/nas_message.h mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/network_api.c mode change 100755 => 100644 openair3/NAS/COMMON/API/NETWORK/network_api.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachComplete.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachComplete.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachReject.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachReject.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AttachRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/DetachAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/DetachAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/DetachRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/DetachRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/EmmInformation.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/EmmInformation.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/EmmStatus.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/EmmStatus.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/Makefile mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/ServiceReject.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/ServiceReject.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/emm_cause.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/emm_msg.c mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/emm_msg.h mode change 100755 => 100644 openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/EsmStatus.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/EsmStatus.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/Makefile mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/esm_cause.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/esm_msg.c mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/esm_msg.h mode change 100755 => 100644 openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AccessPointName.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AccessPointName.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AdditionalUpdateResult.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AdditionalUpdateResult.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AdditionalUpdateType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AdditionalUpdateType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationParameterRand.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationParameterRand.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/Cli.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/Cli.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/CsfbResponse.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/CsfbResponse.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/DaylightSavingTime.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/DaylightSavingTime.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/DetachType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/DetachType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/DrxParameter.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/DrxParameter.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EmergencyNumberList.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EmergencyNumberList.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EmmCause.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EmmCause.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsAttachResult.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsAttachResult.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsAttachType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsAttachType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsBearerContextStatus.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsBearerContextStatus.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsBearerIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsBearerIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsMobileIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsMobileIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsQualityOfService.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsQualityOfService.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsUpdateResult.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsUpdateResult.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsUpdateType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EpsUpdateType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EsmCause.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EsmCause.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/EsmMessageContainer.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/EsmMessageContainer.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/GprsTimer.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/GprsTimer.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/GutiType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/GutiType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/IdentityType2.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/IdentityType2.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ImeisvRequest.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ImeisvRequest.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/LcsClientIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/LcsClientIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/LcsIndicator.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/LcsIndicator.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/LocationAreaIdentification.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/LocationAreaIdentification.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/Makefile mode change 100755 => 100644 openair3/NAS/COMMON/IES/MessageType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/MessageType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/MobileIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/MobileIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/MobileStationClassmark2.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/MobileStationClassmark2.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/MobileStationClassmark3.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/MobileStationClassmark3.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/MsNetworkCapability.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/MsNetworkCapability.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasKeySetIdentifier.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasKeySetIdentifier.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasMessageContainer.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasMessageContainer.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasRequestType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasRequestType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/NetworkName.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/NetworkName.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/Nonce.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/Nonce.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/PTmsiSignature.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/PTmsiSignature.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/PacketFlowIdentifier.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/PacketFlowIdentifier.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/PagingIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/PagingIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/PdnAddress.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/PdnAddress.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/PdnType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/PdnType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/PlmnList.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/PlmnList.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ProtocolDiscriminator.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ProtocolDiscriminator.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/QualityOfService.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/QualityOfService.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/RadioPriority.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/RadioPriority.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/SecurityHeaderType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/SecurityHeaderType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ServiceType.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ServiceType.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/ShortMac.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/ShortMac.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/SsCode.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/SsCode.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/SupportedCodecList.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/SupportedCodecList.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TimeZone.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TimeZone.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TimeZoneAndTime.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TimeZoneAndTime.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TmsiStatus.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TmsiStatus.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrackingAreaIdentity.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrackingAreaIdentity.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrafficFlowTemplate.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TrafficFlowTemplate.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/TransactionIdentifier.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/TransactionIdentifier.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/UeNetworkCapability.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/UeNetworkCapability.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/UeSecurityCapability.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/UeSecurityCapability.h mode change 100755 => 100644 openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c mode change 100755 => 100644 openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/Makefile mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/OctetString.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/OctetString.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/TLVDecoder.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/TLVDecoder.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/TLVEncoder.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/TLVEncoder.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/device.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/device.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/memory.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/memory.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/nas_log.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/nas_timer.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/nas_timer.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/parser.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/parser.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/socket.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/socket.h mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/stty.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/tst/Makefile mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/tst/timer.c mode change 100755 => 100644 openair3/NAS/COMMON/UTIL/tst/timer_debug.txt mode change 100755 => 100644 openair3/NAS/COMMON/commonDef.h mode change 100755 => 100644 openair3/NAS/COMMON/networkDef.h mode change 100755 => 100644 openair3/NAS/COMMON/securityDef.h mode change 100755 => 100644 openair3/NAS/COMMON/userDef.h mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/Makefile mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_data.c mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_data.h mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_process.c mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_process.h mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/nas_data.c mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/nas_data.h mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/nas_process.c mode change 100755 => 100644 openair3/NAS/TEST/AS_SIMULATOR/nas_process.h mode change 100755 => 100644 openair3/NAS/TEST/MSC/ActivatePDN.png mode change 100755 => 100644 openair3/NAS/TEST/MSC/AuthenticationReject.png mode change 100755 => 100644 openair3/NAS/TEST/MSC/DeactivatePDN.png mode change 100755 => 100644 openair3/NAS/TEST/MSC/InitialAttach.png mode change 100755 => 100644 openair3/NAS/TEST/MSC/InitialAttachReject.png mode change 100755 => 100644 openair3/NAS/TEST/MSC/NomalDetach.png mode change 100755 => 100644 openair3/NAS/TEST/MSC/README mode change 100755 => 100644 openair3/NAS/TEST/MSC/SwitchOffDetach.png mode change 100755 => 100644 openair3/NAS/TEST/NETWORK/Makefile mode change 100755 => 100644 openair3/NAS/TEST/NETWORK/README mode change 100755 => 100644 openair3/NAS/TEST/NETWORK/network_parser.c mode change 100755 => 100644 openair3/NAS/TEST/NETWORK/network_parser.h mode change 100755 => 100644 openair3/NAS/TEST/NETWORK/network_simulator.c mode change 100755 => 100644 openair3/NAS/TEST/USER/Makefile mode change 100755 => 100644 openair3/NAS/TEST/USER/user_parser.c mode change 100755 => 100644 openair3/NAS/TEST/USER/user_parser.h mode change 100755 => 100644 openair3/NAS/TEST/USER/user_simulator.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf2uedata.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf2uedata.h mode change 100755 => 100644 openair3/NAS/TOOLS/conf_emm.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf_emm.h mode change 100755 => 100644 openair3/NAS/TOOLS/conf_network.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf_network.h mode change 100755 => 100644 openair3/NAS/TOOLS/conf_parser.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf_parser.h mode change 100755 => 100644 openair3/NAS/TOOLS/conf_user_data.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf_user_data.h mode change 100755 => 100644 openair3/NAS/TOOLS/conf_user_plmn.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf_user_plmn.h mode change 100755 => 100644 openair3/NAS/TOOLS/conf_usim.c mode change 100755 => 100644 openair3/NAS/TOOLS/conf_usim.h mode change 100755 => 100644 openair3/NAS/TOOLS/display.c mode change 100755 => 100644 openair3/NAS/TOOLS/display.h mode change 100755 => 100644 openair3/NAS/TOOLS/fs.c mode change 100755 => 100644 openair3/NAS/TOOLS/fs.h mode change 100755 => 100644 openair3/NAS/TOOLS/network.h mode change 100755 => 100644 openair3/NAS/TOOLS/nvram.c mode change 100755 => 100644 openair3/NAS/TOOLS/ue_bcom_test.conf mode change 100755 => 100644 openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf mode change 100755 => 100644 openair3/NAS/TOOLS/ue_tcl_test.conf mode change 100755 => 100644 openair3/NAS/TOOLS/usim.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/at_command.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/at_command.h mode change 100755 => 100644 openair3/NAS/UE/API/USER/at_error.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/at_error.h mode change 100755 => 100644 openair3/NAS/UE/API/USER/at_response.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/at_response.h mode change 100755 => 100644 openair3/NAS/UE/API/USER/tst/at_parser.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/tst/at_parser.in mode change 100755 => 100644 openair3/NAS/UE/API/USER/tst/at_parser.in.bis mode change 100755 => 100644 openair3/NAS/UE/API/USER/tst/at_parser.out mode change 100755 => 100644 openair3/NAS/UE/API/USER/tst/at_parser.out.bis mode change 100755 => 100644 openair3/NAS/UE/API/USER/tst/smartcom.txt mode change 100755 => 100644 openair3/NAS/UE/API/USER/user_api.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/user_api.h mode change 100755 => 100644 openair3/NAS/UE/API/USER/user_api_defs.h mode change 100755 => 100644 openair3/NAS/UE/API/USER/user_indication.c mode change 100755 => 100644 openair3/NAS/UE/API/USER/user_indication.h mode change 100755 => 100644 openair3/NAS/UE/API/USIM/aka_functions.c mode change 100755 => 100644 openair3/NAS/UE/API/USIM/aka_functions.h mode change 100755 => 100644 openair3/NAS/UE/API/USIM/usim_api.c mode change 100755 => 100644 openair3/NAS/UE/API/USIM/usim_api.h mode change 100755 => 100644 openair3/NAS/UE/EMM/Attach.c mode change 100755 => 100644 openair3/NAS/UE/EMM/Authentication.c mode change 100755 => 100644 openair3/NAS/UE/EMM/Authentication.h mode change 100755 => 100644 openair3/NAS/UE/EMM/Detach.c mode change 100755 => 100644 openair3/NAS/UE/EMM/EmmStatusHdl.c mode change 100755 => 100644 openair3/NAS/UE/EMM/Identification.c mode change 100755 => 100644 openair3/NAS/UE/EMM/IdleMode.c mode change 100755 => 100644 openair3/NAS/UE/EMM/IdleMode.h mode change 100755 => 100644 openair3/NAS/UE/EMM/IdleMode_defs.h mode change 100755 => 100644 openair3/NAS/UE/EMM/LowerLayer.c mode change 100755 => 100644 openair3/NAS/UE/EMM/LowerLayer.h mode change 100755 => 100644 openair3/NAS/UE/EMM/LowerLayer_defs.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregistered.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmNull.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegistered.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_as.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_as.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_asDef.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_esm.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_esm.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_esmDef.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_fsm.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_fsm.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_recv.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_recv.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_reg.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_reg.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_regDef.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_sap.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_sap.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_send.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SAP/emm_send.h mode change 100755 => 100644 openair3/NAS/UE/EMM/SecurityModeControl.c mode change 100755 => 100644 openair3/NAS/UE/EMM/SecurityModeControl.h mode change 100755 => 100644 openair3/NAS/UE/EMM/ServiceRequestHdl.c mode change 100755 => 100644 openair3/NAS/UE/EMM/TrackingAreaUpdate.c mode change 100755 => 100644 openair3/NAS/UE/EMM/emmData.h mode change 100755 => 100644 openair3/NAS/UE/EMM/emm_fsm_defs.h mode change 100755 => 100644 openair3/NAS/UE/EMM/emm_main.c mode change 100755 => 100644 openair3/NAS/UE/EMM/emm_main.h mode change 100755 => 100644 openair3/NAS/UE/EMM/emm_proc.h mode change 100755 => 100644 openair3/NAS/UE/EMM/emm_proc_defs.h mode change 100755 => 100644 openair3/NAS/UE/EMM/emm_timers.h mode change 100755 => 100644 openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c mode change 100755 => 100644 openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c mode change 100755 => 100644 openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c mode change 100755 => 100644 openair3/NAS/UE/ESM/EsmStatusHdl.c mode change 100755 => 100644 openair3/NAS/UE/ESM/PdnConnectivity.c mode change 100755 => 100644 openair3/NAS/UE/ESM/PdnDisconnect.c mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_recv.c mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_recv.h mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_sap.c mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_sap.h mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_sapDef.h mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_send.c mode change 100755 => 100644 openair3/NAS/UE/ESM/SAP/esm_send.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esmData.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_ebr.c mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_ebr.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_ebr_context.c mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_ebr_context.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_ip.c mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_main.c mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_main.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_proc.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_pt.c mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_pt.h mode change 100755 => 100644 openair3/NAS/UE/ESM/esm_pt_defs.h mode change 100755 => 100644 openair3/NAS/UE/UEprocess.c mode change 100755 => 100644 openair3/NAS/UE/nas_itti_messaging.c mode change 100755 => 100644 openair3/NAS/UE/nas_itti_messaging.h mode change 100755 => 100644 openair3/NAS/UE/nas_network.c mode change 100755 => 100644 openair3/NAS/UE/nas_network.h mode change 100755 => 100644 openair3/NAS/UE/nas_parser.c mode change 100755 => 100644 openair3/NAS/UE/nas_parser.h mode change 100755 => 100644 openair3/NAS/UE/nas_proc.c mode change 100755 => 100644 openair3/NAS/UE/nas_proc.h mode change 100755 => 100644 openair3/NAS/UE/nas_proc_defs.h mode change 100755 => 100644 openair3/NAS/UE/nas_ue_task.c mode change 100755 => 100644 openair3/NAS/UE/nas_ue_task.h mode change 100755 => 100644 openair3/NAS/UE/nas_user.c mode change 100755 => 100644 openair3/NAS/UE/nas_user.h mode change 100755 => 100644 openair3/NAS/UE/user_defs.h mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/README mode change 100755 => 100644 openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py mode change 100755 => 100644 openair3/S1AP/s1ap_common.c mode change 100755 => 100644 openair3/S1AP/s1ap_common.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_context_management_procedures.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_context_management_procedures.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_decoder.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_decoder.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_default_values.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_defs.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_encoder.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_encoder.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_handlers.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_handlers.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_itti_messaging.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_itti_messaging.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_management_procedures.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_management_procedures.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_nas_procedures.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_nas_procedures.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_nnsf.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_nnsf.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_overload.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_overload.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_trace.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_trace.h mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_ue_context.c mode change 100755 => 100644 openair3/S1AP/s1ap_eNB_ue_context.h mode change 100755 => 100644 openair3/SCTP/sctp_common.c mode change 100755 => 100644 openair3/SCTP/sctp_common.h mode change 100755 => 100644 openair3/SCTP/sctp_default_values.h mode change 100755 => 100644 openair3/SCTP/sctp_eNB_defs.h mode change 100755 => 100644 openair3/SCTP/sctp_eNB_itti_messaging.c mode change 100755 => 100644 openair3/SCTP/sctp_eNB_itti_messaging.h mode change 100755 => 100644 openair3/SCTP/sctp_eNB_task.c mode change 100755 => 100644 openair3/SCTP/sctp_eNB_task.h mode change 100755 => 100644 openair3/SCTP/sctp_primitives_client.c mode change 100755 => 100644 openair3/SCTP/sctp_primitives_client.h mode change 100755 => 100644 openair3/SECU/kdf.c mode change 100755 => 100644 openair3/SECU/key_nas_deriver.c mode change 100755 => 100644 openair3/SECU/key_nas_encryption.c mode change 100755 => 100644 openair3/SECU/nas_stream_eea1.c mode change 100755 => 100644 openair3/SECU/nas_stream_eea2.c mode change 100755 => 100644 openair3/SECU/nas_stream_eia1.c mode change 100755 => 100644 openair3/SECU/nas_stream_eia2.c mode change 100755 => 100644 openair3/SECU/rijndael.c mode change 100755 => 100644 openair3/SECU/rijndael.h mode change 100755 => 100644 openair3/SECU/secu_defs.h mode change 100755 => 100644 openair3/SECU/snow3g.c mode change 100755 => 100644 openair3/SECU/snow3g.h mode change 100755 => 100644 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml mode change 100755 => 100644 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf mode change 100755 => 100644 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf mode change 100755 => 100644 openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml mode change 100755 => 100644 openair3/TEST/EPC_TEST/generate_scenario.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/generate_scenario.h mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario.h mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_decode.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_display.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_fsm.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_parse.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_s1ap.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h mode change 100755 => 100644 openair3/TEST/EPC_TEST/play_scenario_sctp.c mode change 100755 => 100644 openair3/TEST/Makefile.am mode change 100755 => 100644 openair3/TEST/oaisim_mme_client_test.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_itti_test.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_list_benchmark.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_s1ap_test.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_sctp_test.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c.h mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c_s1ap.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c_s1ap.h mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c_scenario.c mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c_scenario.h mode change 100755 => 100644 openair3/TEST/oaisim_mme_test_s1c_scenario1.c mode change 100755 => 100644 openair3/TEST/test_aes128_cmac_encrypt.c mode change 100755 => 100644 openair3/TEST/test_aes128_ctr_decrypt.c mode change 100755 => 100644 openair3/TEST/test_aes128_ctr_encrypt.c mode change 100755 => 100644 openair3/TEST/test_kdf.c mode change 100755 => 100644 openair3/TEST/test_s1ap.c mode change 100755 => 100644 openair3/TEST/test_secu.c mode change 100755 => 100644 openair3/TEST/test_secu_kenb.c mode change 100755 => 100644 openair3/TEST/test_secu_knas.c mode change 100755 => 100644 openair3/TEST/test_secu_knas_encrypt_eea1.c mode change 100755 => 100644 openair3/TEST/test_secu_knas_encrypt_eea2.c mode change 100755 => 100644 openair3/TEST/test_secu_knas_encrypt_eia1.c mode change 100755 => 100644 openair3/TEST/test_secu_knas_encrypt_eia2.c mode change 100755 => 100644 openair3/TEST/test_secu_knas_stream_int.c mode change 100755 => 100644 openair3/UDP/udp_eNB_task.c mode change 100755 => 100644 openair3/UDP/udp_eNB_task.h mode change 100755 => 100644 openair3/UTILS/CONF/COPYING mode change 100755 => 100644 openair3/UTILS/Makefile.am mode change 100755 => 100644 openair3/UTILS/conversions.c mode change 100755 => 100644 openair3/UTILS/conversions.h mode change 100755 => 100644 openair3/UTILS/enum_string.c mode change 100755 => 100644 openair3/UTILS/enum_string.h mode change 100755 => 100644 openair3/UTILS/mcc_mnc_itu.c mode change 100755 => 100644 openair3/UTILS/mcc_mnc_itu.h mode change 100755 => 100644 openair3/UTILS/mme_config.c mode change 100755 => 100644 openair3/UTILS/mme_config.h mode change 100755 => 100644 openair3/UTILS/mme_default_values.h mode change 100755 => 100644 openair3/UTILS/mme_parser.y mode change 100755 => 100644 openair3/UTILS/mme_scanner.l mode change 100755 => 100644 openair3/UTILS/queue.h mode change 100755 => 100644 openair3/UTILS/tree.h mode change 100755 => 100644 pre-commit mode change 100755 => 100644 svn2git/README.txt mode change 100755 => 100644 svn2git/authors.txt mode change 100755 => 100644 svn2git/authors_original.txt mode change 100755 => 100644 svn2git/authors_original_java_output.txt mode change 100755 => 100644 targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c mode change 100755 => 100644 targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h mode change 100755 => 100644 targets/ARCH/COMMON/common_lib.c mode change 100755 => 100644 targets/ARCH/COMMON/common_lib.h mode change 100755 => 100644 targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc mode change 100755 => 100644 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c mode change 100755 => 100644 targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c mode change 100755 => 100644 targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c mode change 100755 => 100644 targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h mode change 100755 => 100644 targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd mode change 100755 => 100644 targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd mode change 100755 => 100644 targets/ARCH/EXMIMO/DEFS/openair_device.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DEFS/pcie_interface.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/Makefile mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/Makefile mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/readme.txt mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/Makefile mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c mode change 100755 => 100644 targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/LIB/example.c mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m mode change 100755 => 100644 targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m mode change 100755 => 100644 targets/ARCH/LMSSDR/LimeSDR.ini mode change 100755 => 100644 targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini mode change 100755 => 100644 targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini mode change 100755 => 100644 targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini mode change 100755 => 100644 targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini mode change 100755 => 100644 targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp mode change 100755 => 100644 targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp mode change 100755 => 100644 targets/ARCH/mobipass/interface.c mode change 100755 => 100644 targets/ARCH/mobipass/mobipass.c mode change 100755 => 100644 targets/ARCH/mobipass/mobipass.h mode change 100755 => 100644 targets/ARCH/mobipass/queues.c mode change 100755 => 100644 targets/ARCH/mobipass/queues.h mode change 100755 => 100644 targets/COMMON/Makefile.inc mode change 100755 => 100644 targets/COMMON/create_tasks.c mode change 100755 => 100644 targets/COMMON/create_tasks.h mode change 100755 => 100644 targets/COMMON/openairinterface5g_limits.h mode change 100755 => 100644 targets/COMMON/threads_t.h mode change 100755 => 100644 targets/DOCS/Doxyfile mode change 100755 => 100644 targets/DOCS/E-UTRAN_User_Guide.docx mode change 100755 => 100644 targets/DOCS/E-UTRAN_User_Guide.pdf mode change 100755 => 100644 targets/DOCS/images/oai_logo.png mode change 100755 => 100644 targets/DOCS/oai_L1_L2_procedures.ipe mode change 100755 => 100644 targets/Makefile.common mode change 100755 => 100644 targets/Makerules mode change 100755 => 100644 targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf mode change 100755 => 100644 targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf mode change 100755 => 100644 targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf mode change 100755 => 100644 targets/PROJECTS/E-MBMS/enb.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf mode change 100755 => 100644 targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/filesave0811.mat mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/generation.m mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/initial_sync.m mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/initparams.m mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/plots.m mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/recup.m mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/where2.m mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/where2_v1_final.mat mode change 100755 => 100644 targets/PROJECTS/LOCALIZATION/where2_vf.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_ch_est.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_ofdm_mod.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_ofdm_rx.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_ofdm_tx.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_tls_ap.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_tls_diag.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/f_tls_svd.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/s_beamforming.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/s_calib.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/s_draw_F.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/s_init_params.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/s_run_meas.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/alterproj.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/beamforming.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/calibration.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/genorthqpskseq.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/genrandpskseq.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/initparams.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/initparams2.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/ofdm_mod.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/readme.txt mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/runmeas_mimo.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m mode change 100755 => 100644 targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m mode change 100755 => 100644 targets/README.txt mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/load_module.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/nas_enb.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/nas_ue.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_emos.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_rf.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_ue.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/start_ue2.sh mode change 100755 => 100644 targets/RT/LAUNCH_SCRIPTS/stop_rf.sh mode change 100755 => 100644 targets/RT/USER/.runinfo mode change 100755 => 100644 targets/RT/USER/.ue.nvram mode change 100755 => 100644 targets/RT/USER/.ue_emm.nvram mode change 100755 => 100644 targets/RT/USER/.usim.nvram mode change 100755 => 100644 targets/RT/USER/TOOLS/thread_ipc.c mode change 100755 => 100644 targets/RT/USER/TOOLS/thread_ipc.h mode change 100755 => 100644 targets/RT/USER/eNB_exmimo2.gtkw mode change 100755 => 100644 targets/RT/USER/eNB_usrp.gtkw mode change 100755 => 100644 targets/RT/USER/exmimo2_2arxg.lime mode change 100755 => 100644 targets/RT/USER/exmimo2_2brxg.lime mode change 100755 => 100644 targets/RT/USER/init_b200.sh mode change 100755 => 100644 targets/RT/USER/init_exmimo.sh mode change 100755 => 100644 targets/RT/USER/init_exmimo2.sh mode change 100755 => 100644 targets/RT/USER/lte-enb.c mode change 100755 => 100644 targets/RT/USER/lte-ru.c mode change 100755 => 100644 targets/RT/USER/lte-softmodem.c mode change 100755 => 100644 targets/RT/USER/lte-softmodem.h mode change 100755 => 100644 targets/RT/USER/lte-ue.c mode change 100755 => 100644 targets/RT/USER/rau_if4_single_thread.gtkw mode change 100755 => 100644 targets/RT/USER/rcc_if4.gtkw mode change 100755 => 100644 targets/RT/USER/rcc_if5.gtkw mode change 100755 => 100644 targets/RT/USER/rfsim.h mode change 100755 => 100644 targets/RT/USER/rru_if4p5_single_thread.gtkw mode change 100755 => 100644 targets/RT/USER/rru_if4p5_usrp.gtkw mode change 100755 => 100644 targets/RT/USER/rru_if5_usrp.gtkw mode change 100755 => 100644 targets/RT/USER/rt_wrapper.c mode change 100755 => 100644 targets/RT/USER/rt_wrapper.h mode change 100755 => 100644 targets/RT/USER/stats.c mode change 100755 => 100644 targets/RT/USER/stats.fd mode change 100755 => 100644 targets/RT/USER/stats.h mode change 100755 => 100644 targets/RT/USER/ue_exmimo2.gtkw mode change 100755 => 100644 targets/RT/USER/ue_usrp.gtkw mode change 100755 => 100644 targets/SCRIPTS/install_asn1.sh mode change 100755 => 100644 targets/TEST/AT_COMMANDS/Makefile mode change 100755 => 100644 targets/TEST/AT_COMMANDS/oaisim.c mode change 100755 => 100644 targets/TEST/OAI/README mode change 100755 => 100644 targets/TEST/OAI/case01.py mode change 100755 => 100644 targets/TEST/OAI/case02.py mode change 100755 => 100644 targets/TEST/OAI/case03.py mode change 100755 => 100644 targets/TEST/OAI/case04.py mode change 100755 => 100644 targets/TEST/OAI/case05.py mode change 100755 => 100644 targets/TEST/OAI/case11.py mode change 100755 => 100644 targets/TEST/OAI/case12.py mode change 100755 => 100644 targets/TEST/OAI/case13.py mode change 100755 => 100644 targets/TEST/OAI/core.py mode change 100755 => 100644 targets/TEST/OAI/log.py mode change 100755 => 100644 targets/TEST/OAI/openair.py mode change 100755 => 100644 targets/TEST/OAI/test01.py mode change 100755 => 100644 targets/TEST/OAI/test02.py mode change 100755 => 100644 targets/TEST/PACKET_TRACER/Makefile mode change 100755 => 100644 targets/TEST/PACKET_TRACER/README.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/Msg4.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/sib1.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/sib2.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/messages/sib3.txt mode change 100755 => 100644 targets/TEST/PACKET_TRACER/pt.c mode change 100755 => 100644 targets/TEST/PDCP/Makefile mode change 100755 => 100644 targets/TEST/PDCP/readme.txt mode change 100755 => 100644 targets/TEST/PDCP/test_pdcp.c mode change 100755 => 100644 targets/TEST/PDCP/test_pdcp.h mode change 100755 => 100644 targets/TEST/PDCP/test_util.h mode change 100755 => 100644 targets/TEST/PDCP/todo.txt mode change 100755 => 100644 targets/TEST/PDCP/with_rlc/Makefile.data_bearer mode change 100755 => 100644 targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt mode change 100755 => 100644 targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c mode change 100755 => 100644 targets/TEST/RLC_AM_V9.3.0/Makefile mode change 100755 => 100644 targets/TEST/RLC_AM_V9.3.0/oaisim.c mode change 100755 => 100644 targets/TEST/RLC_UM_V9.3.0/Makefile mode change 100755 => 100644 targets/TEST/RLC_UM_V9.3.0/oaisim.c mode change 100755 => 100644 targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp mode change 100755 => 100644 targets/TEST/ROHDE_SCHWARZ/Makefile mode change 100755 => 100644 targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp mode change 100755 => 100644 targets/TEST/ROHDE_SCHWARZ/TcpClient.h mode change 100755 => 100644 targets/itti_vcd_tasks.sav diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml old mode 100755 new mode 100644 diff --git a/LICENSE b/LICENSE old mode 100755 new mode 100644 diff --git a/NOTICE.txt b/NOTICE.txt old mode 100755 new mode 100644 diff --git a/README.txt b/README.txt old mode 100755 new mode 100644 diff --git a/ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf b/ci-scripts/conf_files/enb.band13.tm1.50PRB.emtc.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/CMakeLists.txt b/cmake_targets/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/at_commands/CMakeLists.txt b/cmake_targets/at_commands/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/README.txt b/cmake_targets/autotests/README.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/core.py b/cmake_targets/autotests/core.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/log.py b/cmake_targets/autotests/log.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/openair.py b/cmake_targets/autotests/openair.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/templates/index.html b/cmake_targets/autotests/templates/index.html old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/templates/testcase_report.html b/cmake_targets/autotests/templates/testcase_report.html old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/testsuite_ue_noS1.xml b/cmake_targets/autotests/testsuite_ue_noS1.xml old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/testsuite_ue_noS1_TCL.xml b/cmake_targets/autotests/testsuite_ue_noS1_TCL.xml old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/tools/lib_autotest.py b/cmake_targets/autotests/tools/lib_autotest.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/tools/lib_autotest_analyser.py b/cmake_targets/autotests/tools/lib_autotest_analyser.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/tools/wdial.bandrich.conf b/cmake_targets/autotests/tools/wdial.bandrich.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/alu_epc.bash b/cmake_targets/autotests/v2/actions/alu_epc.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/alu_epc_stop.bash b/cmake_targets/autotests/v2/actions/alu_epc_stop.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/alu_hss.bash b/cmake_targets/autotests/v2/actions/alu_hss.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/bandrich.txt b/cmake_targets/autotests/v2/actions/bandrich.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/client_tcp.bash b/cmake_targets/autotests/v2/actions/client_tcp.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/client_udp.bash b/cmake_targets/autotests/v2/actions/client_udp.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/clone_repository.bash b/cmake_targets/autotests/v2/actions/clone_repository.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/compilation.bash b/cmake_targets/autotests/v2/actions/compilation.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/execution.bash b/cmake_targets/autotests/v2/actions/execution.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/execution_compile.bash b/cmake_targets/autotests/v2/actions/execution_compile.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/modem.py b/cmake_targets/autotests/v2/actions/modem.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/run_enb.bash b/cmake_targets/autotests/v2/actions/run_enb.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/server_tcp.bash b/cmake_targets/autotests/v2/actions/server_tcp.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/server_udp.bash b/cmake_targets/autotests/v2/actions/server_udp.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/start_3276.bash b/cmake_targets/autotests/v2/actions/start_3276.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/start_3276.py b/cmake_targets/autotests/v2/actions/start_3276.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/start_bandrich.bash b/cmake_targets/autotests/v2/actions/start_bandrich.bash old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/start_bandrich.py b/cmake_targets/autotests/v2/actions/start_bandrich.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/stop_3276.py b/cmake_targets/autotests/v2/actions/stop_3276.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/stop_bandrich.py b/cmake_targets/autotests/v2/actions/stop_bandrich.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/wvdial.3276.conf b/cmake_targets/autotests/v2/actions/wvdial.3276.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/actions/wvdial.bandrich.conf b/cmake_targets/autotests/v2/actions/wvdial.bandrich.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/alu_test.py b/cmake_targets/autotests/v2/alu_test.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.10MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.20MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band38.tm1.usrpb210.tdd.5MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.10MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.20MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf b/cmake_targets/autotests/v2/config/enb.band7.tm1.usrpb210.fdd.5MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.10MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.20MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf b/cmake_targets/autotests/v2/config/rcc.band7.tm1.if4p5.5MHz.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.10MHz.udp.usrpb210.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.20MHz.udp.usrpb210.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf b/cmake_targets/autotests/v2/config/rru.band7.tm1.if4p5.5MHz.udp.usrpb210.conf old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/connection.py b/cmake_targets/autotests/v2/connection.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/machine_list.py b/cmake_targets/autotests/v2/machine_list.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/main.py b/cmake_targets/autotests/v2/main.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/task.py b/cmake_targets/autotests/v2/task.py old mode 100755 new mode 100644 diff --git a/cmake_targets/autotests/v2/utils.py b/cmake_targets/autotests/v2/utils.py old mode 100755 new mode 100644 diff --git a/cmake_targets/doxygen/CMakeLists.txt b/cmake_targets/doxygen/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/epc_test/CMakeLists.template b/cmake_targets/epc_test/CMakeLists.template old mode 100755 new mode 100644 diff --git a/cmake_targets/lte-simulators/CMakeLists.txt b/cmake_targets/lte-simulators/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/lte_noS1_build_oai/CMakeLists.template b/cmake_targets/lte_noS1_build_oai/CMakeLists.template old mode 100755 new mode 100644 diff --git a/cmake_targets/nas_sim_tools/CMakeLists.txt b/cmake_targets/nas_sim_tools/CMakeLists.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/oaisim_build_oai/CMakeLists.template b/cmake_targets/oaisim_build_oai/CMakeLists.template old mode 100755 new mode 100644 diff --git a/cmake_targets/oaisim_mme_build_oai/CMakeLists.template b/cmake_targets/oaisim_mme_build_oai/CMakeLists.template old mode 100755 new mode 100644 diff --git a/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template b/cmake_targets/oaisim_noS1_build_oai/CMakeLists.template old mode 100755 new mode 100644 diff --git a/cmake_targets/s1c_mme_test/CMakeLists.template b/cmake_targets/s1c_mme_test/CMakeLists.template old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/Kbuild.cmake b/cmake_targets/tools/Kbuild.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/CMakeParseArguments.cmake b/cmake_targets/tools/MODULES/CMakeParseArguments.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake b/cmake_targets/tools/MODULES/CMakeUserFindMySQL.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/CMakeUserUseBison.cmake b/cmake_targets/tools/MODULES/CMakeUserUseBison.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake b/cmake_targets/tools/MODULES/CMakeUserUseFlex.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindFreeDiameter.cmake b/cmake_targets/tools/MODULES/FindFreeDiameter.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindGCCXML.cmake b/cmake_targets/tools/MODULES/FindGCCXML.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindGcrypt.cmake b/cmake_targets/tools/MODULES/FindGcrypt.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindGnuTLS.cmake b/cmake_targets/tools/MODULES/FindGnuTLS.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindKbuild.cmake b/cmake_targets/tools/MODULES/FindKbuild.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindLibXml2.cmake b/cmake_targets/tools/MODULES/FindLibXml2.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindMySQL.cmake b/cmake_targets/tools/MODULES/FindMySQL.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindNettle.cmake b/cmake_targets/tools/MODULES/FindNettle.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindPostgreSQL.cmake b/cmake_targets/tools/MODULES/FindPostgreSQL.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/FindSCTP.cmake b/cmake_targets/tools/MODULES/FindSCTP.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/Kbuild.cmake b/cmake_targets/tools/MODULES/Kbuild.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/cmake_useful.cmake b/cmake_targets/tools/MODULES/cmake_useful.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/kbuild_system.cmake b/cmake_targets/tools/MODULES/kbuild_system.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/kmodule.cmake b/cmake_targets/tools/MODULES/kmodule.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/MODULES/path_prefixes.cmake b/cmake_targets/tools/MODULES/path_prefixes.cmake old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/asn1tostruct.py b/cmake_targets/tools/asn1tostruct.py old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/example_enb_exmimo_mme_hss.txt b/cmake_targets/tools/example_enb_exmimo_mme_hss.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt b/cmake_targets/tools/example_oaisim_enb_ue_mme_virtual.txt old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/exmimo2_2arxg.lime b/cmake_targets/tools/exmimo2_2arxg.lime old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/exmimo2_2brxg.lime b/cmake_targets/tools/exmimo2_2brxg.lime old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/exmimo_stop_octave.m b/cmake_targets/tools/exmimo_stop_octave.m old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff b/cmake_targets/tools/fix_asn1.data/RRC.rel10/SystemInformation-r8-IEs.h.diff old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff b/cmake_targets/tools/fix_asn1.data/RRC.rel14/SystemInformation-r8-IEs.h.diff old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff b/cmake_targets/tools/fix_asn1.data/X2AP.rel11.2/X2ap-CriticalityDiagnostics-IE-List.h.diff old mode 100755 new mode 100644 diff --git a/cmake_targets/tools/test_helper b/cmake_targets/tools/test_helper old mode 100755 new mode 100644 diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c old mode 100755 new mode 100644 diff --git a/common/config/config_load_configmodule.c b/common/config/config_load_configmodule.c old mode 100755 new mode 100644 diff --git a/common/config/config_load_configmodule.h b/common/config/config_load_configmodule.h old mode 100755 new mode 100644 diff --git a/common/config/config_paramdesc.h b/common/config/config_paramdesc.h old mode 100755 new mode 100644 diff --git a/common/config/config_userapi.c b/common/config/config_userapi.c old mode 100755 new mode 100644 diff --git a/common/config/config_userapi.h b/common/config/config_userapi.h old mode 100755 new mode 100644 diff --git a/common/config/libconfig/config_libconfig.c b/common/config/libconfig/config_libconfig.c old mode 100755 new mode 100644 diff --git a/common/config/libconfig/config_libconfig.h b/common/config/libconfig/config_libconfig.h old mode 100755 new mode 100644 diff --git a/common/config/libconfig/config_libconfig_private.h b/common/config/libconfig/config_libconfig_private.h old mode 100755 new mode 100644 diff --git a/common/ran_context.h b/common/ran_context.h old mode 100755 new mode 100644 diff --git a/common/utils/LOG/README.txt b/common/utils/LOG/README.txt old mode 100755 new mode 100644 diff --git a/common/utils/LOG/log_extern.h b/common/utils/LOG/log_extern.h old mode 100755 new mode 100644 diff --git a/common/utils/LOG/log_if.h b/common/utils/LOG/log_if.h old mode 100755 new mode 100644 diff --git a/common/utils/LOG/vcd_signal_dumper.c b/common/utils/LOG/vcd_signal_dumper.c old mode 100755 new mode 100644 diff --git a/common/utils/LOG/vcd_signal_dumper.h b/common/utils/LOG/vcd_signal_dumper.h old mode 100755 new mode 100644 diff --git a/common/utils/T/.gitignore b/common/utils/T/.gitignore old mode 100755 new mode 100644 diff --git a/common/utils/T/Makefile b/common/utils/T/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/README b/common/utils/T/README old mode 100755 new mode 100644 diff --git a/common/utils/T/T.c b/common/utils/T/T.c old mode 100755 new mode 100644 diff --git a/common/utils/T/T.h b/common/utils/T/T.h old mode 100755 new mode 100644 diff --git a/common/utils/T/T_defs.h b/common/utils/T/T_defs.h old mode 100755 new mode 100644 diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt old mode 100755 new mode 100644 diff --git a/common/utils/T/defs.h b/common/utils/T/defs.h old mode 100755 new mode 100644 diff --git a/common/utils/T/generate_Txx.c b/common/utils/T/generate_Txx.c old mode 100755 new mode 100644 diff --git a/common/utils/T/genids.c b/common/utils/T/genids.c old mode 100755 new mode 100644 diff --git a/common/utils/T/local_tracer.c b/common/utils/T/local_tracer.c old mode 100755 new mode 100644 diff --git a/common/utils/T/plot.c b/common/utils/T/plot.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracee/Makefile b/common/utils/T/tracee/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracee/README b/common/utils/T/tracee/README old mode 100755 new mode 100644 diff --git a/common/utils/T/tracee/tracee.c b/common/utils/T/tracee/tracee.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/Makefile b/common/utils/T/tracer/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/config.c b/common/utils/T/tracer/config.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/config.h b/common/utils/T/tracer/config.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/database.c b/common/utils/T/tracer/database.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/database.h b/common/utils/T/tracer/database.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/defs.h b/common/utils/T/tracer/defs.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/event.c b/common/utils/T/tracer/event.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/event.h b/common/utils/T/tracer/event.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/event_selector.c b/common/utils/T/tracer/event_selector.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/event_selector.h b/common/utils/T/tracer/event_selector.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/extract_config.c b/common/utils/T/tracer/extract_config.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/extract_input_subframe.c b/common/utils/T/tracer/extract_input_subframe.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/filter/Makefile b/common/utils/T/tracer/filter/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/filter/filter.c b/common/utils/T/tracer/filter/filter.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/filter/filter.h b/common/utils/T/tracer/filter/filter.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui.c b/common/utils/T/tracer/gui.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/Makefile b/common/utils/T/tracer/gui/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/container.c b/common/utils/T/tracer/gui/container.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/event.c b/common/utils/T/tracer/gui/event.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/gui.c b/common/utils/T/tracer/gui/gui.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/gui.h b/common/utils/T/tracer/gui/gui.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/gui_defs.h b/common/utils/T/tracer/gui/gui_defs.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/image.c b/common/utils/T/tracer/gui/image.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/init.c b/common/utils/T/tracer/gui/init.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/label.c b/common/utils/T/tracer/gui/label.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/loop.c b/common/utils/T/tracer/gui/loop.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/notify.c b/common/utils/T/tracer/gui/notify.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/positioner.c b/common/utils/T/tracer/gui/positioner.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/space.c b/common/utils/T/tracer/gui/space.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/test.c b/common/utils/T/tracer/gui/test.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/textarea.c b/common/utils/T/tracer/gui/textarea.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/textlist.c b/common/utils/T/tracer/gui/textlist.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/timeline.c b/common/utils/T/tracer/gui/timeline.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/toplevel_window.c b/common/utils/T/tracer/gui/toplevel_window.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/widget.c b/common/utils/T/tracer/gui/widget.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/x.c b/common/utils/T/tracer/gui/x.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/x.h b/common/utils/T/tracer/gui/x.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/x_defs.h b/common/utils/T/tracer/gui/x_defs.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/gui/xy_plot.c b/common/utils/T/tracer/gui/xy_plot.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/hacks/Makefile b/common/utils/T/tracer/hacks/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/hacks/dump_nack_signal.c b/common/utils/T/tracer/hacks/dump_nack_signal.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/hacks/time_meas.c b/common/utils/T/tracer/hacks/time_meas.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/hacks/timeplot.c b/common/utils/T/tracer/hacks/timeplot.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/handler.c b/common/utils/T/tracer/handler.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/handler.h b/common/utils/T/tracer/handler.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/Makefile b/common/utils/T/tracer/logger/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/framelog.c b/common/utils/T/tracer/logger/framelog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/iqdotlog.c b/common/utils/T/tracer/logger/iqdotlog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/iqlog.c b/common/utils/T/tracer/logger/iqlog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/logger.c b/common/utils/T/tracer/logger/logger.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/logger.h b/common/utils/T/tracer/logger/logger.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/logger_defs.h b/common/utils/T/tracer/logger/logger_defs.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/textlog.c b/common/utils/T/tracer/logger/textlog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/throughputlog.c b/common/utils/T/tracer/logger/throughputlog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/ticked_ttilog.c b/common/utils/T/tracer/logger/ticked_ttilog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/ticklog.c b/common/utils/T/tracer/logger/ticklog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/timelog.c b/common/utils/T/tracer/logger/timelog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/logger/ttilog.c b/common/utils/T/tracer/logger/ttilog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/macpdu2wireshark.c b/common/utils/T/tracer/macpdu2wireshark.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/openair_logo.h b/common/utils/T/tracer/openair_logo.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/openair_logo.png b/common/utils/T/tracer/openair_logo.png old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/packet-mac-lte.h b/common/utils/T/tracer/packet-mac-lte.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/plot.c b/common/utils/T/tracer/plot.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/record.c b/common/utils/T/tracer/record.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/replay.c b/common/utils/T/tracer/replay.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/textlog.c b/common/utils/T/tracer/textlog.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/ue.c b/common/utils/T/tracer/ue.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/utils.c b/common/utils/T/tracer/utils.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/utils.h b/common/utils/T/tracer/utils.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/vcd.c b/common/utils/T/tracer/vcd.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/Makefile b/common/utils/T/tracer/view/Makefile old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/scrolltti.c b/common/utils/T/tracer/view/scrolltti.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/stdout.c b/common/utils/T/tracer/view/stdout.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/textlist.c b/common/utils/T/tracer/view/textlist.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/ticktime.c b/common/utils/T/tracer/view/ticktime.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/time.c b/common/utils/T/tracer/view/time.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/tti.c b/common/utils/T/tracer/view/tti.c old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/view.h b/common/utils/T/tracer/view/view.h old mode 100755 new mode 100644 diff --git a/common/utils/T/tracer/view/xy.c b/common/utils/T/tracer/view/xy.c old mode 100755 new mode 100644 diff --git a/common/utils/asn1_conversions.h b/common/utils/asn1_conversions.h old mode 100755 new mode 100644 diff --git a/common/utils/assertions.h b/common/utils/assertions.h old mode 100755 new mode 100644 diff --git a/common/utils/backtrace.c b/common/utils/backtrace.c old mode 100755 new mode 100644 diff --git a/common/utils/backtrace.h b/common/utils/backtrace.h old mode 100755 new mode 100644 diff --git a/common/utils/collection/queue.h b/common/utils/collection/queue.h old mode 100755 new mode 100644 diff --git a/common/utils/collection/tree.h b/common/utils/collection/tree.h old mode 100755 new mode 100644 diff --git a/common/utils/hashtable/hashtable.c b/common/utils/hashtable/hashtable.c old mode 100755 new mode 100644 diff --git a/common/utils/hashtable/hashtable.h b/common/utils/hashtable/hashtable.h old mode 100755 new mode 100644 diff --git a/common/utils/hashtable/obj_hashtable.c b/common/utils/hashtable/obj_hashtable.c old mode 100755 new mode 100644 diff --git a/common/utils/hashtable/obj_hashtable.h b/common/utils/hashtable/obj_hashtable.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/AUTHORS b/common/utils/itti_analyzer/AUTHORS old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/ChangeLog b/common/utils/itti_analyzer/ChangeLog old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/INSTALL b/common/utils/itti_analyzer/INSTALL old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/Makefile.am b/common/utils/itti_analyzer/Makefile.am old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/NEWS b/common/utils/itti_analyzer/NEWS old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/README b/common/utils/itti_analyzer/README old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/common/itti_types.h b/common/utils/itti_analyzer/common/itti_types.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/common/logs.h b/common/utils/itti_analyzer/common/logs.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/common/queue.h b/common/utils/itti_analyzer/common/queue.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/common/rc.h b/common/utils/itti_analyzer/common/rc.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/configure.ac b/common/utils/itti_analyzer/configure.ac old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/filters.xml b/common/utils/itti_analyzer/filters.xml old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/filters_mme.xml b/common/utils/itti_analyzer/filters_mme.xml old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/filters_ue_enb.xml b/common/utils/itti_analyzer/filters_ue_enb.xml old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/itti_analyzer.c b/common/utils/itti_analyzer/itti_analyzer.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/Makefile.am b/common/utils/itti_analyzer/libbuffers/Makefile.am old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/buffers.c b/common/utils/itti_analyzer/libbuffers/buffers.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/buffers.h b/common/utils/itti_analyzer/libbuffers/buffers.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/file.c b/common/utils/itti_analyzer/libbuffers/file.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/file.h b/common/utils/itti_analyzer/libbuffers/file.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/socket.c b/common/utils/itti_analyzer/libbuffers/socket.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libbuffers/socket.h b/common/utils/itti_analyzer/libbuffers/socket.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/Makefile.am b/common/utils/itti_analyzer/libparser/Makefile.am old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/array_type.c b/common/utils/itti_analyzer/libparser/array_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/array_type.h b/common/utils/itti_analyzer/libparser/array_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/enum_type.c b/common/utils/itti_analyzer/libparser/enum_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/enum_type.h b/common/utils/itti_analyzer/libparser/enum_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/enum_value_type.c b/common/utils/itti_analyzer/libparser/enum_value_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/enum_value_type.h b/common/utils/itti_analyzer/libparser/enum_value_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/field_type.c b/common/utils/itti_analyzer/libparser/field_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/field_type.h b/common/utils/itti_analyzer/libparser/field_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/file_type.c b/common/utils/itti_analyzer/libparser/file_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/file_type.h b/common/utils/itti_analyzer/libparser/file_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/fundamental_type.c b/common/utils/itti_analyzer/libparser/fundamental_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/fundamental_type.h b/common/utils/itti_analyzer/libparser/fundamental_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/intertask_contexts.h b/common/utils/itti_analyzer/libparser/intertask_contexts.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/pointer_type.c b/common/utils/itti_analyzer/libparser/pointer_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/pointer_type.h b/common/utils/itti_analyzer/libparser/pointer_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/reference_type.c b/common/utils/itti_analyzer/libparser/reference_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/reference_type.h b/common/utils/itti_analyzer/libparser/reference_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/struct_type.c b/common/utils/itti_analyzer/libparser/struct_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/struct_type.h b/common/utils/itti_analyzer/libparser/struct_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/typedef_type.c b/common/utils/itti_analyzer/libparser/typedef_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/typedef_type.h b/common/utils/itti_analyzer/libparser/typedef_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/types.c b/common/utils/itti_analyzer/libparser/types.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/types.h b/common/utils/itti_analyzer/libparser/types.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/union_type.c b/common/utils/itti_analyzer/libparser/union_type.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/union_type.h b/common/utils/itti_analyzer/libparser/union_type.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/xml_parse.c b/common/utils/itti_analyzer/libparser/xml_parse.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libparser/xml_parse.h b/common/utils/itti_analyzer/libparser/xml_parse.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libresolver/Makefile.am b/common/utils/itti_analyzer/libresolver/Makefile.am old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libresolver/locate_root.c b/common/utils/itti_analyzer/libresolver/locate_root.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libresolver/locate_root.h b/common/utils/itti_analyzer/libresolver/locate_root.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libresolver/resolvers.c b/common/utils/itti_analyzer/libresolver/resolvers.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libresolver/resolvers.h b/common/utils/itti_analyzer/libresolver/resolvers.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/Makefile.am b/common/utils/itti_analyzer/libui/Makefile.am old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.c b/common/utils/itti_analyzer/libui/ui_callbacks.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_callbacks.h b/common/utils/itti_analyzer/libui/ui_callbacks.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_filters.c b/common/utils/itti_analyzer/libui/ui_filters.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_filters.h b/common/utils/itti_analyzer/libui/ui_filters.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_interface.c b/common/utils/itti_analyzer/libui/ui_interface.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_interface.h b/common/utils/itti_analyzer/libui/ui_interface.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_main_screen.c b/common/utils/itti_analyzer/libui/ui_main_screen.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_main_screen.h b/common/utils/itti_analyzer/libui/ui_main_screen.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_menu_bar.c b/common/utils/itti_analyzer/libui/ui_menu_bar.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_menu_bar.h b/common/utils/itti_analyzer/libui/ui_menu_bar.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_notebook.c b/common/utils/itti_analyzer/libui/ui_notebook.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_notebook.h b/common/utils/itti_analyzer/libui/ui_notebook.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_notif_dlg.c b/common/utils/itti_analyzer/libui/ui_notif_dlg.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_notif_dlg.h b/common/utils/itti_analyzer/libui/ui_notif_dlg.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_notifications.c b/common/utils/itti_analyzer/libui/ui_notifications.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_notifications.h b/common/utils/itti_analyzer/libui/ui_notifications.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_signal_dissect_view.c b/common/utils/itti_analyzer/libui/ui_signal_dissect_view.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_signal_dissect_view.h b/common/utils/itti_analyzer/libui/ui_signal_dissect_view.h old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_tree_view.c b/common/utils/itti_analyzer/libui/ui_tree_view.c old mode 100755 new mode 100644 diff --git a/common/utils/itti_analyzer/libui/ui_tree_view.h b/common/utils/itti_analyzer/libui/ui_tree_view.h old mode 100755 new mode 100644 diff --git a/common/utils/load_module_shlib.c b/common/utils/load_module_shlib.c old mode 100755 new mode 100644 diff --git a/common/utils/load_module_shlib.h b/common/utils/load_module_shlib.h old mode 100755 new mode 100644 diff --git a/common/utils/memory_pools.c b/common/utils/memory_pools.c old mode 100755 new mode 100644 diff --git a/common/utils/memory_pools.h b/common/utils/memory_pools.h old mode 100755 new mode 100644 diff --git a/common/utils/msc/msc.c b/common/utils/msc/msc.c old mode 100755 new mode 100644 diff --git a/common/utils/msc/msc.h b/common/utils/msc/msc.h old mode 100755 new mode 100644 diff --git a/common/utils/system.c b/common/utils/system.c old mode 100755 new mode 100644 diff --git a/common/utils/system.h b/common/utils/system.h old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv.c b/common/utils/telnetsrv/telnetsrv.c old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv.h b/common/utils/telnetsrv/telnetsrv.h old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv_loader.h b/common/utils/telnetsrv/telnetsrv_loader.h old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv_phycmd.c b/common/utils/telnetsrv/telnetsrv_phycmd.c old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv_phycmd.h b/common/utils/telnetsrv/telnetsrv_phycmd.h old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.c b/common/utils/telnetsrv/telnetsrv_proccmd.c old mode 100755 new mode 100644 diff --git a/common/utils/telnetsrv/telnetsrv_proccmd.h b/common/utils/telnetsrv/telnetsrv_proccmd.h old mode 100755 new mode 100644 diff --git a/common/utils/time_utils.h b/common/utils/time_utils.h old mode 100755 new mode 100644 diff --git a/common/utils/utils.c b/common/utils/utils.c old mode 100755 new mode 100644 diff --git a/common/utils/utils.h b/common/utils/utils.h old mode 100755 new mode 100644 diff --git a/nfapi/oai_integration/nfapi_vnf.h b/nfapi/oai_integration/nfapi_vnf.h old mode 100755 new mode 100644 diff --git a/oaienv b/oaienv old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte.c b/openair1/PHY/CODING/3gpplte.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte_sse.c b/openair1/PHY/CODING/3gpplte_sse.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder.c b/openair1/PHY/CODING/3gpplte_turbo_decoder.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_avx2_16bit.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/Makefile b/openair1/PHY/CODING/Makefile old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/Makefile.arm b/openair1/PHY/CODING/Makefile.arm old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/README.txt b/openair1/PHY/CODING/README.txt old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/TESTBENCH/Makefile b/openair1/PHY/CODING/TESTBENCH/Makefile old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/TESTBENCH/README.txt b/openair1/PHY/CODING/TESTBENCH/README.txt old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/TESTBENCH/ltetest.c b/openair1/PHY/CODING/TESTBENCH/ltetest.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/TESTBENCH/pdcch_test.c b/openair1/PHY/CODING/TESTBENCH/pdcch_test.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/TESTBENCH/viterbi_test.c b/openair1/PHY/CODING/TESTBENCH/viterbi_test.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/ccoding_byte.c b/openair1/PHY/CODING/ccoding_byte.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/ccoding_byte_lte.c b/openair1/PHY/CODING/ccoding_byte_lte.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/coding_defs.h b/openair1/PHY/CODING/coding_defs.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/coding_extern.h b/openair1/PHY/CODING/coding_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/crc_byte.c b/openair1/PHY/CODING/crc_byte.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/lte_interleaver_inline.h b/openair1/PHY/CODING/lte_interleaver_inline.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/lte_rate_matching.c b/openair1/PHY/CODING/lte_rate_matching.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/lte_segmentation.c b/openair1/PHY/CODING/lte_segmentation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/lte_tf.m b/openair1/PHY/CODING/lte_tf.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/scrambler.h b/openair1/PHY/CODING/scrambler.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/viterbi.c b/openair1/PHY/CODING/viterbi.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/CODING/viterbi_lte.c b/openair1/PHY/CODING/viterbi_lte.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/README.txt b/openair1/PHY/INIT/README.txt old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/init_extern.h b/openair1/PHY/INIT/init_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/init_top.c b/openair1/PHY/INIT/init_top.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/init_vars.h b/openair1/PHY/INIT/init_vars.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/lte_init.c b/openair1/PHY/INIT/lte_init.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/lte_param_init.c b/openair1/PHY/INIT/lte_param_init.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/lte_parms.c b/openair1/PHY/INIT/lte_parms.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/INIT/phy_init.h b/openair1/PHY/INIT/phy_init.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/README.txt b/openair1/PHY/LTE_ESTIMATION/README.txt old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/adjust_gain.c b/openair1/PHY/LTE_ESTIMATION/adjust_gain.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m b/openair1/PHY/LTE_ESTIMATION/bf_freq_domain_filters.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/filt16_32.h b/openair1/PHY/LTE_ESTIMATION/filt16_32.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/filt96_32.h b/openair1/PHY/LTE_ESTIMATION/filt96_32.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m b/openair1/PHY/LTE_ESTIMATION/freq_domain_filters.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/freq_equalization.c b/openair1/PHY/LTE_ESTIMATION/freq_equalization.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c b/openair1/PHY/LTE_ESTIMATION/lte_adjust_sync.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_bf_channel_estimation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_mbsfn_channel_estimation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_eNB_measurements.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c b/openair1/PHY/LTE_ESTIMATION/lte_est_freq_offset.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_estimation.h b/openair1/PHY/LTE_ESTIMATION/lte_estimation.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_estimation_extern.h b/openair1/PHY/LTE_ESTIMATION/lte_estimation_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_estimation_vars.h b/openair1/PHY/LTE_ESTIMATION/lte_estimation_vars.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_time.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m b/openair1/PHY/LTE_ESTIMATION/lte_sync_timefreq.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c b/openair1/PHY/LTE_ESTIMATION/lte_ue_measurements.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_ul_channel_estimation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_ESTIMATION/pss6144.h b/openair1/PHY/LTE_ESTIMATION/pss6144.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/README.txt b/openair1/PHY/LTE_REFSIG/README.txt old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/gen_mod_table.m b/openair1/PHY/LTE_REFSIG/gen_mod_table.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c b/openair1/PHY/LTE_REFSIG/lte_dl_cell_spec.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c b/openair1/PHY/LTE_REFSIG/lte_dl_mbsfn.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c b/openair1/PHY/LTE_REFSIG/lte_dl_uespec.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_gold.c b/openair1/PHY/LTE_REFSIG/lte_gold.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c b/openair1/PHY/LTE_REFSIG/lte_gold_mbsfn.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_refsig.h b/openair1/PHY/LTE_REFSIG/lte_refsig.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_ul.m b/openair1/PHY/LTE_REFSIG/lte_ul.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/lte_ul_ref.c b/openair1/PHY/LTE_REFSIG/lte_ul_ref.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/mod_table.h b/openair1/PHY/LTE_REFSIG/mod_table.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/primary_synch.h b/openair1/PHY/LTE_REFSIG/primary_synch.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_REFSIG/primary_synch.m b/openair1/PHY/LTE_REFSIG/primary_synch.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/README.txt b/openair1/PHY/LTE_TRANSPORT/README.txt old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dci.c b/openair1/PHY/LTE_TRANSPORT/dci.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dci.h b/openair1/PHY/LTE_TRANSPORT/dci.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dci_tools.c b/openair1/PHY/LTE_TRANSPORT/dci_tools.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c b/openair1/PHY/LTE_TRANSPORT/dlsch_coding.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c b/openair1/PHY/LTE_TRANSPORT/dlsch_modulation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c b/openair1/PHY/LTE_TRANSPORT/dlsch_scrambling.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h b/openair1/PHY/LTE_TRANSPORT/dlsch_tbs.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h b/openair1/PHY/LTE_TRANSPORT/dlsch_tbs_full.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/edci.c b/openair1/PHY/LTE_TRANSPORT/edci.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/group_hopping.c b/openair1/PHY/LTE_TRANSPORT/group_hopping.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.c b/openair1/PHY/LTE_TRANSPORT/if4_tools.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/if4_tools.h b/openair1/PHY/LTE_TRANSPORT/if4_tools.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.c b/openair1/PHY/LTE_TRANSPORT/if5_tools.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/if5_tools.h b/openair1/PHY/LTE_TRANSPORT/if5_tools.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/lte_mcs.c b/openair1/PHY/LTE_TRANSPORT/lte_mcs.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h b/openair1/PHY/LTE_TRANSPORT/mcs_tbs_tools.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/mdci.h b/openair1/PHY/LTE_TRANSPORT/mdci.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pbch.c b/openair1/PHY/LTE_TRANSPORT/pbch.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pcfich.c b/openair1/PHY/LTE_TRANSPORT/pcfich.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pilots.c b/openair1/PHY/LTE_TRANSPORT/pilots.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c b/openair1/PHY/LTE_TRANSPORT/pilots_mbsfn.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pmch.c b/openair1/PHY/LTE_TRANSPORT/pmch.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/power_control.c b/openair1/PHY/LTE_TRANSPORT/power_control.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/print_stats.c b/openair1/PHY/LTE_TRANSPORT/print_stats.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pss.c b/openair1/PHY/LTE_TRANSPORT/pss.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pucch.c b/openair1/PHY/LTE_TRANSPORT/pucch.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/pucch_extern.h b/openair1/PHY/LTE_TRANSPORT/pucch_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/rar_tools.c b/openair1/PHY/LTE_TRANSPORT/rar_tools.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/sss.c b/openair1/PHY/LTE_TRANSPORT/sss.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/transport_extern.h b/openair1/PHY/LTE_TRANSPORT/transport_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/transport_vars.h b/openair1/PHY/LTE_TRANSPORT/transport_vars.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/uci_common.h b/openair1/PHY/LTE_TRANSPORT/uci_common.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/uci_tools.c b/openair1/PHY/LTE_TRANSPORT/uci_tools.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c b/openair1/PHY/LTE_TRANSPORT/ulsch_decoding.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c b/openair1/PHY/LTE_TRANSPORT/ulsch_demodulation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_TRANSPORT/vrb_maps.m b/openair1/PHY/LTE_TRANSPORT/vrb_maps.m old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/dci_ue.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_decoding.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_demodulation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c b/openair1/PHY/LTE_UE_TRANSPORT/dlsch_llr_computation_avx2.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/drs_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/drs_modulation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/get_pmi.c b/openair1/PHY/LTE_UE_TRANSPORT/get_pmi.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c b/openair1/PHY/LTE_UE_TRANSPORT/initial_sync.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h b/openair1/PHY/LTE_UE_TRANSPORT/linear_preprocessing_rec.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/pch_ue.c b/openair1/PHY/LTE_UE_TRANSPORT/pch_ue.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/slss.c b/openair1/PHY/LTE_UE_TRANSPORT/slss.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/srs_modulation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h b/openair1/PHY/LTE_UE_TRANSPORT/transport_proto_ue.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_coding.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c b/openair1/PHY/LTE_UE_TRANSPORT/ulsch_modulation.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/beamforming.c b/openair1/PHY/MODULATION/beamforming.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/compute_bf_weights.c b/openair1/PHY/MODULATION/compute_bf_weights.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/ofdm_mod.c b/openair1/PHY/MODULATION/ofdm_mod.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/prach625Hz.h b/openair1/PHY/MODULATION/prach625Hz.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/slot_fep.c b/openair1/PHY/MODULATION/slot_fep.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/slot_fep_mbsfn.c b/openair1/PHY/MODULATION/slot_fep_mbsfn.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/slot_fep_ul.c b/openair1/PHY/MODULATION/slot_fep_ul.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/MODULATION/ul_7_5_kHz.c b/openair1/PHY/MODULATION/ul_7_5_kHz.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/Makefile.inc b/openair1/PHY/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/8bit_rxdemux.c b/openair1/PHY/TOOLS/8bit_rxdemux.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/8bit_txmux.c b/openair1/PHY/TOOLS/8bit_txmux.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/Makefile b/openair1/PHY/TOOLS/Makefile old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/alaw_lut.h b/openair1/PHY/TOOLS/alaw_lut.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/angle.c b/openair1/PHY/TOOLS/angle.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/cadd_sv.c b/openair1/PHY/TOOLS/cadd_sv.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/cadd_vv.c b/openair1/PHY/TOOLS/cadd_vv.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/cdot_prod.c b/openair1/PHY/TOOLS/cdot_prod.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/cmult_sv.c b/openair1/PHY/TOOLS/cmult_sv.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/cmult_vv.c b/openair1/PHY/TOOLS/cmult_vv.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/costable.h b/openair1/PHY/TOOLS/costable.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/dB_routines.c b/openair1/PHY/TOOLS/dB_routines.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/dB_routines.h b/openair1/PHY/TOOLS/dB_routines.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/invSqrt.c b/openair1/PHY/TOOLS/invSqrt.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/log2_approx.c b/openair1/PHY/TOOLS/log2_approx.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/lte_dfts.c b/openair1/PHY/TOOLS/lte_dfts.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/lte_phy_scope.c b/openair1/PHY/TOOLS/lte_phy_scope.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/lte_phy_scope.h b/openair1/PHY/TOOLS/lte_phy_scope.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/lte_phy_scope_tm4.c b/openair1/PHY/TOOLS/lte_phy_scope_tm4.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/lut.c b/openair1/PHY/TOOLS/lut.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/memory_routines.c b/openair1/PHY/TOOLS/memory_routines.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/read_F.c b/openair1/PHY/TOOLS/read_F.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/signal_energy.c b/openair1/PHY/TOOLS/signal_energy.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/smbv.c b/openair1/PHY/TOOLS/smbv.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/smbv.h b/openair1/PHY/TOOLS/smbv.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/sqrt.c b/openair1/PHY/TOOLS/sqrt.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/time_meas.c b/openair1/PHY/TOOLS/time_meas.c old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/time_meas.h b/openair1/PHY/TOOLS/time_meas.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/tools_defs.h b/openair1/PHY/TOOLS/tools_defs.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/tools_extern.h b/openair1/PHY/TOOLS/tools_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/TOOLS/tools_vars.h b/openair1/PHY/TOOLS/tools_vars.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/defs_eNB.h b/openair1/PHY/defs_eNB.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/impl_defs_lte.h b/openair1/PHY/impl_defs_lte.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/impl_defs_top.h b/openair1/PHY/impl_defs_top.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/phy_extern.h b/openair1/PHY/phy_extern.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/phy_vars.h b/openair1/PHY/phy_vars.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/sse_intrin.h b/openair1/PHY/sse_intrin.h old mode 100755 new mode 100644 diff --git a/openair1/PHY/types.h b/openair1/PHY/types.h old mode 100755 new mode 100644 diff --git a/openair1/README.TXT b/openair1/README.TXT old mode 100755 new mode 100644 diff --git a/openair1/SCHED/Makefile.inc b/openair1/SCHED/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED/fapi_l1.h b/openair1/SCHED/fapi_l1.h old mode 100755 new mode 100644 diff --git a/openair1/SCHED/phy_mac_stub.c b/openair1/SCHED/phy_mac_stub.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED/phy_procedures_lte_common.c b/openair1/SCHED/phy_procedures_lte_common.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED/ru_procedures.c b/openair1/SCHED/ru_procedures.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED/sched_common.h b/openair1/SCHED/sched_common.h old mode 100755 new mode 100644 diff --git a/openair1/SCHED_UE/phy_procedures_lte_ue.c b/openair1/SCHED_UE/phy_procedures_lte_ue.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED_UE/pucch_pc.c b/openair1/SCHED_UE/pucch_pc.c old mode 100755 new mode 100644 diff --git a/openair1/SCHED_UE/srs_pc.c b/openair1/SCHED_UE/srs_pc.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc b/openair1/SIMULATION/ETH_TRANSPORT/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/README.txt b/openair1/SIMULATION/ETH_TRANSPORT/README.txt old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c b/openair1/SIMULATION/ETH_TRANSPORT/bypass_session_layer.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/defs.h b/openair1/SIMULATION/ETH_TRANSPORT/defs.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c b/openair1/SIMULATION/ETH_TRANSPORT/emu_transport.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/extern.h b/openair1/SIMULATION/ETH_TRANSPORT/extern.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h b/openair1/SIMULATION/ETH_TRANSPORT/multicast_link.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c b/openair1/SIMULATION/ETH_TRANSPORT/netlink_init.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/proto.h b/openair1/SIMULATION/ETH_TRANSPORT/proto.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/socket.c b/openair1/SIMULATION/ETH_TRANSPORT/socket.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/socket.h b/openair1/SIMULATION/ETH_TRANSPORT/socket.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/ETH_TRANSPORT/vars.h b/openair1/SIMULATION/ETH_TRANSPORT/vars.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/IEEEtran.cls old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_adv.tex old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl.tex old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/bare_jrnl_compsoc.tex old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/create_plots.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/delta_BLER_1.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_beta_training.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/polyfit_delta_BLER.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/sinr_Eff_Calc.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_abstraction.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m b/openair1/SIMULATION/LTE_PHY/Abstraction/Training/training_top_script.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m b/openair1/SIMULATION/LTE_PHY/Abstraction/beta_training_EESM.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m b/openair1/SIMULATION/LTE_PHY/Abstraction/data_collection_mode5.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m b/openair1/SIMULATION/LTE_PHY/Abstraction/data_extraction.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m b/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m b/openair1/SIMULATION/LTE_PHY/Abstraction/delta_BLER_1.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m b/openair1/SIMULATION/LTE_PHY/Abstraction/demap_q.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_1.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_2.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_3.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_4.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_16_noMF_lte_Mode5_5.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_1.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_2.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_3.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_4.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/16_4_noMF_lte_Mode5_5.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_1.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_2.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_3.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_4.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/4_16_noMF_lte_Mode5_5.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_1.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_2.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_3.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_4.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/QPSK_QPSK_noMF_lte_Mode5_5.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_16_16.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/data_mode5_4_4_morerealizations.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_16Qam.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_4Qam.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat b/openair1/SIMULATION/LTE_PHY/Abstraction/matFiles/siso_MI_abs_64Qam.mat old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m b/openair1/SIMULATION/LTE_PHY/Abstraction/opposite_q.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs0.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs1.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs10.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs11.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs12.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs13.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs14.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs15.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs16.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs17.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs18.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs19.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs2.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs20.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs21.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs22.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs23.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs24.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs25.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs26.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs27.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs3.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs4.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs5.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs6.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs7.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs8.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/AWGN_results/bler_tx1_chan18_nrx1_mcs9.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs0.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs1.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs10.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs11.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs12.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs13.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs14.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs15.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs16.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs17.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs18.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs19.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs2.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs20.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs21.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs22.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs23.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs24.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs25.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs26.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs27.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs3.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs4.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs5.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs6.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs7.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs8.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/AWGN/Perf_Curves_Abs/awgn_bler_tx1_mcs9.csv old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_0.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_100.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_119.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_150.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_200.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_250.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_300.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_350.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_400.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_450.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_500.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_550.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_66.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/bler_80.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m b/openair1/SIMULATION/LTE_PHY/BLER_SIMULATIONS/eval_results.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/LTE_Configuration.c b/openair1/SIMULATION/LTE_PHY/LTE_Configuration.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/LTE_Configuration.h b/openair1/SIMULATION/LTE_PHY/LTE_Configuration.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/README.txt b/openair1/SIMULATION/LTE_PHY/README.txt old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/embms_20_25.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/oai_embms_r39-1.png old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdcch_20MHz_awgn.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt b/openair1/SIMULATION/LTE_PHY/REFERENCE_DATA/pdsch.txt old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex b/openair1/SIMULATION/LTE_PHY/blerCurvesTemplate.tex old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/blerSimus.zip b/openair1/SIMULATION/LTE_PHY/blerSimus.zip old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/dlsim.c b/openair1/SIMULATION/LTE_PHY/dlsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm4.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c b/openair1/SIMULATION/LTE_PHY/dlsim_tm7.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/fancyheadings.sty b/openair1/SIMULATION/LTE_PHY/fancyheadings.sty old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/framegen.c b/openair1/SIMULATION/LTE_PHY/framegen.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/gpib_send.c b/openair1/SIMULATION/LTE_PHY/gpib_send.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/gpib_send.h b/openair1/SIMULATION/LTE_PHY/gpib_send.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/mat2wv.m b/openair1/SIMULATION/LTE_PHY/mat2wv.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/mbmssim.c b/openair1/SIMULATION/LTE_PHY/mbmssim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pbch_awgn.txt b/openair1/SIMULATION/LTE_PHY/pbch_awgn.txt old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt b/openair1/SIMULATION/LTE_PHY/pbch_awgn_interp.txt old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pbchsim.c b/openair1/SIMULATION/LTE_PHY/pbchsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m b/openair1/SIMULATION/LTE_PHY/pdcch_eval_results.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pdcchsim.c b/openair1/SIMULATION/LTE_PHY/pdcchsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/p b/openair1/SIMULATION/LTE_PHY/plotTools/p old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m b/openair1/SIMULATION/LTE_PHY/plotTools/plotTool.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_PePu.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_channel_SePu.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_channels.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_constellations.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ce_prec_ul.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_dl_ch_est.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_floating_point_signals.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_ce_.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_prec_dl.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_srs_rxF.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_tx_bf.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m b/openair1/SIMULATION/LTE_PHY/plotTools/plot_txdata.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/prachsim.c b/openair1/SIMULATION/LTE_PHY/prachsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h b/openair1/SIMULATION/LTE_PHY/pucchsignalgegerator.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c b/openair1/SIMULATION/LTE_PHY/pucchsignalgenerator.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/pucchsim.c b/openair1/SIMULATION/LTE_PHY/pucchsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/scansim.c b/openair1/SIMULATION/LTE_PHY/scansim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/signalanalyzer.c b/openair1/SIMULATION/LTE_PHY/signalanalyzer.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/signalanalyzer.h b/openair1/SIMULATION/LTE_PHY/signalanalyzer.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/syncsim.c b/openair1/SIMULATION/LTE_PHY/syncsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/test.c b/openair1/SIMULATION/LTE_PHY/test.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c b/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h b/openair1/SIMULATION/LTE_PHY/ulsignalgenerator.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/ulsim.c b/openair1/SIMULATION/LTE_PHY/ulsim.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/ulsim2.c b/openair1/SIMULATION/LTE_PHY/ulsim2.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/LTE_PHY/unitary_defs.h b/openair1/SIMULATION/LTE_PHY/unitary_defs.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/Makefile.inc b/openair1/SIMULATION/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/RF/Makefile b/openair1/SIMULATION/RF/Makefile old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/RF/README.txt b/openair1/SIMULATION/RF/README.txt old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/RF/adc.c b/openair1/SIMULATION/RF/adc.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/RF/dac.c b/openair1/SIMULATION/RF/dac.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/RF/rf.c b/openair1/SIMULATION/RF/rf.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/RF/rf.h b/openair1/SIMULATION/RF/rf.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/abstraction.c b/openair1/SIMULATION/TOOLS/abstraction.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/ch_desc_proto.c b/openair1/SIMULATION/TOOLS/ch_desc_proto.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/corr_mat.m b/openair1/SIMULATION/TOOLS/corr_mat.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/gauss.c b/openair1/SIMULATION/TOOLS/gauss.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/llr_quantization.c b/openair1/SIMULATION/TOOLS/llr_quantization.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/multipath_channel.c b/openair1/SIMULATION/TOOLS/multipath_channel.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/multipath_tv_channel.c b/openair1/SIMULATION/TOOLS/multipath_tv_channel.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/random_channel.c b/openair1/SIMULATION/TOOLS/random_channel.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/rangen_double.c b/openair1/SIMULATION/TOOLS/rangen_double.c old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/scm.m b/openair1/SIMULATION/TOOLS/scm.m old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/scm_corrmat.h b/openair1/SIMULATION/TOOLS/scm_corrmat.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/sim.h b/openair1/SIMULATION/TOOLS/sim.h old mode 100755 new mode 100644 diff --git a/openair1/SIMULATION/TOOLS/taus.c b/openair1/SIMULATION/TOOLS/taus.c old mode 100755 new mode 100644 diff --git a/openair2/COMMON/as_message.h b/openair2/COMMON/as_message.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/commonDef.h b/openair2/COMMON/commonDef.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/gtpv1_u_messages_def.h b/openair2/COMMON/gtpv1_u_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/gtpv1_u_messages_types.h b/openair2/COMMON/gtpv1_u_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/intertask_interface_conf.h b/openair2/COMMON/intertask_interface_conf.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/mac_messages_def.h b/openair2/COMMON/mac_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/mac_messages_types.h b/openair2/COMMON/mac_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/mac_primitives.h b/openair2/COMMON/mac_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/mac_rlc_primitives.h b/openair2/COMMON/mac_rlc_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/mac_rrc_primitives.h b/openair2/COMMON/mac_rrc_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/messages_def.h b/openair2/COMMON/messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/messages_types.h b/openair2/COMMON/messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/nas_messages_def.h b/openair2/COMMON/nas_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/nas_messages_types.h b/openair2/COMMON/nas_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/networkDef.h b/openair2/COMMON/networkDef.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/openair_defs.h b/openair2/COMMON/openair_defs.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/pdcp_messages_def.h b/openair2/COMMON/pdcp_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/pdcp_messages_types.h b/openair2/COMMON/pdcp_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/phy_messages_def.h b/openair2/COMMON/phy_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/phy_messages_types.h b/openair2/COMMON/phy_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/platform_constants.h b/openair2/COMMON/platform_constants.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/ral_messages_def.h b/openair2/COMMON/ral_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/ral_messages_types.h b/openair2/COMMON/ral_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rlc_messages_def.h b/openair2/COMMON/rlc_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rlc_messages_types.h b/openair2/COMMON/rlc_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rrc_messages_def.h b/openair2/COMMON/rrc_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rrm_config_structs.h b/openair2/COMMON/rrm_config_structs.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rrm_constants.h b/openair2/COMMON/rrm_constants.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/rtos_header.h b/openair2/COMMON/rtos_header.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/s1ap_messages_def.h b/openair2/COMMON/s1ap_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/s1ap_messages_types.h b/openair2/COMMON/s1ap_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/sctp_messages_def.h b/openair2/COMMON/sctp_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/sctp_messages_types.h b/openair2/COMMON/sctp_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/tasks_def.h b/openair2/COMMON/tasks_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/udp_messages_def.h b/openair2/COMMON/udp_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/udp_messages_types.h b/openair2/COMMON/udp_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/x2ap_messages_def.h b/openair2/COMMON/x2ap_messages_def.h old mode 100755 new mode 100644 diff --git a/openair2/COMMON/x2ap_messages_types.h b/openair2/COMMON/x2ap_messages_types.h old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/Doxyfile b/openair2/DOCS/DOXYGEN/Doxyfile old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/DLC_arch.png b/openair2/DOCS/DOXYGEN/images/DLC_arch.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/Diapositive6.JPG b/openair2/DOCS/DOXYGEN/images/Diapositive6.JPG old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/Framing.png b/openair2/DOCS/DOXYGEN/images/Framing.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/Framing.vsd b/openair2/DOCS/DOXYGEN/images/Framing.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC Services.vsd b/openair2/DOCS/DOXYGEN/images/MAC Services.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Measurements.png b/openair2/DOCS/DOXYGEN/images/MAC_Measurements.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd b/openair2/DOCS/DOXYGEN/images/MAC_Measurements.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services.eps b/openair2/DOCS/DOXYGEN/images/MAC_Services.eps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services.vsd b/openair2/DOCS/DOXYGEN/images/MAC_Services.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services2.eps b/openair2/DOCS/DOXYGEN/images/MAC_Services2.eps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services2.png b/openair2/DOCS/DOXYGEN/images/MAC_Services2.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd b/openair2/DOCS/DOXYGEN/images/MAC_Services2.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_arch.eps b/openair2/DOCS/DOXYGEN/images/MAC_arch.eps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG b/openair2/DOCS/DOXYGEN/images/MAC_architecture.JPG old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png b/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd b/openair2/DOCS/DOXYGEN/images/OFDM Transmitter.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/PHY_arch.eps b/openair2/DOCS/DOXYGEN/images/PHY_arch.eps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/PHY_arch.png b/openair2/DOCS/DOXYGEN/images/PHY_arch.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/PHY_arch.vsd b/openair2/DOCS/DOXYGEN/images/PHY_arch.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/QAM modulation.png b/openair2/DOCS/DOXYGEN/images/QAM modulation.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/QAM modulation.vsd b/openair2/DOCS/DOXYGEN/images/QAM modulation.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/QAMmodulation.png b/openair2/DOCS/DOXYGEN/images/QAMmodulation.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.pdf b/openair2/DOCS/DOXYGEN/images/Transmission.pdf old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.png b/openair2/DOCS/DOXYGEN/images/Transmission.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/Transmission.ps b/openair2/DOCS/DOXYGEN/images/Transmission.ps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/cellular_topology.doc b/openair2/DOCS/DOXYGEN/images/cellular_topology.doc old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/cellular_topology.pdf b/openair2/DOCS/DOXYGEN/images/cellular_topology.pdf old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/cellular_topology_small.png b/openair2/DOCS/DOXYGEN/images/cellular_topology_small.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/channel server.png b/openair2/DOCS/DOXYGEN/images/channel server.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/channel server.vsd b/openair2/DOCS/DOXYGEN/images/channel server.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/convolutional.png b/openair2/DOCS/DOXYGEN/images/convolutional.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/convolutional.vsd b/openair2/DOCS/DOXYGEN/images/convolutional.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/irs_dcf.jpg b/openair2/DOCS/DOXYGEN/images/irs_dcf.jpg old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/irs_pcf.jpg b/openair2/DOCS/DOXYGEN/images/irs_pcf.jpg old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/layer2_stack.jpg b/openair2/DOCS/DOXYGEN/images/layer2_stack.jpg old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/layer2_stack.pdf b/openair2/DOCS/DOXYGEN/images/layer2_stack.pdf old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/layer2_stack.png b/openair2/DOCS/DOXYGEN/images/layer2_stack.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mac_channels.png b/openair2/DOCS/DOXYGEN/images/mac_channels.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf b/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.pdf old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png b/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd b/openair2/DOCS/DOXYGEN/images/mac_w3g4f_mac_channels.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mac_wbs.jpg b/openair2/DOCS/DOXYGEN/images/mac_wbs.jpg old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/macphynet.eps b/openair2/DOCS/DOXYGEN/images/macphynet.eps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/macphynet.png b/openair2/DOCS/DOXYGEN/images/macphynet.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mesh_frame.pdf b/openair2/DOCS/DOXYGEN/images/mesh_frame.pdf old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mesh_topology.pdf b/openair2/DOCS/DOXYGEN/images/mesh_topology.pdf old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/mesh_topology_small.png b/openair2/DOCS/DOXYGEN/images/mesh_topology_small.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/scrambler.png b/openair2/DOCS/DOXYGEN/images/scrambler.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/scrambler.vsd b/openair2/DOCS/DOXYGEN/images/scrambler.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/w3g4f_framing.png b/openair2/DOCS/DOXYGEN/images/w3g4f_framing.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd b/openair2/DOCS/DOXYGEN/images/w3g4f_framing.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd b/openair2/DOCS/DOXYGEN/images/widens_mac_channels.vsd old mode 100755 new mode 100644 diff --git a/openair2/DOCS/Documentation/flow.txt b/openair2/DOCS/Documentation/flow.txt old mode 100755 new mode 100644 diff --git a/openair2/DOCS/TEMPLATES/CODE/Doxyfile b/openair2/DOCS/TEMPLATES/CODE/Doxyfile old mode 100755 new mode 100644 diff --git a/openair2/DOCS/TEMPLATES/CODE/example_doxy.h b/openair2/DOCS/TEMPLATES/CODE/example_doxy.h old mode 100755 new mode 100644 diff --git a/openair2/DOCS/TEMPLATES/CODE/images/arch.eps b/openair2/DOCS/TEMPLATES/CODE/images/arch.eps old mode 100755 new mode 100644 diff --git a/openair2/DOCS/TEMPLATES/CODE/images/arch.png b/openair2/DOCS/TEMPLATES/CODE/images/arch.png old mode 100755 new mode 100644 diff --git a/openair2/DOCS/TEMPLATES/README/Readme.doxy b/openair2/DOCS/TEMPLATES/README/Readme.doxy old mode 100755 new mode 100644 diff --git a/openair2/DOCS/TEMPLATES/README/readme.txt b/openair2/DOCS/TEMPLATES/README/readme.txt old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_defs.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_internal.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_slice_verification.h b/openair2/ENB_APP/CONTROL_MODULES/MAC/flexran_agent_mac_slice_verification.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/PDCP/flexran_agent_pdcp_defs.h b/openair2/ENB_APP/CONTROL_MODULES/PDCP/flexran_agent_pdcp_defs.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc_defs.h b/openair2/ENB_APP/CONTROL_MODULES/RRC/flexran_agent_rrc_defs.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/config_common.proto b/openair2/ENB_APP/MESSAGES/V2/config_common.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/config_messages.proto b/openair2/ENB_APP/MESSAGES/V2/config_messages.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/control_delegation.proto b/openair2/ENB_APP/MESSAGES/V2/control_delegation.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/controller_commands.proto b/openair2/ENB_APP/MESSAGES/V2/controller_commands.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/flexran.proto b/openair2/ENB_APP/MESSAGES/V2/flexran.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/header.proto b/openair2/ENB_APP/MESSAGES/V2/header.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto b/openair2/ENB_APP/MESSAGES/V2/mac_primitives.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/stats_common.proto b/openair2/ENB_APP/MESSAGES/V2/stats_common.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto b/openair2/ENB_APP/MESSAGES/V2/stats_messages.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/MESSAGES/V2/time_common.proto b/openair2/ENB_APP/MESSAGES/V2/time_common.proto old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/Makefile.inc b/openair2/ENB_APP/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/NB_IoT_config.h b/openair2/ENB_APP/NB_IoT_config.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/NB_IoT_interface.h b/openair2/ENB_APP/NB_IoT_interface.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/RRC_config_tools.h b/openair2/ENB_APP/RRC_config_tools.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/enb_app.h b/openair2/ENB_APP/enb_app.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/enb_paramdef.h b/openair2/ENB_APP/enb_paramdef.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent.c b/openair2/ENB_APP/flexran_agent.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent.h b/openair2/ENB_APP/flexran_agent.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_async.c b/openair2/ENB_APP/flexran_agent_async.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_async.h b/openair2/ENB_APP/flexran_agent_async.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_common.c b/openair2/ENB_APP/flexran_agent_common.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_common.h b/openair2/ENB_APP/flexran_agent_common.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_common_internal.c b/openair2/ENB_APP/flexran_agent_common_internal.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_common_internal.h b/openair2/ENB_APP/flexran_agent_common_internal.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_defs.h b/openair2/ENB_APP/flexran_agent_defs.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_extern.h b/openair2/ENB_APP/flexran_agent_extern.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_handler.c b/openair2/ENB_APP/flexran_agent_handler.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_net_comm.c b/openair2/ENB_APP/flexran_agent_net_comm.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_net_comm.h b/openair2/ENB_APP/flexran_agent_net_comm.h old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_task_manager.c b/openair2/ENB_APP/flexran_agent_task_manager.c old mode 100755 new mode 100644 diff --git a/openair2/ENB_APP/flexran_agent_task_manager.h b/openair2/ENB_APP/flexran_agent_task_manager.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/defs.h b/openair2/LAYER2/MAC/defs.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c b/openair2/LAYER2/MAC/eNB_scheduler_dlsch.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_mch.c b/openair2/LAYER2/MAC/eNB_scheduler_mch.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_primitives.c b/openair2/LAYER2/MAC/eNB_scheduler_primitives.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/l1_helpers.c b/openair2/LAYER2/MAC/l1_helpers.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/lte_transport_init.c b/openair2/LAYER2/MAC/lte_transport_init.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/mac_extern.h b/openair2/LAYER2/MAC/mac_extern.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/mac_proto.h b/openair2/LAYER2/MAC/mac_proto.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/main.c b/openair2/LAYER2/MAC/main.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/pre_processor.c b/openair2/LAYER2/MAC/pre_processor.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/ra_procedures.c b/openair2/LAYER2/MAC/ra_procedures.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/rar_tools.c b/openair2/LAYER2/MAC/rar_tools.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/MAC/ue_procedures.c b/openair2/LAYER2/MAC/ue_procedures.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/Makefile.inc b/openair2/LAYER2/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitive.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_control_primitives_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_fifo.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_netlink.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_security.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_sequence_manager.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_thread.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h b/openair2/LAYER2/PDCP_v10.1.0/pdcp_util.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_constants.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_entity.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_in_sdu.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_init.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_receiver.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_retransmit.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_rx_list.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segment.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_segments_holes.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_structs.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_test.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_poll_retransmit.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_reordering.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_timer_status_prohibit.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_windows.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_entity.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_init.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h b/openair2/LAYER2/RLC/TM_v9.3.0/rlc_tm_structs.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/Makefile b/openair2/LAYER2/RLC/UM_v9.3.0/Makefile old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/README b/openair2/LAYER2/RLC/UM_v9.3.0/README old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_constants.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_control_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_dar.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_entity.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_fsm.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_reassembly.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_receiver.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_segment.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_structs.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_test.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um_very_simple_test.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/mac_primitives.h b/openair2/LAYER2/RLC/mac_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc.h b/openair2/LAYER2/RLC/rlc.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc_def.h b/openair2/LAYER2/RLC/rlc_def.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc_def_lte.h b/openair2/LAYER2/RLC/rlc_def_lte.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc_mac.c b/openair2/LAYER2/RLC/rlc_mac.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc_mpls.c b/openair2/LAYER2/RLC/rlc_mpls.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc_primitives.h b/openair2/LAYER2/RLC/rlc_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/RLC/rlc_rrc.c b/openair2/LAYER2/RLC/rlc_rrc.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/openair2_proc.c b/openair2/LAYER2/openair2_proc.c old mode 100755 new mode 100644 diff --git a/openair2/LAYER2/register.h b/openair2/LAYER2/register.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/RB_TOOL/Makefile b/openair2/NETWORK_DRIVER/LITE/RB_TOOL/Makefile old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c b/openair2/NETWORK_DRIVER/LITE/RB_TOOL/rb_tool.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/classifier.c b/openair2/NETWORK_DRIVER/LITE/classifier.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/common.c b/openair2/NETWORK_DRIVER/LITE/common.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/constant.h b/openair2/NETWORK_DRIVER/LITE/constant.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/device.c b/openair2/NETWORK_DRIVER/LITE/device.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/ioctl.c b/openair2/NETWORK_DRIVER/LITE/ioctl.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/ioctl.h b/openair2/NETWORK_DRIVER/LITE/ioctl.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/local.h b/openair2/NETWORK_DRIVER/LITE/local.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/netlink.c b/openair2/NETWORK_DRIVER/LITE/netlink.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/proto_extern.h b/openair2/NETWORK_DRIVER/LITE/proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/sap.h b/openair2/NETWORK_DRIVER/LITE/sap.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/LITE/tool.c b/openair2/NETWORK_DRIVER/LITE/tool.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile b/openair2/NETWORK_DRIVER/MESH/RB_TOOL/Makefile old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c b/openair2/NETWORK_DRIVER/MESH/RB_TOOL/rb_tool.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c b/openair2/NETWORK_DRIVER/MESH/TESTBENCH/testbench.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/classifier.c b/openair2/NETWORK_DRIVER/MESH/classifier.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/common.c b/openair2/NETWORK_DRIVER/MESH/common.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/constant.h b/openair2/NETWORK_DRIVER/MESH/constant.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/device.c b/openair2/NETWORK_DRIVER/MESH/device.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/ioctl.c b/openair2/NETWORK_DRIVER/MESH/ioctl.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/ioctl.h b/openair2/NETWORK_DRIVER/MESH/ioctl.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/local.h b/openair2/NETWORK_DRIVER/MESH/local.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/mesh.c b/openair2/NETWORK_DRIVER/MESH/mesh.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/netlink.c b/openair2/NETWORK_DRIVER/MESH/netlink.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/proto_extern.h b/openair2/NETWORK_DRIVER/MESH/proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h b/openair2/NETWORK_DRIVER/MESH/rrc_nas_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/sap.h b/openair2/NETWORK_DRIVER/MESH/sap.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/MESH/tool.c b/openair2/NETWORK_DRIVER/MESH/tool.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/README b/openair2/NETWORK_DRIVER/UE_IP/README old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/common.c b/openair2/NETWORK_DRIVER/UE_IP/common.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/constant.h b/openair2/NETWORK_DRIVER/UE_IP/constant.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/device.c b/openair2/NETWORK_DRIVER/UE_IP/device.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/local.h b/openair2/NETWORK_DRIVER/UE_IP/local.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/netlink.c b/openair2/NETWORK_DRIVER/UE_IP/netlink.c old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/proto_extern.h b/openair2/NETWORK_DRIVER/UE_IP/proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/NETWORK_DRIVER/UE_IP/sap.h b/openair2/NETWORK_DRIVER/UE_IP/sap.h old mode 100755 new mode 100644 diff --git a/openair2/PHY_INTERFACE/IF_Module.c b/openair2/PHY_INTERFACE/IF_Module.c old mode 100755 new mode 100644 diff --git a/openair2/PHY_INTERFACE/IF_Module.h b/openair2/PHY_INTERFACE/IF_Module.h old mode 100755 new mode 100644 diff --git a/openair2/PHY_INTERFACE/mac_phy_primitives.c b/openair2/PHY_INTERFACE/mac_phy_primitives.c old mode 100755 new mode 100644 diff --git a/openair2/PHY_INTERFACE/mac_phy_primitives.h b/openair2/PHY_INTERFACE/mac_phy_primitives.h old mode 100755 new mode 100644 diff --git a/openair2/PHY_INTERFACE/phy_interface_extern.h b/openair2/PHY_INTERFACE/phy_interface_extern.h old mode 100755 new mode 100644 diff --git a/openair2/PHY_INTERFACE/phy_interface_vars.h b/openair2/PHY_INTERFACE/phy_interface_vars.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h b/openair2/RRC/L2_INTERFACE/openair_rrc_L2_interface.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LITE/rrc_common.c b/openair2/RRC/LITE/rrc_common.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/L2_interface_ue.c b/openair2/RRC/LTE/L2_interface_ue.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/Makefile.inc b/openair2/RRC/LTE/MESSAGES/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/README.txt b/openair2/RRC/LTE/MESSAGES/README.txt old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.c b/openair2/RRC/LTE/MESSAGES/asn1_msg.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg.h b/openair2/RRC/LTE/MESSAGES/asn1_msg.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1_patch b/openair2/RRC/LTE/MESSAGES/asn1_patch old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-860.txt b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-860.txt old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-a20.txt b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-a20.txt old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-ah0.txt old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-c60.txt b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/36331-c60.txt old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-86.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-a20.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-ah0.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-InterNodeDefinitions-c60.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-86.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20-lola.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-a20.asn.orig old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-ah0.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-RRC-Definitions-c60.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-86.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-a20.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-ah0.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/EUTRA-UE-Variables-c60.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/RRC-e30.asn old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/extract_asn1_from_spec.pl old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-10.21.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-11.18.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-12.16.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-13.9.1.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.4.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.6.2.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-14.7.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.1.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.1.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-15.2.2.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-8.21.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 b/openair2/RRC/LTE/MESSAGES/asn1c/ASN1_files/lte-rrc-9.18.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/plmn_data.h b/openair2/RRC/LTE/plmn_data.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_2_rrm_msg.c b/openair2/RRC/LTE/rrc_2_rrm_msg.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_UE_ral.c b/openair2/RRC/LTE/rrc_UE_ral.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_UE_ral.h b/openair2/RRC/LTE/rrc_UE_ral.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_defs.h b/openair2/RRC/LTE/rrc_defs.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_GTPV1U.c b/openair2/RRC/LTE/rrc_eNB_GTPV1U.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_GTPV1U.h b/openair2/RRC/LTE/rrc_eNB_GTPV1U.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.c b/openair2/RRC/LTE/rrc_eNB_S1AP.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_S1AP.h b/openair2/RRC/LTE/rrc_eNB_S1AP.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_UE_context.c b/openair2/RRC/LTE/rrc_eNB_UE_context.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_UE_context.h b/openair2/RRC/LTE/rrc_eNB_UE_context.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_ral.c b/openair2/RRC/LTE/rrc_eNB_ral.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_eNB_ral.h b/openair2/RRC/LTE/rrc_eNB_ral.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_extern.h b/openair2/RRC/LTE/rrc_extern.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_proto.h b/openair2/RRC/LTE/rrc_proto.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_rrm_interface.c b/openair2/RRC/LTE/rrc_rrm_interface.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_rrm_interface.h b/openair2/RRC/LTE/rrc_rrm_interface.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_types.h b/openair2/RRC/LTE/rrc_types.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrc_vars.h b/openair2/RRC/LTE/rrc_vars.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/rrm_2_rrc_msg.c b/openair2/RRC/LTE/rrm_2_rrc_msg.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/LTE/utils.c b/openair2/RRC/LTE/utils.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/NAS/Makefile.inc b/openair2/RRC/NAS/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair2/RRC/NAS/nas_config.c b/openair2/RRC/NAS/nas_config.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/NAS/nas_config.h b/openair2/RRC/NAS/nas_config.h old mode 100755 new mode 100644 diff --git a/openair2/RRC/NAS/rb_config.c b/openair2/RRC/NAS/rb_config.c old mode 100755 new mode 100644 diff --git a/openair2/RRC/NAS/rb_config.h b/openair2/RRC/NAS/rb_config.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/link_manager.c b/openair2/UTIL/ASYNC_IF/link_manager.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/link_manager.h b/openair2/UTIL/ASYNC_IF/link_manager.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/message_queue.c b/openair2/UTIL/ASYNC_IF/message_queue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/message_queue.h b/openair2/UTIL/ASYNC_IF/message_queue.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/ringbuffer_queue.h b/openair2/UTIL/ASYNC_IF/ringbuffer_queue.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/socket_link.c b/openair2/UTIL/ASYNC_IF/socket_link.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/ASYNC_IF/socket_link.h b/openair2/UTIL/ASYNC_IF/socket_link.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/BIGPHYS/bigphys.c b/openair2/UTIL/BIGPHYS/bigphys.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/BIGPHYS/defs.h b/openair2/UTIL/BIGPHYS/defs.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/CLI/cli.c b/openair2/UTIL/CLI/cli.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/CLI/cli.h b/openair2/UTIL/CLI/cli.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/CLI/cli_cmd.c b/openair2/UTIL/CLI/cli_cmd.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/CLI/cli_if.h b/openair2/UTIL/CLI/cli_if.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/CLI/cli_server.c b/openair2/UTIL/CLI/cli_server.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/FIFO/pad_list.c b/openair2/UTIL/FIFO/pad_list.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/FIFO/pad_list.h b/openair2/UTIL/FIFO/pad_list.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/FIFO/types.h b/openair2/UTIL/FIFO/types.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/building.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/dirs old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/inc/liblfds611.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.def old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.sln old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/liblfds611.vcproj old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.linux b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.linux old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.windows b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/makefile.windows old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/readme.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_build_readme.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_dynamic_lib_build.bat old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/runme_before_win_kernel_static_lib_build.bat old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.dynamic old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/sources.static old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/dirs old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/driver_entry_readme.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_cas.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_dcas.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_free.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_increment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_body.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_internal_wrapper.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_abstraction/lfds611_abstraction_malloc.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_delete.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_get_and_set.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_new.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_pop_push.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_freelist/lfds611_freelist_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_abstraction_test_helpers.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_free.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_aligned_malloc.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_liblfds/lfds611_liblfds_readme.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_delete.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_new.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_queue/lfds611_queue_queue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_delete.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_get_and_put.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_new.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_ringbuffer/lfds611_ringbuffer_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_delete.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_get_and_set.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_link.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_slist/lfds611_slist_new.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_delete.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_new.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_push_pop.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/lfds611_stack/lfds611_stack_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/liblfds611/src/liblfds611_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt b/openair2/UTIL/LFDS/liblfds6.1.1/test/building.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux b/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.linux old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.windows b/openair2/UTIL/LFDS/liblfds6.1.1/test/makefile.windows old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_cpu_count.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_start.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/abstraction_thread_wait.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_freelist.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_queue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_ringbuffer.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/benchmark_stack.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/main.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/misc.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/structures.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_abstraction.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_freelist.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_queue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_ringbuffer.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_slist.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c b/openair2/UTIL/LFDS/liblfds6.1.1/test/src/test_stack.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln b/openair2/UTIL/LFDS/liblfds6.1.1/test/test.sln old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj b/openair2/UTIL/LFDS/liblfds6.1.1/test/test.vcproj old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_and_gnumake/Makefile b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_and_gnumake/Makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Kbuild old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Makefile b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/gcc_kbuild_and_gnumake/Makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/liblfds700.def old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/sdk_for_windows_7_and_gnumake/makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.def old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.sln old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.filters old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012/liblfds700.vcxproj.user old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/driver_entry.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.def old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.sln old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.filters old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2012_and_wdk_8.0/liblfds700.vcxproj.user old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/driver_entry.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.def old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.sln old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.filters old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/visual_studio_professional_2013_and_wdk_8.1/liblfds700.vcxproj.user old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/dirs old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/driver_entry_renamed_to_avoid_compiler_warning.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/liblfds700.def old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/readme_before_win_kernel_build.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_dynamic_lib_build.bat old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/runme_before_win_kernel_static_lib_build.bat old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.dynamic old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/build/wdk_7.1/sources.static old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_btree_addonly_unbalanced.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_freelist.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_hash_addonly.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_ordered_singlylinked.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_list_addonly_singlylinked_unordered.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_misc.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_compiler.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_operating_system.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_porting_abstraction_layer_processor.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_queue_bounded_singleconsumer_singleproducer.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_ringbuffer.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/inc/liblfds700/lfds700_stack.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_get.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_insert.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_btree_addonly_unbalanced/lfds700_btree_addonly_unbalanced_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_pop.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_push.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_freelist/lfds700_freelist_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_get.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_insert.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_iterate.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_hash_addonly/lfds700_hash_addonly_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_get.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_insert.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_ordered_singlylinked/lfds700_list_addonly_ordered_singlylinked_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_get.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_insert.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_list_addonly_singlylinked_unordered/lfds700_list_addonly_singlylinked_unordered_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_globals.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_prng.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_misc/lfds700_misc_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_dequeue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_enqueue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue/lfds700_queue_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_dequeue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_enqueue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_queue_bounded_singleconsumer_singleproducer/lfds700_queue_bounded_singleconsumer_singleproducer_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_read.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_ringbuffer/lfds700_ringbuffer_write.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_cleanup.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_init.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_pop.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_push.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/lfds700_stack/lfds700_stack_query.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/liblfds700/src/liblfds700_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/gcc_and_gnumake/Makefile b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/gcc_and_gnumake/Makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/sdk_for_windows_7_and_gnumake/makefile b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/sdk_for_windows_7_and_gnumake/makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.sln old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.filters old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.user b/openair2/UTIL/LFDS/liblfds7.0.0/test/build/visual_studio_professional_2012/test.vcxproj.user old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/main.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/misc.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_fail_and_overwrite.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_btree_addonly_unbalanced_random_adds_overwrite.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_popping_and_pushing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_pushing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_freelist_rapid_popping_and_pushing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_iterate.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_fail_and_overwrite.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_hash_addonly_random_adds_overwrite.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_ordered_singlylinked_new_ordered_with_cursor.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_after.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_end.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_list_addonly_singlylinked_unordered_new_start.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_cas.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_dcas.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_porting_abstraction_layer_atomic_exchange.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_dequeuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_bounded_singleconsumer_singleproducer_enqueuing_and_dequeuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_dequeuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_and_dequeuing_with_free.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_enqueuing_with_malloc_and_dequeuing_with_free.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_queue_rapid_enqueuing_and_dequeuing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_reading_and_writing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_ringbuffer_writing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_alignment.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_popping_and_pushing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_pushing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_lfds700_stack_rapid_popping_and_pushing.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_get_logical_core_ids.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_operating_system.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_start.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/test_porting_abstraction_layer_thread_wait.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_cmdline.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_memory_helpers.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h b/openair2/UTIL/LFDS/liblfds7.0.0/test/src/util_thread_starter.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LISTS/list.c b/openair2/UTIL/LISTS/list.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LISTS/list.h b/openair2/UTIL/LISTS/list.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/LISTS/list2.c b/openair2/UTIL/LISTS/list2.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MATH/crc_byte.c b/openair2/UTIL/MATH/crc_byte.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MATH/oml.c b/openair2/UTIL/MATH/oml.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MATH/oml.h b/openair2/UTIL/MATH/oml.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MATH/random.c b/openair2/UTIL/MATH/random.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MATH/random_proto_extern.h b/openair2/UTIL/MATH/random_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MATH/taus.c b/openair2/UTIL/MATH/taus.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MEM/mem_block.c b/openair2/UTIL/MEM/mem_block.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MEM/mem_block.h b/openair2/UTIL/MEM/mem_block.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MEM/mem_mngt.c b/openair2/UTIL/MEM/mem_mngt.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MEM/mem_mngt_proto_extern.h b/openair2/UTIL/MEM/mem_mngt_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/MEM/mem_pool.h b/openair2/UTIL/MEM/mem_pool.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/Makefile.inc b/openair2/UTIL/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/.directory b/openair2/UTIL/OCG/.directory old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/Doxyfile b/openair2/UTIL/OCG/Doxyfile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG.c b/openair2/UTIL/OCG/OCG.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG.h b/openair2/UTIL/OCG/OCG.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_call_emu.c b/openair2/UTIL/OCG/OCG_call_emu.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_call_emu.h b/openair2/UTIL/OCG/OCG_call_emu.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_config_mobi.c b/openair2/UTIL/OCG/OCG_config_mobi.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_config_mobi.h b/openair2/UTIL/OCG/OCG_config_mobi.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_create_dir.c b/openair2/UTIL/OCG/OCG_create_dir.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_create_dir.h b/openair2/UTIL/OCG/OCG_create_dir.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_detect_file.c b/openair2/UTIL/OCG/OCG_detect_file.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_detect_file.h b/openair2/UTIL/OCG/OCG_detect_file.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_extern.h b/openair2/UTIL/OCG/OCG_extern.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_generate_report.c b/openair2/UTIL/OCG/OCG_generate_report.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_generate_report.h b/openair2/UTIL/OCG/OCG_generate_report.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_get_opt.c b/openair2/UTIL/OCG/OCG_get_opt.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_get_opt.h b/openair2/UTIL/OCG/OCG_get_opt.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_if.h b/openair2/UTIL/OCG/OCG_if.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_parse_XML.c b/openair2/UTIL/OCG/OCG_parse_XML.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_parse_XML.h b/openair2/UTIL/OCG/OCG_parse_XML.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_parse_filename.c b/openair2/UTIL/OCG/OCG_parse_filename.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_parse_filename.h b/openair2/UTIL/OCG/OCG_parse_filename.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_save_XML.c b/openair2/UTIL/OCG/OCG_save_XML.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_save_XML.h b/openair2/UTIL/OCG/OCG_save_XML.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/OCG_vars.h b/openair2/UTIL/OCG/OCG_vars.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml b/openair2/UTIL/OCG/XML_to_mobigen/RWMEmulator.xml old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/eurecom_20110208110244.xml b/openair2/UTIL/OCG/eurecom_20110208110244.xml old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml b/openair2/UTIL/OCG/local_XML/Lusheng.20110208110244.xml old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/makefile b/openair2/UTIL/OCG/makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/readme.txt b/openair2/UTIL/OCG/readme.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OCG/temp_output/OCG_report.xml b/openair2/UTIL/OCG/temp_output/OCG_report.xml old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf b/openair2/UTIL/OMG/OMG_TRACE_DESCRIPTION.pdf old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/README.TXT b/openair2/UTIL/OMG/README.TXT old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf b/openair2/UTIL/OMG/TRACE/OMG_TRACE_update.pdf old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/README.TXT b/openair2/UTIL/OMG/TRACE/README.TXT old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/example_trace.tr b/openair2/UTIL/OMG/TRACE/example_trace.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/handover.tr b/openair2/UTIL/OMG/TRACE/handover.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/handover_1ue.tr b/openair2/UTIL/OMG/TRACE/handover_1ue.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr b/openair2/UTIL/OMG/TRACE/hexagonal_eNBs.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/mobility_2ues.tr b/openair2/UTIL/OMG/TRACE/mobility_2ues.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/mobility_3ues.tr b/openair2/UTIL/OMG/TRACE/mobility_3ues.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/regular.tr b/openair2/UTIL/OMG/TRACE/regular.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/static_1enb.tr b/openair2/UTIL/OMG/TRACE/static_1enb.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/static_2ues.tr b/openair2/UTIL/OMG/TRACE/static_2ues.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/TRACE/zero_speed.tr b/openair2/UTIL/OMG/TRACE/zero_speed.tr old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/common.c b/openair2/UTIL/OMG/common.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/defs.h b/openair2/UTIL/OMG/defs.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/grid.c b/openair2/UTIL/OMG/grid.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/grid.h b/openair2/UTIL/OMG/grid.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/job.c b/openair2/UTIL/OMG/job.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/makefile b/openair2/UTIL/OMG/makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/makefile_old b/openair2/UTIL/OMG/makefile_old old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/makefile_standalone b/openair2/UTIL/OMG/makefile_standalone old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/mobility.txt b/openair2/UTIL/OMG/mobility.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/mobility_parser.c b/openair2/UTIL/OMG/mobility_parser.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/mobility_parser.h b/openair2/UTIL/OMG/mobility_parser.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/omg.c b/openair2/UTIL/OMG/omg.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/omg.h b/openair2/UTIL/OMG/omg.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/omg_constants.h b/openair2/UTIL/OMG/omg_constants.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/omg_hashtable.c b/openair2/UTIL/OMG/omg_hashtable.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/omg_hashtable.h b/openair2/UTIL/OMG/omg_hashtable.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/omg_vars.h b/openair2/UTIL/OMG/omg_vars.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/rwalk.c b/openair2/UTIL/OMG/rwalk.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/rwalk.h b/openair2/UTIL/OMG/rwalk.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/rwp.c b/openair2/UTIL/OMG/rwp.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/rwp.h b/openair2/UTIL/OMG/rwp.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/static.c b/openair2/UTIL/OMG/static.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/static.h b/openair2/UTIL/OMG/static.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/steadystaterwp.c b/openair2/UTIL/OMG/steadystaterwp.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/steadystaterwp.h b/openair2/UTIL/OMG/steadystaterwp.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/trace.c b/openair2/UTIL/OMG/trace.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/trace.h b/openair2/UTIL/OMG/trace.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/trace_hashtable.c b/openair2/UTIL/OMG/trace_hashtable.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMG/trace_hashtable.h b/openair2/UTIL/OMG/trace_hashtable.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/README.txt b/openair2/UTIL/OMV/README.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/blue.png b/openair2/UTIL/OMV/blue.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/communicationthread.cpp b/openair2/UTIL/OMV/communicationthread.cpp old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/communicationthread.h b/openair2/UTIL/OMV/communicationthread.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/green.png b/openair2/UTIL/OMV/green.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/jpg.jpeg b/openair2/UTIL/OMV/jpg.jpeg old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/mus.png b/openair2/UTIL/OMV/mus.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/mywindow.cpp b/openair2/UTIL/OMV/mywindow.cpp old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/mywindow.h b/openair2/UTIL/OMV/mywindow.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/new.jpg b/openair2/UTIL/OMV/new.jpg old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/new2.jpg b/openair2/UTIL/OMV/new2.jpg old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/omv.cpp b/openair2/UTIL/OMV/omv.cpp old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/openglwidget.cpp b/openair2/UTIL/OMV/openglwidget.cpp old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/openglwidget.h b/openair2/UTIL/OMV/openglwidget.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/red.png b/openair2/UTIL/OMV/red.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/structures.h b/openair2/UTIL/OMV/structures.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/white.png b/openair2/UTIL/OMV/white.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OMV/wow.png b/openair2/UTIL/OMV/wow.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OPT/README.txt b/openair2/UTIL/OPT/README.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OPT/mac_pcap.h b/openair2/UTIL/OPT/mac_pcap.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OPT/packet-mac-lte.h b/openair2/UTIL/OPT/packet-mac-lte.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OPT/vars.h b/openair2/UTIL/OPT/vars.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/README b/openair2/UTIL/OSA/README old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_defs.h b/openair2/UTIL/OSA/osa_defs.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_internal.h b/openair2/UTIL/OSA/osa_internal.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_key_deriver.c b/openair2/UTIL/OSA/osa_key_deriver.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_rijndael.c b/openair2/UTIL/OSA/osa_rijndael.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_rijndael.h b/openair2/UTIL/OSA/osa_rijndael.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_snow3g.c b/openair2/UTIL/OSA/osa_snow3g.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_snow3g.h b/openair2/UTIL/OSA/osa_snow3g.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_stream_eea.c b/openair2/UTIL/OSA/osa_stream_eea.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSA/osa_stream_eia.c b/openair2/UTIL/OSA/osa_stream_eia.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/OCG.pid b/openair2/UTIL/OSD/OCG.pid old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/OpenAirEmu.conf b/openair2/UTIL/OSD/OpenAirEmu.conf old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/Platform_is_running.php b/openair2/UTIL/OSD/Platform_is_running.php old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/README.txt b/openair2/UTIL/OSD/README.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/blueprint.css b/openair2/UTIL/OSD/css/blueprint.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/fix-ie-rtl.css b/openair2/UTIL/OSD/css/fix-ie-rtl.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/fix-ie.css b/openair2/UTIL/OSD/css/fix-ie.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/ie.css b/openair2/UTIL/OSD/css/ie.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/ie6.css b/openair2/UTIL/OSD/css/ie6.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/images/false.png b/openair2/UTIL/OSD/css/images/false.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/images/false2.png b/openair2/UTIL/OSD/css/images/false2.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/images/lquote.png b/openair2/UTIL/OSD/css/images/lquote.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/images/true.png b/openair2/UTIL/OSD/css/images/true.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/images/warning.png b/openair2/UTIL/OSD/css/images/warning.png old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/print.css b/openair2/UTIL/OSD/css/print.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/screen.css b/openair2/UTIL/OSD/css/screen.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/css/style.css b/openair2/UTIL/OSD/css/style.css old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/form.php b/openair2/UTIL/OSD/form.php old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/header.php b/openair2/UTIL/OSD/header.php old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/httpd-result.conf b/openair2/UTIL/OSD/httpd-result.conf old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/index.php b/openair2/UTIL/OSD/index.php old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/jquery/jquery.js b/openair2/UTIL/OSD/jquery/jquery.js old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/recep.php b/openair2/UTIL/OSD/recep.php old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OSD/toto.php b/openair2/UTIL/OSD/toto.php old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/Doxyfile b/openair2/UTIL/OTG/Doxyfile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/help_OTGplot.txt b/openair2/UTIL/OTG/help_OTGplot.txt old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/main.c b/openair2/UTIL/OTG/main.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/makefile b/openair2/UTIL/OTG/makefile old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg.c b/openair2/UTIL/OTG/otg.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg.h b/openair2/UTIL/OTG/otg.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_config.h b/openair2/UTIL/OTG/otg_config.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_defs.h b/openair2/UTIL/OTG/otg_defs.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_externs.h b/openair2/UTIL/OTG/otg_externs.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_form.c b/openair2/UTIL/OTG/otg_form.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_form.h b/openair2/UTIL/OTG/otg_form.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_kpi.c b/openair2/UTIL/OTG/otg_kpi.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_kpi.h b/openair2/UTIL/OTG/otg_kpi.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_models.c b/openair2/UTIL/OTG/otg_models.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_models.h b/openair2/UTIL/OTG/otg_models.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_rx.c b/openair2/UTIL/OTG/otg_rx.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_rx.h b/openair2/UTIL/OTG/otg_rx.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_rx_socket.c b/openair2/UTIL/OTG/otg_rx_socket.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_rx_socket.h b/openair2/UTIL/OTG/otg_rx_socket.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_tx.c b/openair2/UTIL/OTG/otg_tx.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_tx.h b/openair2/UTIL/OTG/otg_tx.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_tx_socket.c b/openair2/UTIL/OTG/otg_tx_socket.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_tx_socket.h b/openair2/UTIL/OTG/otg_tx_socket.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/otg_vars.h b/openair2/UTIL/OTG/otg_vars.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/OTG/traffic_config.h b/openair2/UTIL/OTG/traffic_config.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TIMER/umts_timer.c b/openair2/UTIL/TIMER/umts_timer.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TIMER/umts_timer.h b/openair2/UTIL/TIMER/umts_timer.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TIMER/umts_timer_proto_extern.h b/openair2/UTIL/TIMER/umts_timer_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TIMER/umts_timer_struct.h b/openair2/UTIL/TIMER/umts_timer_struct.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TRACE/fifo_printf.c b/openair2/UTIL/TRACE/fifo_printf.c old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TRACE/fifo_printf.h b/openair2/UTIL/TRACE/fifo_printf.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TRACE/fifo_printf_proto_extern.h b/openair2/UTIL/TRACE/fifo_printf_proto_extern.h old mode 100755 new mode 100644 diff --git a/openair2/UTIL/TRACE/print.h b/openair2/UTIL/TRACE/print.h old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R10/x2ap-10.7.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R11/x2ap-11.9.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R12/x2ap-12.8.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R13/x2ap-13.7.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R14/x2ap-14.6.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.1.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R15/x2ap-15.2.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R8/x2ap-8.9.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 b/openair2/X2AP/MESSAGES/ASN1/R9/x2ap-9.6.0.asn1 old mode 100755 new mode 100644 diff --git a/openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py b/openair2/X2AP/MESSAGES/ASN1/asn1tostruct.py old mode 100755 new mode 100644 diff --git a/openair2/X2AP/Makefile.inc b/openair2/X2AP/Makefile.inc old mode 100755 new mode 100644 diff --git a/openair2/X2AP/x2ap_common.c b/openair2/X2AP/x2ap_common.c old mode 100755 new mode 100644 diff --git a/openair2/X2AP/x2ap_common.h b/openair2/X2AP/x2ap_common.h old mode 100755 new mode 100644 diff --git a/openair2/X2AP/x2ap_eNB.h b/openair2/X2AP/x2ap_eNB.h old mode 100755 new mode 100644 diff --git a/openair2/X2AP/x2ap_eNB_encoder.c b/openair2/X2AP/x2ap_eNB_encoder.c old mode 100755 new mode 100644 diff --git a/openair2/X2AP/x2ap_eNB_handler.h b/openair2/X2AP/x2ap_eNB_handler.h old mode 100755 new mode 100644 diff --git a/openair2/X2AP/x2ap_eNB_management_procedures.h b/openair2/X2AP/x2ap_eNB_management_procedures.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/as_message.h b/openair3/COMMON/as_message.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/common_types.h b/openair3/COMMON/common_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/gtpv1_u_messages_def.h b/openair3/COMMON/gtpv1_u_messages_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/gtpv1_u_messages_types.h b/openair3/COMMON/gtpv1_u_messages_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/intertask_interface_conf.h b/openair3/COMMON/intertask_interface_conf.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/messages_def.h b/openair3/COMMON/messages_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/messages_types.h b/openair3/COMMON/messages_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/nas_messages_def.h b/openair3/COMMON/nas_messages_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/nas_messages_types.h b/openair3/COMMON/nas_messages_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/s1ap_messages_def.h b/openair3/COMMON/s1ap_messages_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/s1ap_messages_types.h b/openair3/COMMON/s1ap_messages_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/sctp_messages_def.h b/openair3/COMMON/sctp_messages_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/sctp_messages_types.h b/openair3/COMMON/sctp_messages_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/security_types.h b/openair3/COMMON/security_types.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/tasks_def.h b/openair3/COMMON/tasks_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/udp_messages_def.h b/openair3/COMMON/udp_messages_def.h old mode 100755 new mode 100644 diff --git a/openair3/COMMON/udp_messages_types.h b/openair3/COMMON/udp_messages_types.h old mode 100755 new mode 100644 diff --git a/openair3/DOCS/DOXYGEN/Doxyfile.in b/openair3/DOCS/DOXYGEN/Doxyfile.in old mode 100755 new mode 100644 diff --git a/openair3/DOCS/DOXYGEN/Makefile.am b/openair3/DOCS/DOXYGEN/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf b/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.pdf old mode 100755 new mode 100644 diff --git a/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex b/openair3/DOCS/Latex/DefaultBearer/DefaultBearer.tex old mode 100755 new mode 100644 diff --git a/openair3/DOCS/Latex/EPC/EPC.pdf b/openair3/DOCS/Latex/EPC/EPC.pdf old mode 100755 new mode 100644 diff --git a/openair3/DOCS/Latex/EPC/EPC.tex b/openair3/DOCS/Latex/EPC/EPC.tex old mode 100755 new mode 100644 diff --git a/openair3/DOCS/Latex/EPC/Makefile b/openair3/DOCS/Latex/EPC/Makefile old mode 100755 new mode 100644 diff --git a/openair3/DOCS/Makefile.am b/openair3/DOCS/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/Makefile.am b/openair3/GTPV1-U/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/Makefile.eNB b/openair3/GTPV1-U/Makefile.eNB old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u.h b/openair3/GTPV1-U/gtpv1u.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u_eNB.c b/openair3/GTPV1-U/gtpv1u_eNB.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u_eNB_defs.h b/openair3/GTPV1-U/gtpv1u_eNB_defs.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u_eNB_task.h b/openair3/GTPV1-U/gtpv1u_eNB_task.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u_sgw_defs.h b/openair3/GTPV1-U/gtpv1u_sgw_defs.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u_task.c b/openair3/GTPV1-U/gtpv1u_task.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/gtpv1u_teid_pool.c b/openair3/GTPV1-U/gtpv1u_teid_pool.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/AUTHORS b/openair3/GTPV1-U/nw-gtpv1u/AUTHORS old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/COPYING b/openair3/GTPV1-U/nw-gtpv1u/COPYING old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/ChangeLog b/openair3/GTPV1-U/nw-gtpv1u/ChangeLog old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/NEWS b/openair3/GTPV1-U/nw-gtpv1u/NEWS old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/README b/openair3/GTPV1-U/nw-gtpv1u/README old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uLog.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uPrivate.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTrxn.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h b/openair3/GTPV1-U/nw-gtpv1u/include/NwGtpv1uTunnelEndPoint.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1u.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uError.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uIe.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwGtpv1uMsg.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwLog.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwTypes.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h b/openair3/GTPV1-U/nw-gtpv1u/shared/NwUtils.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uMsg.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTrxn.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c b/openair3/GTPV1-U/nw-gtpv1u/src/NwGtpv1uTunnelEndPoint.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am b/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in b/openair3/GTPV1-U/nw-gtpv1u/test-app/Makefile.in old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.am b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.in b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/Makefile.in old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwEvt.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniLogMgrEntity.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniTmrMgrEntity.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUdpEntity.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.c old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/NwMiniUlpEntity.h old mode 100755 new mode 100644 diff --git a/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c b/openair3/GTPV1-U/nw-gtpv1u/test-app/nw-helloworld/helloworld.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/Makefile b/openair3/NAS/COMMON/API/NETWORK/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/as_message.c b/openair3/NAS/COMMON/API/NETWORK/as_message.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/as_message.h b/openair3/NAS/COMMON/API/NETWORK/as_message.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/l2_message.h b/openair3/NAS/COMMON/API/NETWORK/l2_message.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/nas_message.c b/openair3/NAS/COMMON/API/NETWORK/nas_message.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/nas_message.h b/openair3/NAS/COMMON/API/NETWORK/nas_message.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/network_api.c b/openair3/NAS/COMMON/API/NETWORK/network_api.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/API/NETWORK/network_api.h b/openair3/NAS/COMMON/API/NETWORK/network_api.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachAccept.c b/openair3/NAS/COMMON/EMM/MSG/AttachAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachAccept.h b/openair3/NAS/COMMON/EMM/MSG/AttachAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachComplete.c b/openair3/NAS/COMMON/EMM/MSG/AttachComplete.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachComplete.h b/openair3/NAS/COMMON/EMM/MSG/AttachComplete.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachReject.c b/openair3/NAS/COMMON/EMM/MSG/AttachReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachReject.h b/openair3/NAS/COMMON/EMM/MSG/AttachReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachRequest.c b/openair3/NAS/COMMON/EMM/MSG/AttachRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AttachRequest.h b/openair3/NAS/COMMON/EMM/MSG/AttachRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationFailure.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c b/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h b/openair3/NAS/COMMON/EMM/MSG/AuthenticationResponse.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c b/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h b/openair3/NAS/COMMON/EMM/MSG/CsServiceNotification.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachAccept.c b/openair3/NAS/COMMON/EMM/MSG/DetachAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachAccept.h b/openair3/NAS/COMMON/EMM/MSG/DetachAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachRequest.c b/openair3/NAS/COMMON/EMM/MSG/DetachRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/DetachRequest.h b/openair3/NAS/COMMON/EMM/MSG/DetachRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c b/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h b/openair3/NAS/COMMON/EMM/MSG/DownlinkNasTransport.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmInformation.c b/openair3/NAS/COMMON/EMM/MSG/EmmInformation.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmInformation.h b/openair3/NAS/COMMON/EMM/MSG/EmmInformation.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmStatus.c b/openair3/NAS/COMMON/EMM/MSG/EmmStatus.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/EmmStatus.h b/openair3/NAS/COMMON/EMM/MSG/EmmStatus.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c b/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h b/openair3/NAS/COMMON/EMM/MSG/ExtendedServiceRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationCommand.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h b/openair3/NAS/COMMON/EMM/MSG/GutiReallocationComplete.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c b/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h b/openair3/NAS/COMMON/EMM/MSG/IdentityRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c b/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h b/openair3/NAS/COMMON/EMM/MSG/IdentityResponse.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/Makefile b/openair3/NAS/COMMON/EMM/MSG/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h b/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeCommand.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h b/openair3/NAS/COMMON/EMM/MSG/NASSecurityModeComplete.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c b/openair3/NAS/COMMON/EMM/MSG/SecurityModeCommand.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c b/openair3/NAS/COMMON/EMM/MSG/SecurityModeComplete.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c b/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h b/openair3/NAS/COMMON/EMM/MSG/SecurityModeReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceReject.c b/openair3/NAS/COMMON/EMM/MSG/ServiceReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceReject.h b/openair3/NAS/COMMON/EMM/MSG/ServiceReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c b/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h b/openair3/NAS/COMMON/EMM/MSG/ServiceRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateComplete.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h b/openair3/NAS/COMMON/EMM/MSG/TrackingAreaUpdateRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c b/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h b/openair3/NAS/COMMON/EMM/MSG/UplinkNasTransport.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_cause.h b/openair3/NAS/COMMON/EMM/MSG/emm_cause.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_msg.c b/openair3/NAS/COMMON/EMM/MSG/emm_msg.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_msg.h b/openair3/NAS/COMMON/EMM/MSG/emm_msg.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h b/openair3/NAS/COMMON/EMM/MSG/emm_msgDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDedicatedEpsBearerContextRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/ActivateDefaultEpsBearerContextRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceAllocationRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h b/openair3/NAS/COMMON/ESM/MSG/BearerResourceModificationRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/DeactivateEpsBearerContextRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c b/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h b/openair3/NAS/COMMON/ESM/MSG/EsmInformationRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c b/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h b/openair3/NAS/COMMON/ESM/MSG/EsmInformationResponse.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmStatus.c b/openair3/NAS/COMMON/ESM/MSG/EsmStatus.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/EsmStatus.h b/openair3/NAS/COMMON/ESM/MSG/EsmStatus.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/Makefile b/openair3/NAS/COMMON/ESM/MSG/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextAccept.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h b/openair3/NAS/COMMON/ESM/MSG/ModifyEpsBearerContextRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h b/openair3/NAS/COMMON/ESM/MSG/PdnConnectivityRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectReject.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h b/openair3/NAS/COMMON/ESM/MSG/PdnDisconnectRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_cause.h b/openair3/NAS/COMMON/ESM/MSG/esm_cause.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_msg.c b/openair3/NAS/COMMON/ESM/MSG/esm_msg.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_msg.h b/openair3/NAS/COMMON/ESM/MSG/esm_msg.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h b/openair3/NAS/COMMON/ESM/MSG/esm_msgDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AccessPointName.c b/openair3/NAS/COMMON/IES/AccessPointName.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AccessPointName.h b/openair3/NAS/COMMON/IES/AccessPointName.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateResult.c b/openair3/NAS/COMMON/IES/AdditionalUpdateResult.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateResult.h b/openair3/NAS/COMMON/IES/AdditionalUpdateResult.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateType.c b/openair3/NAS/COMMON/IES/AdditionalUpdateType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AdditionalUpdateType.h b/openair3/NAS/COMMON/IES/AdditionalUpdateType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c b/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h b/openair3/NAS/COMMON/IES/ApnAggregateMaximumBitRate.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c b/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h b/openair3/NAS/COMMON/IES/AuthenticationFailureParameter.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c b/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h b/openair3/NAS/COMMON/IES/AuthenticationParameterAutn.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterRand.c b/openair3/NAS/COMMON/IES/AuthenticationParameterRand.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationParameterRand.h b/openair3/NAS/COMMON/IES/AuthenticationParameterRand.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c b/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h b/openair3/NAS/COMMON/IES/AuthenticationResponseParameter.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c b/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h b/openair3/NAS/COMMON/IES/CipheringKeySequenceNumber.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/Cli.c b/openair3/NAS/COMMON/IES/Cli.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/Cli.h b/openair3/NAS/COMMON/IES/Cli.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/CsfbResponse.c b/openair3/NAS/COMMON/IES/CsfbResponse.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/CsfbResponse.h b/openair3/NAS/COMMON/IES/CsfbResponse.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/DaylightSavingTime.c b/openair3/NAS/COMMON/IES/DaylightSavingTime.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/DaylightSavingTime.h b/openair3/NAS/COMMON/IES/DaylightSavingTime.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/DetachType.c b/openair3/NAS/COMMON/IES/DetachType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/DetachType.h b/openair3/NAS/COMMON/IES/DetachType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/DrxParameter.c b/openair3/NAS/COMMON/IES/DrxParameter.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/DrxParameter.h b/openair3/NAS/COMMON/IES/DrxParameter.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EmergencyNumberList.c b/openair3/NAS/COMMON/IES/EmergencyNumberList.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EmergencyNumberList.h b/openair3/NAS/COMMON/IES/EmergencyNumberList.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EmmCause.c b/openair3/NAS/COMMON/IES/EmmCause.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EmmCause.h b/openair3/NAS/COMMON/IES/EmmCause.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsAttachResult.c b/openair3/NAS/COMMON/IES/EpsAttachResult.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsAttachResult.h b/openair3/NAS/COMMON/IES/EpsAttachResult.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsAttachType.c b/openair3/NAS/COMMON/IES/EpsAttachType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsAttachType.h b/openair3/NAS/COMMON/IES/EpsAttachType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsBearerContextStatus.c b/openair3/NAS/COMMON/IES/EpsBearerContextStatus.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsBearerContextStatus.h b/openair3/NAS/COMMON/IES/EpsBearerContextStatus.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsBearerIdentity.c b/openair3/NAS/COMMON/IES/EpsBearerIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsBearerIdentity.h b/openair3/NAS/COMMON/IES/EpsBearerIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsMobileIdentity.c b/openair3/NAS/COMMON/IES/EpsMobileIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsMobileIdentity.h b/openair3/NAS/COMMON/IES/EpsMobileIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c b/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h b/openair3/NAS/COMMON/IES/EpsNetworkFeatureSupport.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsQualityOfService.c b/openair3/NAS/COMMON/IES/EpsQualityOfService.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsQualityOfService.h b/openair3/NAS/COMMON/IES/EpsQualityOfService.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateResult.c b/openair3/NAS/COMMON/IES/EpsUpdateResult.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateResult.h b/openair3/NAS/COMMON/IES/EpsUpdateResult.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateType.c b/openair3/NAS/COMMON/IES/EpsUpdateType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EpsUpdateType.h b/openair3/NAS/COMMON/IES/EpsUpdateType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EsmCause.c b/openair3/NAS/COMMON/IES/EsmCause.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EsmCause.h b/openair3/NAS/COMMON/IES/EsmCause.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c b/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h b/openair3/NAS/COMMON/IES/EsmInformationTransferFlag.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EsmMessageContainer.c b/openair3/NAS/COMMON/IES/EsmMessageContainer.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/EsmMessageContainer.h b/openair3/NAS/COMMON/IES/EsmMessageContainer.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/GprsTimer.c b/openair3/NAS/COMMON/IES/GprsTimer.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/GprsTimer.h b/openair3/NAS/COMMON/IES/GprsTimer.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/GutiType.c b/openair3/NAS/COMMON/IES/GutiType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/GutiType.h b/openair3/NAS/COMMON/IES/GutiType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/IdentityType2.c b/openair3/NAS/COMMON/IES/IdentityType2.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/IdentityType2.h b/openair3/NAS/COMMON/IES/IdentityType2.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ImeisvRequest.c b/openair3/NAS/COMMON/IES/ImeisvRequest.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ImeisvRequest.h b/openair3/NAS/COMMON/IES/ImeisvRequest.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c b/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h b/openair3/NAS/COMMON/IES/KsiAndSequenceNumber.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LcsClientIdentity.c b/openair3/NAS/COMMON/IES/LcsClientIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LcsClientIdentity.h b/openair3/NAS/COMMON/IES/LcsClientIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LcsIndicator.c b/openair3/NAS/COMMON/IES/LcsIndicator.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LcsIndicator.h b/openair3/NAS/COMMON/IES/LcsIndicator.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c b/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h b/openair3/NAS/COMMON/IES/LinkedEpsBearerIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c b/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h b/openair3/NAS/COMMON/IES/LlcServiceAccessPointIdentifier.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LocationAreaIdentification.c b/openair3/NAS/COMMON/IES/LocationAreaIdentification.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/LocationAreaIdentification.h b/openair3/NAS/COMMON/IES/LocationAreaIdentification.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/Makefile b/openair3/NAS/COMMON/IES/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MessageType.c b/openair3/NAS/COMMON/IES/MessageType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MessageType.h b/openair3/NAS/COMMON/IES/MessageType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MobileIdentity.c b/openair3/NAS/COMMON/IES/MobileIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MobileIdentity.h b/openair3/NAS/COMMON/IES/MobileIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark2.c b/openair3/NAS/COMMON/IES/MobileStationClassmark2.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark2.h b/openair3/NAS/COMMON/IES/MobileStationClassmark2.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark3.c b/openair3/NAS/COMMON/IES/MobileStationClassmark3.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MobileStationClassmark3.h b/openair3/NAS/COMMON/IES/MobileStationClassmark3.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MsNetworkCapability.c b/openair3/NAS/COMMON/IES/MsNetworkCapability.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MsNetworkCapability.h b/openair3/NAS/COMMON/IES/MsNetworkCapability.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c b/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h b/openair3/NAS/COMMON/IES/MsNetworkFeatureSupport.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasKeySetIdentifier.c b/openair3/NAS/COMMON/IES/NasKeySetIdentifier.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasKeySetIdentifier.h b/openair3/NAS/COMMON/IES/NasKeySetIdentifier.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasMessageContainer.c b/openair3/NAS/COMMON/IES/NasMessageContainer.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasMessageContainer.h b/openair3/NAS/COMMON/IES/NasMessageContainer.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasRequestType.c b/openair3/NAS/COMMON/IES/NasRequestType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasRequestType.h b/openair3/NAS/COMMON/IES/NasRequestType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c b/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h b/openair3/NAS/COMMON/IES/NasSecurityAlgorithms.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NetworkName.c b/openair3/NAS/COMMON/IES/NetworkName.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/NetworkName.h b/openair3/NAS/COMMON/IES/NetworkName.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/Nonce.c b/openair3/NAS/COMMON/IES/Nonce.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/Nonce.h b/openair3/NAS/COMMON/IES/Nonce.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PTmsiSignature.c b/openair3/NAS/COMMON/IES/PTmsiSignature.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PTmsiSignature.h b/openair3/NAS/COMMON/IES/PTmsiSignature.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PacketFlowIdentifier.c b/openair3/NAS/COMMON/IES/PacketFlowIdentifier.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PacketFlowIdentifier.h b/openair3/NAS/COMMON/IES/PacketFlowIdentifier.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PagingIdentity.c b/openair3/NAS/COMMON/IES/PagingIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PagingIdentity.h b/openair3/NAS/COMMON/IES/PagingIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PdnAddress.c b/openair3/NAS/COMMON/IES/PdnAddress.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PdnAddress.h b/openair3/NAS/COMMON/IES/PdnAddress.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PdnType.c b/openair3/NAS/COMMON/IES/PdnType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PdnType.h b/openair3/NAS/COMMON/IES/PdnType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PlmnList.c b/openair3/NAS/COMMON/IES/PlmnList.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/PlmnList.h b/openair3/NAS/COMMON/IES/PlmnList.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c b/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h b/openair3/NAS/COMMON/IES/ProcedureTransactionIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c b/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h b/openair3/NAS/COMMON/IES/ProtocolConfigurationOptions.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ProtocolDiscriminator.c b/openair3/NAS/COMMON/IES/ProtocolDiscriminator.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ProtocolDiscriminator.h b/openair3/NAS/COMMON/IES/ProtocolDiscriminator.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/QualityOfService.c b/openair3/NAS/COMMON/IES/QualityOfService.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/QualityOfService.h b/openair3/NAS/COMMON/IES/QualityOfService.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/RadioPriority.c b/openair3/NAS/COMMON/IES/RadioPriority.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/RadioPriority.h b/openair3/NAS/COMMON/IES/RadioPriority.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/SecurityHeaderType.c b/openair3/NAS/COMMON/IES/SecurityHeaderType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/SecurityHeaderType.h b/openair3/NAS/COMMON/IES/SecurityHeaderType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ServiceType.c b/openair3/NAS/COMMON/IES/ServiceType.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ServiceType.h b/openair3/NAS/COMMON/IES/ServiceType.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ShortMac.c b/openair3/NAS/COMMON/IES/ShortMac.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/ShortMac.h b/openair3/NAS/COMMON/IES/ShortMac.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/SsCode.c b/openair3/NAS/COMMON/IES/SsCode.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/SsCode.h b/openair3/NAS/COMMON/IES/SsCode.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/SupportedCodecList.c b/openair3/NAS/COMMON/IES/SupportedCodecList.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/SupportedCodecList.h b/openair3/NAS/COMMON/IES/SupportedCodecList.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TimeZone.c b/openair3/NAS/COMMON/IES/TimeZone.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TimeZone.h b/openair3/NAS/COMMON/IES/TimeZone.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TimeZoneAndTime.c b/openair3/NAS/COMMON/IES/TimeZoneAndTime.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TimeZoneAndTime.h b/openair3/NAS/COMMON/IES/TimeZoneAndTime.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TmsiStatus.c b/openair3/NAS/COMMON/IES/TmsiStatus.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TmsiStatus.h b/openair3/NAS/COMMON/IES/TmsiStatus.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentity.c b/openair3/NAS/COMMON/IES/TrackingAreaIdentity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentity.h b/openair3/NAS/COMMON/IES/TrackingAreaIdentity.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c b/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h b/openair3/NAS/COMMON/IES/TrackingAreaIdentityList.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c b/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h b/openair3/NAS/COMMON/IES/TrafficFlowAggregateDescription.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowTemplate.c b/openair3/NAS/COMMON/IES/TrafficFlowTemplate.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TrafficFlowTemplate.h b/openair3/NAS/COMMON/IES/TrafficFlowTemplate.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TransactionIdentifier.c b/openair3/NAS/COMMON/IES/TransactionIdentifier.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/TransactionIdentifier.h b/openair3/NAS/COMMON/IES/TransactionIdentifier.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/UeNetworkCapability.c b/openair3/NAS/COMMON/IES/UeNetworkCapability.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/UeNetworkCapability.h b/openair3/NAS/COMMON/IES/UeNetworkCapability.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c b/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h b/openair3/NAS/COMMON/IES/UeRadioCapabilityInformationUpdateNeeded.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/UeSecurityCapability.c b/openair3/NAS/COMMON/IES/UeSecurityCapability.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/UeSecurityCapability.h b/openair3/NAS/COMMON/IES/UeSecurityCapability.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c b/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h b/openair3/NAS/COMMON/IES/VoiceDomainPreferenceAndUeUsageSetting.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/Makefile b/openair3/NAS/COMMON/UTIL/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/OctetString.c b/openair3/NAS/COMMON/UTIL/OctetString.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/OctetString.h b/openair3/NAS/COMMON/UTIL/OctetString.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/TLVDecoder.c b/openair3/NAS/COMMON/UTIL/TLVDecoder.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/TLVDecoder.h b/openair3/NAS/COMMON/UTIL/TLVDecoder.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/TLVEncoder.c b/openair3/NAS/COMMON/UTIL/TLVEncoder.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/TLVEncoder.h b/openair3/NAS/COMMON/UTIL/TLVEncoder.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/device.c b/openair3/NAS/COMMON/UTIL/device.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/device.h b/openair3/NAS/COMMON/UTIL/device.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/memory.c b/openair3/NAS/COMMON/UTIL/memory.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/memory.h b/openair3/NAS/COMMON/UTIL/memory.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/nas_log.h b/openair3/NAS/COMMON/UTIL/nas_log.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/nas_timer.c b/openair3/NAS/COMMON/UTIL/nas_timer.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/nas_timer.h b/openair3/NAS/COMMON/UTIL/nas_timer.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/parser.c b/openair3/NAS/COMMON/UTIL/parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/parser.h b/openair3/NAS/COMMON/UTIL/parser.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/socket.c b/openair3/NAS/COMMON/UTIL/socket.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/socket.h b/openair3/NAS/COMMON/UTIL/socket.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/stty.c b/openair3/NAS/COMMON/UTIL/stty.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/tst/Makefile b/openair3/NAS/COMMON/UTIL/tst/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/tst/timer.c b/openair3/NAS/COMMON/UTIL/tst/timer.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/UTIL/tst/timer_debug.txt b/openair3/NAS/COMMON/UTIL/tst/timer_debug.txt old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/commonDef.h b/openair3/NAS/COMMON/commonDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/networkDef.h b/openair3/NAS/COMMON/networkDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/securityDef.h b/openair3/NAS/COMMON/securityDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/COMMON/userDef.h b/openair3/NAS/COMMON/userDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/Makefile b/openair3/NAS/TEST/AS_SIMULATOR/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_data.c b/openair3/NAS/TEST/AS_SIMULATOR/as_data.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_data.h b/openair3/NAS/TEST/AS_SIMULATOR/as_data.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_process.c b/openair3/NAS/TEST/AS_SIMULATOR/as_process.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_process.h b/openair3/NAS/TEST/AS_SIMULATOR/as_process.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h b/openair3/NAS/TEST/AS_SIMULATOR/as_simulator_parser.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_data.c b/openair3/NAS/TEST/AS_SIMULATOR/nas_data.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_data.h b/openair3/NAS/TEST/AS_SIMULATOR/nas_data.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c b/openair3/NAS/TEST/AS_SIMULATOR/nas_process.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/AS_SIMULATOR/nas_process.h b/openair3/NAS/TEST/AS_SIMULATOR/nas_process.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/ActivatePDN.png b/openair3/NAS/TEST/MSC/ActivatePDN.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/AuthenticationReject.png b/openair3/NAS/TEST/MSC/AuthenticationReject.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/DeactivatePDN.png b/openair3/NAS/TEST/MSC/DeactivatePDN.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/InitialAttach.png b/openair3/NAS/TEST/MSC/InitialAttach.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/InitialAttachReject.png b/openair3/NAS/TEST/MSC/InitialAttachReject.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/NomalDetach.png b/openair3/NAS/TEST/MSC/NomalDetach.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/README b/openair3/NAS/TEST/MSC/README old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/MSC/SwitchOffDetach.png b/openair3/NAS/TEST/MSC/SwitchOffDetach.png old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/NETWORK/Makefile b/openair3/NAS/TEST/NETWORK/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/NETWORK/README b/openair3/NAS/TEST/NETWORK/README old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/NETWORK/network_parser.c b/openair3/NAS/TEST/NETWORK/network_parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/NETWORK/network_parser.h b/openair3/NAS/TEST/NETWORK/network_parser.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/NETWORK/network_simulator.c b/openair3/NAS/TEST/NETWORK/network_simulator.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/USER/Makefile b/openair3/NAS/TEST/USER/Makefile old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/USER/user_parser.c b/openair3/NAS/TEST/USER/user_parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/USER/user_parser.h b/openair3/NAS/TEST/USER/user_parser.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TEST/USER/user_simulator.c b/openair3/NAS/TEST/USER/user_simulator.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf2uedata.c b/openair3/NAS/TOOLS/conf2uedata.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf2uedata.h b/openair3/NAS/TOOLS/conf2uedata.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_emm.c b/openair3/NAS/TOOLS/conf_emm.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_emm.h b/openair3/NAS/TOOLS/conf_emm.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_network.c b/openair3/NAS/TOOLS/conf_network.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_network.h b/openair3/NAS/TOOLS/conf_network.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_parser.c b/openair3/NAS/TOOLS/conf_parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_parser.h b/openair3/NAS/TOOLS/conf_parser.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_user_data.c b/openair3/NAS/TOOLS/conf_user_data.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_user_data.h b/openair3/NAS/TOOLS/conf_user_data.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_user_plmn.c b/openair3/NAS/TOOLS/conf_user_plmn.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_user_plmn.h b/openair3/NAS/TOOLS/conf_user_plmn.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_usim.c b/openair3/NAS/TOOLS/conf_usim.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/conf_usim.h b/openair3/NAS/TOOLS/conf_usim.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/display.c b/openair3/NAS/TOOLS/display.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/display.h b/openair3/NAS/TOOLS/display.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/fs.c b/openair3/NAS/TOOLS/fs.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/fs.h b/openair3/NAS/TOOLS/fs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/network.h b/openair3/NAS/TOOLS/network.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/nvram.c b/openair3/NAS/TOOLS/nvram.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/ue_bcom_test.conf b/openair3/NAS/TOOLS/ue_bcom_test.conf old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf b/openair3/NAS/TOOLS/ue_eurecom_test_sfr.conf old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/ue_tcl_test.conf b/openair3/NAS/TOOLS/ue_tcl_test.conf old mode 100755 new mode 100644 diff --git a/openair3/NAS/TOOLS/usim.c b/openair3/NAS/TOOLS/usim.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/at_command.c b/openair3/NAS/UE/API/USER/at_command.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/at_command.h b/openair3/NAS/UE/API/USER/at_command.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/at_error.c b/openair3/NAS/UE/API/USER/at_error.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/at_error.h b/openair3/NAS/UE/API/USER/at_error.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/at_response.c b/openair3/NAS/UE/API/USER/at_response.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/at_response.h b/openair3/NAS/UE/API/USER/at_response.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.c b/openair3/NAS/UE/API/USER/tst/at_parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.in b/openair3/NAS/UE/API/USER/tst/at_parser.in old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.in.bis b/openair3/NAS/UE/API/USER/tst/at_parser.in.bis old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.out b/openair3/NAS/UE/API/USER/tst/at_parser.out old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/tst/at_parser.out.bis b/openair3/NAS/UE/API/USER/tst/at_parser.out.bis old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/tst/smartcom.txt b/openair3/NAS/UE/API/USER/tst/smartcom.txt old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/user_api.c b/openair3/NAS/UE/API/USER/user_api.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/user_api.h b/openair3/NAS/UE/API/USER/user_api.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/user_api_defs.h b/openair3/NAS/UE/API/USER/user_api_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/user_indication.c b/openair3/NAS/UE/API/USER/user_indication.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USER/user_indication.h b/openair3/NAS/UE/API/USER/user_indication.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USIM/aka_functions.c b/openair3/NAS/UE/API/USIM/aka_functions.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USIM/aka_functions.h b/openair3/NAS/UE/API/USIM/aka_functions.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USIM/usim_api.c b/openair3/NAS/UE/API/USIM/usim_api.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/API/USIM/usim_api.h b/openair3/NAS/UE/API/USIM/usim_api.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/Attach.c b/openair3/NAS/UE/EMM/Attach.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/Authentication.c b/openair3/NAS/UE/EMM/Authentication.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/Authentication.h b/openair3/NAS/UE/EMM/Authentication.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/Detach.c b/openair3/NAS/UE/EMM/Detach.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/EmmStatusHdl.c b/openair3/NAS/UE/EMM/EmmStatusHdl.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/Identification.c b/openair3/NAS/UE/EMM/Identification.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/IdleMode.c b/openair3/NAS/UE/EMM/IdleMode.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/IdleMode.h b/openair3/NAS/UE/EMM/IdleMode.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/IdleMode_defs.h b/openair3/NAS/UE/EMM/IdleMode_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/LowerLayer.c b/openair3/NAS/UE/EMM/LowerLayer.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/LowerLayer.h b/openair3/NAS/UE/EMM/LowerLayer.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/LowerLayer_defs.h b/openair3/NAS/UE/EMM/LowerLayer_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregistered.c b/openair3/NAS/UE/EMM/SAP/EmmDeregistered.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttachNeeded.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredAttemptingToAttach.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredInitiated.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredLimitedService.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoCellAvailable.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNoImsi.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredNormalService.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c b/openair3/NAS/UE/EMM/SAP/EmmDeregisteredPlmnSearch.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmNull.c b/openair3/NAS/UE/EMM/SAP/EmmNull.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegistered.c b/openair3/NAS/UE/EMM/SAP/EmmRegistered.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredAttemptingToUpdate.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredImsiDetachInitiated.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredInitiated.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredLimitedService.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredNoCellAvailable.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredNormalService.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredPlmnSearch.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c b/openair3/NAS/UE/EMM/SAP/EmmRegisteredUpdateNeeded.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmServiceRequestInitiated.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c b/openair3/NAS/UE/EMM/SAP/EmmTrackingAreaUpdatingInitiated.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.h b/openair3/NAS/UE/EMM/SAP/emm_as.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_asDef.h b/openair3/NAS/UE/EMM/SAP/emm_asDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.c b/openair3/NAS/UE/EMM/SAP/emm_esm.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.h b/openair3/NAS/UE/EMM/SAP/emm_esm.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_esmDef.h b/openair3/NAS/UE/EMM/SAP/emm_esmDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_fsm.c b/openair3/NAS/UE/EMM/SAP/emm_fsm.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_fsm.h b/openair3/NAS/UE/EMM/SAP/emm_fsm.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_recv.c b/openair3/NAS/UE/EMM/SAP/emm_recv.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_recv.h b/openair3/NAS/UE/EMM/SAP/emm_recv.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_reg.c b/openair3/NAS/UE/EMM/SAP/emm_reg.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_reg.h b/openair3/NAS/UE/EMM/SAP/emm_reg.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_regDef.h b/openair3/NAS/UE/EMM/SAP/emm_regDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_sap.c b/openair3/NAS/UE/EMM/SAP/emm_sap.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_sap.h b/openair3/NAS/UE/EMM/SAP/emm_sap.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_send.c b/openair3/NAS/UE/EMM/SAP/emm_send.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SAP/emm_send.h b/openair3/NAS/UE/EMM/SAP/emm_send.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SecurityModeControl.c b/openair3/NAS/UE/EMM/SecurityModeControl.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/SecurityModeControl.h b/openair3/NAS/UE/EMM/SecurityModeControl.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/ServiceRequestHdl.c b/openair3/NAS/UE/EMM/ServiceRequestHdl.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/TrackingAreaUpdate.c b/openair3/NAS/UE/EMM/TrackingAreaUpdate.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emmData.h b/openair3/NAS/UE/EMM/emmData.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emm_fsm_defs.h b/openair3/NAS/UE/EMM/emm_fsm_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emm_main.c b/openair3/NAS/UE/EMM/emm_main.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emm_main.h b/openair3/NAS/UE/EMM/emm_main.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emm_proc.h b/openair3/NAS/UE/EMM/emm_proc.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emm_proc_defs.h b/openair3/NAS/UE/EMM/emm_proc_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/EMM/emm_timers.h b/openair3/NAS/UE/EMM/emm_timers.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DedicatedEpsBearerContextActivation.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c b/openair3/NAS/UE/ESM/DefaultEpsBearerContextActivation.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c b/openair3/NAS/UE/ESM/EpsBearerContextDeactivation.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/EsmStatusHdl.c b/openair3/NAS/UE/ESM/EsmStatusHdl.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/PdnConnectivity.c b/openair3/NAS/UE/ESM/PdnConnectivity.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/PdnDisconnect.c b/openair3/NAS/UE/ESM/PdnDisconnect.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_recv.c b/openair3/NAS/UE/ESM/SAP/esm_recv.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_recv.h b/openair3/NAS/UE/ESM/SAP/esm_recv.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.c b/openair3/NAS/UE/ESM/SAP/esm_sap.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_sap.h b/openair3/NAS/UE/ESM/SAP/esm_sap.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_sapDef.h b/openair3/NAS/UE/ESM/SAP/esm_sapDef.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.c b/openair3/NAS/UE/ESM/SAP/esm_send.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/SAP/esm_send.h b/openair3/NAS/UE/ESM/SAP/esm_send.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esmData.h b/openair3/NAS/UE/ESM/esmData.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_ebr.c b/openair3/NAS/UE/ESM/esm_ebr.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_ebr.h b/openair3/NAS/UE/ESM/esm_ebr.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.c b/openair3/NAS/UE/ESM/esm_ebr_context.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_ebr_context.h b/openair3/NAS/UE/ESM/esm_ebr_context.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_ip.c b/openair3/NAS/UE/ESM/esm_ip.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_main.c b/openair3/NAS/UE/ESM/esm_main.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_main.h b/openair3/NAS/UE/ESM/esm_main.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_proc.h b/openair3/NAS/UE/ESM/esm_proc.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_pt.c b/openair3/NAS/UE/ESM/esm_pt.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_pt.h b/openair3/NAS/UE/ESM/esm_pt.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/ESM/esm_pt_defs.h b/openair3/NAS/UE/ESM/esm_pt_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/UEprocess.c b/openair3/NAS/UE/UEprocess.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_itti_messaging.c b/openair3/NAS/UE/nas_itti_messaging.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_itti_messaging.h b/openair3/NAS/UE/nas_itti_messaging.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_network.c b/openair3/NAS/UE/nas_network.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_network.h b/openair3/NAS/UE/nas_network.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_parser.c b/openair3/NAS/UE/nas_parser.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_parser.h b/openair3/NAS/UE/nas_parser.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_proc.c b/openair3/NAS/UE/nas_proc.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_proc.h b/openair3/NAS/UE/nas_proc.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_proc_defs.h b/openair3/NAS/UE/nas_proc_defs.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_ue_task.h b/openair3/NAS/UE/nas_ue_task.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_user.c b/openair3/NAS/UE/nas_user.c old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/nas_user.h b/openair3/NAS/UE/nas_user.h old mode 100755 new mode 100644 diff --git a/openair3/NAS/UE/user_defs.h b/openair3/NAS/UE/user_defs.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R10/s1ap-10.9.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R11/s1ap-11.8.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R12/s1ap-12.7.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R13/s1ap-13.6.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.5.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R14/s1ap-14.6.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.1.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R15/s1ap-15.2.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R8/s1ap-8.10.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 b/openair3/S1AP/MESSAGES/ASN1/R9/s1ap-9.10.0.asn1 old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/README b/openair3/S1AP/MESSAGES/ASN1/README old mode 100755 new mode 100644 diff --git a/openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py b/openair3/S1AP/MESSAGES/ASN1/asn1tostruct.py old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_common.c b/openair3/S1AP/s1ap_common.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_common.h b/openair3/S1AP/s1ap_common.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB.c b/openair3/S1AP/s1ap_eNB.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB.h b/openair3/S1AP/s1ap_eNB.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.c b/openair3/S1AP/s1ap_eNB_context_management_procedures.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_context_management_procedures.h b/openair3/S1AP/s1ap_eNB_context_management_procedures.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_decoder.c b/openair3/S1AP/s1ap_eNB_decoder.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_decoder.h b/openair3/S1AP/s1ap_eNB_decoder.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_default_values.h b/openair3/S1AP/s1ap_eNB_default_values.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_defs.h b/openair3/S1AP/s1ap_eNB_defs.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_encoder.c b/openair3/S1AP/s1ap_eNB_encoder.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_encoder.h b/openair3/S1AP/s1ap_eNB_encoder.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_handlers.c b/openair3/S1AP/s1ap_eNB_handlers.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_handlers.h b/openair3/S1AP/s1ap_eNB_handlers.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_itti_messaging.c b/openair3/S1AP/s1ap_eNB_itti_messaging.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_itti_messaging.h b/openair3/S1AP/s1ap_eNB_itti_messaging.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_management_procedures.c b/openair3/S1AP/s1ap_eNB_management_procedures.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_management_procedures.h b/openair3/S1AP/s1ap_eNB_management_procedures.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.c b/openair3/S1AP/s1ap_eNB_nas_procedures.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_nas_procedures.h b/openair3/S1AP/s1ap_eNB_nas_procedures.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_nnsf.c b/openair3/S1AP/s1ap_eNB_nnsf.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_nnsf.h b/openair3/S1AP/s1ap_eNB_nnsf.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_overload.c b/openair3/S1AP/s1ap_eNB_overload.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_overload.h b/openair3/S1AP/s1ap_eNB_overload.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_trace.c b/openair3/S1AP/s1ap_eNB_trace.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_trace.h b/openair3/S1AP/s1ap_eNB_trace.h old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_ue_context.c b/openair3/S1AP/s1ap_eNB_ue_context.c old mode 100755 new mode 100644 diff --git a/openair3/S1AP/s1ap_eNB_ue_context.h b/openair3/S1AP/s1ap_eNB_ue_context.h old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_common.c b/openair3/SCTP/sctp_common.c old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_common.h b/openair3/SCTP/sctp_common.h old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_default_values.h b/openair3/SCTP/sctp_default_values.h old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_eNB_defs.h b/openair3/SCTP/sctp_eNB_defs.h old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.c b/openair3/SCTP/sctp_eNB_itti_messaging.c old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_eNB_itti_messaging.h b/openair3/SCTP/sctp_eNB_itti_messaging.h old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_eNB_task.c b/openair3/SCTP/sctp_eNB_task.c old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_eNB_task.h b/openair3/SCTP/sctp_eNB_task.h old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_primitives_client.c b/openair3/SCTP/sctp_primitives_client.c old mode 100755 new mode 100644 diff --git a/openair3/SCTP/sctp_primitives_client.h b/openair3/SCTP/sctp_primitives_client.h old mode 100755 new mode 100644 diff --git a/openair3/SECU/kdf.c b/openair3/SECU/kdf.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/key_nas_deriver.c b/openair3/SECU/key_nas_deriver.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/key_nas_encryption.c b/openair3/SECU/key_nas_encryption.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/nas_stream_eea1.c b/openair3/SECU/nas_stream_eea1.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/nas_stream_eea2.c b/openair3/SECU/nas_stream_eea2.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/nas_stream_eia1.c b/openair3/SECU/nas_stream_eia1.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/nas_stream_eia2.c b/openair3/SECU/nas_stream_eia2.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/rijndael.c b/openair3/SECU/rijndael.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/rijndael.h b/openair3/SECU/rijndael.h old mode 100755 new mode 100644 diff --git a/openair3/SECU/secu_defs.h b/openair3/SECU/secu_defs.h old mode 100755 new mode 100644 diff --git a/openair3/SECU/snow3g.c b/openair3/SECU/snow3g.c old mode 100755 new mode 100644 diff --git a/openair3/SECU/snow3g.h b/openair3/SECU/snow3g.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/attach_complete.pdml old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb.band7.tm1.usrpb210.epc.local.conf old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/enb1.conf old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml b/openair3/TEST/EPC_TEST/TEST_1MME_1ENB_1UE_ATTACH_GUTI/trace.pdml old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/generate_scenario.c b/openair3/TEST/EPC_TEST/generate_scenario.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/generate_scenario.h b/openair3/TEST/EPC_TEST/generate_scenario.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario.c b/openair3/TEST/EPC_TEST/play_scenario.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario.h b/openair3/TEST/EPC_TEST/play_scenario.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_decode.c b/openair3/TEST/EPC_TEST/play_scenario_decode.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_display.c b/openair3/TEST/EPC_TEST/play_scenario_display.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_fsm.c b/openair3/TEST/EPC_TEST/play_scenario_fsm.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_parse.c b/openair3/TEST/EPC_TEST/play_scenario_parse.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c b/openair3/TEST/EPC_TEST/play_scenario_s1ap_compare_ie.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h b/openair3/TEST/EPC_TEST/play_scenario_s1ap_eNB_defs.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/EPC_TEST/play_scenario_sctp.c b/openair3/TEST/EPC_TEST/play_scenario_sctp.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/Makefile.am b/openair3/TEST/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_client_test.c b/openair3/TEST/oaisim_mme_client_test.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_itti_test.c b/openair3/TEST/oaisim_mme_itti_test.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_list_benchmark.c b/openair3/TEST/oaisim_mme_list_benchmark.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_s1ap_test.c b/openair3/TEST/oaisim_mme_s1ap_test.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_sctp_test.c b/openair3/TEST/oaisim_mme_sctp_test.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c.c b/openair3/TEST/oaisim_mme_test_s1c.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c.h b/openair3/TEST/oaisim_mme_test_s1c.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c_s1ap.c b/openair3/TEST/oaisim_mme_test_s1c_s1ap.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c_s1ap.h b/openair3/TEST/oaisim_mme_test_s1c_s1ap.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c_scenario.c b/openair3/TEST/oaisim_mme_test_s1c_scenario.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c_scenario.h b/openair3/TEST/oaisim_mme_test_s1c_scenario.h old mode 100755 new mode 100644 diff --git a/openair3/TEST/oaisim_mme_test_s1c_scenario1.c b/openair3/TEST/oaisim_mme_test_s1c_scenario1.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_aes128_cmac_encrypt.c b/openair3/TEST/test_aes128_cmac_encrypt.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_aes128_ctr_decrypt.c b/openair3/TEST/test_aes128_ctr_decrypt.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_aes128_ctr_encrypt.c b/openair3/TEST/test_aes128_ctr_encrypt.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_kdf.c b/openair3/TEST/test_kdf.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_s1ap.c b/openair3/TEST/test_s1ap.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu.c b/openair3/TEST/test_secu.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_kenb.c b/openair3/TEST/test_secu_kenb.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_knas.c b/openair3/TEST/test_secu_knas.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_knas_encrypt_eea1.c b/openair3/TEST/test_secu_knas_encrypt_eea1.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_knas_encrypt_eea2.c b/openair3/TEST/test_secu_knas_encrypt_eea2.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_knas_encrypt_eia1.c b/openair3/TEST/test_secu_knas_encrypt_eia1.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_knas_encrypt_eia2.c b/openair3/TEST/test_secu_knas_encrypt_eia2.c old mode 100755 new mode 100644 diff --git a/openair3/TEST/test_secu_knas_stream_int.c b/openair3/TEST/test_secu_knas_stream_int.c old mode 100755 new mode 100644 diff --git a/openair3/UDP/udp_eNB_task.c b/openair3/UDP/udp_eNB_task.c old mode 100755 new mode 100644 diff --git a/openair3/UDP/udp_eNB_task.h b/openair3/UDP/udp_eNB_task.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/CONF/COPYING b/openair3/UTILS/CONF/COPYING old mode 100755 new mode 100644 diff --git a/openair3/UTILS/Makefile.am b/openair3/UTILS/Makefile.am old mode 100755 new mode 100644 diff --git a/openair3/UTILS/conversions.c b/openair3/UTILS/conversions.c old mode 100755 new mode 100644 diff --git a/openair3/UTILS/conversions.h b/openair3/UTILS/conversions.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/enum_string.c b/openair3/UTILS/enum_string.c old mode 100755 new mode 100644 diff --git a/openair3/UTILS/enum_string.h b/openair3/UTILS/enum_string.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mcc_mnc_itu.c b/openair3/UTILS/mcc_mnc_itu.c old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mcc_mnc_itu.h b/openair3/UTILS/mcc_mnc_itu.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mme_config.c b/openair3/UTILS/mme_config.c old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mme_config.h b/openair3/UTILS/mme_config.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mme_default_values.h b/openair3/UTILS/mme_default_values.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mme_parser.y b/openair3/UTILS/mme_parser.y old mode 100755 new mode 100644 diff --git a/openair3/UTILS/mme_scanner.l b/openair3/UTILS/mme_scanner.l old mode 100755 new mode 100644 diff --git a/openair3/UTILS/queue.h b/openair3/UTILS/queue.h old mode 100755 new mode 100644 diff --git a/openair3/UTILS/tree.h b/openair3/UTILS/tree.h old mode 100755 new mode 100644 diff --git a/pre-commit b/pre-commit old mode 100755 new mode 100644 diff --git a/svn2git/README.txt b/svn2git/README.txt old mode 100755 new mode 100644 diff --git a/svn2git/authors.txt b/svn2git/authors.txt old mode 100755 new mode 100644 diff --git a/svn2git/authors_original.txt b/svn2git/authors_original.txt old mode 100755 new mode 100644 diff --git a/svn2git/authors_original_java_output.txt b/svn2git/authors_original_java_output.txt old mode 100755 new mode 100644 diff --git a/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c b/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h b/targets/ARCH/BLADERF/USERSPACE/LIB/bladerf_lib.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/COMMON/common_lib.c b/targets/ARCH/COMMON/common_lib.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/COMMON/common_lib.h b/targets/ARCH/COMMON/common_lib.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc b/targets/ARCH/ETHERNET/USERSPACE/LIB/Makefile.inc old mode 100755 new mode 100644 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_raw.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h b/targets/ARCH/ETHERNET/USERSPACE/LIB/ethernet_lib.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h b/targets/ARCH/ETHERNET/USERSPACE/LIB/if_defs.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi b/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.cfi old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs b/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.mcs old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm b/targets/ARCH/EXMIMO/BITSTREAM/exmimo2_prom.prm old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit b/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.bit old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf b/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.ipf old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk b/targets/ARCH/EXMIMO/BITSTREAM/express-mimo2.msk old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd b/targets/ARCH/EXMIMO/BITSTREAM/fpga.cmd old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd b/targets/ARCH/EXMIMO/BITSTREAM/prom_generate.cmd old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd b/targets/ARCH/EXMIMO/BITSTREAM/prom_load.cmd old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DEFS/openair_device.h b/targets/ARCH/EXMIMO/DEFS/openair_device.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DEFS/pcie_interface.h b/targets/ARCH/EXMIMO/DEFS/pcie_interface.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/Makefile b/targets/ARCH/EXMIMO/DRIVER/eurecom/Makefile old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh b/targets/ARCH/EXMIMO/DRIVER/eurecom/compile.sh old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h b/targets/ARCH/EXMIMO/DRIVER/eurecom/defs.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/exmimo_fw.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h b/targets/ARCH/EXMIMO/DRIVER/eurecom/extern.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/fileops.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/irq.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c b/targets/ARCH/EXMIMO/DRIVER/eurecom/module_main.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h b/targets/ARCH/EXMIMO/DRIVER/eurecom/vars.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/Makefile b/targets/ARCH/EXMIMO/DRIVER/exmimo3/Makefile old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh b/targets/ARCH/EXMIMO/DRIVER/exmimo3/compile.sh old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h b/targets/ARCH/EXMIMO/DRIVER/exmimo3/defs.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/exmimo_fw.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h b/targets/ARCH/EXMIMO/DRIVER/exmimo3/extern.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/fileops.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/irq.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c b/targets/ARCH/EXMIMO/DRIVER/exmimo3/module_main.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h b/targets/ARCH/EXMIMO/DRIVER/exmimo3/vars.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/readme.txt b/targets/ARCH/EXMIMO/DRIVER/readme.txt old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/Makefile b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/Makefile old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_dev.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_drv.sh old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_fifos.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_ioctl.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_mmap.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c b/targets/ARCH/EXMIMO/DRIVER/telecomparistech/em1_rw.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile b/targets/ARCH/EXMIMO/USERSPACE/LIB/Makefile old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/example.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/example.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h b/targets/ARCH/EXMIMO/USERSPACE/LIB/gain_control.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c b/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h b/targets/ARCH/EXMIMO/USERSPACE/LIB/openair0_lib.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/Makefile old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elf.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/elftypes.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h b/targets/ARCH/EXMIMO/USERSPACE/OAI_FW_INIT/updatefw.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/Makefile old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/OFDM_TX_FRAME.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/QAM_MOD.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/bitplots.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_rx_iqimbalance.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_snr_nf.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo2_tx_iqimbalance.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_config_off.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_loopback.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_multicard.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/exmimo_test_tx_rx.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/freq_calibration.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/gpib_send.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/initial_sync.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/lime_cal_rx.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/limeparms.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_config_exmimo.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_frame.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_get_num_detected_cards.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_send_frame.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/oarf_stop_without_reset.cc old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/phasenoise.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfl.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rfldec.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_exmimo_freq.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_calibration_rffe.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/rx_spec_multicard_sync.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_multicard_sync.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m b/targets/ARCH/EXMIMO/USERSPACE/OCTAVE/txsig_ofdm.m old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/LimeSDR.ini b/targets/ARCH/LMSSDR/LimeSDR.ini old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini b/targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz.ini old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini b/targets/ARCH/LMSSDR/LimeSDR_above_1p8GHz_1v4.ini old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini b/targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz.ini old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini b/targets/ARCH/LMSSDR/LimeSDR_below_1p8GHz_1v4.ini old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/lms_lib.cpp old mode 100755 new mode 100644 diff --git a/targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp b/targets/ARCH/LMSSDR/USERSPACE/LIB/sodera_lib.cpp old mode 100755 new mode 100644 diff --git a/targets/ARCH/mobipass/interface.c b/targets/ARCH/mobipass/interface.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/mobipass/mobipass.c b/targets/ARCH/mobipass/mobipass.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/mobipass/mobipass.h b/targets/ARCH/mobipass/mobipass.h old mode 100755 new mode 100644 diff --git a/targets/ARCH/mobipass/queues.c b/targets/ARCH/mobipass/queues.c old mode 100755 new mode 100644 diff --git a/targets/ARCH/mobipass/queues.h b/targets/ARCH/mobipass/queues.h old mode 100755 new mode 100644 diff --git a/targets/COMMON/Makefile.inc b/targets/COMMON/Makefile.inc old mode 100755 new mode 100644 diff --git a/targets/COMMON/create_tasks.c b/targets/COMMON/create_tasks.c old mode 100755 new mode 100644 diff --git a/targets/COMMON/create_tasks.h b/targets/COMMON/create_tasks.h old mode 100755 new mode 100644 diff --git a/targets/COMMON/openairinterface5g_limits.h b/targets/COMMON/openairinterface5g_limits.h old mode 100755 new mode 100644 diff --git a/targets/COMMON/threads_t.h b/targets/COMMON/threads_t.h old mode 100755 new mode 100644 diff --git a/targets/DOCS/Doxyfile b/targets/DOCS/Doxyfile old mode 100755 new mode 100644 diff --git a/targets/DOCS/E-UTRAN_User_Guide.docx b/targets/DOCS/E-UTRAN_User_Guide.docx old mode 100755 new mode 100644 diff --git a/targets/DOCS/E-UTRAN_User_Guide.pdf b/targets/DOCS/E-UTRAN_User_Guide.pdf old mode 100755 new mode 100644 diff --git a/targets/DOCS/images/oai_logo.png b/targets/DOCS/images/oai_logo.png old mode 100755 new mode 100644 diff --git a/targets/DOCS/oai_L1_L2_procedures.ipe b/targets/DOCS/oai_L1_L2_procedures.ipe old mode 100755 new mode 100644 diff --git a/targets/Makefile.common b/targets/Makefile.common old mode 100755 new mode 100644 diff --git a/targets/Makerules b/targets/Makerules old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.calisson.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.memphis.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf b/targets/PROJECTS/CENTOS-LTE-EPC-INTEGRATION/CONF/enb.centos.nord.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/E-MBMS/enb.conf b/targets/PROJECTS/E-MBMS/enb.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/UE_config.xml old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.50PRB.usrpb210.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/oaiL1.nfapi.usrpb210.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.nfapi.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.lo.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rru.oaisim.conf old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/filesave0811.mat b/targets/PROJECTS/LOCALIZATION/filesave0811.mat old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/generation.m b/targets/PROJECTS/LOCALIZATION/generation.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/initial_sync.m b/targets/PROJECTS/LOCALIZATION/initial_sync.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/initparams.m b/targets/PROJECTS/LOCALIZATION/initparams.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/plots.m b/targets/PROJECTS/LOCALIZATION/plots.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/recup.m b/targets/PROJECTS/LOCALIZATION/recup.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/where2.m b/targets/PROJECTS/LOCALIZATION/where2.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/where2_v1_final.mat b/targets/PROJECTS/LOCALIZATION/where2_v1_final.mat old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/LOCALIZATION/where2_vf.m b/targets/PROJECTS/LOCALIZATION/where2_vf.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_ch_est.m b/targets/PROJECTS/TDDREC/f_ch_est.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_ofdm_mod.m b/targets/PROJECTS/TDDREC/f_ofdm_mod.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_ofdm_rx.m b/targets/PROJECTS/TDDREC/f_ofdm_rx.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_ofdm_tx.m b/targets/PROJECTS/TDDREC/f_ofdm_tx.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_tls_ap.m b/targets/PROJECTS/TDDREC/f_tls_ap.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_tls_diag.m b/targets/PROJECTS/TDDREC/f_tls_diag.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/f_tls_svd.m b/targets/PROJECTS/TDDREC/f_tls_svd.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/s_beamforming.m b/targets/PROJECTS/TDDREC/s_beamforming.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/s_calib.m b/targets/PROJECTS/TDDREC/s_calib.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/s_draw_F.m b/targets/PROJECTS/TDDREC/s_draw_F.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/s_init_params.m b/targets/PROJECTS/TDDREC/s_init_params.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/s_run_meas.m b/targets/PROJECTS/TDDREC/s_run_meas.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/alterproj.m b/targets/PROJECTS/TDDREC/v0/alterproj.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/beamforming.m b/targets/PROJECTS/TDDREC/v0/beamforming.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/calibration.m b/targets/PROJECTS/TDDREC/v0/calibration.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/genorthqpskseq.m b/targets/PROJECTS/TDDREC/v0/genorthqpskseq.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/genrandpskseq.m b/targets/PROJECTS/TDDREC/v0/genrandpskseq.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/initparams.m b/targets/PROJECTS/TDDREC/v0/initparams.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/initparams2.m b/targets/PROJECTS/TDDREC/v0/initparams2.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/ofdm_mod.m b/targets/PROJECTS/TDDREC/v0/ofdm_mod.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/readme.txt b/targets/PROJECTS/TDDREC/v0/readme.txt old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m b/targets/PROJECTS/TDDREC/v0/runmeas_full_duplex.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m b/targets/PROJECTS/TDDREC/v0/runmeas_long_chanest.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_mimo.m b/targets/PROJECTS/TDDREC/v0/runmeas_mimo.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m b/targets/PROJECTS/TDDREC/v0/runmeas_wduplex.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m b/targets/PROJECTS/TDDREC/v0/runmeas_woduplex.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m b/targets/PROJECTS/TDDREC/v4_CH_EST/f_ch_est.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m b/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_rx.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m b/targets/PROJECTS/TDDREC/v4_CH_EST/f_ofdm_tx.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m b/targets/PROJECTS/TDDREC/v4_CH_EST/s_H_est.m old mode 100755 new mode 100644 diff --git a/targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m b/targets/PROJECTS/TDDREC/v4_CH_EST/s_init_params.m old mode 100755 new mode 100644 diff --git a/targets/README.txt b/targets/README.txt old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/load_module.sh b/targets/RT/LAUNCH_SCRIPTS/load_module.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/nas_enb.sh b/targets/RT/LAUNCH_SCRIPTS/nas_enb.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/nas_ue.sh b/targets/RT/LAUNCH_SCRIPTS/nas_ue.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh b/targets/RT/LAUNCH_SCRIPTS/nas_ue2.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh b/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode1.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh b/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode2.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh b/targets/RT/LAUNCH_SCRIPTS/start_eNb_mode6.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_emos.sh b/targets/RT/LAUNCH_SCRIPTS/start_emos.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_rf.sh b/targets/RT/LAUNCH_SCRIPTS/start_rf.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh b/targets/RT/LAUNCH_SCRIPTS/start_test_fs4.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_ue.sh b/targets/RT/LAUNCH_SCRIPTS/start_ue.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/start_ue2.sh b/targets/RT/LAUNCH_SCRIPTS/start_ue2.sh old mode 100755 new mode 100644 diff --git a/targets/RT/LAUNCH_SCRIPTS/stop_rf.sh b/targets/RT/LAUNCH_SCRIPTS/stop_rf.sh old mode 100755 new mode 100644 diff --git a/targets/RT/USER/.runinfo b/targets/RT/USER/.runinfo old mode 100755 new mode 100644 diff --git a/targets/RT/USER/.ue.nvram b/targets/RT/USER/.ue.nvram old mode 100755 new mode 100644 diff --git a/targets/RT/USER/.ue_emm.nvram b/targets/RT/USER/.ue_emm.nvram old mode 100755 new mode 100644 diff --git a/targets/RT/USER/.usim.nvram b/targets/RT/USER/.usim.nvram old mode 100755 new mode 100644 diff --git a/targets/RT/USER/TOOLS/thread_ipc.c b/targets/RT/USER/TOOLS/thread_ipc.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/TOOLS/thread_ipc.h b/targets/RT/USER/TOOLS/thread_ipc.h old mode 100755 new mode 100644 diff --git a/targets/RT/USER/eNB_exmimo2.gtkw b/targets/RT/USER/eNB_exmimo2.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/eNB_usrp.gtkw b/targets/RT/USER/eNB_usrp.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/exmimo2_2arxg.lime b/targets/RT/USER/exmimo2_2arxg.lime old mode 100755 new mode 100644 diff --git a/targets/RT/USER/exmimo2_2brxg.lime b/targets/RT/USER/exmimo2_2brxg.lime old mode 100755 new mode 100644 diff --git a/targets/RT/USER/init_b200.sh b/targets/RT/USER/init_b200.sh old mode 100755 new mode 100644 diff --git a/targets/RT/USER/init_exmimo.sh b/targets/RT/USER/init_exmimo.sh old mode 100755 new mode 100644 diff --git a/targets/RT/USER/init_exmimo2.sh b/targets/RT/USER/init_exmimo2.sh old mode 100755 new mode 100644 diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/lte-ru.c b/targets/RT/USER/lte-ru.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h old mode 100755 new mode 100644 diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rau_if4_single_thread.gtkw b/targets/RT/USER/rau_if4_single_thread.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rcc_if4.gtkw b/targets/RT/USER/rcc_if4.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rcc_if5.gtkw b/targets/RT/USER/rcc_if5.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rfsim.h b/targets/RT/USER/rfsim.h old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rru_if4p5_single_thread.gtkw b/targets/RT/USER/rru_if4p5_single_thread.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rru_if4p5_usrp.gtkw b/targets/RT/USER/rru_if4p5_usrp.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rru_if5_usrp.gtkw b/targets/RT/USER/rru_if5_usrp.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rt_wrapper.c b/targets/RT/USER/rt_wrapper.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/rt_wrapper.h b/targets/RT/USER/rt_wrapper.h old mode 100755 new mode 100644 diff --git a/targets/RT/USER/stats.c b/targets/RT/USER/stats.c old mode 100755 new mode 100644 diff --git a/targets/RT/USER/stats.fd b/targets/RT/USER/stats.fd old mode 100755 new mode 100644 diff --git a/targets/RT/USER/stats.h b/targets/RT/USER/stats.h old mode 100755 new mode 100644 diff --git a/targets/RT/USER/ue_exmimo2.gtkw b/targets/RT/USER/ue_exmimo2.gtkw old mode 100755 new mode 100644 diff --git a/targets/RT/USER/ue_usrp.gtkw b/targets/RT/USER/ue_usrp.gtkw old mode 100755 new mode 100644 diff --git a/targets/SCRIPTS/install_asn1.sh b/targets/SCRIPTS/install_asn1.sh old mode 100755 new mode 100644 diff --git a/targets/TEST/AT_COMMANDS/Makefile b/targets/TEST/AT_COMMANDS/Makefile old mode 100755 new mode 100644 diff --git a/targets/TEST/AT_COMMANDS/oaisim.c b/targets/TEST/AT_COMMANDS/oaisim.c old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/README b/targets/TEST/OAI/README old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case01.py b/targets/TEST/OAI/case01.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case02.py b/targets/TEST/OAI/case02.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case03.py b/targets/TEST/OAI/case03.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case04.py b/targets/TEST/OAI/case04.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case05.py b/targets/TEST/OAI/case05.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case11.py b/targets/TEST/OAI/case11.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case12.py b/targets/TEST/OAI/case12.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/case13.py b/targets/TEST/OAI/case13.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/core.py b/targets/TEST/OAI/core.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/log.py b/targets/TEST/OAI/log.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/openair.py b/targets/TEST/OAI/openair.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/test01.py b/targets/TEST/OAI/test01.py old mode 100755 new mode 100644 diff --git a/targets/TEST/OAI/test02.py b/targets/TEST/OAI/test02.py old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/Makefile b/targets/TEST/PACKET_TRACER/Makefile old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/README.txt b/targets/TEST/PACKET_TRACER/README.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/Msg4.txt b/targets/TEST/PACKET_TRACER/messages/Msg4.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt b/targets/TEST/PACKET_TRACER/messages/rrcconnectionreconfiguration.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt b/targets/TEST/PACKET_TRACER/messages/rrcconnectionsetup.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/sib1.txt b/targets/TEST/PACKET_TRACER/messages/sib1.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/sib2.txt b/targets/TEST/PACKET_TRACER/messages/sib2.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt b/targets/TEST/PACKET_TRACER/messages/sib2_3_oai.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt b/targets/TEST/PACKET_TRACER/messages/sib2_3_oai_Rel10.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/messages/sib3.txt b/targets/TEST/PACKET_TRACER/messages/sib3.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PACKET_TRACER/pt.c b/targets/TEST/PACKET_TRACER/pt.c old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/Makefile b/targets/TEST/PDCP/Makefile old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/readme.txt b/targets/TEST/PDCP/readme.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/test_pdcp.c b/targets/TEST/PDCP/test_pdcp.c old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/test_pdcp.h b/targets/TEST/PDCP/test_pdcp.h old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/test_util.h b/targets/TEST/PDCP/test_util.h old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/todo.txt b/targets/TEST/PDCP/todo.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/with_rlc/Makefile.data_bearer b/targets/TEST/PDCP/with_rlc/Makefile.data_bearer old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt b/targets/TEST/PDCP/with_rlc/readme_test_pdcp_rlc.txt old mode 100755 new mode 100644 diff --git a/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c b/targets/TEST/PDCP/with_rlc/test_pdcp_rlc.c old mode 100755 new mode 100644 diff --git a/targets/TEST/RLC_AM_V9.3.0/Makefile b/targets/TEST/RLC_AM_V9.3.0/Makefile old mode 100755 new mode 100644 diff --git a/targets/TEST/RLC_AM_V9.3.0/oaisim.c b/targets/TEST/RLC_AM_V9.3.0/oaisim.c old mode 100755 new mode 100644 diff --git a/targets/TEST/RLC_UM_V9.3.0/Makefile b/targets/TEST/RLC_UM_V9.3.0/Makefile old mode 100755 new mode 100644 diff --git a/targets/TEST/RLC_UM_V9.3.0/oaisim.c b/targets/TEST/RLC_UM_V9.3.0/oaisim.c old mode 100755 new mode 100644 diff --git a/targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp b/targets/TEST/ROHDE_SCHWARZ/EthernetRawCommand.cpp old mode 100755 new mode 100644 diff --git a/targets/TEST/ROHDE_SCHWARZ/Makefile b/targets/TEST/ROHDE_SCHWARZ/Makefile old mode 100755 new mode 100644 diff --git a/targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp b/targets/TEST/ROHDE_SCHWARZ/TcpClient.cpp old mode 100755 new mode 100644 diff --git a/targets/TEST/ROHDE_SCHWARZ/TcpClient.h b/targets/TEST/ROHDE_SCHWARZ/TcpClient.h old mode 100755 new mode 100644 diff --git a/targets/itti_vcd_tasks.sav b/targets/itti_vcd_tasks.sav old mode 100755 new mode 100644 From cae1ed0b119c7ca2b5c453d5cc5746da264cf286 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Tue, 15 Jan 2019 21:31:29 +0100 Subject: [PATCH 104/125] changed some AssertFatal into LOG_E + return(-1) --- openair2/LAYER2/MAC/config.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/openair2/LAYER2/MAC/config.c b/openair2/LAYER2/MAC/config.c index 68e9e52eb8..3252bb6b92 100644 --- a/openair2/LAYER2/MAC/config.c +++ b/openair2/LAYER2/MAC/config.c @@ -892,11 +892,15 @@ int rrc_mac_config_req_eNB(module_id_t Mod_idP, } } // mib != NULL + // SRB2_lchan_config->choice.explicitValue.ul_SpecificParameters->logicalChannelGroup if (logicalChannelConfig != NULL) { // check for eMTC specific things UE_id = find_UE_id(Mod_idP, rntiP); - AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + if (UE_id<0) { + LOG_E(MAC,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + return(-1); + } if (logicalChannelConfig) { UE_list->UE_template[CC_idP][UE_id].lcgidmap[logicalChannelIdentity] = *logicalChannelConfig->ul_SpecificParameters->logicalChannelGroup; UE_list->UE_template[CC_idP][UE_id].lcgidpriority[logicalChannelIdentity] = logicalChannelConfig->ul_SpecificParameters->priority; @@ -905,7 +909,10 @@ int rrc_mac_config_req_eNB(module_id_t Mod_idP, if (physicalConfigDedicated != NULL) { UE_id = find_UE_id(Mod_idP, rntiP); - AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + if (UE_id<0) { + LOG_E(MAC,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + return(-1); + } UE_list->UE_template[CC_idP][UE_id].physicalConfigDedicated = physicalConfigDedicated; LOG_I(MAC,"Added physicalConfigDedicated %p for %d.%d\n",physicalConfigDedicated,CC_idP,UE_id); } @@ -914,7 +921,10 @@ int rrc_mac_config_req_eNB(module_id_t Mod_idP, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (sCellToAddMod_r10 != NULL) { - UE_id = find_UE_id(Mod_idP, rntiP); + if (UE_id<0) { + LOG_E(MAC,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); + return(-1); + } AssertFatal(UE_id>=0,"Configuration received for unknown UE (%x), shouldn't happen\n",rntiP); config_dedicated_scell(Mod_idP, rntiP, sCellToAddMod_r10); } From 023b6ebc293aae9228100ad8684fa68ebfa15dfb Mon Sep 17 00:00:00 2001 From: haswell Date: Sat, 19 Jan 2019 16:02:59 +0100 Subject: [PATCH 105/125] testing LTE-M configuration --- openair1/SCHED/fapi_l1.c | 30 ++++++++++++------------- openair2/LAYER2/MAC/eNB_scheduler.c | 1 + openair2/LAYER2/MAC/eNB_scheduler_bch.c | 6 ++--- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index f47e9621b9..e04f8fa480 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -180,24 +180,24 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro dlsch1 = eNB->dlsch[UE_id][1]; #if (LTE_RRC_VERSION >= MAKE_VERSION(13, 0, 0)) - if ((rel13->pdsch_payload_type < 2) && (rel13->ue_type>0)) dlsch0->harq_ids[frame%2][subframe] = 0; + if ((rel13->pdsch_payload_type < 2) && (rel13->ue_type>0)) dlsch0->harq_ids[proc->frame_tx%2][proc->subframe_tx] = 0; #endif - harq_pid = dlsch0->harq_ids[frame%2][subframe]; + harq_pid = dlsch0->harq_ids[proc->frame_tx%2][proc->subframe_tx]; AssertFatal((harq_pid>=0) && (harq_pid<8),"harq_pid %d not in 0...7 frame:%d subframe:%d subframe(TX):%d rnti:%x UE_id:%d dlsch0[harq_ids:%d:%d:%d:%d:%d:%d:%d:%d:%d:%d]\n", harq_pid, frame,subframe, proc->subframe_tx,rel8->rnti,UE_id, - dlsch0->harq_ids[frame%2][0], - dlsch0->harq_ids[frame%2][1], - dlsch0->harq_ids[frame%2][2], - dlsch0->harq_ids[frame%2][3], - dlsch0->harq_ids[frame%2][4], - dlsch0->harq_ids[frame%2][5], - dlsch0->harq_ids[frame%2][6], - dlsch0->harq_ids[frame%2][7], - dlsch0->harq_ids[frame%2][8], - dlsch0->harq_ids[frame%2][9] + dlsch0->harq_ids[proc->frame_tx%2][0], + dlsch0->harq_ids[proc->frame_tx%2][1], + dlsch0->harq_ids[proc->frame_tx%2][2], + dlsch0->harq_ids[proc->frame_tx%2][3], + dlsch0->harq_ids[proc->frame_tx%2][4], + dlsch0->harq_ids[proc->frame_tx%2][5], + dlsch0->harq_ids[proc->frame_tx%2][6], + dlsch0->harq_ids[proc->frame_tx%2][7], + dlsch0->harq_ids[proc->frame_tx%2][8], + dlsch0->harq_ids[proc->frame_tx%2][9] ); dlsch0_harq = dlsch0->harq_processes[harq_pid]; dlsch1_harq = dlsch1->harq_processes[harq_pid]; @@ -223,7 +223,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro computeRhoB_eNB(rel8->pa,eNB->frame_parms.pdsch_config_common.p_b,eNB->frame_parms.nb_antenna_ports_eNB,dlsch1,dlsch1_harq->dl_power_off); } - dlsch0_harq->pdsch_start = eNB->pdcch_vars[subframe & 1].num_pdcch_symbols; + dlsch0_harq->pdsch_start = eNB->pdcch_vars[proc->subframe_tx & 1].num_pdcch_symbols; if (dlsch0_harq->round==0) { //get pointer to SDU if this a new SDU if(sdu == NULL) { @@ -265,7 +265,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro dlsch0_harq = dlsch0->harq_processes[0]; dlsch0_harq->pdu = sdu; - if (proc->frame_tx < 200) LOG_D(PHY,"NFAPI: frame %d, subframe %d: Programming SI-BR (%d) => %d\n",proc->frame_tx,proc->subframe_tx,rel13->pdsch_payload_type,UE_id); + if (proc->frame_tx < 200) LOG_I(PHY,"NFAPI: frame %d, subframe %d (TX %d.%d): Programming SI-BR (%d) => %d\n",frame,subframe,proc->frame_tx,proc->subframe_tx,rel13->pdsch_payload_type,UE_id); dlsch0->rnti = 0xFFFF; dlsch0->Kmimo = 1; @@ -274,7 +274,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro dlsch0->i0 = rel13->initial_transmission_sf_io; dlsch0_harq->pdsch_start = rel10->pdsch_start; - dlsch0->harq_ids[frame%2][proc->subframe_tx] = 0; + dlsch0->harq_ids[proc->frame_tx%2][proc->subframe_rx] = 0; dlsch0_harq->frame = proc->frame_tx; dlsch0_harq->subframe = proc->subframe_tx; diff --git a/openair2/LAYER2/MAC/eNB_scheduler.c b/openair2/LAYER2/MAC/eNB_scheduler.c index bd8e835174..4ebe7313e8 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler.c +++ b/openair2/LAYER2/MAC/eNB_scheduler.c @@ -443,6 +443,7 @@ clear_nfapi_information(eNB_MAC_INST * eNB, int CC_idP, DL_req[CC_idP].dl_config_request_body.number_pdu = 0; DL_req[CC_idP].dl_config_request_body.number_pdsch_rnti = 0; DL_req[CC_idP].dl_config_request_body.transmission_power_pcfich = 6000; + DL_req[CC_idP].sfn_sf = subframeP + (frameP<<4); HI_DCI0_req->hi_dci0_request_body.sfnsf = subframeP + (frameP<<4); HI_DCI0_req->hi_dci0_request_body.number_of_dci = 0; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index 96ca1c2927..c5bea89c11 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -211,7 +211,7 @@ schedule_SIB1_BR(module_id_t module_idP, bcch_sdu_length, TBS); if ((frameP & 1023) < 200) - LOG_D(MAC, + LOG_I(MAC, "[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n", module_idP, frameP, subframeP, CC_id, bcch_sdu_length, n_NB, i, m, N_S_NB, rvidx); @@ -408,8 +408,8 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP, vrb_map[first_rb+4] = 1; vrb_map[first_rb+5] = 1; - //if ((frameP&1023) < 200) - LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", + if ((frameP&1023) < 200) + LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", module_idP,frameP,subframeP,CC_id,(int)si_Narrowband_r13-1,rvidx, sf_mod_period,(int)si_WindowLength_BR_r13,(int)si_RepetitionPattern_r13, bcch_sdu_length); From b2748da3c957afb791fd64ec4e05b6fca95bcb20 Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 20 Jan 2019 13:18:49 +0100 Subject: [PATCH 106/125] removal of warnings and excessive logging --- openair1/PHY/CODING/crc_byte.c | 33 ++++++++++++----------- openair1/SCHED/fapi_l1.c | 6 ++--- openair2/LAYER2/MAC/eNB_scheduler_bch.c | 4 +-- openair2/LAYER2/MAC/eNB_scheduler_ulsch.c | 23 ++++++++-------- 4 files changed, 35 insertions(+), 31 deletions(-) diff --git a/openair1/PHY/CODING/crc_byte.c b/openair1/PHY/CODING/crc_byte.c index f2f7e4e5c7..06a43fdb79 100644 --- a/openair1/PHY/CODING/crc_byte.c +++ b/openair1/PHY/CODING/crc_byte.c @@ -32,21 +32,6 @@ #include "PHY/types.h" -// For initialization && verification purposes, bit by bit implementation with any polynomial -// The first bit is in the MSB of each byte - -// Reference 38.212 V15.1.1 Section 5.1 (36-212 v8.6.0 , pp 8-9) -// The highest degree is set by default -/** 1000 0110 0100 1100 1111 1011 D^24 + D^23 + D^18 + D^17 + D^14 + D^11 + D^10 + D^7 + D^6 + D^5 + D^4 + D^3 + D + 1 */ -static const uint32_t poly24a = 0x864cfb00; -/** 1000 0000 0000 0000 0110 0011 D^24 + D^23 + D^6 + D^5 + D + 1 */ -static const uint32_t poly24b = 0x80006300; -/** 0001 0000 0010 0001 D^16 + D^12 + D^5 + 1 */ -static const uint32_t poly16 = 0x10210000; -/** 1000 0000 1111 D^12 + D^11 + D^3 + D^2 + D + 1 */ -static const uint32_t poly12 = 0x80F00000; -/** 1001 1011 D^8 + D^7 + D^4 + D^3 + D + 1 */ -static const uint32_t poly8 = 0x9B000000; // The following arrays are generated with the function 'crcTableInit' /** Encoding table for CRC 24A */ @@ -96,6 +81,24 @@ uint32_t crcbit (uint8_t * inputptr, int32_t octetlen, uint32_t poly) // CRC table initialization /* + RK: Note that this should be brought back and use crcTableInit instead of static declaration + Commented out to remove warning + // For initialization && verification purposes, bit by bit implementation with any polynomial + // The first bit is in the MSB of each byte + + // Reference 38.212 V15.1.1 Section 5.1 (36-212 v8.6.0 , pp 8-9) +// The highest degree is set by default +// 1000 0110 0100 1100 1111 1011 D^24 + D^23 + D^18 + D^17 + D^14 + D^11 + D^10 + D^7 + D^6 + D^5 + D^4 + D^3 + D + 1 +static const uint32_t poly24a = 0x864cfb00; +// 1000 0000 0000 0000 0110 0011 D^24 + D^23 + D^6 + D^5 + D + 1 +static const uint32_t poly24b = 0x80006300; +// 0001 0000 0010 0001 D^16 + D^12 + D^5 + 1 +static const uint32_t poly16 = 0x10210000; +// 1000 0000 1111 D^12 + D^11 + D^3 + D^2 + D + 1 +static const uint32_t poly12 = 0x80F00000; +// 1001 1011 D^8 + D^7 + D^4 + D^3 + D + 1 +static const uint32_t poly8 = 0x9B000000; + void crcTableInit (void) { uint8_t c = 0; diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index e04f8fa480..0140e63746 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -73,7 +73,7 @@ void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB, LTE_eNB_MPDCCH *mpdcch_vars = &eNB->mpdcch_vars[idx]; nfapi_dl_config_mpdcch_pdu *pdu = &dl_config_pdu->mpdcch_pdu; - LOG_I(PHY,"Frame %d, Subframe %d: MDCI processing\n",proc->frame_tx,proc->subframe_tx); + LOG_D(PHY,"Frame %d, Subframe %d: MDCI processing\n",proc->frame_tx,proc->subframe_tx); // copy dci configuration into eNB structure fill_mdci_and_dlsch(eNB,proc,&mpdcch_vars->mdci_alloc[mpdcch_vars->num_dci],pdu); @@ -101,7 +101,7 @@ void handle_nfapi_hi_dci0_mpdcch_dci_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, int idx = proc->subframe_tx&1; LTE_eNB_MPDCCH *pdcch_vars = &eNB->mpdcch_vars[idx]; // copy dci configuration in to eNB structure - fill_mpdcch_dci0(eNB,proc,&pdcch_vars->mdci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->dci_pdu); + fill_mpdcch_dci0(eNB,proc,&pdcch_vars->mdci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->mpdcch_dci_pdu); } @@ -265,7 +265,7 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro dlsch0_harq = dlsch0->harq_processes[0]; dlsch0_harq->pdu = sdu; - if (proc->frame_tx < 200) LOG_I(PHY,"NFAPI: frame %d, subframe %d (TX %d.%d): Programming SI-BR (%d) => %d\n",frame,subframe,proc->frame_tx,proc->subframe_tx,rel13->pdsch_payload_type,UE_id); + if (proc->frame_tx < 200) LOG_D(PHY,"NFAPI: frame %d, subframe %d (TX %d.%d): Programming SI-BR (%d) => %d\n",frame,subframe,proc->frame_tx,proc->subframe_tx,rel13->pdsch_payload_type,UE_id); dlsch0->rnti = 0xFFFF; dlsch0->Kmimo = 1; diff --git a/openair2/LAYER2/MAC/eNB_scheduler_bch.c b/openair2/LAYER2/MAC/eNB_scheduler_bch.c index c5bea89c11..339d4102aa 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_bch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_bch.c @@ -211,7 +211,7 @@ schedule_SIB1_BR(module_id_t module_idP, bcch_sdu_length, TBS); if ((frameP & 1023) < 200) - LOG_I(MAC, + LOG_D(MAC, "[eNB %d] Frame %d Subframe %d: SIB1_BR->DLSCH CC_id %d, Received %d bytes, scheduling on NB %d (i %d,m %d,N_S_NB %d) rvidx %d\n", module_idP, frameP, subframeP, CC_id, bcch_sdu_length, n_NB, i, m, N_S_NB, rvidx); @@ -409,7 +409,7 @@ schedule_SI_BR(module_id_t module_idP, frame_t frameP, vrb_map[first_rb+5] = 1; if ((frameP&1023) < 200) - LOG_I(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", + LOG_D(MAC,"[eNB %d] Frame %d Subframe %d: SI_BR->DLSCH CC_id %d, Narrowband %d rvidx %d (sf_mod_period %d : si_WindowLength_BR_r13 %d : si_RepetitionPattern_r13 %d) bcch_sdu_length %d\n", module_idP,frameP,subframeP,CC_id,(int)si_Narrowband_r13-1,rvidx, sf_mod_period,(int)si_WindowLength_BR_r13,(int)si_RepetitionPattern_r13, bcch_sdu_length); diff --git a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c index 9a99701897..c4a6a59e2b 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c @@ -105,8 +105,6 @@ rx_sdu(const module_id_t enb_mod_idP, int lcgid_updated[4] = {0, 0, 0, 0}; UE_list_t *UE_list = &mac->UE_list; int crnti_rx = 0; - RA_t *ra = - (RA_t *) & RC.mac[enb_mod_idP]->common_channels[CC_idP].ra[0]; int first_rb = 0; rrc_eNB_ue_context_t *ue_contextP = NULL; start_meas(&mac->rx_ulsch_sdu); @@ -218,8 +216,11 @@ rx_sdu(const module_id_t enb_mod_idP, return; } } else if ((RA_id = find_RA_id(enb_mod_idP, CC_idP, current_rnti)) != -1) { // Check if this is an RA process for the rnti + + RA_t *ra = (RA_t *) & mac->common_channels[CC_idP].ra[RA_id]; + #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - if (UE_list->UE_template[CC_idP][UE_id].rach_resource_type > 0) harq_pid=0; + if (ra->rach_resource_type > 0) harq_pid=0; #endif AssertFatal(mac->common_channels[CC_idP]. radioResourceConfigCommon->rach_ConfigCommon. @@ -230,7 +231,7 @@ rx_sdu(const module_id_t enb_mod_idP, maxHARQ_Msg3Tx); LOG_D(MAC, "[eNB %d][PUSCH %d] CC_id %d [RAPROC Msg3] Received ULSCH sdu round %d from PHY (rnti %x, RA_id %d) ul_cqi %d\n", - enb_mod_idP, harq_pid, CC_idP, ra[RA_id].msg3_round, + enb_mod_idP, harq_pid, CC_idP, ra->msg3_round, current_rnti, RA_id, ul_cqi); first_rb = ra->msg3_first_rb; @@ -238,21 +239,21 @@ rx_sdu(const module_id_t enb_mod_idP, LOG_D(MAC, "[eNB %d] CC_id %d, RA %d ULSCH in error in round %d/%d\n", enb_mod_idP, CC_idP, RA_id, - ra[RA_id].msg3_round, + ra->msg3_round, (int) mac->common_channels[CC_idP]. radioResourceConfigCommon->rach_ConfigCommon. maxHARQ_Msg3Tx); - if (ra[RA_id].msg3_round >= mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) { + if (ra->msg3_round >= mac->common_channels[CC_idP].radioResourceConfigCommon->rach_ConfigCommon.maxHARQ_Msg3Tx - 1) { cancel_ra_proc(enb_mod_idP, CC_idP, frameP, current_rnti); } else { first_rb = UE_list->UE_template[CC_idP][UE_id].first_rb_ul[harq_pid]; - ra[RA_id].msg3_round++; + ra->msg3_round++; // prepare handling of retransmission get_Msg3allocret(&mac->common_channels[CC_idP], - ra[RA_id].Msg3_subframe, ra[RA_id].Msg3_frame, - &ra[RA_id].Msg3_frame, &ra[RA_id].Msg3_subframe); - add_msg3(enb_mod_idP, CC_idP, &ra[RA_id], frameP, subframeP); + ra->Msg3_subframe, ra->Msg3_frame, + &ra->Msg3_frame, &ra->Msg3_subframe); + add_msg3(enb_mod_idP, CC_idP, ra, frameP, subframeP); } /* TODO: program NACK for PHICH? */ @@ -337,7 +338,7 @@ rx_sdu(const module_id_t enb_mod_idP, * the UE state in the eNB is wrong. */ for (ii = 0; ii < NB_RA_PROC_MAX; ii++) { - ra = &mac->common_channels[CC_idP].ra[ii]; + RA_t *ra = &mac->common_channels[CC_idP].ra[ii]; if ((ra->rnti == current_rnti) && (ra->state != IDLE)) { mac_rrc_data_ind(enb_mod_idP, From f84e52bad5d2d043a4ad484c3684e24bfd9b67ab Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Sun, 20 Jan 2019 15:39:58 +0100 Subject: [PATCH 107/125] replaced AssertFatal with LOG_E and RA procedure cancellation --- openair2/LAYER2/MAC/eNB_scheduler_RA.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openair2/LAYER2/MAC/eNB_scheduler_RA.c b/openair2/LAYER2/MAC/eNB_scheduler_RA.c index 73213eb1c8..32166fdb9c 100644 --- a/openair2/LAYER2/MAC/eNB_scheduler_RA.c +++ b/openair2/LAYER2/MAC/eNB_scheduler_RA.c @@ -667,7 +667,11 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP, N_RB_DL = to_prb(cc[CC_idP].mib->message.dl_Bandwidth); UE_id = find_UE_id(module_idP, ra->rnti); - AssertFatal(UE_id >= 0, "Can't find UE for t-crnti %x\n",ra->rnti); + if (UE_id < 0) { + LOG_E(MAC,"Can't find UE for t-crnti %x, kill RA procedure for this UE\n",ra->rnti); + cancel_ra_proc(module_idP, CC_idP, frameP, ra->rnti); + return; + } // set HARQ process round to 0 for this UE From 9d0c70c9fefef8275dc98bea35acd2782e4bb1e6 Mon Sep 17 00:00:00 2001 From: frtabu Date: Mon, 21 Jan 2019 19:43:19 +0100 Subject: [PATCH 108/125] remove L1L2 task, also remove some call to send messages to UNKNOWN_TASK, removed in new itti. Align LOG in rlc sources with new LOG code (remove DEBUG_RLC...) --- common/utils/LOG/log.h | 2 + common/utils/msc/msc.h | 108 +- openair2/COMMON/tasks_def.h | 12 - openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c | 1361 ++-- .../LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c | 425 +- .../RLC/AM_v9.3.0/rlc_am_status_report.c | 655 +- openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c | 910 ++- openair2/LAYER2/RLC/rlc.c | 666 +- openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c | 956 +-- openair2/RRC/LTE/rrc_UE.c | 6141 ++++++++--------- openair2/RRC/LTE/rrc_eNB.c | 35 - openair2/X2AP/x2ap_eNB.c | 222 +- openair3/NAS/UE/nas_itti_messaging.c | 198 +- openair3/S1AP/s1ap_eNB_decoder.c | 78 +- openair3/S1AP/s1ap_eNB_encoder.c | 78 +- targets/COMMON/create_tasks.c | 112 +- targets/COMMON/create_tasks_ue.c | 73 +- targets/RT/USER/lte-softmodem.c | 68 +- targets/RT/USER/lte-softmodem.h | 217 +- targets/RT/USER/lte-uesoftmodem.c | 46 - 20 files changed, 5332 insertions(+), 7031 deletions(-) diff --git a/common/utils/LOG/log.h b/common/utils/LOG/log.h index d0aa4a47c8..d59118713d 100644 --- a/common/utils/LOG/log.h +++ b/common/utils/LOG/log.h @@ -145,6 +145,7 @@ extern "C" { #define DEBUG_CTRLSOCKET (1<<10) #define DEBUG_SECURITY (1<<11) #define DEBUG_NAS (1<<12) +#define DEBUG_RLC (1<<13) #define UE_TIMING (1<<20) @@ -162,6 +163,7 @@ extern "C" { {"CTRLSOCKET", DEBUG_CTRLSOCKET},\ {"SECURITY", DEBUG_SECURITY},\ {"NAS", DEBUG_NAS},\ + {"RLC", DEBUG_RLC},\ {"UE_TIMING", UE_TIMING},\ {NULL,-1}\ } diff --git a/common/utils/msc/msc.h b/common/utils/msc/msc.h index e8a8a4a0e8..4a71d52ffa 100644 --- a/common/utils/msc/msc.h +++ b/common/utils/msc/msc.h @@ -25,46 +25,46 @@ #include typedef enum { - MIN_MSC_ENV = 0, - MSC_E_UTRAN = MIN_MSC_ENV, - MSC_E_UTRAN_LIPA, - MSC_MME_GW, - MSC_MME, - MSC_SP_GW, - MAX_MSC_ENV + MIN_MSC_ENV = 0, + MSC_E_UTRAN = MIN_MSC_ENV, + MSC_E_UTRAN_LIPA, + MSC_MME_GW, + MSC_MME, + MSC_SP_GW, + MAX_MSC_ENV } msc_env_t; typedef enum { - MIN_MSC_PROTOS = 0, - MSC_IP_UE = MIN_MSC_PROTOS, - MSC_NAS_UE, - MSC_RRC_UE, - MSC_PDCP_UE, - MSC_RLC_UE, - MSC_MAC_UE, - MSC_PHY_UE, - MSC_PHY_ENB, - MSC_MAC_ENB, - MSC_RLC_ENB, - MSC_PDCP_ENB, - MSC_RRC_ENB, - MSC_IP_ENB, - MSC_S1AP_ENB, - MSC_GTPU_ENB, - MSC_GTPU_SGW, - MSC_S1AP_MME, - MSC_MMEAPP_MME, - MSC_NAS_MME, - MSC_NAS_EMM_MME, - MSC_NAS_ESM_MME, - MSC_SP_GWAPP_MME, - MSC_S11_MME, - MSC_S6A_MME, - MSC_HSS, - MAX_MSC_PROTOS, - MSC_X2AP_SRC_ENB, - MSC_X2AP_TARGET_ENB, + MIN_MSC_PROTOS = 0, + MSC_IP_UE = MIN_MSC_PROTOS, + MSC_NAS_UE, + MSC_RRC_UE, + MSC_PDCP_UE, + MSC_RLC_UE, + MSC_MAC_UE, + MSC_PHY_UE, + MSC_PHY_ENB, + MSC_MAC_ENB, + MSC_RLC_ENB, + MSC_PDCP_ENB, + MSC_RRC_ENB, + MSC_IP_ENB, + MSC_S1AP_ENB, + MSC_GTPU_ENB, + MSC_GTPU_SGW, + MSC_S1AP_MME, + MSC_MMEAPP_MME, + MSC_NAS_MME, + MSC_NAS_EMM_MME, + MSC_NAS_ESM_MME, + MSC_SP_GWAPP_MME, + MSC_S11_MME, + MSC_S6A_MME, + MSC_HSS, + MAX_MSC_PROTOS, + MSC_X2AP_SRC_ENB, + MSC_X2AP_TARGET_ENB, } msc_proto_t; @@ -73,22 +73,22 @@ typedef enum { #define MSC_AS_TIME_FMT "%05u:%02u" #define MSC_AS_TIME_ARGS(CTXT_Pp) \ - (CTXT_Pp)->frame, \ - (CTXT_Pp)->subframe + (CTXT_Pp)->frame, \ + (CTXT_Pp)->subframe typedef int(*msc_init_t)(const msc_env_t, const int ); typedef void(*msc_start_use_t)(void ); typedef void(*msc_end_t)(void); typedef void(*msc_log_event_t)(const msc_proto_t,char *, ...); -typedef void(*msc_log_message_t)(const char * const, const msc_proto_t, const msc_proto_t, - const uint8_t* const, const unsigned int, char * , ...); +typedef void(*msc_log_message_t)(const char *const, const msc_proto_t, const msc_proto_t, + const uint8_t *const, const unsigned int, char *, ...); typedef struct msc_interface { - int msc_loaded; - msc_init_t msc_init; - msc_start_use_t msc_start_use; - msc_end_t msc_end; - msc_log_event_t msc_log_event; - msc_log_message_t msc_log_message; + int msc_loaded; + msc_init_t msc_init; + msc_start_use_t msc_start_use; + msc_end_t msc_end; + msc_log_event_t msc_log_event; + msc_log_message_t msc_log_message; } msc_interface_t; #ifdef MSC_LIBRARY @@ -99,15 +99,17 @@ void msc_end(void); void msc_log_declare_proto(const msc_proto_t protoP); void msc_log_event(const msc_proto_t protoP,char *format, ...); void msc_log_message( - const char * const message_operationP, - const msc_proto_t receiverP, - const msc_proto_t senderP, - const uint8_t* const bytesP, - const unsigned int num_bytes, - char *format, ...); + const char *const message_operationP, + const msc_proto_t receiverP, + const msc_proto_t senderP, + const uint8_t *const bytesP, + const unsigned int num_bytes, + char *format, ...); #else +#define MESSAGE_CHART_GENERATOR msc_interface.msc_loaded + msc_interface_t msc_interface; #define MSC_INIT(arg1,arg2) if(msc_interface.msc_loaded) msc_interface.msc_init(arg1,arg2) #define MSC_START_USE if(msc_interface.msc_loaded) msc_interface.msc_start_use @@ -119,4 +121,4 @@ msc_interface_t msc_interface; #define MSC_LOG_TX_MESSAGE_FAILED(sENDER, rECEIVER, bYTES, nUMbYTES, fORMAT, aRGS...) if(msc_interface.msc_loaded) msc_interface.msc_log_message("-x",sENDER, rECEIVER, (const uint8_t *)bYTES, nUMbYTES, fORMAT, ##aRGS) #endif -#endif +#endif diff --git a/openair2/COMMON/tasks_def.h b/openair2/COMMON/tasks_def.h index 92d1ff4128..318c4649e4 100644 --- a/openair2/COMMON/tasks_def.h +++ b/openair2/COMMON/tasks_def.h @@ -25,18 +25,11 @@ TASK_DEF(TASK_TIMER, TASK_PRIORITY_MAX, 10) // Other possible tasks in the process // Common tasks: -/// Layer 2 and Layer 1 task supporting all the synchronous processing -TASK_DEF(TASK_L2L1, TASK_PRIORITY_MAX_LEAST, 200) /// Bearers Manager task TASK_DEF(TASK_BM, TASK_PRIORITY_MED, 200) // eNodeB tasks and sub-tasks: -//// Layer 2 and Layer 1 sub-tasks -SUB_TASK_DEF(TASK_L2L1, TASK_PHY_ENB, 200) -SUB_TASK_DEF(TASK_L2L1, TASK_MAC_ENB, 200) -SUB_TASK_DEF(TASK_L2L1, TASK_RLC_ENB, 200) -SUB_TASK_DEF(TASK_L2L1, TASK_PDCP_ENB, 200) /// Radio Resource Control task TASK_DEF(TASK_RRC_ENB, TASK_PRIORITY_MED, 200) @@ -63,11 +56,6 @@ TASK_DEF(TASK_ENB_APP, TASK_PRIORITY_MED, 200) TASK_DEF(TASK_FLEXRAN_AGENT, TASK_PRIORITY_MED, 200) // UE tasks and sub-tasks: -//// Layer 2 and Layer 1 sub-tasks -SUB_TASK_DEF(TASK_L2L1, TASK_PHY_UE, 200) -SUB_TASK_DEF(TASK_L2L1, TASK_MAC_UE, 200) -SUB_TASK_DEF(TASK_L2L1, TASK_RLC_UE, 200) -SUB_TASK_DEF(TASK_L2L1, TASK_PDCP_UE, 200) /// Radio Resource Control task TASK_DEF(TASK_RRC_UE, TASK_PRIORITY_MED, 200) diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c index e2911efcaf..33ab7965e5 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am.c @@ -25,9 +25,7 @@ #include "platform_types.h" #include "platform_constants.h" //----------------------------------------------------------------------------- -#if ENABLE_ITTI -# include "intertask_interface.h" -#endif + #include "assertions.h" #include "msc.h" #include "hashtable.h" @@ -46,171 +44,145 @@ //----------------------------------------------------------------------------- uint32_t rlc_am_get_status_pdu_buffer_occupancy( - rlc_am_entity_t * const rlc_pP){ + rlc_am_entity_t *const rlc_pP) { + //Compute Max Status PDU size according to what has been received and not received in the window [vrR vrMS[ + // minimum header size in bits to be transmitted: D/C + CPT + ACK_SN + E1 + uint32_t nb_bits_to_transmit = RLC_AM_PDU_D_C_BITS + RLC_AM_STATUS_PDU_CPT_LENGTH + RLC_AM_SN_BITS + RLC_AM_PDU_E_BITS; + mem_block_t *cursor_p = rlc_pP->receiver_buffer.head; + rlc_am_pdu_info_t *pdu_info_cursor_p = NULL; + int waited_so = 0; + rlc_sn_t sn_cursor = rlc_pP->vr_r; + rlc_sn_t sn_prev = rlc_pP->vr_r; + rlc_sn_t sn_end = rlc_pP->vr_ms; + boolean_t segment_loop_end = false; - //Compute Max Status PDU size according to what has been received and not received in the window [vrR vrMS[ + if (sn_prev != sn_end) { + while ((RLC_AM_DIFF_SN(sn_prev,rlc_pP->vr_r) < RLC_AM_DIFF_SN(sn_end,rlc_pP->vr_r)) && (cursor_p != NULL)) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; + sn_cursor = pdu_info_cursor_p->sn; - // minimum header size in bits to be transmitted: D/C + CPT + ACK_SN + E1 - uint32_t nb_bits_to_transmit = RLC_AM_PDU_D_C_BITS + RLC_AM_STATUS_PDU_CPT_LENGTH + RLC_AM_SN_BITS + RLC_AM_PDU_E_BITS; - mem_block_t *cursor_p = rlc_pP->receiver_buffer.head; - rlc_am_pdu_info_t *pdu_info_cursor_p = NULL; - int waited_so = 0; + // Add holes between sn_prev and sn_cursor + while ((sn_prev != sn_cursor) && (sn_prev != sn_end)) { + /* Add 1 NACK_SN + E1 + E2 */ + nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1)); + sn_prev = RLC_AM_NEXT_SN(sn_prev); + } //end while (sn_prev != sn_cursor) - rlc_sn_t sn_cursor = rlc_pP->vr_r; - rlc_sn_t sn_prev = rlc_pP->vr_r; - rlc_sn_t sn_end = rlc_pP->vr_ms; - boolean_t segment_loop_end = false; + /* Handle case sn_cursor is partially received */ + /* Each gap will add NACK_SN + E1 + E2 + SOStart + SOEnd */ + if ((((rlc_am_rx_pdu_management_t *)(cursor_p->data))->all_segments_received == 0) && (RLC_AM_DIFF_SN(sn_cursor,rlc_pP->vr_r) < RLC_AM_DIFF_SN(sn_end,rlc_pP->vr_r))) { + /* Check lsf */ + segment_loop_end = (pdu_info_cursor_p->lsf == 1); + /* Fill for [0 SO[ if SO not null */ + if (pdu_info_cursor_p->so) { + nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); + waited_so = pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size; + } else { + waited_so = pdu_info_cursor_p->payload_size; + } - if (sn_prev != sn_end) - { - while ((RLC_AM_DIFF_SN(sn_prev,rlc_pP->vr_r) < RLC_AM_DIFF_SN(sn_end,rlc_pP->vr_r)) && (cursor_p != NULL)) - { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - sn_cursor = pdu_info_cursor_p->sn; + /* Go to next segment */ + cursor_p = cursor_p->next; - // Add holes between sn_prev and sn_cursor - while ((sn_prev != sn_cursor) && (sn_prev != sn_end)) - { - /* Add 1 NACK_SN + E1 + E2 */ - nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1)); - sn_prev = RLC_AM_NEXT_SN(sn_prev); - } //end while (sn_prev != sn_cursor) + if (cursor_p != NULL) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; + } - /* Handle case sn_cursor is partially received */ - /* Each gap will add NACK_SN + E1 + E2 + SOStart + SOEnd */ - if ((((rlc_am_rx_pdu_management_t*)(cursor_p->data))->all_segments_received == 0) && (RLC_AM_DIFF_SN(sn_cursor,rlc_pP->vr_r) < RLC_AM_DIFF_SN(sn_end,rlc_pP->vr_r))) - { - /* Check lsf */ - segment_loop_end = (pdu_info_cursor_p->lsf == 1); + /* Fill following gaps if any */ + while (!segment_loop_end) { + if ((cursor_p != NULL) && (pdu_info_cursor_p->sn == sn_cursor)) { + /* Check lsf */ + segment_loop_end = (pdu_info_cursor_p->lsf == 1); - /* Fill for [0 SO[ if SO not null */ - if (pdu_info_cursor_p->so) { - nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); - waited_so = pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size; - } - else { - waited_so = pdu_info_cursor_p->payload_size; - } + if (waited_so < pdu_info_cursor_p->so) { + nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); + } else { + /* contiguous segment: only update waited_so */ + /* Assuming so and payload_size updated according to duplication removal done at reception ... */ + waited_so += pdu_info_cursor_p->payload_size; + } - /* Go to next segment */ - cursor_p = cursor_p->next; - if (cursor_p != NULL) - { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - } + /* Go to next received PDU or PDU Segment */ + cursor_p = cursor_p->next; - /* Fill following gaps if any */ - while (!segment_loop_end) - { - if ((cursor_p != NULL) && (pdu_info_cursor_p->sn == sn_cursor)) - { - /* Check lsf */ - segment_loop_end = (pdu_info_cursor_p->lsf == 1); + if (cursor_p != NULL) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; + } + } else { + /* Fill last gap assuming LSF is not received */ + nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); + segment_loop_end = true; + } + } // end while (!segment_loop_end) + } // end if segments + else { + /* Go to next received PDU or PDU segment with different SN */ + do { + cursor_p = cursor_p->next; + } while ((cursor_p != NULL) && (((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info.sn == sn_cursor)); + } - if (waited_so < pdu_info_cursor_p->so) { - nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); - } - else { - /* contiguous segment: only update waited_so */ - /* Assuming so and payload_size updated according to duplication removal done at reception ... */ - waited_so += pdu_info_cursor_p->payload_size; - } - - /* Go to next received PDU or PDU Segment */ - cursor_p = cursor_p->next; - if (cursor_p != NULL) - { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - } - } - else - { - /* Fill last gap assuming LSF is not received */ - nb_bits_to_transmit += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); - segment_loop_end = true; - } - } // end while (!segment_loop_end) - } // end if segments - else - { - /* Go to next received PDU or PDU segment with different SN */ - do - { - cursor_p = cursor_p->next; - } while ((cursor_p != NULL) && (((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info.sn == sn_cursor)); - } - - sn_prev = RLC_AM_NEXT_SN(sn_cursor); - } - } // end if (sn_prev != sn_end) - - // round up to the greatest byte - return ((nb_bits_to_transmit + 7) >> 3); + sn_prev = RLC_AM_NEXT_SN(sn_cursor); + } + } // end if (sn_prev != sn_end) + // round up to the greatest byte + return ((nb_bits_to_transmit + 7) >> 3); } //----------------------------------------------------------------------------- uint32_t rlc_am_get_buffer_occupancy_in_bytes ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP) { // priority of control trafic rlc_pP->status_buffer_occupancy = 0; + if ((rlc_pP->status_requested) && !(rlc_pP->status_requested & RLC_AM_STATUS_NO_TX_MASK)) { - rlc_pP->status_buffer_occupancy = rlc_am_get_status_pdu_buffer_occupancy(rlc_pP); -#if TRACE_RLC_AM_BO - - LOG_D(RLC, PROTOCOL_CTXT_FMT RB_AM_FMT" BO : CONTROL PDU %d bytes \n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->status_buffer_occupancy); - -#endif - } - - -#if TRACE_RLC_AM_BO - - if ((rlc_pP->status_buffer_occupancy + rlc_pP->retrans_num_bytes_to_retransmit + rlc_pP->sdu_buffer_occupancy + max_li_overhead + header_overhead) > 0) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : STATUS BUFFER %d bytes \n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), rlc_pP->status_buffer_occupancy); - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : RETRANS BUFFER %d bytes \n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), rlc_pP->retrans_num_bytes_to_retransmit); - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : SDU BUFFER %d bytes + li_overhead %d bytes header_overhead %d bytes (nb sdu not segmented %d)\n", + rlc_pP->status_buffer_occupancy = rlc_am_get_status_pdu_buffer_occupancy(rlc_pP); + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : CONTROL PDU %d bytes \n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->sdu_buffer_occupancy, - 0, - 0, - rlc_pP->nb_sdu_no_segmented); + rlc_pP->status_buffer_occupancy); + } + + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + if ((rlc_pP->status_buffer_occupancy + rlc_pP->retrans_num_bytes_to_retransmit + rlc_pP->sdu_buffer_occupancy ) > 0) { + LOG_UI(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : STATUS BUFFER %d bytes \n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), rlc_pP->status_buffer_occupancy); + LOG_UI(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : RETRANS BUFFER %d bytes \n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), rlc_pP->retrans_num_bytes_to_retransmit); + LOG_UI(RLC, PROTOCOL_RLC_AM_CTXT_FMT" BO : SDU BUFFER %d bytes + li_overhead %d bytes header_overhead %d bytes (nb sdu not segmented %d)\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + rlc_pP->sdu_buffer_occupancy, + 0, + 0, + rlc_pP->nb_sdu_no_segmented); + } } -#endif return rlc_pP->status_buffer_occupancy + rlc_pP->retrans_num_bytes_to_retransmit + rlc_pP->sdu_buffer_occupancy; } //----------------------------------------------------------------------------- void rlc_am_release ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP -) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP +) { // empty } //----------------------------------------------------------------------------- void config_req_rlc_am ( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, - const rlc_am_info_t * config_am_pP, + const rlc_am_info_t *config_am_pP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP -) -{ + const logical_chan_id_t chan_idP +) { rlc_union_t *rlc_union_p = NULL; rlc_am_entity_t *l_rlc_p = NULL; hash_key_t key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); hashtable_rc_t h_rc; - - h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); + h_rc = hashtable_get(rlc_coll_p, key, (void **)&rlc_union_p); if (h_rc == HASH_TABLE_OK) { l_rlc_p = &rlc_union_p->rlc.am; @@ -252,18 +224,16 @@ uint32_t t_StatusProhibit_tab[LTE_T_StatusProhibit_spare8]= {0,5,10,15,20,25,30, //----------------------------------------------------------------------------- void config_req_rlc_am_asn1 ( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, - const struct LTE_RLC_Config__am * const config_am_pP, + const struct LTE_RLC_Config__am *const config_am_pP, const rb_id_t rb_idP, - const logical_chan_id_t chan_idP) -{ + const logical_chan_id_t chan_idP) { rlc_union_t *rlc_union_p = NULL; rlc_am_entity_t *l_rlc_p = NULL; hash_key_t key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); hashtable_rc_t h_rc; - - h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); + h_rc = hashtable_get(rlc_coll_p, key, (void **)&rlc_union_p); if (h_rc == HASH_TABLE_OK) { l_rlc_p = &rlc_union_p->rlc.am; @@ -280,7 +250,6 @@ void config_req_rlc_am_asn1 ( (config_am_pP->dl_AM_RLC.t_Reorderingdl_AM_RLC.t_StatusProhibitenb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RRC_ENB:MSC_RRC_UE, @@ -292,7 +261,6 @@ void config_req_rlc_am_asn1 ( PollRetransmit_tab[config_am_pP->ul_AM_RLC.t_PollRetransmit], am_t_Reordering_tab[config_am_pP->dl_AM_RLC.t_Reordering], t_StatusProhibit_tab[config_am_pP->dl_AM_RLC.t_StatusProhibit]); - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" CONFIG_REQ (max_retx_threshold=%d poll_pdu=%d poll_byte=%d t_poll_retransmit=%d t_reord=%d t_status_prohibit=%d)\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,l_rlc_p), maxRetxThreshold_tab[config_am_pP->ul_AM_RLC.maxRetxThreshold], @@ -301,7 +269,6 @@ void config_req_rlc_am_asn1 ( PollRetransmit_tab[config_am_pP->ul_AM_RLC.t_PollRetransmit], am_t_Reordering_tab[config_am_pP->dl_AM_RLC.t_Reordering], t_StatusProhibit_tab[config_am_pP->dl_AM_RLC.t_StatusProhibit]); - rlc_am_init(ctxt_pP, l_rlc_p); rlc_am_set_debug_infos(ctxt_pP, l_rlc_p, srb_flagP, rb_idP, chan_idP); rlc_am_configure(ctxt_pP, l_rlc_p, @@ -311,7 +278,8 @@ void config_req_rlc_am_asn1 ( PollRetransmit_tab[config_am_pP->ul_AM_RLC.t_PollRetransmit], am_t_Reordering_tab[config_am_pP->dl_AM_RLC.t_Reordering], t_StatusProhibit_tab[config_am_pP->dl_AM_RLC.t_StatusProhibit]); - } else { + } + else { MSC_LOG_RX_DISCARDED_MESSAGE( (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RRC_ENB:MSC_RRC_UE, @@ -320,7 +288,6 @@ void config_req_rlc_am_asn1 ( MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" CONFIG-REQ", MSC_AS_TIME_ARGS(ctxt_pP), PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p)); - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"ILLEGAL CONFIG_REQ (max_retx_threshold=%ld poll_pdu=%ld poll_byte=%ld t_poll_retransmit=%ld t_reord=%ld t_status_prohibit=%ld), RLC-AM NOT CONFIGURED\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,l_rlc_p), @@ -339,36 +306,35 @@ void config_req_rlc_am_asn1 ( //----------------------------------------------------------------------------- void rlc_am_stat_req ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP, - unsigned int* stat_tx_pdcp_sdu, - unsigned int* stat_tx_pdcp_bytes, - unsigned int* stat_tx_pdcp_sdu_discarded, - unsigned int* stat_tx_pdcp_bytes_discarded, - unsigned int* stat_tx_data_pdu, - unsigned int* stat_tx_data_bytes, - unsigned int* stat_tx_retransmit_pdu_by_status, - unsigned int* stat_tx_retransmit_bytes_by_status, - unsigned int* stat_tx_retransmit_pdu, - unsigned int* stat_tx_retransmit_bytes, - unsigned int* stat_tx_control_pdu, - unsigned int* stat_tx_control_bytes, - unsigned int* stat_rx_pdcp_sdu, - unsigned int* stat_rx_pdcp_bytes, - unsigned int* stat_rx_data_pdus_duplicate, - unsigned int* stat_rx_data_bytes_duplicate, - unsigned int* stat_rx_data_pdu, - unsigned int* stat_rx_data_bytes, - unsigned int* stat_rx_data_pdu_dropped, - unsigned int* stat_rx_data_bytes_dropped, - unsigned int* stat_rx_data_pdu_out_of_window, - unsigned int* stat_rx_data_bytes_out_of_window, - unsigned int* stat_rx_control_pdu, - unsigned int* stat_rx_control_bytes, - unsigned int* stat_timer_reordering_timed_out, - unsigned int* stat_timer_poll_retransmit_timed_out, - unsigned int* stat_timer_status_prohibit_timed_out) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP, + unsigned int *stat_tx_pdcp_sdu, + unsigned int *stat_tx_pdcp_bytes, + unsigned int *stat_tx_pdcp_sdu_discarded, + unsigned int *stat_tx_pdcp_bytes_discarded, + unsigned int *stat_tx_data_pdu, + unsigned int *stat_tx_data_bytes, + unsigned int *stat_tx_retransmit_pdu_by_status, + unsigned int *stat_tx_retransmit_bytes_by_status, + unsigned int *stat_tx_retransmit_pdu, + unsigned int *stat_tx_retransmit_bytes, + unsigned int *stat_tx_control_pdu, + unsigned int *stat_tx_control_bytes, + unsigned int *stat_rx_pdcp_sdu, + unsigned int *stat_rx_pdcp_bytes, + unsigned int *stat_rx_data_pdus_duplicate, + unsigned int *stat_rx_data_bytes_duplicate, + unsigned int *stat_rx_data_pdu, + unsigned int *stat_rx_data_bytes, + unsigned int *stat_rx_data_pdu_dropped, + unsigned int *stat_rx_data_bytes_dropped, + unsigned int *stat_rx_data_pdu_out_of_window, + unsigned int *stat_rx_data_bytes_out_of_window, + unsigned int *stat_rx_control_pdu, + unsigned int *stat_rx_control_bytes, + unsigned int *stat_timer_reordering_timed_out, + unsigned int *stat_timer_poll_retransmit_timed_out, + unsigned int *stat_timer_status_prohibit_timed_out) { *stat_tx_pdcp_sdu = rlc_pP->stat_tx_pdcp_sdu; *stat_tx_pdcp_bytes = rlc_pP->stat_tx_pdcp_bytes; *stat_tx_pdcp_sdu_discarded = rlc_pP->stat_tx_pdcp_sdu_discarded; @@ -396,15 +362,13 @@ void rlc_am_stat_req ( *stat_timer_reordering_timed_out = rlc_pP->stat_timer_reordering_timed_out; *stat_timer_poll_retransmit_timed_out = rlc_pP->stat_timer_poll_retransmit_timed_out; *stat_timer_status_prohibit_timed_out = rlc_pP->stat_timer_status_prohibit_timed_out; - } //----------------------------------------------------------------------------- void rlc_am_get_pdus ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP -) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP +) { //int display_flag = 0; // 5.1.3.1 Transmit operations // 5.1.3.1.1 @@ -412,31 +376,27 @@ rlc_am_get_pdus ( // The transmitting side of an AM RLC entity shall prioritize transmission of RLC control PDUs over RLC data PDUs. // The transmitting side of an AM RLC entity shall prioritize retransmission of RLC data PDUs over transmission of new // AMD PDUs. - - switch (rlc_pP->protocol_state) { + case RLC_NULL_STATE: + break; - case RLC_NULL_STATE: - break; - - case RLC_DATA_TRANSFER_READY_STATE: - - // TRY TO SEND CONTROL PDU FIRST - if ((rlc_pP->nb_bytes_requested_by_mac >= 2) && - ((rlc_pP->status_requested) && !(rlc_pP->status_requested & RLC_AM_STATUS_NO_TX_MASK))) { - // When STATUS reporting has been triggered, the receiving side of an AM RLC entity shall: - // - if t-StatusProhibit is not running: - // - at the first transmission opportunity indicated by lower layer, construct a STATUS PDU and deliver it to lower layer; - // - else: - // - at the first transmission opportunity indicated by lower layer after t-StatusProhibit expires, construct a single - // STATUS PDU even if status reporting was triggered several times while t-StatusProhibit was running and - // deliver it to lower layer; - // - // When a STATUS PDU has been delivered to lower layer, the receiving side of an AM RLC entity shall: - // - start t-StatusProhibit. + case RLC_DATA_TRANSFER_READY_STATE: + // TRY TO SEND CONTROL PDU FIRST + if ((rlc_pP->nb_bytes_requested_by_mac >= 2) && + ((rlc_pP->status_requested) && !(rlc_pP->status_requested & RLC_AM_STATUS_NO_TX_MASK))) { + // When STATUS reporting has been triggered, the receiving side of an AM RLC entity shall: + // - if t-StatusProhibit is not running: + // - at the first transmission opportunity indicated by lower layer, construct a STATUS PDU and deliver it to lower layer; + // - else: + // - at the first transmission opportunity indicated by lower layer after t-StatusProhibit expires, construct a single + // STATUS PDU even if status reporting was triggered several times while t-StatusProhibit was running and + // deliver it to lower layer; + // + // When a STATUS PDU has been delivered to lower layer, the receiving side of an AM RLC entity shall: + // - start t-StatusProhibit. rlc_am_send_status_pdu(ctxt_pP, rlc_pP); - mem_block_t* pdu = list_remove_head(&rlc_pP->control_pdu_list); + mem_block_t *pdu = list_remove_head(&rlc_pP->control_pdu_list); if (pdu) { list_add_tail_eurecom (pdu, &rlc_pP->pdus_to_mac_layer); @@ -445,89 +405,81 @@ rlc_am_get_pdus ( rlc_am_start_timer_status_prohibit(ctxt_pP, rlc_pP); return; } - } - else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" DELAYED SENT STATUS PDU (Available MAC Data %u)(T-PROHIBIT %u) (DELAY FLAG %u)\n", + } else { + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" DELAYED SENT STATUS PDU (Available MAC Data %u)(T-PROHIBIT %u) (DELAY FLAG %u)\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->nb_bytes_requested_by_mac,rlc_pP->t_status_prohibit.ms_time_out,(rlc_pP->status_requested & RLC_AM_STATUS_TRIGGERED_DELAYED)); - } + rlc_pP->nb_bytes_requested_by_mac,rlc_pP->t_status_prohibit.ms_time_out,(rlc_pP->status_requested & RLC_AM_STATUS_TRIGGERED_DELAYED)); + } - // THEN TRY TO SEND RETRANS PDU + // THEN TRY TO SEND RETRANS PDU if ((rlc_pP->retrans_num_bytes_to_retransmit) && (rlc_pP->nb_bytes_requested_by_mac > 2)) { + /* Get 1 AM data PDU or PDU segment to retransmit */ + mem_block_t *pdu_retx = rlc_am_get_pdu_to_retransmit(ctxt_pP, rlc_pP); - /* Get 1 AM data PDU or PDU segment to retransmit */ - mem_block_t* pdu_retx = rlc_am_get_pdu_to_retransmit(ctxt_pP, rlc_pP); - - if (pdu_retx != NULL) { - list_add_tail_eurecom (pdu_retx, &rlc_pP->pdus_to_mac_layer); - + if (pdu_retx != NULL) { + list_add_tail_eurecom (pdu_retx, &rlc_pP->pdus_to_mac_layer); return; } - } - - // THEN TRY TO SEND NEW DATA PDU - if ((rlc_pP->nb_bytes_requested_by_mac > 2) && (rlc_pP->sdu_buffer_occupancy) && (rlc_pP->vt_s != rlc_pP->vt_ms)) { - rlc_am_segment_10(ctxt_pP, rlc_pP); - list_add_list (&rlc_pP->segmentation_pdu_list, &rlc_pP->pdus_to_mac_layer); - - if (rlc_pP->pdus_to_mac_layer.head != NULL) { - rlc_pP->stat_tx_data_pdu += 1; - rlc_pP->stat_tx_data_bytes += (((struct mac_tb_req*)(rlc_pP->pdus_to_mac_layer.head->data))->tb_size); - return; } - } + // THEN TRY TO SEND NEW DATA PDU + if ((rlc_pP->nb_bytes_requested_by_mac > 2) && (rlc_pP->sdu_buffer_occupancy) && (rlc_pP->vt_s != rlc_pP->vt_ms)) { + rlc_am_segment_10(ctxt_pP, rlc_pP); + list_add_list (&rlc_pP->segmentation_pdu_list, &rlc_pP->pdus_to_mac_layer); - break; + if (rlc_pP->pdus_to_mac_layer.head != NULL) { + rlc_pP->stat_tx_data_pdu += 1; + rlc_pP->stat_tx_data_bytes += (((struct mac_tb_req *)(rlc_pP->pdus_to_mac_layer.head->data))->tb_size); + return; + } + } - default: - LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" MAC_DATA_REQ UNKNOWN PROTOCOL STATE 0x%02X\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->protocol_state); + break; + + default: + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" MAC_DATA_REQ UNKNOWN PROTOCOL STATE 0x%02X\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + rlc_pP->protocol_state); } } //----------------------------------------------------------------------------- void rlc_am_rx ( - const protocol_ctxt_t* const ctxt_pP, - void * const arg_pP, + const protocol_ctxt_t *const ctxt_pP, + void *const arg_pP, struct mac_data_ind data_indP -) -{ +) { rlc_am_entity_t *rlc = (rlc_am_entity_t *) arg_pP; switch (rlc->protocol_state) { + case RLC_NULL_STATE: + LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc)); + list_free (&data_indP.data); + break; - case RLC_NULL_STATE: - LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc)); - list_free (&data_indP.data); - break; + case RLC_DATA_TRANSFER_READY_STATE: + rlc_am_receive_routing (ctxt_pP, rlc, data_indP); + break; - case RLC_DATA_TRANSFER_READY_STATE: - rlc_am_receive_routing (ctxt_pP, rlc, data_indP); - break; - - default: - LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" TX UNKNOWN PROTOCOL STATE 0x%02X\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc), rlc->protocol_state); - list_free (&data_indP.data); + default: + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" TX UNKNOWN PROTOCOL STATE 0x%02X\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP, rlc), rlc->protocol_state); + list_free (&data_indP.data); } } //----------------------------------------------------------------------------- struct mac_status_resp rlc_am_mac_status_indication ( - const protocol_ctxt_t* const ctxt_pP, - void * const rlc_pP, + const protocol_ctxt_t *const ctxt_pP, + void *const rlc_pP, const uint16_t tb_sizeP, struct mac_status_ind tx_statusP, - const eNB_flag_t enb_flagP) -{ + const eNB_flag_t enb_flagP) { struct mac_status_resp status_resp; uint16_t sdu_size = 0; uint16_t sdu_remaining_size = 0; int32_t diff_time=0; rlc_am_entity_t *rlc = (rlc_am_entity_t *) rlc_pP; - status_resp.buffer_occupancy_in_bytes = 0; status_resp.buffer_occupancy_in_pdus = 0; status_resp.head_sdu_remaining_size_to_send = 0; @@ -561,31 +513,27 @@ rlc_am_mac_status_indication ( // For eNB scheduler : Add Max RLC header size for new PDU // For UE : do not add RLC header part to be compliant with BSR definition in 36.321 if (enb_flagP == ENB_FLAG_YES) { - uint32_t max_li_overhead = 0; - uint32_t header_overhead = 0; + uint32_t max_li_overhead = 0; + uint32_t header_overhead = 0; - if (rlc->nb_sdu_no_segmented > 1) { - /* This computation assumes there is no SDU with size greater than 2047 bytes, otherwise a new PDU must be built except for LI15 configuration from Rel12*/ - uint32_t num_li = rlc->nb_sdu_no_segmented - 1; - max_li_overhead = num_li + (num_li >> 1) + (num_li & 1); - } + if (rlc->nb_sdu_no_segmented > 1) { + /* This computation assumes there is no SDU with size greater than 2047 bytes, otherwise a new PDU must be built except for LI15 configuration from Rel12*/ + uint32_t num_li = rlc->nb_sdu_no_segmented - 1; + max_li_overhead = num_li + (num_li >> 1) + (num_li & 1); + } - if (rlc->sdu_buffer_occupancy > 0) { - header_overhead = 2; - } + if (rlc->sdu_buffer_occupancy > 0) { + header_overhead = 2; + } - status_resp.buffer_occupancy_in_bytes += (header_overhead + max_li_overhead); + status_resp.buffer_occupancy_in_bytes += (header_overhead + max_li_overhead); } - if ((rlc->input_sdus[rlc->current_sdu_index].mem_block != NULL) && (status_resp.buffer_occupancy_in_bytes)) { - //status_resp.buffer_occupancy_in_bytes += ((rlc_am_entity_t *) rlc)->tx_header_min_length_in_bytes; status_resp.buffer_occupancy_in_pdus = rlc->nb_sdu; diff_time = ctxt_pP->frame - ((rlc_am_tx_sdu_management_t *) (rlc->input_sdus[rlc->current_sdu_index].mem_block->data))->sdu_creation_time; - status_resp.head_sdu_creation_time = (diff_time > 0 ) ? (uint32_t) diff_time : (uint32_t)(0xffffffff - diff_time + ctxt_pP->frame) ; - sdu_size = ((rlc_am_tx_sdu_management_t *) (rlc->input_sdus[rlc->current_sdu_index].mem_block->data))->sdu_size; sdu_remaining_size = ((rlc_am_tx_sdu_management_t *) (rlc->input_sdus[rlc->current_sdu_index].mem_block->data))->sdu_remaining_size; status_resp.head_sdu_remaining_size_to_send = sdu_remaining_size; @@ -595,83 +543,71 @@ rlc_am_mac_status_indication ( } else { status_resp.head_sdu_is_segmented = 1; } - } else { - /* Not so many possibilities ... */ - /* either buffer_occupancy_in_bytes = 0 and that's it */ - /* or we have segmented all received SDUs and buffer occupancy is then made of retransmissions and/or status pdu pending */ - /* then consider only retransmission buffer for the specific BO values used by eNB scheduler (not used up to now...) */ - if (rlc->retrans_num_bytes_to_retransmit) { - status_resp.buffer_occupancy_in_pdus = rlc->retrans_num_pdus; - status_resp.head_sdu_remaining_size_to_send = rlc->retrans_num_bytes_to_retransmit; - status_resp.head_sdu_is_segmented = 1; - } - } -#if MESSAGE_CHART_GENERATOR_RLC_MAC - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_MAC_ENB:MSC_MAC_UE, - NULL,0, - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS-IND %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, rlc), - tb_sizeP); - MSC_LOG_TX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_MAC_ENB:MSC_MAC_UE, - NULL,0, - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS-RESP BO:%u/n%u(%u) %s sdu remain %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, rlc), - status_resp.buffer_occupancy_in_bytes, - status_resp.buffer_occupancy_in_pdus,rlc->nb_sdu, - (status_resp.head_sdu_is_segmented)?"sdu seg":"sdu not seg", - status_resp.head_sdu_remaining_size_to_send); -#endif + /* Not so many possibilities ... */ + /* either buffer_occupancy_in_bytes = 0 and that's it */ + /* or we have segmented all received SDUs and buffer occupancy is then made of retransmissions and/or status pdu pending */ + /* then consider only retransmission buffer for the specific BO values used by eNB scheduler (not used up to now...) */ + if (rlc->retrans_num_bytes_to_retransmit) { + status_resp.buffer_occupancy_in_pdus = rlc->retrans_num_pdus; + status_resp.head_sdu_remaining_size_to_send = rlc->retrans_num_bytes_to_retransmit; + status_resp.head_sdu_is_segmented = 1; + } + } -#if TRACE_RLC_AM_TX_STATUS + if (MESSAGE_CHART_GENERATOR) { + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_MAC_ENB:MSC_MAC_UE, + NULL,0, + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS-IND %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, rlc), + tb_sizeP); + MSC_LOG_TX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_MAC_ENB:MSC_MAC_UE, + NULL,0, + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS-RESP BO:%u/n%u(%u) %s sdu remain %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, rlc), + status_resp.buffer_occupancy_in_bytes, + status_resp.buffer_occupancy_in_pdus,rlc->nb_sdu, + (status_resp.head_sdu_is_segmented)?"sdu seg":"sdu not seg", + status_resp.head_sdu_remaining_size_to_send); + } - if (tb_sizeP > 0) { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" MAC_STATUS_INDICATION (DATA) %d bytes -> %d bytes\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - tb_sizeP, - status_resp.buffer_occupancy_in_bytes); - /*if ((tx_statusP.tx_status == MAC_TX_STATUS_SUCCESSFUL) && (tx_statusP.no_pdu)) { - msg ("[FRAME %5u][%s][RLC_AM][MOD %u/%u][RB %u] MAC_STATUS_INDICATION TX STATUS SUCCESSFUL %d PDUs\n",rlc->module_id, - rlc->rb_id, ctxt_pP->frame, tx_statusP.no_pdu); + if (LOG_DEBUGFLAG(DEBUG_RLC)) { + if (tb_sizeP > 0) { + LOG_UI(RLC, PROTOCOL_RLC_AM_CTXT_FMT" MAC_STATUS_INDICATION (DATA) %d bytes -> %d bytes\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc), + tb_sizeP, + status_resp.buffer_occupancy_in_bytes); } - if ((tx_statusP.tx_status == MAC_TX_STATUS_UNSUCCESSFUL) && (tx_statusP.no_pdu)) { - msg ("[FRAME %5u][%s][RLC_AM][MOD %u/%u][RB %u] MAC_STATUS_INDICATION TX STATUS UNSUCCESSFUL %d PDUs\n",rlc->module_id, rlc->rb_id, - ctxt_pP->frame, tx_statusP.no_pdu); - }*/ } -#endif return status_resp; } //----------------------------------------------------------------------------- void rlc_am_set_nb_bytes_requested_by_mac ( - void * const rlc_pP, + void *const rlc_pP, const tb_size_t tb_sizeP -) -{ - ((rlc_am_entity_t *) rlc_pP)->nb_bytes_requested_by_mac = tb_sizeP; +) { + ((rlc_am_entity_t *) rlc_pP)->nb_bytes_requested_by_mac = tb_sizeP; } //----------------------------------------------------------------------------- struct mac_data_req rlc_am_mac_data_request ( - const protocol_ctxt_t* const ctxt_pP, - void * const rlc_pP, + const protocol_ctxt_t *const ctxt_pP, + void *const rlc_pP, const eNB_flag_t enb_flagP -) -{ +) { struct mac_data_req data_req; rlc_am_entity_t *l_rlc_p = (rlc_am_entity_t *) rlc_pP; unsigned int nb_bytes_requested_by_mac = ((rlc_am_entity_t *) rlc_pP)->nb_bytes_requested_by_mac; -#if TRACE_RLC_AM_PDU || MESSAGE_CHART_GENERATOR rlc_am_pdu_info_t pdu_info; rlc_am_pdu_sn_10_t *rlc_am_pdu_sn_10_p; mem_block_t *tb_p; @@ -679,9 +615,6 @@ rlc_am_mac_data_request ( int num_nack; char message_string[9000]; size_t message_string_size = 0; -# if ENABLE_ITTI - MessageDef *msg_p; -# endif int octet_index, index; /* for no gcc warnings */ (void)num_nack; @@ -689,8 +622,6 @@ rlc_am_mac_data_request ( (void)message_string_size; (void)octet_index; (void)index; -#endif - list_init (&data_req.data, NULL); rlc_am_get_pdus (ctxt_pP, l_rlc_p); list_add_list (&l_rlc_p->pdus_to_mac_layer, &data_req.data); @@ -704,217 +635,197 @@ rlc_am_mac_data_request ( } if (enb_flagP) { - // redundant in UE MAC Tx processing and not used in eNB ... - data_req.buffer_occupancy_in_bytes = rlc_am_get_buffer_occupancy_in_bytes(ctxt_pP, l_rlc_p); + // redundant in UE MAC Tx processing and not used in eNB ... + data_req.buffer_occupancy_in_bytes = rlc_am_get_buffer_occupancy_in_bytes(ctxt_pP, l_rlc_p); } + data_req.rlc_info.rlc_protocol_state = l_rlc_p->protocol_state; -#if TRACE_RLC_AM_PDU || MESSAGE_CHART_GENERATOR - - if (data_req.data.nb_elements > 0) { - + if ( (MESSAGE_CHART_GENERATOR || LOG_DEBUGFLAG(DEBUG_RLC))&& data_req.data.nb_elements > 0) { tb_p = data_req.data.head; while (tb_p != NULL) { - - rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t*)((struct mac_tb_req *) (tb_p->data))->data_ptr; + rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t *)((struct mac_tb_req *) (tb_p->data))->data_ptr; tb_size_in_bytes = ((struct mac_tb_req *) (tb_p->data))->tb_size; if ((((struct mac_tb_req *) (tb_p->data))->data_ptr[0] & RLC_DC_MASK) == RLC_DC_DATA_PDU ) { if (rlc_am_get_data_pdu_infos(ctxt_pP,l_rlc_p,rlc_am_pdu_sn_10_p, tb_size_in_bytes, &pdu_info) >= 0) { -#if MESSAGE_CHART_GENERATOR - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA SN %u size %u RF %u P %u FI %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), - pdu_info.sn, - tb_size_in_bytes, - pdu_info.rf, - pdu_info.p, - pdu_info.fi); + if (MESSAGE_CHART_GENERATOR) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA SN %u size %u RF %u P %u FI %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), + pdu_info.sn, + tb_size_in_bytes, + pdu_info.rf, + pdu_info.p, + pdu_info.fi); - if (pdu_info.rf) { - message_string_size += sprintf(&message_string[message_string_size], " LSF %u\n", pdu_info.lsf); - message_string_size += sprintf(&message_string[message_string_size], " SO %u\n", pdu_info.so); - } - - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "| HE:"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + if (pdu_info.rf) { + message_string_size += sprintf(&message_string[message_string_size], " LSF %u\n", pdu_info.lsf); + message_string_size += sprintf(&message_string[message_string_size], " SO %u\n", pdu_info.so); } - } - MSC_LOG_TX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (char*)rlc_am_pdu_sn_10_p, - tb_size_in_bytes, - message_string); + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "| HE:"); -#endif -# if ENABLE_ITTI - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); - message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); - message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); - - if (pdu_info.rf) { - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA REQ: AMD PDU segment\n\n"); - } else { - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA REQ: AMD PDU\n\n"); - } - - message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); - message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", pdu_info.d_c); - message_string_size += sprintf(&message_string[message_string_size], " RF : %u\n", pdu_info.rf); - message_string_size += sprintf(&message_string[message_string_size], " P : %u\n", pdu_info.p); - message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); - message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); - message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); - - if (pdu_info.rf) { - message_string_size += sprintf(&message_string[message_string_size], " LSF : %u\n", pdu_info.lsf); - message_string_size += sprintf(&message_string[message_string_size], " SO : %u\n", pdu_info.so); - } - - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + } } + + MSC_LOG_TX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (char *)rlc_am_pdu_sn_10_p, + tb_size_in_bytes, + message_string); } - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); + message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); + message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); - for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + if (pdu_info.rf) { + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA REQ: AMD PDU segment\n\n"); + } else { + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA REQ: AMD PDU\n\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); + message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", pdu_info.d_c); + message_string_size += sprintf(&message_string[message_string_size], " RF : %u\n", pdu_info.rf); + message_string_size += sprintf(&message_string[message_string_size], " P : %u\n", pdu_info.p); + message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); + message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); + message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); + + if (pdu_info.rf) { + message_string_size += sprintf(&message_string[message_string_size], " LSF : %u\n", pdu_info.lsf); + message_string_size += sprintf(&message_string[message_string_size], " SO : %u\n", pdu_info.so); + } + + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); + + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); + } + } + + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + + for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ } /* - * Print every single octet in hexadecimal form + * Append enough spaces and put final pipe */ - message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 - */ - } + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); - } - - message_string_size += sprintf(&message_string[message_string_size], " |\n"); - - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_AM_DATA_PDU_REQ, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_data_pdu_req.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_data_pdu_req.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# else - rlc_am_display_data_pdu_infos(ctxt_pP, l_rlc_p, &pdu_info); -# endif + LOG_UI(RLC,"%s\n",message_string); + } /* LOG_DEBUGFLAG(DEBUG_RLC) */ } } else { if (rlc_am_get_control_pdu_infos(rlc_am_pdu_sn_10_p, &tb_size_in_bytes, &l_rlc_p->control_pdu_info) >= 0) { tb_size_in_bytes = ((struct mac_tb_req *) (tb_p->data))->tb_size; //tb_size_in_bytes modified by rlc_am_get_control_pdu_infos! -#if MESSAGE_CHART_GENERATOR - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS ACK_SN %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), - l_rlc_p->control_pdu_info.ack_sn); - for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { - if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u SO START %u SO END %u", - l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); + if (MESSAGE_CHART_GENERATOR ) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS ACK_SN %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), + l_rlc_p->control_pdu_info.ack_sn); - } else { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u", - l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); + for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { + if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u SO START %u SO END %u", + l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); + } else { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u", + l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); + } } + + MSC_LOG_TX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (char *)rlc_am_pdu_sn_10_p, + tb_size_in_bytes, + message_string); } - MSC_LOG_TX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (char*)rlc_am_pdu_sn_10_p, - tb_size_in_bytes, - message_string); + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA REQ: STATUS PDU\n\n"); + message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); + message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", l_rlc_p->control_pdu_info.d_c); + message_string_size += sprintf(&message_string[message_string_size], " CPT : %u\n", l_rlc_p->control_pdu_info.cpt); + message_string_size += sprintf(&message_string[message_string_size], " ACK_SN : %u\n", l_rlc_p->control_pdu_info.ack_sn); + message_string_size += sprintf(&message_string[message_string_size], " E1 : %u\n", l_rlc_p->control_pdu_info.e1); -#endif -# if ENABLE_ITTI - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA REQ: STATUS PDU\n\n"); - message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); - message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", l_rlc_p->control_pdu_info.d_c); - message_string_size += sprintf(&message_string[message_string_size], " CPT : %u\n", l_rlc_p->control_pdu_info.cpt); - message_string_size += sprintf(&message_string[message_string_size], " ACK_SN : %u\n", l_rlc_p->control_pdu_info.ack_sn); - message_string_size += sprintf(&message_string[message_string_size], " E1 : %u\n", l_rlc_p->control_pdu_info.e1); - - for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { - if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d SO START %05d SO END %05d", - l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); - } else { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d", l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); + for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { + if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d SO START %05d SO END %05d", + l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); + } else { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d", l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); + } } - } - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_AM_STATUS_PDU_REQ, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_status_pdu_req.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_status_pdu_req.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# endif + LOG_UI(RLC,"%s\n",message_string); + } /* LOG_DEBUGFLAG(DEBUG_RLC) */ } } tb_p = tb_p->next; - } - } + } /* while */ + } /* MESSAGE_CHART_GENERATOR && data_req.data.nb_elements > 0 */ -#endif return data_req; } //----------------------------------------------------------------------------- void rlc_am_mac_data_indication ( - const protocol_ctxt_t* const ctxt_pP, - void * const rlc_pP, + const protocol_ctxt_t *const ctxt_pP, + void *const rlc_pP, struct mac_data_ind data_indP -) -{ - rlc_am_entity_t* l_rlc_p = (rlc_am_entity_t*) rlc_pP; +) { + rlc_am_entity_t *l_rlc_p = (rlc_am_entity_t *) rlc_pP; /*rlc_am_control_pdu_info_t control_pdu_info; int num_li; int16_t tb_size;*/ -#if TRACE_RLC_AM_PDU || MESSAGE_CHART_GENERATOR rlc_am_pdu_info_t pdu_info; rlc_am_pdu_sn_10_t *rlc_am_pdu_sn_10_p; mem_block_t *tb_p; @@ -922,9 +833,6 @@ rlc_am_mac_data_indication ( int num_nack; char message_string[7000]; size_t message_string_size = 0; -# if ENABLE_ITTI - MessageDef *msg_p; -# endif int octet_index, index; /* for no gcc warnings */ (void)num_nack; @@ -932,242 +840,209 @@ rlc_am_mac_data_indication ( (void)message_string_size; (void)octet_index; (void)index; -#endif - (void)l_rlc_p; /* avoid gcc warning "unused variable" */ -#if TRACE_RLC_AM_PDU || MESSAGE_CHART_GENERATOR + if ( LOG_DEBUGFLAG(DEBUG_RLC) || MESSAGE_CHART_GENERATOR ) { + if (data_indP.data.nb_elements > 0) { + tb_p = data_indP.data.head; - if (data_indP.data.nb_elements > 0) { + while (tb_p != NULL) { + rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t *)((struct mac_tb_ind *) (tb_p->data))->data_ptr; + tb_size_in_bytes = ((struct mac_tb_ind *) (tb_p->data))->size; - tb_p = data_indP.data.head; + if ((((struct mac_tb_ind *) (tb_p->data))->data_ptr[0] & RLC_DC_MASK) == RLC_DC_DATA_PDU ) { + if (rlc_am_get_data_pdu_infos(ctxt_pP,l_rlc_p,rlc_am_pdu_sn_10_p, tb_size_in_bytes, &pdu_info) >= 0) { + if (MESSAGE_CHART_GENERATOR) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA SN %u size %u RF %u P %u FI %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), + pdu_info.sn, + tb_size_in_bytes, + pdu_info.rf, + pdu_info.p, + pdu_info.fi); - while (tb_p != NULL) { - - rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t*)((struct mac_tb_ind *) (tb_p->data))->data_ptr; - tb_size_in_bytes = ((struct mac_tb_ind *) (tb_p->data))->size; - - if ((((struct mac_tb_ind *) (tb_p->data))->data_ptr[0] & RLC_DC_MASK) == RLC_DC_DATA_PDU ) { - if (rlc_am_get_data_pdu_infos(ctxt_pP,l_rlc_p,rlc_am_pdu_sn_10_p, tb_size_in_bytes, &pdu_info) >= 0) { -#if MESSAGE_CHART_GENERATOR - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA SN %u size %u RF %u P %u FI %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), - pdu_info.sn, - tb_size_in_bytes, - pdu_info.rf, - pdu_info.p, - pdu_info.fi); - - if (pdu_info.rf) { - message_string_size += sprintf(&message_string[message_string_size], " LSF %u\n", pdu_info.lsf); - message_string_size += sprintf(&message_string[message_string_size], " SO %u\n", pdu_info.so); - } - - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "| HE:"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); - } - } - - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (char*)rlc_am_pdu_sn_10_p, - tb_size_in_bytes, - message_string); - -#endif - -# if ENABLE_ITTI && TRACE_RLC_AM_PDU - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); - message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); - message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); - - if (pdu_info.rf) { - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA IND: AMD PDU segment\n\n"); - } else { - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA IND: AMD PDU\n\n"); - } - - message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); - message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", pdu_info.d_c); - message_string_size += sprintf(&message_string[message_string_size], " RF : %u\n", pdu_info.rf); - message_string_size += sprintf(&message_string[message_string_size], " P : %u\n", pdu_info.p); - message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); - message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); - message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); - - if (pdu_info.rf) { - message_string_size += sprintf(&message_string[message_string_size], " LSF : %u\n", pdu_info.lsf); - message_string_size += sprintf(&message_string[message_string_size], " SO : %u\n", pdu_info.so); - } - - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); - } - } - - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - - for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + if (pdu_info.rf) { + message_string_size += sprintf(&message_string[message_string_size], " LSF %u\n", pdu_info.lsf); + message_string_size += sprintf(&message_string[message_string_size], " SO %u\n", pdu_info.so); } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "| HE:"); + + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + } + } + + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (char *)rlc_am_pdu_sn_10_p, + tb_size_in_bytes, + message_string); } - /* - * Print every single octet in hexadecimal form - */ - message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 - */ + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); + message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); + message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); + + if (pdu_info.rf) { + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA IND: AMD PDU segment\n\n"); + } else { + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA IND: AMD PDU\n\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); + message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", pdu_info.d_c); + message_string_size += sprintf(&message_string[message_string_size], " RF : %u\n", pdu_info.rf); + message_string_size += sprintf(&message_string[message_string_size], " P : %u\n", pdu_info.p); + message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); + message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); + message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); + + if (pdu_info.rf) { + message_string_size += sprintf(&message_string[message_string_size], " LSF : %u\n", pdu_info.lsf); + message_string_size += sprintf(&message_string[message_string_size], " SO : %u\n", pdu_info.so); + } + + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); + + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); + } + } + + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + + for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + } + + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ + } + + /* + * Append enough spaces and put final pipe + */ + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } + + LOG_UI(RLC,"%s\n",message_string); + } /* LOG_DEBUGFLAG */ } + } else { + if (rlc_am_get_control_pdu_infos(rlc_am_pdu_sn_10_p, &tb_size_in_bytes, &l_rlc_p->control_pdu_info) >= 0) { + if (MESSAGE_CHART_GENERATOR) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS size ACK_SN %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), + l_rlc_p->control_pdu_info.ack_sn); - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); + for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { + if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u SO START %u SO END %u", + l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); + } else { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u", + l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); + } + } + + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (char *)rlc_am_pdu_sn_10_p, + tb_size_in_bytes, + message_string); + } + + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", ((struct mac_tb_ind *) (tb_p->data))->size); + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA IND: STATUS PDU\n\n"); + message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); + message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", l_rlc_p->control_pdu_info.d_c); + message_string_size += sprintf(&message_string[message_string_size], " CPT : %u\n", l_rlc_p->control_pdu_info.cpt); + message_string_size += sprintf(&message_string[message_string_size], " ACK_SN : %u\n", l_rlc_p->control_pdu_info.ack_sn); + message_string_size += sprintf(&message_string[message_string_size], " E1 : %u\n", l_rlc_p->control_pdu_info.e1); + + for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { + if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d SO START %05d SO END %05d", + l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, + l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); + } else { + message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d", l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); + } + } + + LOG_UI(RLC, "%s\n",message_string); + } } - - message_string_size += sprintf(&message_string[message_string_size], " |\n"); - - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_AM_DATA_PDU_IND, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_data_pdu_ind.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_data_pdu_ind.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# else - rlc_am_display_data_pdu_infos(ctxt_pP, l_rlc_p, &pdu_info); -# endif } - } else { - if (rlc_am_get_control_pdu_infos(rlc_am_pdu_sn_10_p, &tb_size_in_bytes, &l_rlc_p->control_pdu_info) >= 0) { -#if MESSAGE_CHART_GENERATOR - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" STATUS size ACK_SN %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), - l_rlc_p->control_pdu_info.ack_sn); - for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { - if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u SO START %u SO END %u", - l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); - - } else { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %u", - l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); - } - } - - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (char*)rlc_am_pdu_sn_10_p, - tb_size_in_bytes, - message_string); - -#endif - -# if ENABLE_ITTI && TRACE_RLC_AM_PDU - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", ((struct mac_tb_ind *) (tb_p->data))->size); - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC AM DATA IND: STATUS PDU\n\n"); - message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); - message_string_size += sprintf(&message_string[message_string_size], " D/C : %u\n", l_rlc_p->control_pdu_info.d_c); - message_string_size += sprintf(&message_string[message_string_size], " CPT : %u\n", l_rlc_p->control_pdu_info.cpt); - message_string_size += sprintf(&message_string[message_string_size], " ACK_SN : %u\n", l_rlc_p->control_pdu_info.ack_sn); - message_string_size += sprintf(&message_string[message_string_size], " E1 : %u\n", l_rlc_p->control_pdu_info.e1); - - for (num_nack = 0; num_nack < l_rlc_p->control_pdu_info.num_nack; num_nack++) { - if (l_rlc_p->control_pdu_info.nack_list[num_nack].e2) { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d SO START %05d SO END %05d", - l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_start, - l_rlc_p->control_pdu_info.nack_list[num_nack].so_end); - } else { - message_string_size += sprintf(&message_string[message_string_size], " NACK SN %04d", l_rlc_p->control_pdu_info.nack_list[num_nack].nack_sn); - } - } - - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_AM_STATUS_PDU_IND, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_status_pdu_ind.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_status_pdu_ind.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# endif - } + tb_p = tb_p->next; } - - tb_p = tb_p->next; } - } + } /* LOG_DEBUGFLAG(RLC) || MESSAGE_TRACE_GENERATOR) */ -#endif rlc_am_rx (ctxt_pP, rlc_pP, data_indP); } //----------------------------------------------------------------------------- void rlc_am_data_req ( - const protocol_ctxt_t* const ctxt_pP, - void * const rlc_pP, - mem_block_t * const sdu_pP) -{ + const protocol_ctxt_t *const ctxt_pP, + void *const rlc_pP, + mem_block_t *const sdu_pP) { rlc_am_entity_t *l_rlc_p = (rlc_am_entity_t *) rlc_pP; uint32_t mui; uint16_t data_offset; uint16_t data_size; -#if TRACE_RLC_AM_PDU char message_string[7000]; size_t message_string_size = 0; -#if ENABLE_ITTI - MessageDef *msg_p; -#endif int octet_index, index; -#endif - RLC_AM_MUTEX_LOCK(&l_rlc_p->lock_input_sdus, ctxt_pP, l_rlc_p); if ((l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mem_block == NULL) && (l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].flags.segmented == 0) && (((l_rlc_p->next_sdu_index + 1) % RLC_AM_SDU_CONTROL_BUFFER_SIZE) != l_rlc_p->current_sdu_index)) { - - memset(&l_rlc_p->input_sdus[l_rlc_p->next_sdu_index], 0, sizeof(rlc_am_tx_sdu_management_t)); l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mem_block = sdu_pP; - mui = ((struct rlc_am_data_req *) (sdu_pP->data))->mui; data_offset = ((struct rlc_am_data_req *) (sdu_pP->data))->data_offset; data_size = ((struct rlc_am_data_req *) (sdu_pP->data))->data_size; - MSC_LOG_RX_MESSAGE( (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (const char*)(&sdu_pP->data[data_offset]), + (const char *)(&sdu_pP->data[data_offset]), data_size, MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA-REQ size %u mui %u", MSC_AS_TIME_ARGS(ctxt_pP), @@ -1175,68 +1050,53 @@ rlc_am_data_req ( data_size, mui); + if (LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size); + message_string_size += sprintf(&message_string[message_string_size], "MUI : %u\n", mui); + message_string_size += sprintf(&message_string[message_string_size], "CONF : %u\n", ((struct rlc_am_data_req *) (sdu_pP->data))->conf); + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); -#if TRACE_RLC_AM_PDU - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size); - message_string_size += sprintf(&message_string[message_string_size], "MUI : %u\n", mui); - message_string_size += sprintf(&message_string[message_string_size], "CONF : %u\n", ((struct rlc_am_data_req *) (sdu_pP->data))->conf); + for (octet_index = 0; octet_index < data_size; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - - for (octet_index = 0; octet_index < data_size; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], " %02x", ((uint8_t *)(&sdu_pP->data[data_offset]))[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ } /* - * Print every single octet in hexadecimal form + * Append enough spaces and put final pipe */ - message_string_size += sprintf(&message_string[message_string_size], " %02x", ((uint8_t*)(&sdu_pP->data[data_offset]))[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 - */ - } + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); - } - - message_string_size += sprintf(&message_string[message_string_size], " |\n"); - -# if ENABLE_ITTI - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_AM_SDU_REQ, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_sdu_req.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_sdu_req.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# else - LOG_T(RLC, "%s", message_string); -# endif -#endif + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + LOG_UI(RLC, "%s\n", message_string); + } /* LOG_DEBUGFLAG(RLC) */ l_rlc_p->stat_tx_pdcp_sdu += 1; l_rlc_p->stat_tx_pdcp_bytes += data_size; - l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mui = mui; l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_size = data_size; - l_rlc_p->sdu_buffer_occupancy += data_size; l_rlc_p->nb_sdu += 1; l_rlc_p->nb_sdu_no_segmented += 1; - - l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].first_byte = (uint8_t*)(&sdu_pP->data[data_offset]); + l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].first_byte = (uint8_t *)(&sdu_pP->data[data_offset]); l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_remaining_size = l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_size; l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_segmented_size = 0; l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].sdu_creation_time = ctxt_pP->frame; @@ -1250,43 +1110,44 @@ rlc_am_data_req ( l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].flags.no_new_sdu_segmented_in_last_pdu = 0; //l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].li_index_for_discard = -1; l_rlc_p->next_sdu_index = (l_rlc_p->next_sdu_index + 1) % RLC_AM_SDU_CONTROL_BUFFER_SIZE; - if (l_rlc_p->channel_id <3) - { - LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RLC_AM_DATA_REQ size %d Bytes, NB SDU %d current_sdu_index=%d next_sdu_index=%d conf %d mui %d vtA %d vtS %d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,l_rlc_p), - data_size, - l_rlc_p->nb_sdu, - l_rlc_p->current_sdu_index, - l_rlc_p->next_sdu_index, - ((struct rlc_am_data_req *) (sdu_pP->data))->conf, - mui, - l_rlc_p->vt_a, - l_rlc_p->vt_s); + + if (l_rlc_p->channel_id <3) { + LOG_I(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RLC_AM_DATA_REQ size %d Bytes, NB SDU %d current_sdu_index=%d next_sdu_index=%d conf %d mui %d vtA %d vtS %d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,l_rlc_p), + data_size, + l_rlc_p->nb_sdu, + l_rlc_p->current_sdu_index, + l_rlc_p->next_sdu_index, + ((struct rlc_am_data_req *) (sdu_pP->data))->conf, + mui, + l_rlc_p->vt_a, + l_rlc_p->vt_s); } } else { -#if MESSAGE_CHART_GENERATOR - mui = ((struct rlc_am_data_req*) (sdu_pP->data))->mui; - data_offset = ((struct rlc_am_data_req*) (sdu_pP->data))->data_offset; - data_size = ((struct rlc_am_data_req*) (sdu_pP->data))->data_size; - MSC_LOG_RX_DISCARDED_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (const char*)(&sdu_pP->data[data_offset]), - data_size, - MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA-REQ size %u mui %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), - data_size, - mui); -#endif + if( MESSAGE_CHART_GENERATOR) { + mui = ((struct rlc_am_data_req *) (sdu_pP->data))->mui; + data_offset = ((struct rlc_am_data_req *) (sdu_pP->data))->data_offset; + data_size = ((struct rlc_am_data_req *) (sdu_pP->data))->data_size; + MSC_LOG_RX_DISCARDED_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, + (const char *)(&sdu_pP->data[data_offset]), + data_size, + MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA-REQ size %u mui %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP, l_rlc_p), + data_size, + mui); + } + LOG_W(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RLC_AM_DATA_REQ BUFFER FULL, NB SDU %d current_sdu_index=%d next_sdu_index=%d size_input_sdus_buffer=%d vtA=%d vtS=%d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,l_rlc_p), l_rlc_p->nb_sdu, l_rlc_p->current_sdu_index, l_rlc_p->next_sdu_index, RLC_AM_SDU_CONTROL_BUFFER_SIZE, - l_rlc_p->vt_a, - l_rlc_p->vt_s); + l_rlc_p->vt_a, + l_rlc_p->vt_s); LOG_W(RLC, " input_sdus[].mem_block=%p next input_sdus[].flags.segmented=%d\n", l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].mem_block, l_rlc_p->input_sdus[l_rlc_p->next_sdu_index].flags.segmented); l_rlc_p->stat_tx_pdcp_sdu_discarded += 1; diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c index d2fe1d1bfd..369c7fd0da 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_reassembly.c @@ -23,9 +23,7 @@ #define RLC_AM_REASSEMBLY_C 1 #include "platform_types.h" //----------------------------------------------------------------------------- -#if ENABLE_ITTI -# include "intertask_interface.h" -#endif + #include "assertions.h" #include "rlc.h" #include "rlc_am.h" @@ -37,19 +35,17 @@ //----------------------------------------------------------------------------- inline void rlc_am_clear_rx_sdu ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP) { rlc_pP->output_sdu_size_to_write = 0; } //----------------------------------------------------------------------------- void rlc_am_reassembly ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP, - uint8_t * src_pP, - const int32_t lengthP) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP, + uint8_t *src_pP, + const int32_t lengthP) { LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PAYLOAD] reassembly() %d bytes\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), lengthP); @@ -57,6 +53,7 @@ rlc_am_reassembly ( if (rlc_pP->output_sdu_in_construction == NULL) { rlc_pP->output_sdu_in_construction = get_free_mem_block (RLC_SDU_MAX_SIZE, __func__); rlc_pP->output_sdu_size_to_write = 0; + //assert(rlc_pP->output_sdu_in_construction != NULL); if(rlc_pP->output_sdu_in_construction == NULL) { LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PAYLOAD] output_sdu_in_construction is NULL\n", @@ -66,7 +63,6 @@ rlc_am_reassembly ( } if (rlc_pP->output_sdu_in_construction != NULL) { - // check if no overflow in size if ((rlc_pP->output_sdu_size_to_write + lengthP) <= RLC_SDU_MAX_SIZE) { memcpy (&rlc_pP->output_sdu_in_construction->data[rlc_pP->output_sdu_size_to_write], src_pP, lengthP); @@ -93,18 +89,8 @@ rlc_am_reassembly ( //----------------------------------------------------------------------------- void rlc_am_send_sdu ( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP) -{ -# if TRACE_RLC_AM_PDU - char message_string[7000]; - size_t message_string_size = 0; -#if ENABLE_ITTI - MessageDef *msg_p; -#endif - int octet_index, index; -#endif - + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP) { if ((rlc_pP->output_sdu_in_construction)) { LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND_SDU] %d bytes sdu %p\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), @@ -120,73 +106,62 @@ rlc_am_send_sdu ( rlc_pP->output_sdu_size_to_write, rlc_pP->output_sdu_in_construction); #else -# if TRACE_RLC_AM_PDU - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", rlc_pP->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", rlc_pP->output_sdu_size_to_write); - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + char message_string[7000]; + size_t message_string_size = 0; + int octet_index, index; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", rlc_pP->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", rlc_pP->output_sdu_size_to_write); + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - for (octet_index = 0; octet_index < rlc_pP->output_sdu_size_to_write; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + for (octet_index = 0; octet_index < rlc_pP->output_sdu_size_to_write; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], + " %02x", + rlc_pP->output_sdu_in_construction->data[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ } /* - * Print every single octet in hexadecimal form - */ - message_string_size += sprintf(&message_string[message_string_size], - " %02x", - rlc_pP->output_sdu_in_construction->data[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 + * Append enough spaces and put final pipe */ + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } + + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + LOG_T(RLC, "%s", message_string); } - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); - } - - message_string_size += sprintf(&message_string[message_string_size], " |\n"); - - - -# if ENABLE_ITTI - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , - RLC_AM_SDU_IND, - message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_sdu_ind.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_sdu_ind.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# else - LOG_T(RLC, "%s", message_string); -# endif -# endif #if !ENABLE_ITTI RLC_AM_MUTEX_UNLOCK(&rlc_pP->lock_input_sdus); #endif MSC_LOG_TX_MESSAGE( (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, - (const char*)(rlc_pP->output_sdu_in_construction->data), + (const char *)(rlc_pP->output_sdu_in_construction->data), rlc_pP->output_sdu_size_to_write, MSC_AS_TIME_FMT" "PROTOCOL_RLC_AM_MSC_FMT" DATA-IND size %u", MSC_AS_TIME_ARGS(ctxt_pP), PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_pP), rlc_pP->output_sdu_size_to_write ); - rlc_data_ind (ctxt_pP, BOOL_NOT(rlc_pP->is_data_plane), MBMS_FLAG_NO, @@ -203,16 +178,16 @@ rlc_am_send_sdu ( PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); //msg("[RLC_AM][MOD %d] Freeing mem_block ...\n", rlc_pP->module_id); //free_mem_block (rlc_pP->output_sdu_in_construction, __func__); -//Assertion(eNB)_PRAN_DesignDocument_annex No.764 - LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" SEND SDU REQUESTED %d bytes\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->output_sdu_size_to_write); -/* - AssertFatal(3==4, - PROTOCOL_RLC_AM_CTXT_FMT" SEND SDU REQUESTED %d bytes", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - rlc_pP->output_sdu_size_to_write); -*/ + //Assertion(eNB)_PRAN_DesignDocument_annex No.764 + LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" SEND SDU REQUESTED %d bytes\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + rlc_pP->output_sdu_size_to_write); + /* + AssertFatal(3==4, + PROTOCOL_RLC_AM_CTXT_FMT" SEND SDU REQUESTED %d bytes", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + rlc_pP->output_sdu_size_to_write); + */ } rlc_pP->output_sdu_size_to_write = 0; @@ -221,191 +196,189 @@ rlc_am_send_sdu ( //----------------------------------------------------------------------------- void rlc_am_reassemble_pdu( - const protocol_ctxt_t* const ctxt_pP, - rlc_am_entity_t * const rlc_pP, - mem_block_t * const tb_pP, - boolean_t free_rlc_pdu) -{ + const protocol_ctxt_t *const ctxt_pP, + rlc_am_entity_t *const rlc_pP, + mem_block_t *const tb_pP, + boolean_t free_rlc_pdu) { int i,j; - - rlc_am_pdu_info_t* pdu_info = &((rlc_am_rx_pdu_management_t*)(tb_pP->data))->pdu_info; + rlc_am_pdu_info_t *pdu_info = &((rlc_am_rx_pdu_management_t *)(tb_pP->data))->pdu_info; LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU SN=%03d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), pdu_info->sn); -#if TRACE_RLC_AM_RX_DECODE - rlc_am_display_data_pdu_infos(ctxt_pP, rlc_pP, pdu_info); -#endif + + if ( LOG_DEBUGFLAG(DEBUG_RLC)) { + rlc_am_display_data_pdu_infos(ctxt_pP, rlc_pP, pdu_info); + } if (pdu_info->e == RLC_E_FIXED_PART_DATA_FIELD_FOLLOW) { switch (pdu_info->fi) { - case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=11 (00)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - // one complete SDU - rlc_am_send_sdu(ctxt_pP, rlc_pP); // may be not necessary - rlc_am_reassembly (ctxt_pP, rlc_pP, pdu_info->payload, pdu_info->payload_size); - rlc_am_send_sdu(ctxt_pP, rlc_pP); // may be not necessary - //rlc_pP->reassembly_missing_sn_detected = 0; - break; + case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=11 (00)\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + // one complete SDU + rlc_am_send_sdu(ctxt_pP, rlc_pP); // may be not necessary + rlc_am_reassembly (ctxt_pP, rlc_pP, pdu_info->payload, pdu_info->payload_size); + rlc_am_send_sdu(ctxt_pP, rlc_pP); // may be not necessary + //rlc_pP->reassembly_missing_sn_detected = 0; + break; - case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=10 (01)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - // one beginning segment of SDU in PDU - rlc_am_send_sdu(ctxt_pP, rlc_pP); // may be not necessary - rlc_am_reassembly (ctxt_pP, rlc_pP,pdu_info->payload, pdu_info->payload_size); - //rlc_pP->reassembly_missing_sn_detected = 0; - break; + case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=10 (01)\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + // one beginning segment of SDU in PDU + rlc_am_send_sdu(ctxt_pP, rlc_pP); // may be not necessary + rlc_am_reassembly (ctxt_pP, rlc_pP,pdu_info->payload, pdu_info->payload_size); + //rlc_pP->reassembly_missing_sn_detected = 0; + break; - case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=01 (10)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - // one last segment of SDU - //if (rlc_pP->reassembly_missing_sn_detected == 0) { - rlc_am_reassembly (ctxt_pP, rlc_pP, pdu_info->payload, pdu_info->payload_size); - rlc_am_send_sdu(ctxt_pP, rlc_pP); - //} // else { clear sdu already done - //rlc_pP->reassembly_missing_sn_detected = 0; - break; + case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=01 (10)\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + // one last segment of SDU + //if (rlc_pP->reassembly_missing_sn_detected == 0) { + rlc_am_reassembly (ctxt_pP, rlc_pP, pdu_info->payload, pdu_info->payload_size); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + //} // else { clear sdu already done + //rlc_pP->reassembly_missing_sn_detected = 0; + break; - case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=00 (11)\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - //if (rlc_pP->reassembly_missing_sn_detected == 0) { - // one whole segment of SDU in PDU - rlc_am_reassembly (ctxt_pP, rlc_pP, pdu_info->payload, pdu_info->payload_size); - //} else { - // rlc_pP->reassembly_missing_sn_detected = 1; // not necessary but for readability of the code - //} + case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU NO E_LI FI=00 (11)\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + //if (rlc_pP->reassembly_missing_sn_detected == 0) { + // one whole segment of SDU in PDU + rlc_am_reassembly (ctxt_pP, rlc_pP, pdu_info->payload, pdu_info->payload_size); + //} else { + // rlc_pP->reassembly_missing_sn_detected = 1; // not necessary but for readability of the code + //} + break; - break; - - default: -//Assertion(eNB)_PRAN_DesignDocument_annex No.1428 - LOG_E(RLC, "RLC_E_FIXED_PART_DATA_FIELD_FOLLOW error pdu_info->fi[%d]\n", pdu_info->fi); -// assert(0 != 0); + default: + //Assertion(eNB)_PRAN_DesignDocument_annex No.1428 + LOG_E(RLC, "RLC_E_FIXED_PART_DATA_FIELD_FOLLOW error pdu_info->fi[%d]\n", pdu_info->fi); + // assert(0 != 0); } } else { switch (pdu_info->fi) { - case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=11 (00) Li=", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=11 (00) Li=", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - for (i=0; i < pdu_info->num_li; i++) { - LOG_D(RLC, "%d ",pdu_info->li_list[i]); - } + for (i=0; i < pdu_info->num_li; i++) { + LOG_D(RLC, "%d ",pdu_info->li_list[i]); + } - LOG_D(RLC, "\n"); - //msg(" remaining size %d\n",size); - // N complete SDUs - rlc_am_send_sdu(ctxt_pP, rlc_pP); - j = 0; - - for (i = 0; i < pdu_info->num_li; i++) { - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); + LOG_D(RLC, "\n"); + //msg(" remaining size %d\n",size); + // N complete SDUs rlc_am_send_sdu(ctxt_pP, rlc_pP); - j = j + pdu_info->li_list[i]; - } + j = 0; - if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug - // data is already ok, done by last loop above - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); + for (i = 0; i < pdu_info->num_li; i++) { + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + j = j + pdu_info->li_list[i]; + } + + if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug + // data is already ok, done by last loop above + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + } + + //rlc_pP->reassembly_missing_sn_detected = 0; + break; + + case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=10 (01) Li=", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + + for (i=0; i < pdu_info->num_li; i++) { + LOG_D(RLC, "%d ",pdu_info->li_list[i]); + } + + LOG_D(RLC, "\n"); + //msg(" remaining size %d\n",size); + // N complete SDUs + one segment of SDU in PDU rlc_am_send_sdu(ctxt_pP, rlc_pP); - } + j = 0; - //rlc_pP->reassembly_missing_sn_detected = 0; - break; + for (i = 0; i < pdu_info->num_li; i++) { + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + j = j + pdu_info->li_list[i]; + } - case RLC_FI_1ST_BYTE_DATA_IS_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=10 (01) Li=", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug + // data is already ok, done by last loop above + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); + } - for (i=0; i < pdu_info->num_li; i++) { - LOG_D(RLC, "%d ",pdu_info->li_list[i]); - } + //rlc_pP->reassembly_missing_sn_detected = 0; + break; - LOG_D(RLC, "\n"); - //msg(" remaining size %d\n",size); - // N complete SDUs + one segment of SDU in PDU - rlc_am_send_sdu(ctxt_pP, rlc_pP); - j = 0; + case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=01 (10) Li=", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - for (i = 0; i < pdu_info->num_li; i++) { - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); - rlc_am_send_sdu(ctxt_pP, rlc_pP); - j = j + pdu_info->li_list[i]; - } + for (i=0; i < pdu_info->num_li; i++) { + LOG_D(RLC, "%d ",pdu_info->li_list[i]); + } - if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug - // data is already ok, done by last loop above - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); - } + LOG_D(RLC, "\n"); + //msg(" remaining size %d\n",size); + // one last segment of SDU + N complete SDUs in PDU + j = 0; - //rlc_pP->reassembly_missing_sn_detected = 0; - break; + for (i = 0; i < pdu_info->num_li; i++) { + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + j = j + pdu_info->li_list[i]; + } - case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=01 (10) Li=", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug + // data is already ok, done by last loop above + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + } - for (i=0; i < pdu_info->num_li; i++) { - LOG_D(RLC, "%d ",pdu_info->li_list[i]); - } + //rlc_pP->reassembly_missing_sn_detected = 0; + break; - LOG_D(RLC, "\n"); - //msg(" remaining size %d\n",size); - // one last segment of SDU + N complete SDUs in PDU - j = 0; + case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=00 (11) Li=", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); - for (i = 0; i < pdu_info->num_li; i++) { - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); - rlc_am_send_sdu(ctxt_pP, rlc_pP); - j = j + pdu_info->li_list[i]; - } + for (i=0; i < pdu_info->num_li; i++) { + LOG_D(RLC, "%d ",pdu_info->li_list[i]); + } - if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug - // data is already ok, done by last loop above - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); - rlc_am_send_sdu(ctxt_pP, rlc_pP); - } + LOG_D(RLC, "\n"); + //msg(" remaining size %d\n",size); + j = 0; - //rlc_pP->reassembly_missing_sn_detected = 0; - break; + for (i = 0; i < pdu_info->num_li; i++) { + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); + rlc_am_send_sdu(ctxt_pP, rlc_pP); + j = j + pdu_info->li_list[i]; + } - case RLC_FI_1ST_BYTE_DATA_IS_NOT_1ST_BYTE_SDU_LAST_BYTE_DATA_IS_NOT_LAST_BYTE_SDU: - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[REASSEMBLY PDU] TRY REASSEMBLY PDU FI=00 (11) Li=", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP)); + if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug + // data is already ok, done by last loop above + rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); + } - for (i=0; i < pdu_info->num_li; i++) { - LOG_D(RLC, "%d ",pdu_info->li_list[i]); - } + //rlc_pP->reassembly_missing_sn_detected = 0; + break; - LOG_D(RLC, "\n"); - //msg(" remaining size %d\n",size); - j = 0; - - for (i = 0; i < pdu_info->num_li; i++) { - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->li_list[i]); - rlc_am_send_sdu(ctxt_pP, rlc_pP); - j = j + pdu_info->li_list[i]; - } - - if (pdu_info->hidden_size > 0) { // normally should always be > 0 but just for help debug - // data is already ok, done by last loop above - rlc_am_reassembly (ctxt_pP, rlc_pP, &pdu_info->payload[j], pdu_info->hidden_size); - } - - //rlc_pP->reassembly_missing_sn_detected = 0; - break; - - default: -//Assertion(eNB)_PRAN_DesignDocument_annex No.1429 - LOG_E(RLC, "not RLC_E_FIXED_PART_DATA_FIELD_FOLLOW error pdu_info->fi[%d]\n", pdu_info->fi); -// assert(1 != 1); + default: + //Assertion(eNB)_PRAN_DesignDocument_annex No.1429 + LOG_E(RLC, "not RLC_E_FIXED_PART_DATA_FIELD_FOLLOW error pdu_info->fi[%d]\n", pdu_info->fi); + // assert(1 != 1); } } if (free_rlc_pdu) { - free_mem_block(tb_pP, __func__); + free_mem_block(tb_pP, __func__); } } diff --git a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c index 917f1a1791..5c68aecf61 100644 --- a/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c +++ b/openair2/LAYER2/RLC/AM_v9.3.0/rlc_am_status_report.c @@ -27,59 +27,19 @@ #include "platform_types.h" //----------------------------------------------------------------------------- #if ENABLE_ITTI -# include "intertask_interface.h" + #include "intertask_interface.h" #endif #include "assertions.h" #include "list.h" #include "rlc_am.h" #include "common/utils/LOG/log.h" -# if ENABLE_ITTI -//----------------------------------------------------------------------------- -void -rlc_am_itti_display_status_ind_infos( - const protocol_ctxt_t* const ctxt_pP, - const rlc_am_entity_t *const rlc_pP, - const rlc_am_control_pdu_info_t *const pdu_info_pP) -{ - char message_string[1000]; - size_t message_string_size = 0; - MessageDef *msg_p; - - int num_nack; - - if (!pdu_info_pP->d_c) { - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", rlc_pP->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "CONTROL PDU ACK SN %04d", pdu_info_pP->ack_sn); - - for (num_nack = 0; num_nack < pdu_info_pP->num_nack; num_nack++) { - if (pdu_info_pP->nack_list[num_nack].e2) { - message_string_size += sprintf(&message_string[message_string_size], "\n\tNACK SN %04d SO START %05d SO END %05d", pdu_info_pP->nack_list[num_nack].nack_sn, - pdu_info_pP->nack_list[num_nack].so_start, - pdu_info_pP->nack_list[num_nack].so_end); - } else { - message_string_size += sprintf(&message_string[message_string_size], "\n\tNACK SN %04d", pdu_info_pP->nack_list[num_nack].nack_sn); - } - } - - message_string_size += sprintf(&message_string[message_string_size], "\n"); - - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_AM_STATUS_PDU_IND, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_am_status_pdu_ind.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_am_status_pdu_ind.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } -} - -# endif //----------------------------------------------------------------------------- uint16_t rlc_am_read_bit_field( - uint8_t** data_ppP, - unsigned int* bit_pos_pP, - const signed int bits_to_readP) -{ + uint8_t **data_ppP, + unsigned int *bit_pos_pP, + const signed int bits_to_readP) { uint16_t value = 0; unsigned int bits_read = 0; signed int bits_to_read = bits_to_readP; @@ -113,11 +73,10 @@ uint16_t rlc_am_read_bit_field( //----------------------------------------------------------------------------- void rlc_am_write8_bit_field( - uint8_t** data_ppP, - unsigned int* bit_pos_pP, + uint8_t **data_ppP, + unsigned int *bit_pos_pP, const signed int bits_to_writeP, - const uint8_t valueP) -{ + const uint8_t valueP) { unsigned int available_bits; signed int bits_to_write= bits_to_writeP; @@ -148,11 +107,10 @@ rlc_am_write8_bit_field( //----------------------------------------------------------------------------- void rlc_am_write16_bit_field( - uint8_t** data_ppP, - unsigned int* bit_pos_pP, + uint8_t **data_ppP, + unsigned int *bit_pos_pP, signed int bits_to_writeP, - const uint16_t valueP) -{ + const uint16_t valueP) { //assert(bits_to_writeP <= 16); if(bits_to_writeP > 16) { LOG_E(RLC, "bits_to_writeP error. %d\n", bits_to_writeP); @@ -168,15 +126,12 @@ rlc_am_write16_bit_field( //----------------------------------------------------------------------------- signed int rlc_am_get_control_pdu_infos( - rlc_am_pdu_sn_10_t* const header_pP, - sdu_size_t * const total_size_pP, - rlc_am_control_pdu_info_t* const pdu_info_pP) -{ + rlc_am_pdu_sn_10_t *const header_pP, + sdu_size_t *const total_size_pP, + rlc_am_control_pdu_info_t *const pdu_info_pP) { memset(pdu_info_pP, 0, sizeof (rlc_am_control_pdu_info_t)); - pdu_info_pP->d_c = header_pP->b1 >> 7; - if (!pdu_info_pP->d_c) { pdu_info_pP->cpt = (header_pP->b1 >> 4) & 0x07; @@ -191,7 +146,7 @@ rlc_am_get_control_pdu_infos( if (pdu_info_pP->e1) { unsigned int nack_to_read = 1; unsigned int bit_pos = 7; // range from 0 (MSB/left) to 7 (LSB/right) - uint8_t* byte_pos_p = &header_pP->b2; + uint8_t *byte_pos_p = &header_pP->b2; while (nack_to_read) { pdu_info_pP->nack_list[pdu_info_pP->num_nack].nack_sn = rlc_am_read_bit_field(&byte_pos_p, &bit_pos, 10); @@ -214,9 +169,11 @@ rlc_am_get_control_pdu_infos( if (!pdu_info_pP->nack_list[pdu_info_pP->num_nack - 1].e1) { nack_to_read = 0; *total_size_pP = *total_size_pP - (sdu_size_t)((uint64_t)byte_pos_p + (uint64_t)((bit_pos + 7)/8) - (uint64_t)header_pP); + if (*total_size_pP != 0) { LOG_E(RLC, "[RLC_AM_GET_CONTROL_PDU_INFOS][FIRST]header_pP->b1=%d,header_pP->b2=%d\n",header_pP->b1,header_pP->b2); } + return 0; } @@ -230,9 +187,11 @@ rlc_am_get_control_pdu_infos( } else { *total_size_pP = *total_size_pP - 2; } + if (*total_size_pP != 0) { LOG_E(RLC, "[RLC_AM_GET_CONTROL_PDU_INFOS][SECOND]header_pP->b1=%d,header_pP->b2=%d\n",header_pP->b1,header_pP->b2); } + return 0; } else { return -1; @@ -241,9 +200,8 @@ rlc_am_get_control_pdu_infos( //----------------------------------------------------------------------------- void rlc_am_display_control_pdu_infos( - const rlc_am_control_pdu_info_t* const pdu_info_pP -) -{ + const rlc_am_control_pdu_info_t *const pdu_info_pP +) { int num_nack; if (!pdu_info_pP->d_c) { @@ -267,25 +225,23 @@ rlc_am_display_control_pdu_infos( //----------------------------------------------------------------------------- void rlc_am_receive_process_control_pdu( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, rlc_am_entity_t *const rlc_pP, - mem_block_t* const tb_pP, - uint8_t** first_byte_ppP, - sdu_size_t * const tb_size_in_bytes_pP) -{ - rlc_am_pdu_sn_10_t *rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t*)*first_byte_ppP; + mem_block_t *const tb_pP, + uint8_t **first_byte_ppP, + sdu_size_t *const tb_size_in_bytes_pP) { + rlc_am_pdu_sn_10_t *rlc_am_pdu_sn_10_p = (rlc_am_pdu_sn_10_t *)*first_byte_ppP; sdu_size_t initial_pdu_size = *tb_size_in_bytes_pP; rlc_sn_t ack_sn = RLC_AM_NEXT_SN(rlc_pP->vt_a); rlc_sn_t sn_cursor = rlc_pP->vt_a; - rlc_sn_t vt_a_new = rlc_pP->vt_a; - rlc_sn_t sn_data_cnf; + rlc_sn_t vt_a_new = rlc_pP->vt_a; + rlc_sn_t sn_data_cnf; rlc_sn_t nack_sn,prev_nack_sn; - sdu_size_t data_cnf_so_stop = 0x7FFF; + sdu_size_t data_cnf_so_stop = 0x7FFF; unsigned int nack_index; boolean_t status = TRUE; if (rlc_am_get_control_pdu_infos(rlc_am_pdu_sn_10_p, tb_size_in_bytes_pP, &rlc_pP->control_pdu_info) >= 0) { - rlc_am_tx_buffer_display(ctxt_pP, rlc_pP, " TX BUFFER BEFORE PROCESS OF STATUS PDU"); LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RX CONTROL PDU VT(A) %04d VT(S) %04d POLL_SN %04d ACK_SN %04d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), @@ -294,7 +250,6 @@ rlc_am_receive_process_control_pdu( rlc_pP->poll_sn, rlc_pP->control_pdu_info.ack_sn); rlc_am_display_control_pdu_infos(&rlc_pP->control_pdu_info); - ack_sn = rlc_pP->control_pdu_info.ack_sn; // 5.2.1 Retransmission // @@ -326,8 +281,7 @@ rlc_am_receive_process_control_pdu( /* Note : ackSn can be equal to current vtA only in case the status pdu contains a list of nack_sn with same value = vtA with SOStart/SOEnd */ /* and meaning the report is not complete due to not enough ressources to fill all SOStart/SOEnd of this NACK_SN */ - if (RLC_AM_DIFF_SN(rlc_pP->vt_s,rlc_pP->vt_a) >= RLC_AM_DIFF_SN(ack_sn,rlc_pP->vt_a)) - { + if (RLC_AM_DIFF_SN(rlc_pP->vt_s,rlc_pP->vt_a) >= RLC_AM_DIFF_SN(ack_sn,rlc_pP->vt_a)) { if (rlc_pP->control_pdu_info.num_nack == 0) { while (sn_cursor != ack_sn) { rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor,TRUE); @@ -342,63 +296,56 @@ rlc_am_receive_process_control_pdu( prev_nack_sn = 0x3FFF; while (sn_cursor != nack_sn) { - rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor,TRUE); - sn_cursor = RLC_AM_NEXT_SN(sn_cursor); + rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor,TRUE); + sn_cursor = RLC_AM_NEXT_SN(sn_cursor); } vt_a_new = nack_sn; - // catch DataCfn rlc_am_tx_data_pdu_management_t *tx_data_pdu_buffer_p = &rlc_pP->tx_data_pdu_buffer[nack_sn % RLC_AM_WINDOW_SIZE]; - if (tx_data_pdu_buffer_p->retx_payload_size == tx_data_pdu_buffer_p->payload_size) { - sn_data_cnf = RLC_AM_PREV_SN(nack_sn); - } - else if (tx_data_pdu_buffer_p->nack_so_start != 0) { - sn_data_cnf = nack_sn; - data_cnf_so_stop = tx_data_pdu_buffer_p->nack_so_start - 1; - } - else { - sn_data_cnf = RLC_AM_PREV_SN(nack_sn); - } + if (tx_data_pdu_buffer_p->retx_payload_size == tx_data_pdu_buffer_p->payload_size) { + sn_data_cnf = RLC_AM_PREV_SN(nack_sn); + } else if (tx_data_pdu_buffer_p->nack_so_start != 0) { + sn_data_cnf = nack_sn; + data_cnf_so_stop = tx_data_pdu_buffer_p->nack_so_start - 1; + } else { + sn_data_cnf = RLC_AM_PREV_SN(nack_sn); + } while ((sn_cursor != ack_sn) && (status)) { if (sn_cursor != nack_sn) { rlc_am_ack_pdu(ctxt_pP, rlc_pP, sn_cursor, - FALSE); + FALSE); } else { - status = rlc_am_nack_pdu (ctxt_pP, - rlc_pP, - nack_sn, - prev_nack_sn, - rlc_pP->control_pdu_info.nack_list[nack_index].so_start, - rlc_pP->control_pdu_info.nack_list[nack_index].so_end); - + status = rlc_am_nack_pdu (ctxt_pP, + rlc_pP, + nack_sn, + prev_nack_sn, + rlc_pP->control_pdu_info.nack_list[nack_index].so_start, + rlc_pP->control_pdu_info.nack_list[nack_index].so_end); nack_index = nack_index + 1; prev_nack_sn = nack_sn; if (nack_index < rlc_pP->control_pdu_info.num_nack) { - nack_sn = rlc_pP->control_pdu_info.nack_list[nack_index].nack_sn; - } - else if (nack_sn != ack_sn) { - /* general case*/ - nack_sn = ack_sn; - } - else { - /*specific case when the sender did not have enough TBS to fill all SOStart SOEnd for this NACK_SN */ - break; + nack_sn = rlc_pP->control_pdu_info.nack_list[nack_index].nack_sn; + } else if (nack_sn != ack_sn) { + /* general case*/ + nack_sn = ack_sn; + } else { + /*specific case when the sender did not have enough TBS to fill all SOStart SOEnd for this NACK_SN */ + break; } } + if (prev_nack_sn != nack_sn) { - /* do not increment sn_cursor in case of several informations for the same nack_sn */ - sn_cursor = (sn_cursor + 1) & RLC_AM_SN_MASK; + /* do not increment sn_cursor in case of several informations for the same nack_sn */ + sn_cursor = (sn_cursor + 1) & RLC_AM_SN_MASK; } } } - - } else { LOG_E(RLC, PROTOCOL_RLC_AM_CTXT_FMT" WARNING CONTROL PDU ACK SN %d OUT OF WINDOW vtA=%d vtS=%d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,rlc_pP->vt_a,rlc_pP->vt_s); @@ -413,61 +360,57 @@ rlc_am_receive_process_control_pdu( } if (status) { - /* Check for Stopping TpollReTx */ - if ((rlc_pP->poll_sn != RLC_SN_UNDEFINED) && - (RLC_AM_DIFF_SN(ack_sn,rlc_pP->vt_a) > RLC_AM_DIFF_SN(rlc_pP->poll_sn,rlc_pP->vt_a))) { - rlc_am_stop_and_reset_timer_poll_retransmit(ctxt_pP, rlc_pP); - rlc_pP->poll_sn = RLC_SN_UNDEFINED; + /* Check for Stopping TpollReTx */ + if ((rlc_pP->poll_sn != RLC_SN_UNDEFINED) && + (RLC_AM_DIFF_SN(ack_sn,rlc_pP->vt_a) > RLC_AM_DIFF_SN(rlc_pP->poll_sn,rlc_pP->vt_a))) { + rlc_am_stop_and_reset_timer_poll_retransmit(ctxt_pP, rlc_pP); + rlc_pP->poll_sn = RLC_SN_UNDEFINED; + } + + //TODO : this part does not cover all cases of Data Cnf and move it at the end of Status PDU processing + sn_cursor = rlc_pP->vt_a; + + // Fix Issue 238 : check sn_data_cnf has been transmitted + if ((rlc_pP->tx_data_pdu_buffer[sn_data_cnf % RLC_AM_WINDOW_SIZE].flags.transmitted) && + (rlc_pP->tx_data_pdu_buffer[sn_data_cnf % RLC_AM_WINDOW_SIZE].sn == sn_data_cnf)) { + /* Handle all acked PDU up to and excluding sn_data_cnf */ + while (sn_cursor != sn_data_cnf) { + rlc_am_pdu_sdu_data_cnf(ctxt_pP,rlc_pP,sn_cursor); + sn_cursor = RLC_AM_NEXT_SN(sn_cursor); } - //TODO : this part does not cover all cases of Data Cnf and move it at the end of Status PDU processing - sn_cursor = rlc_pP->vt_a; - - // Fix Issue 238 : check sn_data_cnf has been transmitted - if ((rlc_pP->tx_data_pdu_buffer[sn_data_cnf % RLC_AM_WINDOW_SIZE].flags.transmitted) && - (rlc_pP->tx_data_pdu_buffer[sn_data_cnf % RLC_AM_WINDOW_SIZE].sn == sn_data_cnf)) { - /* Handle all acked PDU up to and excluding sn_data_cnf */ - while (sn_cursor != sn_data_cnf) { - rlc_am_pdu_sdu_data_cnf(ctxt_pP,rlc_pP,sn_cursor); - sn_cursor = RLC_AM_NEXT_SN(sn_cursor); - } - - // Handle last SN. TO DO : case of PDU partially ACKED with SDU to be data conf - if (data_cnf_so_stop == 0x7FFF) { - rlc_am_pdu_sdu_data_cnf(ctxt_pP,rlc_pP,sn_data_cnf); - } - - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RECEIVE STATUS PDU ACK_SN=%d NewvtA=%d OldvtA=%d SnDataCnf=%d DataCnfSOStop=%d vtS=%d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,vt_a_new,rlc_pP->vt_a,sn_data_cnf,data_cnf_so_stop,rlc_pP->vt_s); - } - else { - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RECEIVE STATUS PDU WITH NO SDU CNF ACK_SN=%d NewvtA=%d OldvtA=%d vtS=%d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,vt_a_new,rlc_pP->vt_a,rlc_pP->vt_s); + // Handle last SN. TO DO : case of PDU partially ACKED with SDU to be data conf + if (data_cnf_so_stop == 0x7FFF) { + rlc_am_pdu_sdu_data_cnf(ctxt_pP,rlc_pP,sn_data_cnf); } - /* Update vtA and vtMS */ - rlc_pP->vt_a = vt_a_new; - rlc_pP->vt_ms = (rlc_pP->vt_a + RLC_AM_WINDOW_SIZE) & RLC_AM_SN_MASK; + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RECEIVE STATUS PDU ACK_SN=%d NewvtA=%d OldvtA=%d SnDataCnf=%d DataCnfSOStop=%d vtS=%d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,vt_a_new,rlc_pP->vt_a,sn_data_cnf,data_cnf_so_stop,rlc_pP->vt_s); + } else { + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" RECEIVE STATUS PDU WITH NO SDU CNF ACK_SN=%d NewvtA=%d OldvtA=%d vtS=%d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP),ack_sn,vt_a_new,rlc_pP->vt_a,rlc_pP->vt_s); + } + + /* Update vtA and vtMS */ + rlc_pP->vt_a = vt_a_new; + rlc_pP->vt_ms = (rlc_pP->vt_a + RLC_AM_WINDOW_SIZE) & RLC_AM_SN_MASK; } - *first_byte_ppP = (uint8_t*)((uint64_t)*first_byte_ppP + initial_pdu_size - *tb_size_in_bytes_pP); - + *first_byte_ppP = (uint8_t *)((uint64_t)*first_byte_ppP + initial_pdu_size - *tb_size_in_bytes_pP); free_mem_block(tb_pP, __func__); rlc_am_tx_buffer_display(ctxt_pP, rlc_pP, NULL); } //----------------------------------------------------------------------------- int rlc_am_write_status_pdu( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, rlc_am_entity_t *const rlc_pP, - rlc_am_pdu_sn_10_t* const rlc_am_pdu_sn_10_pP, - rlc_am_control_pdu_info_t* const pdu_info_pP) -{ + rlc_am_pdu_sn_10_t *const rlc_am_pdu_sn_10_pP, + rlc_am_control_pdu_info_t *const pdu_info_pP) { unsigned int bit_pos = 4; // range from 0 (MSB/left) to 7 (LSB/right) - uint8_t* byte_pos_p = &rlc_am_pdu_sn_10_pP->b1; + uint8_t *byte_pos_p = &rlc_am_pdu_sn_10_pP->b1; unsigned int index = 0; unsigned int num_bytes = 0; - rlc_am_write16_bit_field(&byte_pos_p, &bit_pos, 10, pdu_info_pP->ack_sn); if (pdu_info_pP->num_nack > 0) { @@ -495,20 +438,17 @@ rlc_am_write_status_pdu( num_bytes += 1; } -#if TRACE_RLC_AM_STATUS_CREATION LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT" WROTE STATUS PDU %d BYTES\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), num_bytes); -#endif return num_bytes; } //----------------------------------------------------------------------------- void rlc_am_send_status_pdu( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, rlc_am_entity_t *const rlc_pP -) -{ +) { // When STATUS reporting has been triggered, the receiving side of an AM RLC entity shall: // - if t-StatusProhibit is not running: // - at the first transmission opportunity indicated by lower layer, construct a STATUS PDU and deliver it to lower layer; @@ -530,10 +470,9 @@ rlc_am_send_status_pdu( // - include in the STATUS PDU a set of NACK_SN, SOstart and SOend // - set the ACK_SN to the SN of the next not received RLC Data PDU which is not indicated as missing in the // resulting STATUS PDU. - signed int nb_bits_to_transmit = rlc_pP->nb_bytes_requested_by_mac << 3; // minimum header size in bits to be transmitted: D/C + CPT + ACK_SN + E1 - signed int nb_bits_transmitted = RLC_AM_PDU_D_C_BITS + RLC_AM_STATUS_PDU_CPT_LENGTH + RLC_AM_SN_BITS + RLC_AM_PDU_E_BITS; + signed int nb_bits_transmitted = RLC_AM_PDU_D_C_BITS + RLC_AM_STATUS_PDU_CPT_LENGTH + RLC_AM_SN_BITS + RLC_AM_PDU_E_BITS; rlc_am_control_pdu_info_t control_pdu_info; rlc_am_pdu_info_t *pdu_info_cursor_p = NULL; rlc_sn_t sn_cursor = 0; @@ -543,325 +482,278 @@ rlc_am_send_status_pdu( int waited_so = 0; mem_block_t *tb_p = NULL; sdu_size_t pdu_size = 0; - boolean_t status_report_completed = false; - boolean_t segment_loop_end = false; - + boolean_t status_report_completed = false; + boolean_t segment_loop_end = false; memset(&control_pdu_info, 0, sizeof(rlc_am_control_pdu_info_t)); - -#if TRACE_RLC_AM_STATUS_CREATION LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] nb_bits_to_transmit %d (15 already allocated for header)\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), nb_bits_to_transmit); rlc_am_rx_list_display(rlc_pP, " DISPLAY BEFORE CONSTRUCTION OF STATUS REPORT"); -#endif /* Handle no NACK first */ if (rlc_pP->vr_r == rlc_pP->vr_ms) { - - control_pdu_info.ack_sn = rlc_pP->vr_ms; - status_report_completed = true; -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d ALL ACK WITH ACK_SN %04d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - rlc_pP->vr_ms); -#endif - } - else if ((cursor_p != NULL) && ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1)) <= nb_bits_to_transmit)) { - - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; + control_pdu_info.ack_sn = rlc_pP->vr_ms; + status_report_completed = true; + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d ALL ACK WITH ACK_SN %04d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + __LINE__, + rlc_pP->vr_ms); + } else if ((cursor_p != NULL) && ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1)) <= nb_bits_to_transmit)) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; sn_cursor = pdu_info_cursor_p->sn; - /* Set E1 bit for the presence of first NACK_SN/E1/E2 */ control_pdu_info.e1 = 1; // 12 bits = size of NACK_SN field + E1, E2 bits // 42 bits = size of NACK_SN field + SO_START, SO_END fields, E1, E2 bits while ((!status_report_completed) && (RLC_AM_DIFF_SN(sn_nack,rlc_pP->vr_r) < RLC_AM_DIFF_SN(rlc_pP->vr_ms,rlc_pP->vr_r)) - && (cursor_p != NULL) && (nb_bits_transmitted <= nb_bits_to_transmit)) { - - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; + && (cursor_p != NULL) && (nb_bits_transmitted <= nb_bits_to_transmit)) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; sn_cursor = pdu_info_cursor_p->sn; - all_segments_received = ((rlc_am_rx_pdu_management_t*)(cursor_p->data))->all_segments_received; + all_segments_received = ((rlc_am_rx_pdu_management_t *)(cursor_p->data))->all_segments_received; /* First fill NACK_SN with each missing PDU between current sn_nack and sn_cursor */ while ((sn_nack != sn_cursor) && (RLC_AM_DIFF_SN(sn_nack,rlc_pP->vr_r) < RLC_AM_DIFF_SN(rlc_pP->vr_ms,rlc_pP->vr_r))) { - if (nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) <= nb_bits_to_transmit) { - /* Fill NACK_SN infos */ - control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_nack; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = 0; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = RLC_AM_STATUS_PDU_SO_END_ALL_BYTES; - control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 0; - /* Set E1 for next NACK_SN. The last one will be cleared */ - control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; - control_pdu_info.num_nack += 1; - nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1)); -#if TRACE_RLC_AM_STATUS_CREATION + if (nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) <= nb_bits_to_transmit) { + /* Fill NACK_SN infos */ + control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_nack; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = 0; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = RLC_AM_STATUS_PDU_SO_END_ALL_BYTES; + control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 0; + /* Set E1 for next NACK_SN. The last one will be cleared */ + control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; + control_pdu_info.num_nack += 1; + nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1)); LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), __LINE__, - sn_nack); -#endif - sn_nack = RLC_AM_NEXT_SN(sn_nack); - } - else { - /* Not enough UL TBS*/ - /* latest value of sn_nack shall be used as ACK_SN */ - control_pdu_info.ack_sn = sn_nack; - status_report_completed = true; -#if TRACE_RLC_AM_STATUS_CREATION + sn_nack); + sn_nack = RLC_AM_NEXT_SN(sn_nack); + } else { + /* Not enough UL TBS*/ + /* latest value of sn_nack shall be used as ACK_SN */ + control_pdu_info.ack_sn = sn_nack; + status_report_completed = true; LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d NOT ENOUGH TBS STOP WITH ACK_SN %04d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), __LINE__, - sn_nack); -#endif - break; - } + sn_nack); + break; + } } if (sn_nack == rlc_pP->vr_ms) { - break; + break; } /* Now process all Segments of sn_cursor if PDU not fully received */ if ((!status_report_completed) && (all_segments_received == 0) && (sn_cursor != rlc_pP->vr_ms)) { - //AssertFatal (sn_nack == sn_cursor, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); - if(sn_nack != sn_cursor){ - LOG_E(RLC, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); - } - - /* First ensure there is enough TBS for at least 1 SOStart/SOEnd, else break */ + //AssertFatal (sn_nack == sn_cursor, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); + if(sn_nack != sn_cursor) { + LOG_E(RLC, "RLC AM Tx Status PDU Data sn_nack=%d and sn_cursor=%d should be equal LcId=%d\n",sn_nack,sn_cursor, rlc_pP->channel_id); + } + /* First ensure there is enough TBS for at least 1 SOStart/SOEnd, else break */ else if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { - /* Init loop flags */ - /* Check lsf */ - segment_loop_end = (pdu_info_cursor_p->lsf == 1); + /* Init loop flags */ + /* Check lsf */ + segment_loop_end = (pdu_info_cursor_p->lsf == 1); - /* Init first SO Start according to first segment */ - if (pdu_info_cursor_p->so) { - /* Fill the first SO */ + /* Init first SO Start according to first segment */ + if (pdu_info_cursor_p->so) { + /* Fill the first SO */ + control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_cursor; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = 0; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = pdu_info_cursor_p->so - 1; + control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; + /* Set E1 for next NACK_SN. The last one will be cleared */ + control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; + control_pdu_info.num_nack += 1; + nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d SO START %05d SO END %05d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + __LINE__, + sn_cursor, + 0, + pdu_info_cursor_p->so - 1); + waited_so = pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size; + } else { + waited_so = pdu_info_cursor_p->payload_size; + } + + /* Go to next segment */ + cursor_p = cursor_p->next; + + if (cursor_p != NULL) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; + } + + /* Find the first discontinuity and then fill SOStart/SOEnd */ + while (!segment_loop_end) { + if ((cursor_p != NULL) && (pdu_info_cursor_p->sn == sn_cursor)) { + /* PDU segment is for the same SN*/ + /* Check lsf */ + segment_loop_end = (pdu_info_cursor_p->lsf == 1); + + if (waited_so < pdu_info_cursor_p->so) { + /* SO is greater than previous received portion : gap identified to fill */ + if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_cursor; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = 0; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = waited_so; control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = pdu_info_cursor_p->so - 1; control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; /* Set E1 for next NACK_SN. The last one will be cleared */ control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; control_pdu_info.num_nack += 1; nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d SO START %05d SO END %05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, - 0, - pdu_info_cursor_p->so - 1); -#endif - waited_so = pdu_info_cursor_p->so + pdu_info_cursor_p->payload_size; - } - else { - waited_so = pdu_info_cursor_p->payload_size; - } - - /* Go to next segment */ - cursor_p = cursor_p->next; - if (cursor_p != NULL) - { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d SO START %05d SO END %05d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + __LINE__, + sn_cursor, + waited_so, + pdu_info_cursor_p->so); + } else { + /* Not enough resources to set a SOStart/SEnd, then set ACK_SN to current NACK_SN and stop Status PDU build */ + control_pdu_info.ack_sn = sn_cursor; + status_report_completed = true; + segment_loop_end = true; + break; + } + } else { + /* contiguous segment: only update waited_so */ + /* Assuming so and payload_size updated according to duplication removal done at reception ... */ + waited_so += pdu_info_cursor_p->payload_size; } - /* Find the first discontinuity and then fill SOStart/SOEnd */ - while (!segment_loop_end) { - if ((cursor_p != NULL) && (pdu_info_cursor_p->sn == sn_cursor)) { + /* Go to next received PDU or PDU Segment */ + cursor_p = cursor_p->next; - /* PDU segment is for the same SN*/ - /* Check lsf */ - segment_loop_end = (pdu_info_cursor_p->lsf == 1); + if (cursor_p != NULL) { + pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info; + } + } //end if (cursor_p != NULL) && (pdu_info_cursor_p->sn == sn_cursor) + else { + /* Previous PDU segment was the last one and did not have lsf indication : fill the latest gap */ + if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { + control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_cursor; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = waited_so; + control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = RLC_AM_STATUS_PDU_SO_END_ALL_BYTES; + control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; + /* Set E1 for next NACK_SN. The last one will be cleared */ + control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; + control_pdu_info.num_nack += 1; + nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); + LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING LAST NACK %04d SO START %05d SO END %05d\n", + PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), + __LINE__, + sn_cursor, + waited_so, + RLC_AM_STATUS_PDU_SO_END_ALL_BYTES); + } else { + /* Not enough resources to set a SOStart/SEnd, then set ACK_SN to current NACK_SN and stop Status PDU build */ + control_pdu_info.ack_sn = sn_cursor; + status_report_completed = true; + } - if (waited_so < pdu_info_cursor_p->so) { - /* SO is greater than previous received portion : gap identified to fill */ - if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { - control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_cursor; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = waited_so; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = pdu_info_cursor_p->so - 1; - control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; - /* Set E1 for next NACK_SN. The last one will be cleared */ - control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; - control_pdu_info.num_nack += 1; - nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING NACK %04d SO START %05d SO END %05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, - waited_so, - pdu_info_cursor_p->so); -#endif - } - else { - /* Not enough resources to set a SOStart/SEnd, then set ACK_SN to current NACK_SN and stop Status PDU build */ - control_pdu_info.ack_sn = sn_cursor; - status_report_completed = true; - segment_loop_end = true; - break; - } - } - else { - /* contiguous segment: only update waited_so */ - /* Assuming so and payload_size updated according to duplication removal done at reception ... */ - waited_so += pdu_info_cursor_p->payload_size; - } - - /* Go to next received PDU or PDU Segment */ - cursor_p = cursor_p->next; - if (cursor_p != NULL) - { - pdu_info_cursor_p = &((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info; - } - - } //end if (cursor_p != NULL) && (pdu_info_cursor_p->sn == sn_cursor) - else { - /* Previous PDU segment was the last one and did not have lsf indication : fill the latest gap */ - if ((nb_bits_transmitted + RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)) <= nb_bits_to_transmit) { - control_pdu_info.nack_list[control_pdu_info.num_nack].nack_sn = sn_cursor; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_start = waited_so; - control_pdu_info.nack_list[control_pdu_info.num_nack].so_end = RLC_AM_STATUS_PDU_SO_END_ALL_BYTES; - control_pdu_info.nack_list[control_pdu_info.num_nack].e2 = 1; - /* Set E1 for next NACK_SN. The last one will be cleared */ - control_pdu_info.nack_list[control_pdu_info.num_nack].e1 = 1; - control_pdu_info.num_nack += 1; - nb_bits_transmitted += (RLC_AM_SN_BITS + (RLC_AM_PDU_E_BITS << 1) + (RLC_AM_STATUS_PDU_SO_LENGTH << 1)); -#if TRACE_RLC_AM_STATUS_CREATION - LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING LAST NACK %04d SO START %05d SO END %05d\n", - PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), - __LINE__, - sn_cursor, - waited_so, - RLC_AM_STATUS_PDU_SO_END_ALL_BYTES); -#endif - } - else { - /* Not enough resources to set a SOStart/SEnd, then set ACK_SN to current NACK_SN and stop Status PDU build */ - control_pdu_info.ack_sn = sn_cursor; - status_report_completed = true; - } - - segment_loop_end = true; - } - } //end while (!segment_loop_end) - } // end if enough resource for transmitting at least one SOStart/SOEnd - else { - /* Not enough UL TBS to set at least one SOStart/SOEnd */ - /* latest value of sn_nack shall be used as ACK_SN */ - control_pdu_info.ack_sn = sn_nack; - status_report_completed = true; - } + segment_loop_end = true; + } + } //end while (!segment_loop_end) + } // end if enough resource for transmitting at least one SOStart/SOEnd + else { + /* Not enough UL TBS to set at least one SOStart/SOEnd */ + /* latest value of sn_nack shall be used as ACK_SN */ + control_pdu_info.ack_sn = sn_nack; + status_report_completed = true; + } } // end while on all PDU segments of sn_cursor else { - /* Go to next received PDU or PDU segment with different SN */ - do { - cursor_p = cursor_p->next; - } while ((cursor_p != NULL) && (((rlc_am_rx_pdu_management_t*)(cursor_p->data))->pdu_info.sn == sn_cursor)); + /* Go to next received PDU or PDU segment with different SN */ + do { + cursor_p = cursor_p->next; + } while ((cursor_p != NULL) && (((rlc_am_rx_pdu_management_t *)(cursor_p->data))->pdu_info.sn == sn_cursor)); } /* Increment sn_nack except if sn_cursor = vrMS and if current SN was not fully received */ if (RLC_AM_DIFF_SN(sn_cursor,rlc_pP->vr_r) < RLC_AM_DIFF_SN(rlc_pP->vr_ms,rlc_pP->vr_r)) { - sn_nack = RLC_AM_NEXT_SN(sn_cursor); + sn_nack = RLC_AM_NEXT_SN(sn_cursor); + } else { + sn_nack = rlc_pP->vr_ms; } - else { - sn_nack = rlc_pP->vr_ms; - } - - } // End main while NACK_SN /* Clear E1 of last nack_sn entry */ -// AssertFatal ((control_pdu_info.num_nack) || (all_segments_received == 0), "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", -// rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); - if (!((control_pdu_info.num_nack) || (all_segments_received == 0))){ - LOG_E(RLC, "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", - rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); - return; - } - - if (control_pdu_info.num_nack) { - control_pdu_info.nack_list[control_pdu_info.num_nack - 1].e1 = 0; - } - - - /* Set ACK_SN unless it was set before */ - if (!status_report_completed){ - - control_pdu_info.ack_sn = sn_nack; + // AssertFatal ((control_pdu_info.num_nack) || (all_segments_received == 0), "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", + // rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); + if (!((control_pdu_info.num_nack) || (all_segments_received == 0))) { + LOG_E(RLC, "RLC AM Tx Status PDU Data Error no NACK_SN vrR=%d vrMS=%d lastSN_NACK=%d Completed=%d NbBytesAvailable=%d LcId=%d\n", + rlc_pP->vr_r,rlc_pP->vr_ms,sn_nack,status_report_completed,(nb_bits_to_transmit >> 3),rlc_pP->channel_id); + return; } + if (control_pdu_info.num_nack) { + control_pdu_info.nack_list[control_pdu_info.num_nack - 1].e1 = 0; + } + + /* Set ACK_SN unless it was set before */ + if (!status_report_completed) { + control_pdu_info.ack_sn = sn_nack; + } } else { - /* reception buffer empty or not enough TBS for filling at least 1 NACK_SN + E1 + E2 */ + /* reception buffer empty or not enough TBS for filling at least 1 NACK_SN + E1 + E2 */ control_pdu_info.ack_sn = rlc_pP->vr_r; -#if TRACE_RLC_AM_STATUS_CREATION LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING ACK %04d = VR(R)\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), __LINE__, control_pdu_info.ack_sn); -#endif } - //msg ("[FRAME %5u][%s][RLC_AM][MOD %u/%u][RB %u] nb_bits_to_transmit %d\n", // rlc_pP->module_id, rlc_pP->rb_id, ctxt_pP->frame,nb_bits_to_transmit); - -#if TRACE_RLC_AM_STATUS_CREATION LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d PREPARE SENDING ACK %04d NUM NACK %d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), __LINE__, control_pdu_info.ack_sn, control_pdu_info.num_nack); -#endif - - /* encode the control pdu */ pdu_size = (nb_bits_transmitted + 7) >> 3; -// AssertFatal (pdu_size <= rlc_pP->nb_bytes_requested_by_mac, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", -// pdu_size,rlc_pP->nb_bytes_requested_by_mac,nb_bits_transmitted, rlc_pP->channel_id); - if(pdu_size > rlc_pP->nb_bytes_requested_by_mac){ - LOG_E(RLC, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", - pdu_size,rlc_pP->nb_bytes_requested_by_mac,nb_bits_transmitted, rlc_pP->channel_id); - return; - } + // AssertFatal (pdu_size <= rlc_pP->nb_bytes_requested_by_mac, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", + // pdu_size,rlc_pP->nb_bytes_requested_by_mac,nb_bits_transmitted, rlc_pP->channel_id); + if(pdu_size > rlc_pP->nb_bytes_requested_by_mac) { + LOG_E(RLC, "RLC AM Tx Status PDU Data size=%d bigger than remaining TBS=%d nb_bits_transmitted=%d LcId=%d\n", + pdu_size,rlc_pP->nb_bytes_requested_by_mac,nb_bits_transmitted, rlc_pP->channel_id); + return; + } -#if TRACE_RLC_AM_STATUS_CREATION LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] LINE %d forecast pdu_size %d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), __LINE__, pdu_size); -#endif tb_p = get_free_mem_block(sizeof(struct mac_tb_req) + pdu_size, __func__); + if(tb_p == NULL) return; + memset(tb_p->data, 0, sizeof(struct mac_tb_req) + pdu_size); //estimation only ((struct mac_tb_req*)(tb_p->data))->tb_size = pdu_size; - ((struct mac_tb_req*)(tb_p->data))->data_ptr = (uint8_t*)&(tb_p->data[sizeof(struct mac_tb_req)]); - + ((struct mac_tb_req *)(tb_p->data))->data_ptr = (uint8_t *)&(tb_p->data[sizeof(struct mac_tb_req)]); // warning reuse of pdu_size // TODO : rlc_am_write_status_pdu should be rewritten as not very tested ... - pdu_size = rlc_am_write_status_pdu(ctxt_pP, rlc_pP,(rlc_am_pdu_sn_10_t*)(((struct mac_tb_req*)(tb_p->data))->data_ptr), &control_pdu_info); - ((struct mac_tb_req*)(tb_p->data))->tb_size = pdu_size; + pdu_size = rlc_am_write_status_pdu(ctxt_pP, rlc_pP,(rlc_am_pdu_sn_10_t *)(((struct mac_tb_req *)(tb_p->data))->data_ptr), &control_pdu_info); + ((struct mac_tb_req *)(tb_p->data))->tb_size = pdu_size; //assert((((struct mac_tb_req*)(tb_p->data))->tb_size) < 3000); - -#if TRACE_RLC_AM_STATUS_CREATION LOG_D(RLC, PROTOCOL_RLC_AM_CTXT_FMT"[SEND-STATUS] SEND STATUS PDU SIZE %d, rlc_pP->nb_bytes_requested_by_mac %d, nb_bits_to_transmit>>3 %d\n", PROTOCOL_RLC_AM_CTXT_ARGS(ctxt_pP,rlc_pP), pdu_size, rlc_pP->nb_bytes_requested_by_mac, nb_bits_to_transmit >> 3); -#endif -// AssertFatal (pdu_size == ((nb_bits_transmitted + 7) >> 3), "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", -// pdu_size,((nb_bits_transmitted + 7) >> 3), rlc_pP->channel_id); - if(pdu_size != ((nb_bits_transmitted + 7) >> 3)){ - LOG_E(RLC, "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", - pdu_size,((nb_bits_transmitted + 7) >> 3), rlc_pP->channel_id); - pdu_size = 0; - return; - } + // AssertFatal (pdu_size == ((nb_bits_transmitted + 7) >> 3), "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", + // pdu_size,((nb_bits_transmitted + 7) >> 3), rlc_pP->channel_id); + if(pdu_size != ((nb_bits_transmitted + 7) >> 3)) { + LOG_E(RLC, "RLC AM Tx Status PDU Data encoding size=%d different than expected=%d LcId=%d\n", + pdu_size,((nb_bits_transmitted + 7) >> 3), rlc_pP->channel_id); + pdu_size = 0; + return; + } // remaining bytes to transmit for RLC (retrans pdus and new data pdus) rlc_pP->nb_bytes_requested_by_mac = rlc_pP->nb_bytes_requested_by_mac - pdu_size; @@ -869,7 +761,6 @@ rlc_am_send_status_pdu( list_add_head(tb_p, &rlc_pP->control_pdu_list); rlc_pP->stat_tx_control_pdu += 1; rlc_pP->stat_tx_control_bytes += pdu_size; - } diff --git a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c index f04fd66819..b59a6025f5 100644 --- a/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c +++ b/openair2/LAYER2/RLC/UM_v9.3.0/rlc_um.c @@ -27,7 +27,7 @@ #include "platform_constants.h" //----------------------------------------------------------------------------- #if ENABLE_ITTI -# include "intertask_interface.h" + #include "intertask_interface.h" #endif #include "assertions.h" #include "msc.h" @@ -43,24 +43,23 @@ //----------------------------------------------------------------------------- void rlc_um_stat_req (rlc_um_entity_t *rlc_pP, - unsigned int* stat_tx_pdcp_sdu, - unsigned int* stat_tx_pdcp_bytes, - unsigned int* stat_tx_pdcp_sdu_discarded, - unsigned int* stat_tx_pdcp_bytes_discarded, - unsigned int* stat_tx_data_pdu, - unsigned int* stat_tx_data_bytes, - unsigned int* stat_rx_pdcp_sdu, - unsigned int* stat_rx_pdcp_bytes, - unsigned int* stat_rx_data_pdus_duplicate, - unsigned int* stat_rx_data_bytes_duplicate, - unsigned int* stat_rx_data_pdu, - unsigned int* stat_rx_data_bytes, - unsigned int* stat_rx_data_pdu_dropped, - unsigned int* stat_rx_data_bytes_dropped, - unsigned int* stat_rx_data_pdu_out_of_window, - unsigned int* stat_rx_data_bytes_out_of_window, - unsigned int* stat_timer_reordering_timed_out) -{ + unsigned int *stat_tx_pdcp_sdu, + unsigned int *stat_tx_pdcp_bytes, + unsigned int *stat_tx_pdcp_sdu_discarded, + unsigned int *stat_tx_pdcp_bytes_discarded, + unsigned int *stat_tx_data_pdu, + unsigned int *stat_tx_data_bytes, + unsigned int *stat_rx_pdcp_sdu, + unsigned int *stat_rx_pdcp_bytes, + unsigned int *stat_rx_data_pdus_duplicate, + unsigned int *stat_rx_data_bytes_duplicate, + unsigned int *stat_rx_data_pdu, + unsigned int *stat_rx_data_bytes, + unsigned int *stat_rx_data_pdu_dropped, + unsigned int *stat_rx_data_bytes_dropped, + unsigned int *stat_rx_data_pdu_out_of_window, + unsigned int *stat_rx_data_bytes_out_of_window, + unsigned int *stat_timer_reordering_timed_out) { *stat_tx_pdcp_sdu = rlc_pP->stat_tx_pdcp_sdu; *stat_tx_pdcp_bytes = rlc_pP->stat_tx_pdcp_bytes; *stat_tx_pdcp_sdu_discarded = rlc_pP->stat_tx_pdcp_sdu_discarded; @@ -81,8 +80,7 @@ void rlc_um_stat_req (rlc_um_entity_t *rlc_pP, } //----------------------------------------------------------------------------- uint32_t -rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP) -{ +rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP) { if (rlc_pP->buffer_occupancy > 0) { return rlc_pP->buffer_occupancy; } else { @@ -91,351 +89,294 @@ rlc_um_get_buffer_occupancy (rlc_um_entity_t *rlc_pP) } //----------------------------------------------------------------------------- void -rlc_um_get_pdus (const protocol_ctxt_t* const ctxt_pP, void *argP) -{ +rlc_um_get_pdus (const protocol_ctxt_t *const ctxt_pP, void *argP) { rlc_um_entity_t *rlc_p = (rlc_um_entity_t *) argP; switch (rlc_p->protocol_state) { + case RLC_NULL_STATE: + // from 3GPP TS 25.322 V9.2.0 p43 + // In the NULL state the RLC entity does not exist and therefore it is + // not possible to transfer any data through it. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // establishment, the RLC entity: + // - is created; and + // - enters the DATA_TRANSFER_READY state. + break; - case RLC_NULL_STATE: - // from 3GPP TS 25.322 V9.2.0 p43 - // In the NULL state the RLC entity does not exist and therefore it is - // not possible to transfer any data through it. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // establishment, the RLC entity: - // - is created; and - // - enters the DATA_TRANSFER_READY state. - break; + case RLC_DATA_TRANSFER_READY_STATE: - case RLC_DATA_TRANSFER_READY_STATE: + // from 3GPP TS 25.322 V9.2.0 p43-44 + // In the DATA_TRANSFER_READY state, unacknowledged mode data can be + // exchanged between the entities according to subclause 11.2. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // release, the RLC entity: + // -enters the NULL state; and + // -is considered as being terminated. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // modification, the RLC entity: + // - stays in the DATA_TRANSFER_READY state; + // - modifies only the protocol parameters and timers as indicated by + // upper layers. + // Upon reception of a CRLC-SUSPEND-Req from upper layers, the RLC + // entity: + // - enters the LOCAL_SUSPEND state. - // from 3GPP TS 25.322 V9.2.0 p43-44 - // In the DATA_TRANSFER_READY state, unacknowledged mode data can be - // exchanged between the entities according to subclause 11.2. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // release, the RLC entity: - // -enters the NULL state; and - // -is considered as being terminated. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // modification, the RLC entity: - // - stays in the DATA_TRANSFER_READY state; - // - modifies only the protocol parameters and timers as indicated by - // upper layers. - // Upon reception of a CRLC-SUSPEND-Req from upper layers, the RLC - // entity: - // - enters the LOCAL_SUSPEND state. + // SEND DATA TO MAC + if (rlc_p->tx_sn_length == 10) { + rlc_um_segment_10 (ctxt_pP, rlc_p); + } - // SEND DATA TO MAC - if (rlc_p->tx_sn_length == 10) { - rlc_um_segment_10 (ctxt_pP, rlc_p); - } + if (rlc_p->tx_sn_length == 5) { + rlc_um_segment_5 (ctxt_pP, rlc_p); + } - if (rlc_p->tx_sn_length == 5) { - rlc_um_segment_5 (ctxt_pP, rlc_p); - } + break; - break; + case RLC_LOCAL_SUSPEND_STATE: + // from 3GPP TS 25.322 V9.2.0 p44 + // In the LOCAL_SUSPEND state, the RLC entity is suspended, i.e. it does + // not send UMD PDUs with "Sequence Number" greater than or equal to a + // certain specified value (see subclause 9.7.5). + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // release, the RLC entity: + // - enters the NULL state; and + // - is considered as being terminated. + // Upon reception of a CRLC-RESUME-Req from upper layers, the RLC entity: + // - enters the DATA_TRANSFER_READY state; and + // - resumes the data transmission. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // modification, the RLC entity: + // - stays in the LOCAL_SUSPEND state; + // - modifies only the protocol parameters and timers as indicated by + // upper layers. + // TO DO TAKE CARE OF SN : THE IMPLEMENTATION OF THIS FUNCTIONNALITY IS NOT CRITICAL + break; - case RLC_LOCAL_SUSPEND_STATE: - // from 3GPP TS 25.322 V9.2.0 p44 - // In the LOCAL_SUSPEND state, the RLC entity is suspended, i.e. it does - // not send UMD PDUs with "Sequence Number" greater than or equal to a - // certain specified value (see subclause 9.7.5). - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // release, the RLC entity: - // - enters the NULL state; and - // - is considered as being terminated. - // Upon reception of a CRLC-RESUME-Req from upper layers, the RLC entity: - // - enters the DATA_TRANSFER_READY state; and - // - resumes the data transmission. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // modification, the RLC entity: - // - stays in the LOCAL_SUSPEND state; - // - modifies only the protocol parameters and timers as indicated by - // upper layers. - - // TO DO TAKE CARE OF SN : THE IMPLEMENTATION OF THIS FUNCTIONNALITY IS NOT CRITICAL - break; - - default: - LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_DATA_REQ UNKNOWN PROTOCOL STATE %02X hex\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), - rlc_p->protocol_state); + default: + LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_DATA_REQ UNKNOWN PROTOCOL STATE %02X hex\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), + rlc_p->protocol_state); } } //----------------------------------------------------------------------------- void -rlc_um_rx (const protocol_ctxt_t* const ctxt_pP, void *argP, struct mac_data_ind data_indP) -{ +rlc_um_rx (const protocol_ctxt_t *const ctxt_pP, void *argP, struct mac_data_ind data_indP) { rlc_um_entity_t *l_rlc_p = (rlc_um_entity_t *) argP; -#if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR char message_string[10000]; mem_block_t *tb_p; int16_t tb_size_in_bytes; size_t message_string_size = 0; rlc_um_pdu_info_t pdu_info; int index; -#endif -#if TRACE_RLC_UM_PDU int octet_index; -# if ENABLE_ITTI - MessageDef *msg_p; -# endif -#endif switch (l_rlc_p->protocol_state) { + case RLC_NULL_STATE: + // from 3GPP TS 25.322 V9.2.0 p43 + // In the NULL state the RLC entity does not exist and therefore it is + // not possible to transfer any data through it. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // establishment, the RLC entity: + // - is created; and + // - enters the DATA_TRANSFER_READY state. + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p)); - case RLC_NULL_STATE: - // from 3GPP TS 25.322 V9.2.0 p43 - // In the NULL state the RLC entity does not exist and therefore it is - // not possible to transfer any data through it. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // establishment, the RLC entity: - // - is created; and - // - enters the DATA_TRANSFER_READY state. - LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" ERROR MAC_DATA_IND IN RLC_NULL_STATE\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p)); -#if MESSAGE_CHART_GENERATOR + if (data_indP.data.nb_elements > 0 && MESSAGE_CHART_GENERATOR) { + tb_p = data_indP.data.head; - if (data_indP.data.nb_elements > 0) { - tb_p = data_indP.data.head; + while (tb_p != NULL) { + tb_size_in_bytes = ((struct mac_tb_ind *) (tb_p->data))->size; + rlc_um_get_pdu_infos(ctxt_pP,l_rlc_p,(rlc_um_pdu_sn_10_t *) ((struct mac_tb_ind *) (tb_p->data))->data_ptr, tb_size_in_bytes, &pdu_info, l_rlc_p->rx_sn_length); + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT"DATA SN %u size %u FI %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, l_rlc_p), + pdu_info.sn, + tb_size_in_bytes, + pdu_info.fi); - while (tb_p != NULL) { - tb_size_in_bytes = ((struct mac_tb_ind*) (tb_p->data))->size; - rlc_um_get_pdu_infos(ctxt_pP,l_rlc_p,(rlc_um_pdu_sn_10_t*) ((struct mac_tb_ind*) (tb_p->data))->data_ptr, tb_size_in_bytes, &pdu_info, l_rlc_p->rx_sn_length); - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT"DATA SN %u size %u FI %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, l_rlc_p), - pdu_info.sn, - tb_size_in_bytes, - pdu_info.fi); + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "| HE:"); - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "| HE:"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); - } - } - - MSC_LOG_RX_DISCARDED_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (const char*)pdu_info.payload, - tb_size_in_bytes, - message_string); - - tb_p = tb_p->next; - } - } - -#endif - list_free (&data_indP.data); - break; - - case RLC_DATA_TRANSFER_READY_STATE: - // from 3GPP TS 25.322 V9.2.0 p43-44 - // In the DATA_TRANSFER_READY state, unacknowledged mode data can be - // exchanged between the entities according to subclause 11.2. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // release, the RLC entity: - // -enters the NULL state; and - // -is considered as being terminated. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // modification, the RLC entity: - // - stays in the DATA_TRANSFER_READY state; - // - modifies only the protocol parameters and timers as indicated by - // upper layers. - // Upon reception of a CRLC-SUSPEND-Req from upper layers, the RLC - // entity: - // - enters the LOCAL_SUSPEND state. - data_indP.tb_size = data_indP.tb_size >> 3; - -#if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR - - if (data_indP.data.nb_elements > 0) { - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_DATA_IND %d TBs\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p), - data_indP.data.nb_elements); - - tb_p = data_indP.data.head; - - while (tb_p != NULL) { - tb_size_in_bytes = ((struct mac_tb_ind *) (tb_p->data))->size; - rlc_um_get_pdu_infos(ctxt_pP, - l_rlc_p,(rlc_um_pdu_sn_10_t*) ((struct mac_tb_ind*) (tb_p->data))->data_ptr, - tb_size_in_bytes, - &pdu_info, - l_rlc_p->rx_sn_length); - -#if MESSAGE_CHART_GENERATOR - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT"DATA SN %u size %u FI %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, l_rlc_p), - pdu_info.sn, - tb_size_in_bytes, - pdu_info.fi); - - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "| HE:"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + } } + + MSC_LOG_RX_DISCARDED_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (const char *)pdu_info.payload, + tb_size_in_bytes, + message_string); + tb_p = tb_p->next; } + }/*MESSAGE_CHART_GENERATOR*/ - MSC_LOG_RX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (char*)pdu_info.payload, - tb_size_in_bytes, - message_string); + list_free (&data_indP.data); + break; -#endif -#if TRACE_RLC_UM_PDU - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); - message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); - message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC UM DATA IND: UMD PDU\n\n"); + case RLC_DATA_TRANSFER_READY_STATE: + // from 3GPP TS 25.322 V9.2.0 p43-44 + // In the DATA_TRANSFER_READY state, unacknowledged mode data can be + // exchanged between the entities according to subclause 11.2. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // release, the RLC entity: + // -enters the NULL state; and + // -is considered as being terminated. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // modification, the RLC entity: + // - stays in the DATA_TRANSFER_READY state; + // - modifies only the protocol parameters and timers as indicated by + // upper layers. + // Upon reception of a CRLC-SUSPEND-Req from upper layers, the RLC + // entity: + // - enters the LOCAL_SUSPEND state. + data_indP.tb_size = data_indP.tb_size >> 3; - message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); - message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); - message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); - message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); + if (data_indP.data.nb_elements > 0 && (MESSAGE_CHART_GENERATOR || LOG_DEBUGFLAG(DEBUG_RLC))) { + LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_DATA_IND %d TBs\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p), + data_indP.data.nb_elements); + tb_p = data_indP.data.head; - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); + while (tb_p != NULL) { + tb_size_in_bytes = ((struct mac_tb_ind *) (tb_p->data))->size; + rlc_um_get_pdu_infos(ctxt_pP, + l_rlc_p,(rlc_um_pdu_sn_10_t *) ((struct mac_tb_ind *) (tb_p->data))->data_ptr, + tb_size_in_bytes, + &pdu_info, + l_rlc_p->rx_sn_length); - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); - } - } + if (MESSAGE_CHART_GENERATOR) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT"DATA SN %u size %u FI %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, l_rlc_p), + pdu_info.sn, + tb_size_in_bytes, + pdu_info.fi); - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "| HE:"); - for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + } } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + MSC_LOG_RX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (char *)pdu_info.payload, + tb_size_in_bytes, + message_string); } - /* - * Print every single octet in hexadecimal form - */ - message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 - */ + if (LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); + message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); + message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC UM DATA IND: UMD PDU\n\n"); + message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); + message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); + message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); + message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); + + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); + + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); + } + } + + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + + for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + } + + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ + } + + /* + * Append enough spaces and put final pipe + */ + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } + + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + LOG_UI(RLC, "%s|\n", message_string); + } + + tb_p = tb_p->next; } - - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); - } - - message_string_size += sprintf(&message_string[message_string_size], " |\n"); - -# if ENABLE_ITTI - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag ? TASK_RLC_ENB:TASK_RLC_UE , RLC_UM_DATA_PDU_IND, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_um_data_pdu_ind.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_um_data_pdu_ind.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -# else - LOG_T(RLC, "%s", message_string); -# endif // ENABLE_ITTI -#endif // TRACE_RLC_UM_PDU - - tb_p = tb_p->next; } - } -#endif - rlc_um_receive (ctxt_pP, l_rlc_p, data_indP); - break; + rlc_um_receive (ctxt_pP, l_rlc_p, data_indP); + break; - case RLC_LOCAL_SUSPEND_STATE: - // from 3GPP TS 25.322 V9.2.0 p44 - // In the LOCAL_SUSPEND state, the RLC entity is suspended, i.e. it does - // not send UMD PDUs with "Sequence Number" greater than or equal to a - // certain specified value (see subclause 9.7.5). - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // release, the RLC entity: - // - enters the NULL state; and - // - is considered as being terminated. - // Upon reception of a CRLC-RESUME-Req from upper layers, the RLC entity: - // - enters the DATA_TRANSFER_READY state; and - // - resumes the data transmission. - // Upon reception of a CRLC-CONFIG-Req from upper layer indicating - // modification, the RLC entity: - // - stays in the LOCAL_SUSPEND state; - // - modifies only the protocol parameters and timers as indicated by - // upper layers. - LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_LOCAL_SUSPEND_STATE\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p)); - /*if (data_indP.data.nb_elements > 0) { - LOG_D(RLC, "[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] MAC_DATA_IND %d TBs\n", l_rlc_p->module_id, l_rlc_p->rb_id, ctxt_pP->frame, data_indP.data.nb_elements); - rlc_p[l_rlc_p->module_id].m_mscgen_trace_length = sprintf(rlc_p[l_rlc_p->module_id].m_mscgen_trace, "[MSC_MSG][FRAME %05d][MAC_%s][MOD %02d][][--- MAC_DATA_IND/ %d TB(s) ", - ctxt_pP->frame, - (ctxt_pP->enb_flag) ? "eNB":"UE", - l_rlc_p->module_id, - data_indP.data.nb_elements); + case RLC_LOCAL_SUSPEND_STATE: + // from 3GPP TS 25.322 V9.2.0 p44 + // In the LOCAL_SUSPEND state, the RLC entity is suspended, i.e. it does + // not send UMD PDUs with "Sequence Number" greater than or equal to a + // certain specified value (see subclause 9.7.5). + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // release, the RLC entity: + // - enters the NULL state; and + // - is considered as being terminated. + // Upon reception of a CRLC-RESUME-Req from upper layers, the RLC entity: + // - enters the DATA_TRANSFER_READY state; and + // - resumes the data transmission. + // Upon reception of a CRLC-CONFIG-Req from upper layer indicating + // modification, the RLC entity: + // - stays in the LOCAL_SUSPEND state; + // - modifies only the protocol parameters and timers as indicated by + // upper layers. + LOG_I(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_LOCAL_SUSPEND_STATE\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p)); + list_free (&data_indP.data); + break; - tb = data_indP.data.head; - while (tb != NULL) { - rlc_p[l_rlc_p->module_id].m_mscgen_trace_length += sprintf(&rlc_p[l_rlc_p->module_id].m_mscgen_trace[rlc_p[l_rlc_p->module_id].m_mscgen_trace_length], " SN %d %c%c%c %d Bytes ", - (((struct mac_tb_ind *) (tb->data))->data_ptr[1]) + (((uint16_t)((((struct mac_tb_ind *) (tb->data))->data_ptr[0]) & 0x03)) << 8), - (((struct mac_tb_ind *) (tb->data))->data_ptr[0] & 0x10) ? '}':'{', - (((struct mac_tb_ind *) (tb->data))->data_ptr[0] & 0x08) ? '{':'}', - (((struct mac_tb_ind *) (tb->data))->data_ptr[0] & 0x04) ? 'E':'_', - ((struct mac_tb_ind *) (tb->data))->size); - tb = tb->next; - } - rlc_p[l_rlc_p->module_id].m_mscgen_trace_length += sprintf(&rlc_p[l_rlc_p->module_id].m_mscgen_trace[rlc_p[l_rlc_p->module_id].m_mscgen_trace_length], " DROPPED RLC LOCAL SUSPEND STATE ---X][RLC_UM][MOD %02d][RB %02d]\n", - l_rlc_p->module_id, - l_rlc_p->rb_id); - - rlc_p[l_rlc_p->module_id].m_mscgen_trace[rlc_p[l_rlc_p->module_id].m_mscgen_trace_length] = 0; - LOG_D(RLC, "%s", rlc_p[l_rlc_p->module_id].m_mscgen_trace); - }*/ - list_free (&data_indP.data); - break; - - default: - LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" TX UNKNOWN PROTOCOL STATE %02X hex\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p), - l_rlc_p->protocol_state); - list_free (&data_indP.data); + default: + LOG_E(RLC, PROTOCOL_RLC_UM_CTXT_FMT" TX UNKNOWN PROTOCOL STATE %02X hex\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p), + l_rlc_p->protocol_state); + list_free (&data_indP.data); } } //----------------------------------------------------------------------------- struct mac_status_resp -rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP,const eNB_flag_t enb_flagP) -{ +rlc_um_mac_status_indication (const protocol_ctxt_t *const ctxt_pP, void *rlc_pP, uint16_t tbs_sizeP, struct mac_status_ind tx_statusP,const eNB_flag_t enb_flagP) { struct mac_status_resp status_resp; uint16_t sdu_size = 0; uint16_t sdu_remaining_size = 0; int32_t diff_time=0; - rlc_um_entity_t *rlc_p = NULL; + rlc_um_entity_t *rlc_p = (rlc_um_entity_t *) rlc_pP; mem_block_t *mb_p = NULL; - status_resp.buffer_occupancy_in_pdus = 0; status_resp.buffer_occupancy_in_bytes = 0; status_resp.head_sdu_remaining_size_to_send = 0; @@ -443,31 +384,24 @@ rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP status_resp.head_sdu_is_segmented = 0; if (rlc_pP) { - - rlc_p = (rlc_um_entity_t *) rlc_pP; status_resp.rlc_info.rlc_protocol_state = rlc_p->protocol_state; rlc_um_check_timer_dar_time_out(ctxt_pP, rlc_p); - rlc_p->nb_bytes_requested_by_mac = tbs_sizeP; - status_resp.buffer_occupancy_in_bytes = rlc_um_get_buffer_occupancy (rlc_p); if ((status_resp.buffer_occupancy_in_bytes > 0) && ((mb_p = list_get_head(&rlc_p->input_sdus)) != NULL)) { - if (enb_flagP == ENB_FLAG_YES) { - /* For eNB: add minimum RLC UM header size for the scheduler */ - /* For UE : RLC header part is not taken into account for BSR reporting (cf 36.321) */ - status_resp.buffer_occupancy_in_bytes += rlc_p->tx_header_min_length_in_bytes; + /* For eNB: add minimum RLC UM header size for the scheduler */ + /* For UE : RLC header part is not taken into account for BSR reporting (cf 36.321) */ + status_resp.buffer_occupancy_in_bytes += rlc_p->tx_header_min_length_in_bytes; } - status_resp.buffer_occupancy_in_pdus = rlc_p->input_sdus.nb_elements; + status_resp.buffer_occupancy_in_pdus = rlc_p->input_sdus.nb_elements; diff_time = ctxt_pP->frame - ((struct rlc_um_tx_sdu_management *)mb_p->data)->sdu_creation_time; status_resp.head_sdu_creation_time = (diff_time > 0 ) ? (uint32_t) diff_time : (uint32_t)(0xffffffff - diff_time + ctxt_pP->frame) ; //msg("rlc_p status for ctxt_pP->frame %d diff time %d resp %d\n", ctxt_pP->frame, diff_time,status_resp.head_sdu_creation_time) ; - sdu_size = ((struct rlc_um_tx_sdu_management *) mb_p->data)->sdu_size; sdu_remaining_size = ((struct rlc_um_tx_sdu_management *) mb_p->data)->sdu_remaining_size; - status_resp.head_sdu_remaining_size_to_send = sdu_remaining_size; if (sdu_size == sdu_remaining_size) { @@ -475,35 +409,31 @@ rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP } else { status_resp.head_sdu_is_segmented = 1; } - } else { } - //msg("[FRAME %05d][%s][RLC_UM][MOD %02u/%02u][RB %02d] MAC_STATUS_INDICATION BO = %d\n", ((rlc_um_entity_t *) rlc_pP)->module_id, ((rlc_um_entity_t *) rlc_pP)->rb_id, status_resp.buffer_occupancy_in_bytes); + status_resp.rlc_info.rlc_protocol_state = rlc_p->protocol_state; - status_resp.rlc_info.rlc_protocol_state = ((rlc_um_entity_t *) rlc_pP)->protocol_state; -#if TRACE_RLC_UM_TX_STATUS + if (LOG_DEBUGFLAG(DEBUG_RLC)) { + if (( rlc_p->rb_id > 0) && (status_resp.buffer_occupancy_in_bytes > 0)) { + LOG_UI(RLC, PROTOCOL_RLC_UM_CTXT_FMT"MAC_STATUS_INDICATION (DATA) %d bytes requested -> %d bytes available\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), + tbs_sizeP, + status_resp.buffer_occupancy_in_bytes); - if ((((rlc_um_entity_t *) rlc_pP)->rb_id > 0) && (status_resp.buffer_occupancy_in_bytes > 0)) { - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_STATUS_INDICATION (DATA) %d bytes requested -> %d bytes available\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_pP), - tbs_sizeP, - status_resp.buffer_occupancy_in_bytes); + if ((tx_statusP.tx_status == MAC_TX_STATUS_SUCCESSFUL) && (tx_statusP.no_pdu)) { + LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_STATUS_INDICATION TX STATUS SUCCESSFUL %d PDUs\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), + tx_statusP.no_pdu); + } - if ((tx_statusP.tx_status == MAC_TX_STATUS_SUCCESSFUL) && (tx_statusP.no_pdu)) { - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_STATUS_INDICATION TX STATUS SUCCESSFUL %d PDUs\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_pP), - tx_statusP.no_pdu); - } - - if ((tx_statusP.tx_status == MAC_TX_STATUS_UNSUCCESSFUL) && (tx_statusP.no_pdu)) { - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_STATUS_INDICATION TX STATUS UNSUCCESSFUL %d PDUs\n", - PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_pP), - tx_statusP.no_pdu); + if ((tx_statusP.tx_status == MAC_TX_STATUS_UNSUCCESSFUL) && (tx_statusP.no_pdu)) { + LOG_UI(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_STATUS_INDICATION TX STATUS UNSUCCESSFUL %d PDUs\n", + PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), + tx_statusP.no_pdu); + } } } - -#endif } else { LOG_E(RLC, "[RLC] rlc_um_mac_status_indication RLC NULL!!!\n"); } @@ -514,44 +444,34 @@ rlc_um_mac_status_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP //----------------------------------------------------------------------------- void rlc_um_set_nb_bytes_requested_by_mac ( - void * rlc_pP, - const tb_size_t tb_sizeP -) -{ - ((rlc_um_entity_t *) rlc_pP)->nb_bytes_requested_by_mac = tb_sizeP; + void *rlc_pP, + const tb_size_t tb_sizeP +) { + ((rlc_um_entity_t *) rlc_pP)->nb_bytes_requested_by_mac = tb_sizeP; } //----------------------------------------------------------------------------- struct mac_data_req -rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP,const eNB_flag_t enb_flagP) -{ +rlc_um_mac_data_request (const protocol_ctxt_t *const ctxt_pP, void *rlc_pP,const eNB_flag_t enb_flagP) { struct mac_data_req data_req; int16_t tb_size_in_bytes; mem_block_t *tb_p; -#if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR char message_string[10000]; size_t message_string_size = 0; -# if ENABLE_ITTI - MessageDef *msg_p; -# endif rlc_um_pdu_info_t pdu_info; int octet_index, index; -#endif rlc_um_entity_t *l_rlc_p = (rlc_um_entity_t *) rlc_pP; - rlc_um_get_pdus(ctxt_pP, l_rlc_p); - list_init (&data_req.data, NULL); list_add_list (&l_rlc_p->pdus_to_mac_layer, &data_req.data); - if (enb_flagP) { - // redundant in UE MAC Tx processing and not used in eNB scheduler ... - data_req.buffer_occupancy_in_bytes = rlc_um_get_buffer_occupancy (l_rlc_p); + // redundant in UE MAC Tx processing and not used in eNB scheduler ... + data_req.buffer_occupancy_in_bytes = rlc_um_get_buffer_occupancy (l_rlc_p); - if (data_req.buffer_occupancy_in_bytes > 0) { - data_req.buffer_occupancy_in_bytes += l_rlc_p->tx_header_min_length_in_bytes; - } + if (data_req.buffer_occupancy_in_bytes > 0) { + data_req.buffer_occupancy_in_bytes += l_rlc_p->tx_header_min_length_in_bytes; + } } data_req.rlc_info.rlc_protocol_state = l_rlc_p->protocol_state; @@ -561,7 +481,6 @@ rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP,cons while (tb_p != NULL) { tb_size_in_bytes = ((struct mac_tb_req *) (tb_p->data))->tb_size; - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" MAC_DATA_REQUEST TB SIZE %u\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,l_rlc_p), ((struct mac_tb_req *) (tb_p->data))->tb_size); @@ -574,156 +493,130 @@ rlc_um_mac_data_request (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP,cons tb_p = tb_p->next; continue; } - -#if TRACE_RLC_UM_PDU || MESSAGE_CHART_GENERATOR - rlc_um_get_pdu_infos(ctxt_pP, l_rlc_p,(rlc_um_pdu_sn_10_t*) ((struct mac_tb_req*) (tb_p->data))->data_ptr, tb_size_in_bytes, &pdu_info, l_rlc_p->rx_sn_length); -#endif -#if MESSAGE_CHART_GENERATOR - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], - MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT" DATA SN %u size %u FI %u", - MSC_AS_TIME_ARGS(ctxt_pP), - PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, l_rlc_p), - pdu_info.sn, - tb_size_in_bytes, - pdu_info.fi); - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "|HE:"); + if (MESSAGE_CHART_GENERATOR || LOG_DEBUGFLAG(DEBUG_RLC) ) { + rlc_um_get_pdu_infos(ctxt_pP, l_rlc_p,(rlc_um_pdu_sn_10_t *) ((struct mac_tb_req *) (tb_p->data))->data_ptr, tb_size_in_bytes, &pdu_info, l_rlc_p->rx_sn_length); - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); - } - } + if(MESSAGE_CHART_GENERATOR) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], + MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT" DATA SN %u size %u FI %u", + MSC_AS_TIME_ARGS(ctxt_pP), + PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, l_rlc_p), + pdu_info.sn, + tb_size_in_bytes, + pdu_info.fi); - MSC_LOG_TX_MESSAGE( - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, - (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, - (const char*)pdu_info.payload, - pdu_info.payload_size, - message_string); + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "|HE:"); -#endif -#if TRACE_RLC_UM_PDU - message_string_size = 0; - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); - message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); - message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); - message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC UM DATA IND: UMD PDU\n\n"); - - message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); - message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); - message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); - message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); - - if (pdu_info.e) { - message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); - - for (index=0; index < pdu_info.num_li; index++) { - message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); - } - } - - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - - for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI %u", pdu_info.li_list[index]); + } } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + MSC_LOG_TX_MESSAGE( + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, + (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_UE:MSC_RLC_ENB, + (const char *)pdu_info.payload, + pdu_info.payload_size, + message_string); } - /* - * Print every single octet in hexadecimal form - */ - message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 - */ - } + if(LOG_DEBUGFLAG(DEBUG_RLC)) { + message_string_size = 0; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", l_rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "PDU size : %u\n", tb_size_in_bytes); + message_string_size += sprintf(&message_string[message_string_size], "Header size : %u\n", pdu_info.header_size); + message_string_size += sprintf(&message_string[message_string_size], "Payload size: %u\n", pdu_info.payload_size); + message_string_size += sprintf(&message_string[message_string_size], "PDU type : RLC UM DATA IND: UMD PDU\n\n"); + message_string_size += sprintf(&message_string[message_string_size], "Header :\n"); + message_string_size += sprintf(&message_string[message_string_size], " FI : %u\n", pdu_info.fi); + message_string_size += sprintf(&message_string[message_string_size], " E : %u\n", pdu_info.e); + message_string_size += sprintf(&message_string[message_string_size], " SN : %u\n", pdu_info.sn); - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); - } + if (pdu_info.e) { + message_string_size += sprintf(&message_string[message_string_size], "\nHeader extension : \n"); - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + for (index=0; index < pdu_info.num_li; index++) { + message_string_size += sprintf(&message_string[message_string_size], " LI : %u\n", pdu_info.li_list[index]); + } + } -# if ENABLE_ITTI - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_UM_DATA_PDU_REQ, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_um_data_pdu_req.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_um_data_pdu_req.text, message_string, message_string_size); + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); + for (octet_index = 0; octet_index < pdu_info.payload_size; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } + + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + } + + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], " %02x", pdu_info.payload[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ + } + + /* + * Append enough spaces and put final pipe + */ + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } + + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + LOG_UI(RLC, "%s\n", message_string); + } /*LOG_DEBUGFLAG(DEBUG_RLC) */ + } /* MESSAGE_CHART_GENERATOR || LOG_DEBUGFLAG(DEBUG_RLC) */ -# else - LOG_T(RLC, "%s", message_string); -# endif -#endif tb_p = tb_p->next; - } - } + } /* while (tb_p != NULL) */ + } /* if (data_req.data.nb_elements > 0) */ return data_req; } //----------------------------------------------------------------------------- void -rlc_um_mac_data_indication (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, struct mac_data_ind data_indP) -{ +rlc_um_mac_data_indication (const protocol_ctxt_t *const ctxt_pP, void *rlc_pP, struct mac_data_ind data_indP) { rlc_um_rx (ctxt_pP, rlc_pP, data_indP); rlc_um_check_timer_dar_time_out(ctxt_pP, rlc_pP); } //----------------------------------------------------------------------------- void -rlc_um_data_req (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, mem_block_t *sdu_pP) -{ +rlc_um_data_req (const protocol_ctxt_t *const ctxt_pP, void *rlc_pP, mem_block_t *sdu_pP) { rlc_um_entity_t *rlc_p = (rlc_um_entity_t *) rlc_pP; - -#if TRACE_RLC_UM_PDU -#if ENABLE_ITTI - MessageDef *msg_p; -# endif uint16_t data_offset; uint16_t data_size; size_t message_string_size = 0; int octet_index, index; char message_string[7000]; -#endif - LOG_D(RLC, PROTOCOL_RLC_UM_CTXT_FMT" RLC_UM_DATA_REQ size %d Bytes, BO %d , NB SDU %d\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), ((struct rlc_um_data_req *) (sdu_pP->data))->data_size, rlc_p->buffer_occupancy, rlc_p->input_sdus.nb_elements); - - /*rlc_util_print_hex_octets( - RLC, - (uint8_t*)&sdu_pP->data[sizeof (struct rlc_um_data_req_alloc)], - ((struct rlc_um_data_req *) (sdu_pP->data))->data_size);*/ - // IMPORTANT : do not change order of affectations ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_size = ((struct rlc_um_data_req *) (sdu_pP->data))->data_size; //rlc_p->nb_sdu += 1; - ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->first_byte = (uint8_t*)&sdu_pP->data[sizeof (struct rlc_um_data_req_alloc)]; + ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->first_byte = (uint8_t *)&sdu_pP->data[sizeof (struct rlc_um_data_req_alloc)]; ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_remaining_size = ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_size; ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_segmented_size = 0; ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_creation_time = ctxt_pP->frame; //rlc_p->next_sdu_index = (rlc_p->next_sdu_index + 1) % rlc_p->size_input_sdus_buffer; - rlc_p->stat_tx_pdcp_sdu += 1; rlc_p->stat_tx_pdcp_bytes += ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_size; - MSC_LOG_RX_MESSAGE( (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE, (ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_PDCP_ENB:MSC_PDCP_UE, @@ -732,74 +625,61 @@ rlc_um_data_req (const protocol_ctxt_t* const ctxt_pP, void *rlc_pP, mem_block_t MSC_AS_TIME_FMT" "PROTOCOL_RLC_UM_MSC_FMT" DATA-REQ size %u", MSC_AS_TIME_ARGS(ctxt_pP), PROTOCOL_RLC_UM_MSC_ARGS(ctxt_pP, rlc_p), - ((struct rlc_um_tx_sdu_management*) (sdu_pP->data))->sdu_size); + ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_size); + if (LOG_DEBUGFLAG(DEBUG_RLC) ) { + data_offset = sizeof (struct rlc_um_data_req_alloc); + data_size = ((struct rlc_um_tx_sdu_management *)(sdu_pP->data))->sdu_size; + message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", rlc_p->rb_id); + message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size); + message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); + message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); + message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); -# if TRACE_RLC_UM_PDU - data_offset = sizeof (struct rlc_um_data_req_alloc); - data_size = ((struct rlc_um_tx_sdu_management *)(sdu_pP->data))->sdu_size; - message_string_size += sprintf(&message_string[message_string_size], "Bearer : %u\n", rlc_p->rb_id); - message_string_size += sprintf(&message_string[message_string_size], "SDU size : %u\n", data_size); + for (octet_index = 0; octet_index < data_size; octet_index++) { + if ((octet_index % 16) == 0) { + if (octet_index != 0) { + message_string_size += sprintf(&message_string[message_string_size], " |\n"); + } - message_string_size += sprintf(&message_string[message_string_size], "\nPayload : \n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - message_string_size += sprintf(&message_string[message_string_size], " | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); - message_string_size += sprintf(&message_string[message_string_size], "------+-------------------------------------------------|\n"); - - for (octet_index = 0; octet_index < data_size; octet_index++) { - if ((octet_index % 16) == 0) { - if (octet_index != 0) { - message_string_size += sprintf(&message_string[message_string_size], " |\n"); + message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); } - message_string_size += sprintf(&message_string[message_string_size], " %04d |", octet_index); + /* + * Print every single octet in hexadecimal form + */ + message_string_size += sprintf(&message_string[message_string_size], " %02x", ((uint8_t *)(&sdu_pP->data[data_offset]))[octet_index]); + /* + * Align newline and pipes according to the octets in groups of 2 + */ } /* - * Print every single octet in hexadecimal form - */ - message_string_size += sprintf(&message_string[message_string_size], " %02x", ((uint8_t*)(&sdu_pP->data[data_offset]))[octet_index]); - /* - * Align newline and pipes according to the octets in groups of 2 + * Append enough spaces and put final pipe */ + for (index = octet_index; index < 16; ++index) { + message_string_size += sprintf(&message_string[message_string_size], " "); + } + + LOG_UI(RLC, "%s|\n", message_string); } - /* - * Append enough spaces and put final pipe - */ - for (index = octet_index; index < 16; ++index) { - message_string_size += sprintf(&message_string[message_string_size], " "); - } - - message_string_size += sprintf(&message_string[message_string_size], " |\n"); - -# if ENABLE_ITTI - msg_p = itti_alloc_new_message_sized (ctxt_pP->enb_flag > 0 ? TASK_RLC_ENB:TASK_RLC_UE , RLC_UM_SDU_REQ, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rlc_um_sdu_req.size = message_string_size; - memcpy(&msg_p->ittiMsg.rlc_um_sdu_req.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - -#else - LOG_T(RLC, "%s", message_string); -#endif -# endif RLC_UM_MUTEX_LOCK(&rlc_p->lock_input_sdus, ctxt_pP, rlc_p); rlc_p->buffer_occupancy += ((struct rlc_um_tx_sdu_management *) (sdu_pP->data))->sdu_size; list_add_tail_eurecom(sdu_pP, &rlc_p->input_sdus); RLC_UM_MUTEX_UNLOCK(&rlc_p->lock_input_sdus); -#if DEBUG_RLC_CONGESTION -#if MESSAGE_CHART_GENERATOR - if (rlc_p->buffer_occupancy > 4096) { + + if (MESSAGE_CHART_GENERATOR) { + if (rlc_p->buffer_occupancy > 4096) { MSC_LOG_EVENT((ctxt_pP->enb_flag == ENB_FLAG_YES) ? MSC_RLC_ENB:MSC_RLC_UE,\ - "0 "PROTOCOL_RLC_AM_MSC_FMT" BO %u bytes",\ - PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_pP), rlc_p->buffer_occupancy); + "0 "PROTOCOL_RLC_AM_MSC_FMT" BO %u bytes",\ + PROTOCOL_RLC_AM_MSC_ARGS(ctxt_pP,rlc_p), rlc_p->buffer_occupancy); + } } -#else - LOG_W(RLC, PROTOCOL_RLC_UM_CTXT_FMT" BO %d , NB SDU %d\n", + + LOG_T(RLC, PROTOCOL_RLC_UM_CTXT_FMT" BO %d , NB SDU %d\n", PROTOCOL_RLC_UM_CTXT_ARGS(ctxt_pP,rlc_p), rlc_p->buffer_occupancy, rlc_p->input_sdus.nb_elements); -#endif -#endif } diff --git a/openair2/LAYER2/RLC/rlc.c b/openair2/LAYER2/RLC/rlc.c index b65f2b0274..b0e8b1d5aa 100644 --- a/openair2/LAYER2/RLC/rlc.c +++ b/openair2/LAYER2/RLC/rlc.c @@ -38,19 +38,19 @@ #include "assertions.h" extern boolean_t pdcp_data_ind( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, const sdu_size_t sdu_buffer_sizeP, - mem_block_t* const sdu_buffer_pP); + mem_block_t *const sdu_buffer_pP); #define DEBUG_RLC_PDCP_INTERFACE 1 //#define TRACE_RLC_PAYLOAD 1 #define DEBUG_RLC_DATA_REQ 1 //----------------------------------------------------------------------------- -void rlc_util_print_hex_octets(comp_name_t componentP, unsigned char* dataP, const signed long sizeP) +void rlc_util_print_hex_octets(comp_name_t componentP, unsigned char *dataP, const signed long sizeP) //----------------------------------------------------------------------------- { unsigned long octet_index = 0; @@ -59,9 +59,6 @@ void rlc_util_print_hex_octets(comp_name_t componentP, unsigned char* dataP, con return; } - - - LOG_T(componentP, "+-----+-------------------------------------------------+\n"); LOG_T(componentP, "| | 0 1 2 3 4 5 6 7 8 9 a b c d e f |\n"); LOG_T(componentP, "+-----+-------------------------------------------------+\n"); @@ -98,38 +95,37 @@ void rlc_util_print_hex_octets(comp_name_t componentP, unsigned char* dataP, con //----------------------------------------------------------------------------- rlc_op_status_t rlc_stat_req ( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, - unsigned int* stat_rlc_mode, - unsigned int* stat_tx_pdcp_sdu, - unsigned int* stat_tx_pdcp_bytes, - unsigned int* stat_tx_pdcp_sdu_discarded, - unsigned int* stat_tx_pdcp_bytes_discarded, - unsigned int* stat_tx_data_pdu, - unsigned int* stat_tx_data_bytes, - unsigned int* stat_tx_retransmit_pdu_by_status, - unsigned int* stat_tx_retransmit_bytes_by_status, - unsigned int* stat_tx_retransmit_pdu, - unsigned int* stat_tx_retransmit_bytes, - unsigned int* stat_tx_control_pdu, - unsigned int* stat_tx_control_bytes, - unsigned int* stat_rx_pdcp_sdu, - unsigned int* stat_rx_pdcp_bytes, - unsigned int* stat_rx_data_pdus_duplicate, - unsigned int* stat_rx_data_bytes_duplicate, - unsigned int* stat_rx_data_pdu, - unsigned int* stat_rx_data_bytes, - unsigned int* stat_rx_data_pdu_dropped, - unsigned int* stat_rx_data_bytes_dropped, - unsigned int* stat_rx_data_pdu_out_of_window, - unsigned int* stat_rx_data_bytes_out_of_window, - unsigned int* stat_rx_control_pdu, - unsigned int* stat_rx_control_bytes, - unsigned int* stat_timer_reordering_timed_out, - unsigned int* stat_timer_poll_retransmit_timed_out, - unsigned int* stat_timer_status_prohibit_timed_out) -{ + unsigned int *stat_rlc_mode, + unsigned int *stat_tx_pdcp_sdu, + unsigned int *stat_tx_pdcp_bytes, + unsigned int *stat_tx_pdcp_sdu_discarded, + unsigned int *stat_tx_pdcp_bytes_discarded, + unsigned int *stat_tx_data_pdu, + unsigned int *stat_tx_data_bytes, + unsigned int *stat_tx_retransmit_pdu_by_status, + unsigned int *stat_tx_retransmit_bytes_by_status, + unsigned int *stat_tx_retransmit_pdu, + unsigned int *stat_tx_retransmit_bytes, + unsigned int *stat_tx_control_pdu, + unsigned int *stat_tx_control_bytes, + unsigned int *stat_rx_pdcp_sdu, + unsigned int *stat_rx_pdcp_bytes, + unsigned int *stat_rx_data_pdus_duplicate, + unsigned int *stat_rx_data_bytes_duplicate, + unsigned int *stat_rx_data_pdu, + unsigned int *stat_rx_data_bytes, + unsigned int *stat_rx_data_pdu_dropped, + unsigned int *stat_rx_data_bytes_dropped, + unsigned int *stat_rx_data_pdu_out_of_window, + unsigned int *stat_rx_data_bytes_out_of_window, + unsigned int *stat_rx_control_pdu, + unsigned int *stat_rx_control_bytes, + unsigned int *stat_timer_reordering_timed_out, + unsigned int *stat_timer_poll_retransmit_timed_out, + unsigned int *stat_timer_status_prohibit_timed_out) { //----------------------------------------------------------------------------- rlc_mode_t rlc_mode = RLC_MODE_NONE; rlc_union_t *rlc_union_p = NULL; @@ -137,182 +133,183 @@ rlc_op_status_t rlc_stat_req ( hashtable_rc_t h_rc; //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); - if(rb_idP >= NB_RB_MAX){ - LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); - return RLC_OP_STATUS_BAD_PARAMETER; - } - + if(rb_idP >= NB_RB_MAX) { + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } + key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); - h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); + h_rc = hashtable_get(rlc_coll_p, key, (void **)&rlc_union_p); if (h_rc == HASH_TABLE_OK) { rlc_mode = rlc_union_p->mode; } + *stat_rlc_mode = rlc_mode; + switch (rlc_mode) { - case RLC_MODE_NONE: - *stat_tx_pdcp_sdu = 0; - *stat_tx_pdcp_bytes = 0; - *stat_tx_pdcp_sdu_discarded = 0; - *stat_tx_pdcp_bytes_discarded = 0; - *stat_tx_data_pdu = 0; - *stat_tx_data_bytes = 0; - *stat_tx_retransmit_pdu_by_status = 0; - *stat_tx_retransmit_bytes_by_status = 0; - *stat_tx_retransmit_pdu = 0; - *stat_tx_retransmit_bytes = 0; - *stat_tx_control_pdu = 0; - *stat_tx_control_bytes = 0; - *stat_rx_pdcp_sdu = 0; - *stat_rx_pdcp_bytes = 0; - *stat_rx_data_pdus_duplicate = 0; - *stat_rx_data_bytes_duplicate = 0; - *stat_rx_data_pdu = 0; - *stat_rx_data_bytes = 0; - *stat_rx_data_pdu_dropped = 0; - *stat_rx_data_bytes_dropped = 0; - *stat_rx_data_pdu_out_of_window = 0; - *stat_rx_data_bytes_out_of_window = 0; - *stat_rx_control_pdu = 0; - *stat_rx_control_bytes = 0; - *stat_timer_reordering_timed_out = 0; - *stat_timer_poll_retransmit_timed_out = 0; - *stat_timer_status_prohibit_timed_out = 0; - return RLC_OP_STATUS_BAD_PARAMETER; - break; + case RLC_MODE_NONE: + *stat_tx_pdcp_sdu = 0; + *stat_tx_pdcp_bytes = 0; + *stat_tx_pdcp_sdu_discarded = 0; + *stat_tx_pdcp_bytes_discarded = 0; + *stat_tx_data_pdu = 0; + *stat_tx_data_bytes = 0; + *stat_tx_retransmit_pdu_by_status = 0; + *stat_tx_retransmit_bytes_by_status = 0; + *stat_tx_retransmit_pdu = 0; + *stat_tx_retransmit_bytes = 0; + *stat_tx_control_pdu = 0; + *stat_tx_control_bytes = 0; + *stat_rx_pdcp_sdu = 0; + *stat_rx_pdcp_bytes = 0; + *stat_rx_data_pdus_duplicate = 0; + *stat_rx_data_bytes_duplicate = 0; + *stat_rx_data_pdu = 0; + *stat_rx_data_bytes = 0; + *stat_rx_data_pdu_dropped = 0; + *stat_rx_data_bytes_dropped = 0; + *stat_rx_data_pdu_out_of_window = 0; + *stat_rx_data_bytes_out_of_window = 0; + *stat_rx_control_pdu = 0; + *stat_rx_control_bytes = 0; + *stat_timer_reordering_timed_out = 0; + *stat_timer_poll_retransmit_timed_out = 0; + *stat_timer_status_prohibit_timed_out = 0; + return RLC_OP_STATUS_BAD_PARAMETER; + break; - case RLC_MODE_AM: - rlc_am_stat_req(ctxt_pP, - &rlc_union_p->rlc.am, - stat_tx_pdcp_sdu, - stat_tx_pdcp_bytes, - stat_tx_pdcp_sdu_discarded, - stat_tx_pdcp_bytes_discarded, - stat_tx_data_pdu, - stat_tx_data_bytes, - stat_tx_retransmit_pdu_by_status, - stat_tx_retransmit_bytes_by_status, - stat_tx_retransmit_pdu, - stat_tx_retransmit_bytes, - stat_tx_control_pdu, - stat_tx_control_bytes, - stat_rx_pdcp_sdu, - stat_rx_pdcp_bytes, - stat_rx_data_pdus_duplicate, - stat_rx_data_bytes_duplicate, - stat_rx_data_pdu, - stat_rx_data_bytes, - stat_rx_data_pdu_dropped, - stat_rx_data_bytes_dropped, - stat_rx_data_pdu_out_of_window, - stat_rx_data_bytes_out_of_window, - stat_rx_control_pdu, - stat_rx_control_bytes, - stat_timer_reordering_timed_out, - stat_timer_poll_retransmit_timed_out, - stat_timer_status_prohibit_timed_out); - return RLC_OP_STATUS_OK; - break; + case RLC_MODE_AM: + rlc_am_stat_req(ctxt_pP, + &rlc_union_p->rlc.am, + stat_tx_pdcp_sdu, + stat_tx_pdcp_bytes, + stat_tx_pdcp_sdu_discarded, + stat_tx_pdcp_bytes_discarded, + stat_tx_data_pdu, + stat_tx_data_bytes, + stat_tx_retransmit_pdu_by_status, + stat_tx_retransmit_bytes_by_status, + stat_tx_retransmit_pdu, + stat_tx_retransmit_bytes, + stat_tx_control_pdu, + stat_tx_control_bytes, + stat_rx_pdcp_sdu, + stat_rx_pdcp_bytes, + stat_rx_data_pdus_duplicate, + stat_rx_data_bytes_duplicate, + stat_rx_data_pdu, + stat_rx_data_bytes, + stat_rx_data_pdu_dropped, + stat_rx_data_bytes_dropped, + stat_rx_data_pdu_out_of_window, + stat_rx_data_bytes_out_of_window, + stat_rx_control_pdu, + stat_rx_control_bytes, + stat_timer_reordering_timed_out, + stat_timer_poll_retransmit_timed_out, + stat_timer_status_prohibit_timed_out); + return RLC_OP_STATUS_OK; + break; - case RLC_MODE_UM: - *stat_tx_retransmit_pdu_by_status = 0; - *stat_tx_retransmit_bytes_by_status = 0; - *stat_tx_retransmit_pdu = 0; - *stat_tx_retransmit_bytes = 0; - *stat_tx_control_pdu = 0; - *stat_tx_control_bytes = 0; - *stat_rx_data_pdu_dropped = 0; - *stat_rx_data_bytes_dropped = 0; - *stat_rx_data_pdu_out_of_window = 0; - *stat_rx_data_bytes_out_of_window = 0; - *stat_timer_poll_retransmit_timed_out = 0; - *stat_timer_status_prohibit_timed_out = 0; - rlc_um_stat_req (&rlc_union_p->rlc.um, - stat_tx_pdcp_sdu, - stat_tx_pdcp_bytes, - stat_tx_pdcp_sdu_discarded, - stat_tx_pdcp_bytes_discarded, - stat_tx_data_pdu, - stat_tx_data_bytes, - stat_rx_pdcp_sdu, - stat_rx_pdcp_bytes, - stat_rx_data_pdus_duplicate, - stat_rx_data_bytes_duplicate, - stat_rx_data_pdu, - stat_rx_data_bytes, - stat_rx_data_pdu_dropped, - stat_rx_data_bytes_dropped, - stat_rx_data_pdu_out_of_window, - stat_rx_data_bytes_out_of_window, - stat_timer_reordering_timed_out); - return RLC_OP_STATUS_OK; - break; + case RLC_MODE_UM: + *stat_tx_retransmit_pdu_by_status = 0; + *stat_tx_retransmit_bytes_by_status = 0; + *stat_tx_retransmit_pdu = 0; + *stat_tx_retransmit_bytes = 0; + *stat_tx_control_pdu = 0; + *stat_tx_control_bytes = 0; + *stat_rx_data_pdu_dropped = 0; + *stat_rx_data_bytes_dropped = 0; + *stat_rx_data_pdu_out_of_window = 0; + *stat_rx_data_bytes_out_of_window = 0; + *stat_timer_poll_retransmit_timed_out = 0; + *stat_timer_status_prohibit_timed_out = 0; + rlc_um_stat_req (&rlc_union_p->rlc.um, + stat_tx_pdcp_sdu, + stat_tx_pdcp_bytes, + stat_tx_pdcp_sdu_discarded, + stat_tx_pdcp_bytes_discarded, + stat_tx_data_pdu, + stat_tx_data_bytes, + stat_rx_pdcp_sdu, + stat_rx_pdcp_bytes, + stat_rx_data_pdus_duplicate, + stat_rx_data_bytes_duplicate, + stat_rx_data_pdu, + stat_rx_data_bytes, + stat_rx_data_pdu_dropped, + stat_rx_data_bytes_dropped, + stat_rx_data_pdu_out_of_window, + stat_rx_data_bytes_out_of_window, + stat_timer_reordering_timed_out); + return RLC_OP_STATUS_OK; + break; - case RLC_MODE_TM: - *stat_tx_pdcp_sdu = 0; - *stat_tx_pdcp_bytes = 0; - *stat_tx_pdcp_sdu_discarded = 0; - *stat_tx_pdcp_bytes_discarded = 0; - *stat_tx_data_pdu = 0; - *stat_tx_data_bytes = 0; - *stat_tx_retransmit_pdu_by_status = 0; - *stat_tx_retransmit_bytes_by_status = 0; - *stat_tx_retransmit_pdu = 0; - *stat_tx_retransmit_bytes = 0; - *stat_tx_control_pdu = 0; - *stat_tx_control_bytes = 0; - *stat_rx_pdcp_sdu = 0; - *stat_rx_pdcp_bytes = 0; - *stat_rx_data_pdus_duplicate = 0; - *stat_rx_data_bytes_duplicate = 0; - *stat_rx_data_pdu = 0; - *stat_rx_data_bytes = 0; - *stat_rx_data_pdu_dropped = 0; - *stat_rx_data_bytes_dropped = 0; - *stat_rx_data_pdu_out_of_window = 0; - *stat_rx_data_bytes_out_of_window = 0; - *stat_rx_control_pdu = 0; - *stat_rx_control_bytes = 0; - *stat_timer_reordering_timed_out = 0; - *stat_timer_poll_retransmit_timed_out = 0; - *stat_timer_status_prohibit_timed_out = 0; - return RLC_OP_STATUS_BAD_PARAMETER; - break; + case RLC_MODE_TM: + *stat_tx_pdcp_sdu = 0; + *stat_tx_pdcp_bytes = 0; + *stat_tx_pdcp_sdu_discarded = 0; + *stat_tx_pdcp_bytes_discarded = 0; + *stat_tx_data_pdu = 0; + *stat_tx_data_bytes = 0; + *stat_tx_retransmit_pdu_by_status = 0; + *stat_tx_retransmit_bytes_by_status = 0; + *stat_tx_retransmit_pdu = 0; + *stat_tx_retransmit_bytes = 0; + *stat_tx_control_pdu = 0; + *stat_tx_control_bytes = 0; + *stat_rx_pdcp_sdu = 0; + *stat_rx_pdcp_bytes = 0; + *stat_rx_data_pdus_duplicate = 0; + *stat_rx_data_bytes_duplicate = 0; + *stat_rx_data_pdu = 0; + *stat_rx_data_bytes = 0; + *stat_rx_data_pdu_dropped = 0; + *stat_rx_data_bytes_dropped = 0; + *stat_rx_data_pdu_out_of_window = 0; + *stat_rx_data_bytes_out_of_window = 0; + *stat_rx_control_pdu = 0; + *stat_rx_control_bytes = 0; + *stat_timer_reordering_timed_out = 0; + *stat_timer_poll_retransmit_timed_out = 0; + *stat_timer_status_prohibit_timed_out = 0; + return RLC_OP_STATUS_BAD_PARAMETER; + break; - default: - *stat_tx_pdcp_sdu = 0; - *stat_tx_pdcp_bytes = 0; - *stat_tx_pdcp_sdu_discarded = 0; - *stat_tx_pdcp_bytes_discarded = 0; - *stat_tx_data_pdu = 0; - *stat_tx_data_bytes = 0; - *stat_tx_retransmit_pdu_by_status = 0; - *stat_tx_retransmit_bytes_by_status = 0; - *stat_tx_retransmit_pdu = 0; - *stat_tx_retransmit_bytes = 0; - *stat_tx_control_pdu = 0; - *stat_tx_control_bytes = 0; - *stat_rx_pdcp_sdu = 0; - *stat_rx_pdcp_bytes = 0; - *stat_rx_data_pdus_duplicate = 0; - *stat_rx_data_bytes_duplicate = 0; - *stat_rx_data_pdu = 0; - *stat_rx_data_bytes = 0; - *stat_rx_data_pdu_dropped = 0; - *stat_rx_data_bytes_dropped = 0; - *stat_rx_data_pdu_out_of_window = 0; - *stat_rx_data_bytes_out_of_window = 0; - *stat_rx_control_pdu = 0; - *stat_rx_control_bytes = 0; - - *stat_timer_poll_retransmit_timed_out = 0; - *stat_timer_status_prohibit_timed_out = 0; - return RLC_OP_STATUS_BAD_PARAMETER; + default: + *stat_tx_pdcp_sdu = 0; + *stat_tx_pdcp_bytes = 0; + *stat_tx_pdcp_sdu_discarded = 0; + *stat_tx_pdcp_bytes_discarded = 0; + *stat_tx_data_pdu = 0; + *stat_tx_data_bytes = 0; + *stat_tx_retransmit_pdu_by_status = 0; + *stat_tx_retransmit_bytes_by_status = 0; + *stat_tx_retransmit_pdu = 0; + *stat_tx_retransmit_bytes = 0; + *stat_tx_control_pdu = 0; + *stat_tx_control_bytes = 0; + *stat_rx_pdcp_sdu = 0; + *stat_rx_pdcp_bytes = 0; + *stat_rx_data_pdus_duplicate = 0; + *stat_rx_data_bytes_duplicate = 0; + *stat_rx_data_pdu = 0; + *stat_rx_data_bytes = 0; + *stat_rx_data_pdu_dropped = 0; + *stat_rx_data_bytes_dropped = 0; + *stat_rx_data_pdu_out_of_window = 0; + *stat_rx_data_bytes_out_of_window = 0; + *stat_rx_control_pdu = 0; + *stat_rx_control_bytes = 0; + *stat_timer_poll_retransmit_timed_out = 0; + *stat_timer_status_prohibit_timed_out = 0; + return RLC_OP_STATUS_BAD_PARAMETER; } } //----------------------------------------------------------------------------- -rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, +rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, @@ -321,18 +318,16 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, sdu_size_t sdu_sizeP, mem_block_t *sdu_pP #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,const uint32_t * const sourceL2Id - ,const uint32_t * const destinationL2Id + ,const uint32_t *const sourceL2Id + ,const uint32_t *const destinationL2Id #endif - ) -{ + ) { //----------------------------------------------------------------------------- mem_block_t *new_sdu_p = NULL; rlc_mode_t rlc_mode = RLC_MODE_NONE; rlc_union_t *rlc_union_p = NULL; hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_rc; - #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) rlc_mbms_id_t *mbms_id_p = NULL; logical_chan_id_t log_ch_id = 0; @@ -351,32 +346,33 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, #else AssertFatal(MBMS_flagP == 0, "MBMS_flagP %u", MBMS_flagP); #endif - #if T_TRACER + if (ctxt_pP->enb_flag) T(T_ENB_RLC_DL, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->rnti), T_INT(rb_idP), T_INT(sdu_sizeP)); + #endif if (MBMS_flagP) { //AssertFatal (rb_idP < NB_RB_MBMS_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MBMS_MAX); - if(rb_idP >= NB_RB_MBMS_MAX){ - LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MBMS_MAX); - return RLC_OP_STATUS_BAD_PARAMETER; - } + if(rb_idP >= NB_RB_MBMS_MAX) { + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MBMS_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } } else { //AssertFatal (rb_idP < NB_RB_MAX, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); - if(rb_idP >= NB_RB_MAX){ - LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); - return RLC_OP_STATUS_BAD_PARAMETER; - } + if(rb_idP >= NB_RB_MAX) { + LOG_E(RLC, "RB id is too high (%u/%d)!\n", rb_idP, NB_RB_MAX); + return RLC_OP_STATUS_BAD_PARAMETER; + } } //DevAssert(sdu_pP != NULL); - if(sdu_pP == NULL){ - LOG_E(RLC, "sdu_pP == NULL\n"); - return RLC_OP_STATUS_BAD_PARAMETER; - } - + if(sdu_pP == NULL) { + LOG_E(RLC, "sdu_pP == NULL\n"); + return RLC_OP_STATUS_BAD_PARAMETER; + } + //DevCheck(sdu_sizeP > 0, sdu_sizeP, 0, 0); if(sdu_sizeP <= 0) { LOG_E(RLC, "sdu_sizeP %d, file %s, line %d\n", sdu_sizeP, __FILE__ ,__LINE__); @@ -386,9 +382,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, #if (LTE_RRC_VERSION < MAKE_VERSION(10, 0, 0)) DevCheck(MBMS_flagP == 0, MBMS_flagP, 0, 0); #endif - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_IN); - #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) if (MBMS_flagP == TRUE) { @@ -402,31 +396,31 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, key = RLC_COLL_KEY_MBMS_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, mbms_id_p->service_id, mbms_id_p->session_id); } - if (sourceL2Id && destinationL2Id){ - LOG_I (RLC, "RLC_COLL_KEY_VALUE: ctxt_pP->module_id: %d, ctxt_pP->rnti: %d, ctxt_pP->enb_flag: %d, rb_idP:%d, srb_flagP: %d \n \n", ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); - key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); - //Thinh's line originally uncommented - //key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, *sourceL2Id, *destinationL2Id, srb_flagP); - - - //key_lcid = RLC_COLL_KEY_LCID_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, chan_idP, *sourceL2Id, *destinationL2Id, srb_flagP); + if (sourceL2Id && destinationL2Id) { + LOG_D (RLC, "RLC_COLL_KEY_VALUE: ctxt_pP->module_id: %d, ctxt_pP->rnti: %d, ctxt_pP->enb_flag: %d, rb_idP:%d, srb_flagP: %d \n \n", ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, + srb_flagP); + key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); + //Thinh's line originally uncommented + //key = RLC_COLL_KEY_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, *sourceL2Id, *destinationL2Id, srb_flagP); + //key_lcid = RLC_COLL_KEY_LCID_SOURCE_DEST_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, chan_idP, *sourceL2Id, *destinationL2Id, srb_flagP); } else #endif { - LOG_I (RLC, "RLC_COLL_KEY_VALUE: ctxt_pP->module_id: %d, ctxt_pP->rnti: %d, ctxt_pP->enb_flag: %d, rb_idP:%d, srb_flagP: %d \n \n", ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); + LOG_D (RLC, "RLC_COLL_KEY_VALUE: ctxt_pP->module_id: %d, ctxt_pP->rnti: %d, ctxt_pP->enb_flag: %d, rb_idP:%d, srb_flagP: %d \n \n", ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, + srb_flagP); key = RLC_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, ctxt_pP->enb_flag, rb_idP, srb_flagP); } - h_rc = hashtable_get(rlc_coll_p, key, (void**)&rlc_union_p); + h_rc = hashtable_get(rlc_coll_p, key, (void **)&rlc_union_p); if (h_rc == HASH_TABLE_OK) { rlc_mode = rlc_union_p->mode; } else { rlc_mode = RLC_MODE_NONE; //AssertFatal (0 , "RLC not configured key %ju\n", key); - LOG_E(RLC, "not configured key %lu\n", key); - return RLC_OP_STATUS_OUT_OF_RESSOURCES; + LOG_E(RLC, "not configured key %lu\n", key); + return RLC_OP_STATUS_OUT_OF_RESSOURCES; } if (MBMS_flagP == 0) { @@ -434,111 +428,105 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, PROTOCOL_CTXT_ARGS(ctxt_pP), rb_idP); #if defined(TRACE_RLC_PAYLOAD) - rlc_util_print_hex_octets(RLC, (unsigned char*)sdu_pP->data, sdu_sizeP); + rlc_util_print_hex_octets(RLC, (unsigned char *)sdu_pP->data, sdu_sizeP); #endif - #ifdef DEBUG_RLC_DATA_REQ LOG_D(RLC,"RLC_TYPE : %d\n", rlc_mode); #endif switch (rlc_mode) { - case RLC_MODE_NONE: - free_mem_block(sdu_pP, __func__); - LOG_E(RLC, PROTOCOL_CTXT_FMT" Received RLC_MODE_NONE as rlc_type for rb_id %u\n", - PROTOCOL_CTXT_ARGS(ctxt_pP), - rb_idP); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - return RLC_OP_STATUS_BAD_PARAMETER; + case RLC_MODE_NONE: + free_mem_block(sdu_pP, __func__); + LOG_E(RLC, PROTOCOL_CTXT_FMT" Received RLC_MODE_NONE as rlc_type for rb_id %u\n", + PROTOCOL_CTXT_ARGS(ctxt_pP), + rb_idP); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + return RLC_OP_STATUS_BAD_PARAMETER; - case RLC_MODE_AM: + case RLC_MODE_AM: #ifdef DEBUG_RLC_DATA_REQ - LOG_D(RLC,"RLC_MODE_AM\n"); + LOG_D(RLC,"RLC_MODE_AM\n"); #endif - new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_am_data_req_alloc), __func__); + new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_am_data_req_alloc), __func__); - if (new_sdu_p != NULL) { - // PROCESS OF COMPRESSION HERE: - memset (new_sdu_p->data, 0, sizeof (struct rlc_am_data_req_alloc)); - memcpy (&new_sdu_p->data[sizeof (struct rlc_am_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP); + if (new_sdu_p != NULL) { + // PROCESS OF COMPRESSION HERE: + memset (new_sdu_p->data, 0, sizeof (struct rlc_am_data_req_alloc)); + memcpy (&new_sdu_p->data[sizeof (struct rlc_am_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP); + ((struct rlc_am_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP; + ((struct rlc_am_data_req *) (new_sdu_p->data))->conf = confirmP; + ((struct rlc_am_data_req *) (new_sdu_p->data))->mui = muiP; + ((struct rlc_am_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_am_data_req_alloc); + free_mem_block(sdu_pP, __func__); + rlc_am_data_req(ctxt_pP, &rlc_union_p->rlc.am, new_sdu_p); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + return RLC_OP_STATUS_OK; + } else { + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); + return RLC_OP_STATUS_INTERNAL_ERROR; + } - ((struct rlc_am_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP; - ((struct rlc_am_data_req *) (new_sdu_p->data))->conf = confirmP; - ((struct rlc_am_data_req *) (new_sdu_p->data))->mui = muiP; - ((struct rlc_am_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_am_data_req_alloc); + break; + + case RLC_MODE_UM: + + /* TODO: this is a hack, needs better solution. Let's not use too + * much memory and store at maximum 5 millions bytes. + */ + /* look for HACK_RLC_UM_LIMIT for others places related to the hack. Please do not remove this comment. */ + if (rlc_um_get_buffer_occupancy(&rlc_union_p->rlc.um) > 5000000) { + free_mem_block(sdu_pP, __func__); + return RLC_OP_STATUS_OUT_OF_RESSOURCES; + } + + new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_um_data_req_alloc), __func__); + + if (new_sdu_p != NULL) { + // PROCESS OF COMPRESSION HERE: + memset (new_sdu_p->data, 0, sizeof (struct rlc_um_data_req_alloc)); + memcpy (&new_sdu_p->data[sizeof (struct rlc_um_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP); + ((struct rlc_um_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP; + ((struct rlc_um_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_um_data_req_alloc); + free_mem_block(sdu_pP, __func__); + rlc_um_data_req(ctxt_pP, &rlc_union_p->rlc.um, new_sdu_p); + //free_mem_block(new_sdu, __func__); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + return RLC_OP_STATUS_OK; + } else { + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); + return RLC_OP_STATUS_INTERNAL_ERROR; + } + + break; + + case RLC_MODE_TM: + new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_tm_data_req_alloc), __func__); + + if (new_sdu_p != NULL) { + // PROCESS OF COMPRESSION HERE: + memset (new_sdu_p->data, 0, sizeof (struct rlc_tm_data_req_alloc)); + memcpy (&new_sdu_p->data[sizeof (struct rlc_tm_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP); + ((struct rlc_tm_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP; + ((struct rlc_tm_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_tm_data_req_alloc); + free_mem_block(sdu_pP, __func__); + rlc_tm_data_req(ctxt_pP, &rlc_union_p->rlc.tm, new_sdu_p); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + return RLC_OP_STATUS_OK; + } else { + //handle_event(ERROR,"FILE %s FONCTION rlc_data_req() LINE %s : out of memory\n", __FILE__, __LINE__); + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); + free_mem_block(sdu_pP, __func__); + return RLC_OP_STATUS_INTERNAL_ERROR; + } + + break; + + default: free_mem_block(sdu_pP, __func__); - rlc_am_data_req(ctxt_pP, &rlc_union_p->rlc.am, new_sdu_p); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - return RLC_OP_STATUS_OK; - } else { - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - free_mem_block(sdu_pP, __func__); return RLC_OP_STATUS_INTERNAL_ERROR; - } - - break; - - case RLC_MODE_UM: - /* TODO: this is a hack, needs better solution. Let's not use too - * much memory and store at maximum 5 millions bytes. - */ - /* look for HACK_RLC_UM_LIMIT for others places related to the hack. Please do not remove this comment. */ - if (rlc_um_get_buffer_occupancy(&rlc_union_p->rlc.um) > 5000000) { - free_mem_block(sdu_pP, __func__); - return RLC_OP_STATUS_OUT_OF_RESSOURCES; - } - - new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_um_data_req_alloc), __func__); - - if (new_sdu_p != NULL) { - // PROCESS OF COMPRESSION HERE: - memset (new_sdu_p->data, 0, sizeof (struct rlc_um_data_req_alloc)); - memcpy (&new_sdu_p->data[sizeof (struct rlc_um_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP); - - ((struct rlc_um_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP; - ((struct rlc_um_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_um_data_req_alloc); - free_mem_block(sdu_pP, __func__); - - rlc_um_data_req(ctxt_pP, &rlc_union_p->rlc.um, new_sdu_p); - - //free_mem_block(new_sdu, __func__); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - return RLC_OP_STATUS_OK; - } else { - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - free_mem_block(sdu_pP, __func__); - return RLC_OP_STATUS_INTERNAL_ERROR; - } - - break; - - case RLC_MODE_TM: - new_sdu_p = get_free_mem_block (sdu_sizeP + sizeof (struct rlc_tm_data_req_alloc), __func__); - - if (new_sdu_p != NULL) { - // PROCESS OF COMPRESSION HERE: - memset (new_sdu_p->data, 0, sizeof (struct rlc_tm_data_req_alloc)); - memcpy (&new_sdu_p->data[sizeof (struct rlc_tm_data_req_alloc)], &sdu_pP->data[0], sdu_sizeP); - - ((struct rlc_tm_data_req *) (new_sdu_p->data))->data_size = sdu_sizeP; - ((struct rlc_tm_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_tm_data_req_alloc); - free_mem_block(sdu_pP, __func__); - rlc_tm_data_req(ctxt_pP, &rlc_union_p->rlc.tm, new_sdu_p); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - return RLC_OP_STATUS_OK; - } else { - //handle_event(ERROR,"FILE %s FONCTION rlc_data_req() LINE %s : out of memory\n", __FILE__, __LINE__); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - free_mem_block(sdu_pP, __func__); - return RLC_OP_STATUS_INTERNAL_ERROR; - } - - break; - - default: - free_mem_block(sdu_pP, __func__); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); - return RLC_OP_STATUS_INTERNAL_ERROR; - } #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) @@ -557,7 +545,6 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, ((struct rlc_um_data_req *) (new_sdu_p->data))->data_offset = sizeof (struct rlc_um_data_req_alloc); free_mem_block(sdu_pP, __func__); rlc_um_data_req(ctxt_pP, &rlc_union_p->rlc.um, new_sdu_p); - //free_mem_block(new_sdu, __func__); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RLC_DATA_REQ,VCD_FUNCTION_OUT); return RLC_OP_STATUS_OK; @@ -578,8 +565,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, #else } - else /* MBMS_flag != 0 */ - { + else { /* MBMS_flag != 0 */ free_mem_block(sdu_pP, __func__); LOG_E(RLC, "MBMS_flag != 0 while Rel10/Rel14 is not defined...\n"); //handle_event(ERROR,"FILE %s FONCTION rlc_data_req() LINE %s : parameter module_id out of bounds :%d\n", __FILE__, __LINE__, module_idP); @@ -592,32 +578,27 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t* const ctxt_pP, //----------------------------------------------------------------------------- void rlc_data_ind ( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, const MBMS_flag_t MBMS_flagP, const rb_id_t rb_idP, const sdu_size_t sdu_sizeP, - mem_block_t *sdu_pP) -{ + mem_block_t *sdu_pP) { //----------------------------------------------------------------------------- - - #if defined(TRACE_RLC_PAYLOAD) LOG_D(RLC, PROTOCOL_CTXT_FMT"[%s %u] Display of rlc_data_ind: size %u\n", PROTOCOL_CTXT_ARGS(ctxt_pP), (srb_flagP) ? "SRB" : "DRB", rb_idP, sdu_sizeP); - - rlc_util_print_hex_octets(RLC, (unsigned char*)sdu_pP->data, sdu_sizeP); + rlc_util_print_hex_octets(RLC, (unsigned char *)sdu_pP->data, sdu_sizeP); #endif - #if T_TRACER + if (ctxt_pP->enb_flag) T(T_ENB_RLC_UL, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->rnti), T_INT(rb_idP), T_INT(sdu_sizeP)); + #endif - - pdcp_data_ind ( ctxt_pP, srb_flagP, @@ -627,14 +608,12 @@ void rlc_data_ind ( sdu_pP); } //----------------------------------------------------------------------------- -void rlc_data_conf (const protocol_ctxt_t* const ctxt_pP, +void rlc_data_conf (const protocol_ctxt_t *const ctxt_pP, const srb_flag_t srb_flagP, const rb_id_t rb_idP, const mui_t muiP, - const rlc_tx_status_t statusP) -{ + const rlc_tx_status_t statusP) { //----------------------------------------------------------------------------- - if (srb_flagP) { if (rlc_rrc_data_conf != NULL) { rlc_rrc_data_conf (ctxt_pP, rb_idP , muiP, statusP); @@ -643,20 +622,17 @@ void rlc_data_conf (const protocol_ctxt_t* const ctxt_pP, } //----------------------------------------------------------------------------- int -rlc_module_init (void) -{ +rlc_module_init (void) { //----------------------------------------------------------------------------- int k; module_id_t module_id1; - /* for no gcc warnings */ (void)k; - LOG_D(RLC, "MODULE INIT\n"); rlc_rrc_data_ind = NULL; rlc_rrc_data_conf = NULL; - rlc_coll_p = hashtable_create ((LTE_maxDRB + 2) * 16, NULL, rb_free_rlc_union); + //AssertFatal(rlc_coll_p != NULL, "UNRECOVERABLE error, RLC hashtable_create failed"); if(rlc_coll_p == NULL) { LOG_E(RLC, "UNRECOVERABLE error, RLC hashtable_create failed\n"); @@ -694,7 +670,6 @@ rlc_module_init (void) } pool_buffer_init(); - return(0); } //----------------------------------------------------------------------------- @@ -706,8 +681,7 @@ rlc_module_cleanup (void) } //----------------------------------------------------------------------------- void -rlc_layer_init (void) -{ +rlc_layer_init (void) { //----------------------------------------------------------------------------- } //----------------------------------------------------------------------------- diff --git a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c index 4c63db1d03..480f5c3516 100644 --- a/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c +++ b/openair2/RRC/LTE/MESSAGES/asn1_msg_NB_IoT.c @@ -70,7 +70,7 @@ #include "enb_config.h" #if defined(ENABLE_ITTI) -# include "intertask_interface.h" + #include "intertask_interface.h" #endif @@ -78,14 +78,12 @@ /*do_MIB_NB_NB_IoT*/ uint8_t do_MIB_NB_IoT( - rrc_eNB_carrier_data_NB_IoT_t *carrier, - uint16_t N_RB_DL,//may not needed--> for NB_IoT only 1 PRB is used - uint32_t frame, - uint32_t hyper_frame) -{ + rrc_eNB_carrier_data_NB_IoT_t *carrier, + uint16_t N_RB_DL,//may not needed--> for NB_IoT only 1 PRB is used + uint32_t frame, + uint32_t hyper_frame) { asn_enc_rval_t enc_rval; LTE_BCCH_BCH_Message_NB_t *mib_NB_IoT = &(carrier->mib_NB_IoT); - /* * systemFrameNumber-MSB: (TS 36.331 pag 576) * define the 4 MSB of the SFN (10 bits). The last significant 6 bits will be acquired implicitly by decoding the NPBCH @@ -98,46 +96,39 @@ uint8_t do_MIB_NB_IoT( * * NOTE: in OAI never modify the SIB messages!!?? */ - //XXX check if correct the bit assignment uint8_t sfn_MSB = (uint8_t)((frame>>6) & 0x0f); // all the 4 bits are set to 1 uint8_t hsfn_LSB = (uint8_t)(hyper_frame & 0x03); //2 bits set to 1 (0x3 = 0011) uint16_t spare=0; //11 bits --> use uint16 - mib_NB_IoT->message.systemFrameNumber_MSB_r13.buf = &sfn_MSB; mib_NB_IoT->message.systemFrameNumber_MSB_r13.size = 1; //if expressed in byte mib_NB_IoT->message.systemFrameNumber_MSB_r13.bits_unused = 4; //is byte based (so how many bits you don't use of the 8 bits of a bite - mib_NB_IoT->message.hyperSFN_LSB_r13.buf= &hsfn_LSB; mib_NB_IoT->message.hyperSFN_LSB_r13.size= 1; mib_NB_IoT->message.hyperSFN_LSB_r13.bits_unused = 6; - //XXX to be set?? mib_NB_IoT->message.spare.buf = (uint8_t *)&spare; mib_NB_IoT->message.spare.size = 2; mib_NB_IoT->message.spare.bits_unused = 5; - //decide how to set it mib_NB_IoT->message.schedulingInfoSIB1_r13 =11; //see TS 36.213-->tables 16.4.1.3-3 ecc... mib_NB_IoT->message.systemInfoValueTag_r13= 0; mib_NB_IoT->message.ab_Enabled_r13 = 0; - //to be decided mib_NB_IoT->message.operationModeInfo_r13.present = LTE_MasterInformationBlock_NB__operationModeInfo_r13_PR_inband_SamePCI_r13; mib_NB_IoT->message.operationModeInfo_r13.choice.inband_SamePCI_r13.eutra_CRS_SequenceInfo_r13 = 0; - printf("[MIB] Initialization of frame information,sfn_MSB %x, hsfn_LSB %x\n", (uint32_t)sfn_MSB, - (uint32_t)hsfn_LSB); - + (uint32_t)hsfn_LSB); enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_BCCH_BCH_Message_NB, NULL, - (void*)mib_NB_IoT, + (void *)mib_NB_IoT, carrier->MIB_NB_IoT, 100); + if(enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); } if (enc_rval.encoded==-1) { @@ -145,63 +136,47 @@ uint8_t do_MIB_NB_IoT( } return((enc_rval.encoded+7)/8); - } /*do_SIB1_NB*/ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, - rrc_eNB_carrier_data_NB_IoT_t *carrier, - NbIoTRrcConfigurationReq *configuration, - uint32_t frame - ) -{ + rrc_eNB_carrier_data_NB_IoT_t *carrier, + NbIoTRrcConfigurationReq *configuration, + uint32_t frame + ) { LTE_BCCH_DL_SCH_Message_NB_t *bcch_message= &(carrier->siblock1_NB_IoT); LTE_SystemInformationBlockType1_NB_t **sib1_NB_IoT= &(carrier->sib1_NB_IoT); - - asn_enc_rval_t enc_rval; - LTE_PLMN_IdentityInfo_NB_r13_t PLMN_identity_info_NB_IoT; LTE_MCC_MNC_Digit_t dummy_mcc[3],dummy_mnc[3]; LTE_SchedulingInfo_NB_r13_t *schedulingInfo_NB_IoT; LTE_SIB_Type_NB_r13_t *sib_type_NB_IoT; - - - long* attachWithoutPDN_Connectivity = NULL; + long *attachWithoutPDN_Connectivity = NULL; attachWithoutPDN_Connectivity = CALLOC(1,sizeof(long)); long *nrs_CRS_PowerOffset=NULL; nrs_CRS_PowerOffset = CALLOC(1, sizeof(long)); long *eutraControlRegionSize=NULL; //this parameter should be set only if we are considering in-band operating mode (samePCI or differentPCI) - eutraControlRegionSize = CALLOC(1,sizeof(long)); + eutraControlRegionSize = CALLOC(1,sizeof(long)); long systemInfoValueTagSI = 0; - memset(bcch_message,0,sizeof(LTE_BCCH_DL_SCH_Message_NB_t)); bcch_message->message.present = LTE_BCCH_DL_SCH_MessageType_NB_PR_c1; bcch_message->message.choice.c1.present = LTE_BCCH_DL_SCH_MessageType_NB__c1_PR_systemInformationBlockType1_r13; - //allocation *sib1_NB_IoT = &bcch_message->message.choice.c1.choice.systemInformationBlockType1_r13; - - /*TS 36.331 v14.2.0 pag 589 * hyperSFN-MSB * Indicates the 8 most significant bits of the hyper-SFN. Together with the hyper-LSB in MIB-NB the complete HSFN is build up */ //FIXME see if correct uint8_t hyperSFN_MSB = (uint8_t) ((frame>>2)& 0xff); - //XXX to be checked (*sib1_NB_IoT)->hyperSFN_MSB_r13.buf = &hyperSFN_MSB; (*sib1_NB_IoT)->hyperSFN_MSB_r13.size = 1; (*sib1_NB_IoT)->hyperSFN_MSB_r13.bits_unused = 0; - memset(&PLMN_identity_info_NB_IoT,0,sizeof(LTE_PLMN_IdentityInfo_NB_r13_t)); - PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc = CALLOC(1,sizeof(*PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc)); memset(PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc,0,sizeof(*PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc)); - asn_set_empty(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list);//.size=0; - //left as it is??? #if defined(ENABLE_ITTI) dummy_mcc[0] = (configuration->mcc / 100) % 10; @@ -215,11 +190,8 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[0]); ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[1]); ASN_SEQUENCE_ADD(&PLMN_identity_info_NB_IoT.plmn_Identity_r13.mcc->list,&dummy_mcc[2]); - PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list.size=0; PLMN_identity_info_NB_IoT.plmn_Identity_r13.mnc.list.count=0; - - #if defined(ENABLE_ITTI) if (configuration->mnc >= 100) { @@ -252,15 +224,11 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, //still set to "notReserved" as in the previous case PLMN_identity_info_NB_IoT.cellReservedForOperatorUse_r13=LTE_PLMN_IdentityInfo_NB_r13__cellReservedForOperatorUse_r13_notReserved; - *attachWithoutPDN_Connectivity = 0; PLMN_identity_info_NB_IoT.attachWithoutPDN_Connectivity_r13 = attachWithoutPDN_Connectivity; - ASN_SEQUENCE_ADD(&(*sib1_NB_IoT)->cellAccessRelatedInfo_r13.plmn_IdentityList_r13.list,&PLMN_identity_info_NB_IoT); - // 16 bits = 2 byte (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.trackingAreaCode_r13.buf = MALLOC(2); //MALLOC works in byte - //lefts as it is? #if defined(ENABLE_ITTI) (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.trackingAreaCode_r13.buf[0] = (configuration->tac >> 8) & 0xff; @@ -271,7 +239,6 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, #endif (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.trackingAreaCode_r13.size=2; (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.trackingAreaCode_r13.bits_unused=0; - // 28 bits --> i have to use 32 bits = 4 byte (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.cellIdentity_r13.buf = MALLOC(8); // why allocate 8 byte? #if defined(ENABLE_ITTI) @@ -287,20 +254,14 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, #endif (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.cellIdentity_r13.size=4; (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.cellIdentity_r13.bits_unused=4; - //Still set to "notBarred" as in the previous case (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.cellBarred_r13=LTE_SystemInformationBlockType1_NB__cellAccessRelatedInfo_r13__cellBarred_r13_notBarred; - //Still Set to "notAllowed" like in the previous case (*sib1_NB_IoT)->cellAccessRelatedInfo_r13.intraFreqReselection_r13=LTE_SystemInformationBlockType1_NB__cellAccessRelatedInfo_r13__intraFreqReselection_r13_notAllowed; - - (*sib1_NB_IoT)->cellSelectionInfo_r13.q_RxLevMin_r13=-65; //which value?? TS 36.331 V14.2.1 pag. 589 (*sib1_NB_IoT)->cellSelectionInfo_r13.q_QualMin_r13 = 0; //FIXME new parameter for SIB1-NB, not present in SIB1 (for cell reselection but if not used the UE should apply the default value) - (*sib1_NB_IoT)->p_Max_r13 = CALLOC(1, sizeof(LTE_P_Max_t)); *((*sib1_NB_IoT)->p_Max_r13) = 23; - //FIXME (*sib1_NB_IoT)->freqBandIndicator_r13 = #if defined(ENABLE_ITTI) @@ -308,70 +269,55 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, #else 5; //if not configured we use band 5 (UL: 824 MHz - 849MHz / DL: 869 MHz - 894 MHz FDD mode) #endif - - //OPTIONAL new parameters, to be used? - /* - * freqBandInfo_r13 - * multiBandInfoList_r13 - * nrs_CRS_PowerOffset_r13 - * sib1_NB_IoT->downlinkBitmap_r13.choice.subframePattern10_r13 =(is a BIT_STRING) - */ - - - (*sib1_NB_IoT)->downlinkBitmap_r13 = CALLOC(1, sizeof(struct LTE_DL_Bitmap_NB_r13)); - ((*sib1_NB_IoT)->downlinkBitmap_r13)->present= LTE_DL_Bitmap_NB_r13_PR_NOTHING; - - *eutraControlRegionSize = 1; - (*sib1_NB_IoT)->eutraControlRegionSize_r13 = eutraControlRegionSize; - - - *nrs_CRS_PowerOffset= 0; - (*sib1_NB_IoT)->nrs_CRS_PowerOffset_r13 = nrs_CRS_PowerOffset; - - schedulingInfo_NB_IoT = (LTE_SchedulingInfo_NB_r13_t*) malloc (3*sizeof(LTE_SchedulingInfo_NB_r13_t)); - sib_type_NB_IoT = (LTE_SIB_Type_NB_r13_t *) malloc (3*sizeof(LTE_SIB_Type_NB_r13_t)); - + //OPTIONAL new parameters, to be used? + /* + * freqBandInfo_r13 + * multiBandInfoList_r13 + * nrs_CRS_PowerOffset_r13 + * sib1_NB_IoT->downlinkBitmap_r13.choice.subframePattern10_r13 =(is a BIT_STRING) + */ + (*sib1_NB_IoT)->downlinkBitmap_r13 = CALLOC(1, sizeof(struct LTE_DL_Bitmap_NB_r13)); + ((*sib1_NB_IoT)->downlinkBitmap_r13)->present= LTE_DL_Bitmap_NB_r13_PR_NOTHING; + *eutraControlRegionSize = 1; + (*sib1_NB_IoT)->eutraControlRegionSize_r13 = eutraControlRegionSize; + *nrs_CRS_PowerOffset= 0; + (*sib1_NB_IoT)->nrs_CRS_PowerOffset_r13 = nrs_CRS_PowerOffset; + schedulingInfo_NB_IoT = (LTE_SchedulingInfo_NB_r13_t *) malloc (3*sizeof(LTE_SchedulingInfo_NB_r13_t)); + sib_type_NB_IoT = (LTE_SIB_Type_NB_r13_t *) malloc (3*sizeof(LTE_SIB_Type_NB_r13_t)); memset(&schedulingInfo_NB_IoT[0],0,sizeof(LTE_SchedulingInfo_NB_r13_t)); memset(&schedulingInfo_NB_IoT[1],0,sizeof(LTE_SchedulingInfo_NB_r13_t)); - memset(&schedulingInfo_NB_IoT[2],0,sizeof(LTE_SchedulingInfo_NB_r13_t)); + memset(&schedulingInfo_NB_IoT[2],0,sizeof(LTE_SchedulingInfo_NB_r13_t)); memset(&sib_type_NB_IoT[0],0,sizeof(LTE_SIB_Type_NB_r13_t)); memset(&sib_type_NB_IoT[1],0,sizeof(LTE_SIB_Type_NB_r13_t)); memset(&sib_type_NB_IoT[2],0,sizeof(LTE_SIB_Type_NB_r13_t)); - - // Now, follow the scheduler SIB configuration // There is only one sib2+sib3 common setting schedulingInfo_NB_IoT[0].si_Periodicity_r13=LTE_SchedulingInfo_NB_r13__si_Periodicity_r13_rf4096; - schedulingInfo_NB_IoT[0].si_RepetitionPattern_r13=LTE_SchedulingInfo_NB_r13__si_RepetitionPattern_r13_every2ndRF; //This Indicates the starting radio frames within the SI window used for SI message transmission. + schedulingInfo_NB_IoT[0].si_RepetitionPattern_r13= + LTE_SchedulingInfo_NB_r13__si_RepetitionPattern_r13_every2ndRF; //This Indicates the starting radio frames within the SI window used for SI message transmission. schedulingInfo_NB_IoT[0].si_TB_r13= LTE_SchedulingInfo_NB_r13__si_TB_r13_b680;//208 bits - - // This is for SIB2/3 /*SIB3 --> There is no mapping information of SIB2 since it is always present * in the first SystemInformation message * listed in the schedulingInfoList list. * */ sib_type_NB_IoT[0]=LTE_SIB_Type_NB_r13_sibType3_NB_r13; - ASN_SEQUENCE_ADD(&schedulingInfo_NB_IoT[0].sib_MappingInfo_r13.list,&sib_type_NB_IoT[0]); ASN_SEQUENCE_ADD(&(*sib1_NB_IoT)->schedulingInfoList_r13.list,&schedulingInfo_NB_IoT[0]); - //printf("[ASN Debug] SI P: %ld\n",(*sib1_NB_IoT)->schedulingInfoList_r13.list.array[0]->si_Periodicity_r13); - #if defined(ENABLE_ITTI) if (configuration->frame_type == TDD) #endif { - //FIXME in NB-IoT mandatory to be FDD --> so must give an error - LOG_E(RRC,"[NB-IoT %d] Frame Type is TDD --> not supported by NB-IoT, exiting\n", Mod_id); //correct? - exit(-1); + //FIXME in NB-IoT mandatory to be FDD --> so must give an error + LOG_E(RRC,"[NB-IoT %d] Frame Type is TDD --> not supported by NB-IoT, exiting\n", Mod_id); //correct? + exit(-1); } //FIXME which value chose for the following parameter (*sib1_NB_IoT)->si_WindowLength_r13=LTE_SystemInformationBlockType1_NB__si_WindowLength_r13_ms160; (*sib1_NB_IoT)->si_RadioFrameOffset_r13= 0; - /*In Nb-IoT change/update of specific SI message can additionally be indicated by a SI message specific value tag * systemInfoValueTagSI (there is no SystemInfoValueTag in SIB1-NB but only in MIB-NB) *contained in systemInfoValueTagList_r13 @@ -381,24 +327,21 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, asn_set_empty(&(*sib1_NB_IoT)->systemInfoValueTagList_r13->list); ASN_SEQUENCE_ADD(&(*sib1_NB_IoT)->systemInfoValueTagList_r13->list,&systemInfoValueTagSI); - if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message_NB, (void*)bcch_message); + xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message_NB, (void *)bcch_message); } - enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_BCCH_DL_SCH_Message_NB, NULL, - (void*)bcch_message, + (void *)bcch_message, carrier->SIB1_NB_IoT, 100); - if (enc_rval.encoded > 0){ - LOG_E(RRC,"ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + if (enc_rval.encoded > 0) { + LOG_E(RRC,"ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); } - #ifdef USER_MODE LOG_D(RRC,"[NB-IoT] SystemInformationBlockType1-NB Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); #endif @@ -415,34 +358,26 @@ uint8_t do_SIB1_NB_IoT(uint8_t Mod_id, int CC_id, uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, int CC_id, rrc_eNB_carrier_data_NB_IoT_t *carrier,//MP: this is already a carrier[CC_id] - NbIoTRrcConfigurationReq *configuration ) //openair2/COMMON/rrc_messages_types.h -{ + NbIoTRrcConfigurationReq *configuration ) { //openair2/COMMON/rrc_messages_types.h struct LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member *sib2_NB_part; struct LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member *sib3_NB_part; - LTE_BCCH_DL_SCH_Message_NB_t *bcch_message = &(carrier->systemInformation_NB_IoT); //is the systeminformation-->BCCH_DL_SCH_Message_NB LTE_SystemInformationBlockType2_NB_r13_t *sib2_NB_IoT; LTE_SystemInformationBlockType3_NB_r13_t *sib3_NB_IoT; - asn_enc_rval_t enc_rval; LTE_RACH_Info_NB_r13_t rach_Info_NB_IoT; LTE_NPRACH_Parameters_NB_r13_t *nprach_parameters; - //optional long *connEstFailOffset = NULL; connEstFailOffset = CALLOC(1, sizeof(long)); - -// RSRP_ThresholdsNPRACH_InfoList_NB_r13_t *rsrp_ThresholdsPrachInfoList; -// RSRP_Range_t rsrp_range; - + // RSRP_ThresholdsNPRACH_InfoList_NB_r13_t *rsrp_ThresholdsPrachInfoList; + // RSRP_Range_t rsrp_range; LTE_ACK_NACK_NumRepetitions_NB_r13_t ack_nack_repetition; struct LTE_NPUSCH_ConfigCommon_NB_r13__dmrs_Config_r13 *dmrs_config; - struct LTE_DL_GapConfig_NB_r13 *dl_Gap; - + struct LTE_DL_GapConfig_NB_r13 *dl_Gap; long *srs_SubframeConfig; srs_SubframeConfig= CALLOC(1, sizeof(long)); - if (bcch_message) { memset(bcch_message,0,sizeof(LTE_BCCH_DL_SCH_Message_NB_t)); } else { @@ -451,84 +386,64 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, } //before schould be allocated memory somewhere? -// if (!carrier->sib2_NB_IoT) { -// LOG_E(RRC,"[NB-IoT %d] sib2_NB_IoT is null, exiting\n", Mod_id); -// exit(-1); -// } -// -// if (!carrier->sib3_NB_IoT) { -// LOG_E(RRC,"[NB-IoT %d] sib3_NB_IoT is null, exiting\n", Mod_id); -// exit(-1); -// } - - + // if (!carrier->sib2_NB_IoT) { + // LOG_E(RRC,"[NB-IoT %d] sib2_NB_IoT is null, exiting\n", Mod_id); + // exit(-1); + // } + // + // if (!carrier->sib3_NB_IoT) { + // LOG_E(RRC,"[NB-IoT %d] sib3_NB_IoT is null, exiting\n", Mod_id); + // exit(-1); + // } LOG_I(RRC,"[NB-IoT %d] Configuration SIB2/3\n", Mod_id); - sib2_NB_part = CALLOC(1,sizeof(struct LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member)); sib3_NB_part = CALLOC(1,sizeof(struct LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member)); memset(sib2_NB_part,0,sizeof(struct LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member)); memset(sib3_NB_part,0,sizeof(struct LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member)); - sib2_NB_part->present = LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member_PR_sib2_r13; sib3_NB_part->present = LTE_SystemInformation_NB_r13_IEs__sib_TypeAndInfo_r13__Member_PR_sib3_r13; - //may bug if not correct allocation of memory carrier->sib2_NB_IoT = &sib2_NB_part->choice.sib2_r13; carrier->sib3_NB_IoT = &sib3_NB_part->choice.sib3_r13; sib2_NB_IoT = carrier->sib2_NB_IoT; sib3_NB_IoT = carrier->sib3_NB_IoT; - nprach_parameters = (LTE_NPRACH_Parameters_NB_r13_t *) malloc (3*sizeof(LTE_NPRACH_Parameters_NB_r13_t)); - memset(&nprach_parameters[0],0,sizeof(LTE_NPRACH_Parameters_NB_r13_t)); memset(&nprach_parameters[1],0,sizeof(LTE_NPRACH_Parameters_NB_r13_t)); memset(&nprach_parameters[2],0,sizeof(LTE_NPRACH_Parameters_NB_r13_t)); - -/// SIB2-NB----------------------------------------- - + /// SIB2-NB----------------------------------------- //Barring is manage by ab-Enabled in MIB-NB (but is not a struct as ac-BarringInfo in LTE legacy) - //RACH Config. Common-------------------------------------------------------------- sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.preambleTransMax_CE_r13 = - configuration->rach_preambleTransMax_CE_NB; + configuration->rach_preambleTransMax_CE_NB; sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.powerRampingParameters_r13.powerRampingStep = - configuration->rach_powerRampingStep_NB; + configuration->rach_powerRampingStep_NB; sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.powerRampingParameters_r13.preambleInitialReceivedTargetPower = configuration->rach_preambleInitialReceivedTargetPower_NB; - rach_Info_NB_IoT.ra_ResponseWindowSize_r13 = configuration->rach_raResponseWindowSize_NB; rach_Info_NB_IoT.mac_ContentionResolutionTimer_r13 = configuration-> rach_macContentionResolutionTimer_NB; //rach_infoList max size = maxNPRACH-Resources-NB-r13 = 3 ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.rach_InfoList_r13.list,&rach_Info_NB_IoT); - //TS 36.331 pag 614 --> if not present the value to infinity sould be used *connEstFailOffset = 0; - sib2_NB_IoT->radioResourceConfigCommon_r13.rach_ConfigCommon_r13.connEstFailOffset_r13 = connEstFailOffset; /*OPTIONAL*/ - - // BCCH-Config-NB-IoT---------------------------------------------------------------- sib2_NB_IoT->radioResourceConfigCommon_r13.bcch_Config_r13.modificationPeriodCoeff_r13 = configuration->bcch_modificationPeriodCoeff_NB; - // PCCH-Config-NB-IoT----------------------------------------------------------------- sib2_NB_IoT->radioResourceConfigCommon_r13.pcch_Config_r13.defaultPagingCycle_r13 = configuration->pcch_defaultPagingCycle_NB; sib2_NB_IoT->radioResourceConfigCommon_r13.pcch_Config_r13.nB_r13 = configuration->pcch_nB_NB; sib2_NB_IoT->radioResourceConfigCommon_r13.pcch_Config_r13.npdcch_NumRepetitionPaging_r13 = configuration-> pcch_npdcch_NumRepetitionPaging_NB; - //NPRACH-Config-NB-IoT----------------------------------------------------------------- - - sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.rsrp_ThresholdsPrachInfoList_r13 = NULL; + sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.rsrp_ThresholdsPrachInfoList_r13 = NULL; sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_CP_Length_r13 = configuration->nprach_CP_Length; /*OPTIONAL*/ -// =CALLOC(1, sizeof(struct RSRP_ThresholdsNPRACH_InfoList_NB_r13)); //fatto uguale dopo -// rsrp_ThresholdsPrachInfoList = sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.rsrp_ThresholdsPrachInfoList_r13; -// rsrp_range = configuration->nprach_rsrp_range_NB; -// ASN_SEQUENCE_ADD(&rsrp_ThresholdsPrachInfoList->list,rsrp_range); - + // =CALLOC(1, sizeof(struct RSRP_ThresholdsNPRACH_InfoList_NB_r13)); //fatto uguale dopo + // rsrp_ThresholdsPrachInfoList = sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.rsrp_ThresholdsPrachInfoList_r13; + // rsrp_range = configuration->nprach_rsrp_range_NB; + // ASN_SEQUENCE_ADD(&rsrp_ThresholdsPrachInfoList->list,rsrp_range); // According configuration to set the 3 CE level configuration setting - nprach_parameters[0].nprach_Periodicity_r13 = configuration->nprach_Periodicity[0]; nprach_parameters[0].nprach_StartTime_r13 = configuration->nprach_StartTime[0]; nprach_parameters[0].nprach_SubcarrierOffset_r13 = configuration->nprach_SubcarrierOffset[0]; @@ -539,7 +454,6 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, nprach_parameters[0].npdcch_NumRepetitions_RA_r13 = configuration->npdcch_NumRepetitions_RA[0]; nprach_parameters[0].npdcch_StartSF_CSS_RA_r13 = configuration->npdcch_StartSF_CSS_RA[0]; nprach_parameters[0].npdcch_Offset_RA_r13 = configuration->npdcch_Offset_RA[0]; - nprach_parameters[1].nprach_Periodicity_r13 = configuration->nprach_Periodicity[1]; nprach_parameters[1].nprach_StartTime_r13 = configuration->nprach_StartTime[1]; nprach_parameters[1].nprach_SubcarrierOffset_r13 = configuration->nprach_SubcarrierOffset[1]; @@ -550,7 +464,6 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, nprach_parameters[1].npdcch_NumRepetitions_RA_r13 = configuration->npdcch_NumRepetitions_RA[1]; nprach_parameters[1].npdcch_StartSF_CSS_RA_r13 = configuration->npdcch_StartSF_CSS_RA[1]; nprach_parameters[1].npdcch_Offset_RA_r13 = configuration->npdcch_Offset_RA[1]; - nprach_parameters[2].nprach_Periodicity_r13 = configuration->nprach_Periodicity[2]; nprach_parameters[2].nprach_StartTime_r13 = configuration->nprach_StartTime[2]; nprach_parameters[2].nprach_SubcarrierOffset_r13 = configuration->nprach_SubcarrierOffset[2]; @@ -561,40 +474,29 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, nprach_parameters[2].npdcch_NumRepetitions_RA_r13 = configuration->npdcch_NumRepetitions_RA[2]; nprach_parameters[2].npdcch_StartSF_CSS_RA_r13 = configuration->npdcch_StartSF_CSS_RA[2]; nprach_parameters[2].npdcch_Offset_RA_r13 = configuration->npdcch_Offset_RA[2]; - - //nprach_parameterList have a max size of 3 possible nprach configuration (see maxNPRACH_Resources_NB_r13) ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[0]); ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[1]); ASN_SEQUENCE_ADD(&sib2_NB_IoT->radioResourceConfigCommon_r13.nprach_Config_r13.nprach_ParametersList_r13.list,&nprach_parameters[2]); - // NPDSCH-Config NB-IOT sib2_NB_IoT->radioResourceConfigCommon_r13.npdsch_ConfigCommon_r13.nrs_Power_r13= configuration->npdsch_nrs_Power; - - //NPUSCH-Config NB-IoT---------------------------------------------------------------- //list of size 3 (see maxNPRACH_Resources_NB_r13) ack_nack_repetition = configuration-> npusch_ack_nack_numRepetitions_NB; //is an enumerative ASN_SEQUENCE_ADD(&(sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.ack_NACK_NumRepetitions_Msg4_r13.list) ,&ack_nack_repetition); - *srs_SubframeConfig = configuration->npusch_srs_SubframeConfig_NB; sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.srs_SubframeConfig_r13= srs_SubframeConfig; /*OPTIONAL*/ - - /*OPTIONAL*/ dmrs_config = CALLOC(1,sizeof(struct LTE_NPUSCH_ConfigCommon_NB_r13__dmrs_Config_r13)); dmrs_config->threeTone_CyclicShift_r13 = configuration->npusch_threeTone_CyclicShift_r13; dmrs_config->sixTone_CyclicShift_r13 = configuration->npusch_sixTone_CyclicShift_r13; - /*OPTIONAL * -define the base sequence for a DMRS sequence in a cell with multi tone transmission (3,6,12) see TS 36.331 NPUSCH-Config-NB * -if not defined will be calculated based on the cellID once we configure the phy layer (rrc_mac_config_req) through the config_sib2 */ dmrs_config->threeTone_BaseSequence_r13 = NULL; dmrs_config->sixTone_BaseSequence_r13 = NULL; dmrs_config->twelveTone_BaseSequence_r13 = NULL; - sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.dmrs_Config_r13 = dmrs_config; - //ulReferenceSignalsNPUSCH /*Reference Signal (RS) for UL in NB-IoT is called DRS (Demodulation Reference Signal) * sequence-group hopping can be enabled or disabled by means of the cell-specific parameter groupHoppingEnabled_r13 @@ -603,22 +505,17 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, */ sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.ul_ReferenceSignalsNPUSCH_r13.groupHoppingEnabled_r13= configuration->npusch_groupHoppingEnabled; sib2_NB_IoT->radioResourceConfigCommon_r13.npusch_ConfigCommon_r13.ul_ReferenceSignalsNPUSCH_r13.groupAssignmentNPUSCH_r13 =configuration->npusch_groupAssignmentNPUSCH_r13; - - //dl_GAP---------------------------------------------------------------------------------/*OPTIONAL*/ dl_Gap = CALLOC(1,sizeof(struct LTE_DL_GapConfig_NB_r13)); dl_Gap->dl_GapDurationCoeff_r13= configuration-> dl_GapDurationCoeff_NB; dl_Gap->dl_GapPeriodicity_r13= configuration->dl_GapPeriodicity_NB; dl_Gap->dl_GapThreshold_r13= configuration->dl_GapThreshold_NB; sib2_NB_IoT->radioResourceConfigCommon_r13.dl_Gap_r13 = dl_Gap; - - // uplinkPowerControlCommon - NB-IoT------------------------------------------------------ sib2_NB_IoT->radioResourceConfigCommon_r13.uplinkPowerControlCommon_r13.p0_NominalNPUSCH_r13 = configuration->npusch_p0_NominalNPUSCH; sib2_NB_IoT->radioResourceConfigCommon_r13.uplinkPowerControlCommon_r13.deltaPreambleMsg3_r13 = configuration->deltaPreambleMsg3; sib2_NB_IoT->radioResourceConfigCommon_r13.uplinkPowerControlCommon_r13.alpha_r13 = configuration->npusch_alpha; //no deltaFlist_PUCCH and no UL cyclic prefix - // UE Timers and Constants -NB-IoT-------------------------------------------------------- sib2_NB_IoT->ue_TimersAndConstants_r13.t300_r13 = configuration-> ue_TimersAndConstants_t300_NB; sib2_NB_IoT->ue_TimersAndConstants_r13.t301_r13 = configuration-> ue_TimersAndConstants_t301_NB; @@ -626,61 +523,47 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, sib2_NB_IoT->ue_TimersAndConstants_r13.t311_r13 = configuration-> ue_TimersAndConstants_t311_NB; sib2_NB_IoT->ue_TimersAndConstants_r13.n310_r13 = configuration-> ue_TimersAndConstants_n310_NB; sib2_NB_IoT->ue_TimersAndConstants_r13.n311_r13 = configuration-> ue_TimersAndConstants_n311_NB; - //other SIB2-NB Parameters-------------------------------------------------------------------------------- sib2_NB_IoT->freqInfo_r13.additionalSpectrumEmission_r13 = 1; sib2_NB_IoT->freqInfo_r13.ul_CarrierFreq_r13 = NULL; /*OPTIONAL*/ - sib2_NB_IoT->timeAlignmentTimerCommon_r13=LTE_TimeAlignmentTimer_infinity;//TimeAlignmentTimer_sf5120; - /*OPTIONAL*/ sib2_NB_IoT->multiBandInfoList_r13 = NULL; - -/// SIB3-NB------------------------------------------------------- - + /// SIB3-NB------------------------------------------------------- sib3_NB_IoT->cellReselectionInfoCommon_r13.q_Hyst_r13=LTE_SystemInformationBlockType3_NB_r13__cellReselectionInfoCommon_r13__q_Hyst_r13_dB4; sib3_NB_IoT->cellReselectionServingFreqInfo_r13.s_NonIntraSearch_r13=0; //or define in configuration? - sib3_NB_IoT->intraFreqCellReselectionInfo_r13.q_RxLevMin_r13 = -70; //new sib3_NB_IoT->intraFreqCellReselectionInfo_r13.q_QualMin_r13 = CALLOC(1,sizeof(*sib3_NB_IoT->intraFreqCellReselectionInfo_r13.q_QualMin_r13)); *(sib3_NB_IoT->intraFreqCellReselectionInfo_r13.q_QualMin_r13)= 10; //a caso - sib3_NB_IoT->intraFreqCellReselectionInfo_r13.p_Max_r13 = NULL; sib3_NB_IoT->intraFreqCellReselectionInfo_r13.s_IntraSearchP_r13 = 31; // s_intraSearch --> s_intraSearchP!!! (they call in a different way) sib3_NB_IoT->intraFreqCellReselectionInfo_r13.t_Reselection_r13=1; - //how to manage? sib3_NB_IoT->freqBandInfo_r13 = NULL; sib3_NB_IoT->multiBandInfoList_r13 = NULL; - - -///BCCH message (generate the SI message) + ///BCCH message (generate the SI message) bcch_message->message.present = LTE_BCCH_DL_SCH_MessageType_NB_PR_c1; bcch_message->message.choice.c1.present = LTE_BCCH_DL_SCH_MessageType_NB__c1_PR_systemInformation_r13; - bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.present = LTE_SystemInformation_NB__criticalExtensions_PR_systemInformation_r13; bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list.count=0; - ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list, sib2_NB_part); ASN_SEQUENCE_ADD(&bcch_message->message.choice.c1.choice.systemInformation_r13.criticalExtensions.choice.systemInformation_r13.sib_TypeAndInfo_r13.list, sib3_NB_part); if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message_NB, (void*)bcch_message); + xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message_NB, (void *)bcch_message); } + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_BCCH_DL_SCH_Message_NB, NULL, - (void*)bcch_message, + (void *)bcch_message, carrier->SIB23_NB_IoT, 900); -// AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", -// enc_rval.failed_type->name, enc_rval.encoded); - -//#if defined(ENABLE_ITTI)..... - - + // AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %lu)!\n", + // enc_rval.failed_type->name, enc_rval.encoded); + //#if defined(ENABLE_ITTI)..... #ifdef USER_MODE LOG_D(RRC,"[NB-IoT] SystemInformation-NB Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); #endif @@ -692,270 +575,226 @@ uint8_t do_SIB23_NB_IoT(uint8_t Mod_id, carrier->sib2_NB_IoT = sib2_NB_IoT; carrier->sib3_NB_IoT = sib3_NB_IoT; - return((enc_rval.encoded+7)/8); } /*do_RRCConnectionSetup_NB_IoT--> the aim is to establish SRB1 and SRB1bis(implicitly)*/ uint8_t do_RRCConnectionSetup_NB_IoT( - const protocol_ctxt_t* const ctxt_pP, - rrc_eNB_ue_context_NB_IoT_t* const ue_context_pP, + const protocol_ctxt_t *const ctxt_pP, + rrc_eNB_ue_context_NB_IoT_t *const ue_context_pP, int CC_id, - uint8_t* const buffer, //Srb0.Tx_buffer.Payload + uint8_t *const buffer, //Srb0.Tx_buffer.Payload const uint8_t Transaction_id, - const NB_IoT_DL_FRAME_PARMS* const frame_parms, // maybe not used - LTE_SRB_ToAddModList_NB_r13_t** SRB_configList_NB_IoT, //for both SRB1bis and SRB1 - struct LTE_PhysicalConfigDedicated_NB_r13** physicalConfigDedicated_NB_IoT + const NB_IoT_DL_FRAME_PARMS *const frame_parms, // maybe not used + LTE_SRB_ToAddModList_NB_r13_t **SRB_configList_NB_IoT, //for both SRB1bis and SRB1 + struct LTE_PhysicalConfigDedicated_NB_r13 **physicalConfigDedicated_NB_IoT ) { + asn_enc_rval_t enc_rval; + //MP:logical channel group not defined for Nb-IoT + //MP: logical channel priority pag 605 (is 1 for SRB1 and for SRB1bis should be the same) + //long* prioritySRB1 = NULL; + long *prioritySRB1bis = NULL; + BOOLEAN_t *logicalChannelSR_Prohibit =NULL; //pag 605 + BOOLEAN_t *npusch_AllSymbols= NULL; + // struct SRB_ToAddMod_NB_r13* SRB1_config_NB = NULL; + // struct SRB_ToAddMod_NB_r13__rlc_Config_r13* SRB1_rlc_config_NB = NULL; + // struct SRB_ToAddMod_NB_r13__logicalChannelConfig_r13* SRB1_lchan_config_NB = NULL; + struct LTE_SRB_ToAddMod_NB_r13 *SRB1bis_config_NB_IoT = NULL; + struct LTE_SRB_ToAddMod_NB_r13__rlc_Config_r13 *SRB1bis_rlc_config_NB_IoT = NULL; + struct LTE_SRB_ToAddMod_NB_r13__logicalChannelConfig_r13 *SRB1bis_lchan_config_NB_IoT = NULL; + //No UL_specific parameters for NB-IoT in LogicalChanelConfig-NB + LTE_PhysicalConfigDedicated_NB_r13_t *physicalConfigDedicated2_NB_IoT = NULL; + LTE_DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; + LTE_RRCConnectionSetup_NB_t *rrcConnectionSetup_NB_IoT = NULL; + memset((void *)&dl_ccch_msg_NB_IoT,0,sizeof(LTE_DL_CCCH_Message_NB_t)); + dl_ccch_msg_NB_IoT.message.present = LTE_DL_CCCH_MessageType_NB_PR_c1; + dl_ccch_msg_NB_IoT.message.choice.c1.present = LTE_DL_CCCH_MessageType_NB__c1_PR_rrcConnectionSetup_r13; + rrcConnectionSetup_NB_IoT = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionSetup_r13; - asn_enc_rval_t enc_rval; - - - //MP:logical channel group not defined for Nb-IoT - - //MP: logical channel priority pag 605 (is 1 for SRB1 and for SRB1bis should be the same) - //long* prioritySRB1 = NULL; - long* prioritySRB1bis = NULL; - BOOLEAN_t* logicalChannelSR_Prohibit =NULL; //pag 605 - BOOLEAN_t* npusch_AllSymbols= NULL; - -// struct SRB_ToAddMod_NB_r13* SRB1_config_NB = NULL; -// struct SRB_ToAddMod_NB_r13__rlc_Config_r13* SRB1_rlc_config_NB = NULL; -// struct SRB_ToAddMod_NB_r13__logicalChannelConfig_r13* SRB1_lchan_config_NB = NULL; - - struct LTE_SRB_ToAddMod_NB_r13* SRB1bis_config_NB_IoT = NULL; - struct LTE_SRB_ToAddMod_NB_r13__rlc_Config_r13* SRB1bis_rlc_config_NB_IoT = NULL; - struct LTE_SRB_ToAddMod_NB_r13__logicalChannelConfig_r13* SRB1bis_lchan_config_NB_IoT = NULL; - - //No UL_specific parameters for NB-IoT in LogicalChanelConfig-NB - - LTE_PhysicalConfigDedicated_NB_r13_t* physicalConfigDedicated2_NB_IoT = NULL; - LTE_DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; - LTE_RRCConnectionSetup_NB_t* rrcConnectionSetup_NB_IoT = NULL; - - memset((void *)&dl_ccch_msg_NB_IoT,0,sizeof(LTE_DL_CCCH_Message_NB_t)); - dl_ccch_msg_NB_IoT.message.present = LTE_DL_CCCH_MessageType_NB_PR_c1; - dl_ccch_msg_NB_IoT.message.choice.c1.present = LTE_DL_CCCH_MessageType_NB__c1_PR_rrcConnectionSetup_r13; - rrcConnectionSetup_NB_IoT = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionSetup_r13; - - - if (*SRB_configList_NB_IoT) { - free(*SRB_configList_NB_IoT); - } - *SRB_configList_NB_IoT = CALLOC(1,sizeof(LTE_SRB_ToAddModList_NB_r13_t)); - -/// SRB1-------------------- - { -// SRB1_config_NB = CALLOC(1,sizeof(*SRB1_config_NB)); -// -// //no srb_Identity in SRB_ToAddMod_NB -// -// SRB1_rlc_config_NB = CALLOC(1,sizeof(*SRB1_rlc_config_NB)); -// SRB1_config_NB->rlc_Config_r13 = SRB1_rlc_config_NB; -// -// SRB1_rlc_config_NB->present = SRB_ToAddMod_NB_r13__rlc_Config_r13_PR_explicitValue; -// SRB1_rlc_config_NB->choice.explicitValue.present=RLC_Config_NB_r13_PR_am;//the only possible in NB_IoT -// -//// SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.t_PollRetransmit_r13 = enb_properties.properties[ctxt_pP->module_id]->srb1_timer_poll_retransmit_r13; -//// SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.maxRetxThreshold_r13 = enb_properties.properties[ctxt_pP->module_id]->srb1_max_retx_threshold_r13; -//// //(musT be disabled--> SRB1 config pag 640 specs ) -//// SRB1_rlc_config_NB->choice.explicitValue.choice.am.dl_AM_RLC_r13.enableStatusReportSN_Gap_r13 =NULL; -// -// -// SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.t_PollRetransmit_r13 = T_PollRetransmit_NB_r13_ms25000; -// SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.maxRetxThreshold_r13 = UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t8; -// //(musT be disabled--> SRB1 config pag 640 specs ) -// SRB1_rlc_config_NB->choice.explicitValue.choice.am.dl_AM_RLC_r13.enableStatusReportSN_Gap_r13 = NULL; -// -// SRB1_lchan_config_NB = CALLOC(1,sizeof(*SRB1_lchan_config_NB)); -// SRB1_config_NB->logicalChannelConfig_r13 = SRB1_lchan_config_NB; -// -// SRB1_lchan_config_NB->present = SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue; -// -// -// prioritySRB1 = CALLOC(1, sizeof(long)); -// *prioritySRB1 = 1; -// SRB1_lchan_config_NB->choice.explicitValue.priority_r13 = prioritySRB1; -// -// logicalChannelSR_Prohibit = CALLOC(1, sizeof(BOOLEAN_t)); -// *logicalChannelSR_Prohibit = 1; -// //schould be set to TRUE (specs pag 641) -// SRB1_lchan_config_NB->choice.explicitValue.logicalChannelSR_Prohibit_r13 = logicalChannelSR_Prohibit; -// -// //ADD SRB1 -// ASN_SEQUENCE_ADD(&(*SRB_configList_NB_IoT)->list,SRB1_config_NB); - } - -///SRB1bis (The configuration for SRB1 and SRB1bis is the same) the only difference is the logical channel identity = 3 but not set here - - SRB1bis_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_config_NB_IoT)); - - //no srb_Identity in SRB_ToAddMod_NB - SRB1bis_rlc_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_rlc_config_NB_IoT)); - SRB1bis_config_NB_IoT->rlc_Config_r13 = SRB1bis_rlc_config_NB_IoT; - - SRB1bis_rlc_config_NB_IoT->present = LTE_SRB_ToAddMod_NB_r13__rlc_Config_r13_PR_explicitValue; - SRB1bis_rlc_config_NB_IoT->choice.explicitValue.present=LTE_RLC_Config_NB_r13_PR_am;//MP: the only possible RLC config in NB_IoT - - SRB1bis_rlc_config_NB_IoT->choice.explicitValue.choice.am.ul_AM_RLC_r13.t_PollRetransmit_r13 = LTE_T_PollRetransmit_NB_r13_ms25000; - SRB1bis_rlc_config_NB_IoT->choice.explicitValue.choice.am.ul_AM_RLC_r13.maxRetxThreshold_r13 = LTE_UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t8; - //(musT be disabled--> SRB1 config pag 640 specs ) - SRB1bis_rlc_config_NB_IoT->choice.explicitValue.choice.am.dl_AM_RLC_r13.enableStatusReportSN_Gap_r13 =NULL; - - SRB1bis_lchan_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_lchan_config_NB_IoT)); - SRB1bis_config_NB_IoT->logicalChannelConfig_r13 = SRB1bis_lchan_config_NB_IoT; - - SRB1bis_lchan_config_NB_IoT->present = LTE_SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue; - - prioritySRB1bis = CALLOC(1, sizeof(long)); - *prioritySRB1bis = 1; //same as SRB1? - SRB1bis_lchan_config_NB_IoT->choice.explicitValue.priority_r13 = prioritySRB1bis; - - logicalChannelSR_Prohibit = CALLOC(1, sizeof(BOOLEAN_t)); - *logicalChannelSR_Prohibit = 1; //schould be set to TRUE (specs pag 641) - SRB1bis_lchan_config_NB_IoT->choice.explicitValue.logicalChannelSR_Prohibit_r13 = logicalChannelSR_Prohibit; - - //ADD SRB1bis - //MP: Actually there is no way to distinguish SRB1 and SRB1bis once put in the list - //MP: SRB_ToAddModList_NB_r13_t size = 1 - ASN_SEQUENCE_ADD(&(*SRB_configList_NB_IoT)->list,SRB1bis_config_NB_IoT); - - - // PhysicalConfigDedicated (NPDCCH, NPUSCH, CarrierConfig, UplinkPowerControl) - - physicalConfigDedicated2_NB_IoT = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT)); - *physicalConfigDedicated_NB_IoT = physicalConfigDedicated2_NB_IoT; - - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13= CALLOC(1, sizeof(*physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13)); - physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13 = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13)); - physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13 = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13)); - physicalConfigDedicated2_NB_IoT->uplinkPowerControlDedicated_r13 = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT->uplinkPowerControlDedicated_r13)); - - //no tpc, no cqi and no pucch, no pdsch, no soundingRS, no AntennaInfo, no scheduling request config - - /* - * NB-IoT supports the operation with either one or two antenna ports, AP0 and AP1. - * For the latter case, Space Frequency Block Coding (SFBC) is applied. - * Once selected, the same transmission scheme applies to NPBCH, NPDCCH, and NPDSCH. - * */ - - //FIXME: MP: CarrierConfigDedicated check the set values ---------------------------------------------- + if (*SRB_configList_NB_IoT) { + free(*SRB_configList_NB_IoT); + } + *SRB_configList_NB_IoT = CALLOC(1,sizeof(LTE_SRB_ToAddModList_NB_r13_t)); + /// SRB1-------------------- + { + // SRB1_config_NB = CALLOC(1,sizeof(*SRB1_config_NB)); + // + // //no srb_Identity in SRB_ToAddMod_NB + // + // SRB1_rlc_config_NB = CALLOC(1,sizeof(*SRB1_rlc_config_NB)); + // SRB1_config_NB->rlc_Config_r13 = SRB1_rlc_config_NB; + // + // SRB1_rlc_config_NB->present = SRB_ToAddMod_NB_r13__rlc_Config_r13_PR_explicitValue; + // SRB1_rlc_config_NB->choice.explicitValue.present=RLC_Config_NB_r13_PR_am;//the only possible in NB_IoT + // + //// SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.t_PollRetransmit_r13 = enb_properties.properties[ctxt_pP->module_id]->srb1_timer_poll_retransmit_r13; + //// SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.maxRetxThreshold_r13 = enb_properties.properties[ctxt_pP->module_id]->srb1_max_retx_threshold_r13; + //// //(musT be disabled--> SRB1 config pag 640 specs ) + //// SRB1_rlc_config_NB->choice.explicitValue.choice.am.dl_AM_RLC_r13.enableStatusReportSN_Gap_r13 =NULL; + // + // + // SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.t_PollRetransmit_r13 = T_PollRetransmit_NB_r13_ms25000; + // SRB1_rlc_config_NB->choice.explicitValue.choice.am.ul_AM_RLC_r13.maxRetxThreshold_r13 = UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t8; + // //(musT be disabled--> SRB1 config pag 640 specs ) + // SRB1_rlc_config_NB->choice.explicitValue.choice.am.dl_AM_RLC_r13.enableStatusReportSN_Gap_r13 = NULL; + // + // SRB1_lchan_config_NB = CALLOC(1,sizeof(*SRB1_lchan_config_NB)); + // SRB1_config_NB->logicalChannelConfig_r13 = SRB1_lchan_config_NB; + // + // SRB1_lchan_config_NB->present = SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue; + // + // + // prioritySRB1 = CALLOC(1, sizeof(long)); + // *prioritySRB1 = 1; + // SRB1_lchan_config_NB->choice.explicitValue.priority_r13 = prioritySRB1; + // + // logicalChannelSR_Prohibit = CALLOC(1, sizeof(BOOLEAN_t)); + // *logicalChannelSR_Prohibit = 1; + // //schould be set to TRUE (specs pag 641) + // SRB1_lchan_config_NB->choice.explicitValue.logicalChannelSR_Prohibit_r13 = logicalChannelSR_Prohibit; + // + // //ADD SRB1 + // ASN_SEQUENCE_ADD(&(*SRB_configList_NB_IoT)->list,SRB1_config_NB); + } + ///SRB1bis (The configuration for SRB1 and SRB1bis is the same) the only difference is the logical channel identity = 3 but not set here + SRB1bis_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_config_NB_IoT)); + //no srb_Identity in SRB_ToAddMod_NB + SRB1bis_rlc_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_rlc_config_NB_IoT)); + SRB1bis_config_NB_IoT->rlc_Config_r13 = SRB1bis_rlc_config_NB_IoT; + SRB1bis_rlc_config_NB_IoT->present = LTE_SRB_ToAddMod_NB_r13__rlc_Config_r13_PR_explicitValue; + SRB1bis_rlc_config_NB_IoT->choice.explicitValue.present=LTE_RLC_Config_NB_r13_PR_am;//MP: the only possible RLC config in NB_IoT + SRB1bis_rlc_config_NB_IoT->choice.explicitValue.choice.am.ul_AM_RLC_r13.t_PollRetransmit_r13 = LTE_T_PollRetransmit_NB_r13_ms25000; + SRB1bis_rlc_config_NB_IoT->choice.explicitValue.choice.am.ul_AM_RLC_r13.maxRetxThreshold_r13 = LTE_UL_AM_RLC_NB_r13__maxRetxThreshold_r13_t8; + //(musT be disabled--> SRB1 config pag 640 specs ) + SRB1bis_rlc_config_NB_IoT->choice.explicitValue.choice.am.dl_AM_RLC_r13.enableStatusReportSN_Gap_r13 =NULL; + SRB1bis_lchan_config_NB_IoT = CALLOC(1,sizeof(*SRB1bis_lchan_config_NB_IoT)); + SRB1bis_config_NB_IoT->logicalChannelConfig_r13 = SRB1bis_lchan_config_NB_IoT; + SRB1bis_lchan_config_NB_IoT->present = LTE_SRB_ToAddMod_NB_r13__logicalChannelConfig_r13_PR_explicitValue; + prioritySRB1bis = CALLOC(1, sizeof(long)); + *prioritySRB1bis = 1; //same as SRB1? + SRB1bis_lchan_config_NB_IoT->choice.explicitValue.priority_r13 = prioritySRB1bis; + logicalChannelSR_Prohibit = CALLOC(1, sizeof(BOOLEAN_t)); + *logicalChannelSR_Prohibit = 1; //schould be set to TRUE (specs pag 641) + SRB1bis_lchan_config_NB_IoT->choice.explicitValue.logicalChannelSR_Prohibit_r13 = logicalChannelSR_Prohibit; + //ADD SRB1bis + //MP: Actually there is no way to distinguish SRB1 and SRB1bis once put in the list + //MP: SRB_ToAddModList_NB_r13_t size = 1 + ASN_SEQUENCE_ADD(&(*SRB_configList_NB_IoT)->list,SRB1bis_config_NB_IoT); + // PhysicalConfigDedicated (NPDCCH, NPUSCH, CarrierConfig, UplinkPowerControl) + physicalConfigDedicated2_NB_IoT = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT)); + *physicalConfigDedicated_NB_IoT = physicalConfigDedicated2_NB_IoT; + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13= CALLOC(1, sizeof(*physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13)); + physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13 = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13)); + physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13 = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13)); + physicalConfigDedicated2_NB_IoT->uplinkPowerControlDedicated_r13 = CALLOC(1,sizeof(*physicalConfigDedicated2_NB_IoT->uplinkPowerControlDedicated_r13)); + //no tpc, no cqi and no pucch, no pdsch, no soundingRS, no AntennaInfo, no scheduling request config + /* + * NB-IoT supports the operation with either one or two antenna ports, AP0 and AP1. + * For the latter case, Space Frequency Block Coding (SFBC) is applied. + * Once selected, the same transmission scheme applies to NPBCH, NPDCCH, and NPDSCH. + * */ + //FIXME: MP: CarrierConfigDedicated check the set values ---------------------------------------------- //DL - - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.dl_CarrierFreq_r13.carrierFreq_r13=0;//random value set - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.downlinkBitmapNonAnchor_r13= CALLOC(1,sizeof(struct LTE_DL_CarrierConfigDedicated_NB_r13__downlinkBitmapNonAnchor_r13)); - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.downlinkBitmapNonAnchor_r13->present= - LTE_DL_CarrierConfigDedicated_NB_r13__downlinkBitmapNonAnchor_r13_PR_useNoBitmap_r13; - - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.dl_GapNonAnchor_r13 = CALLOC(1,sizeof(struct LTE_DL_CarrierConfigDedicated_NB_r13__dl_GapNonAnchor_r13)); - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.dl_GapNonAnchor_r13->present = - LTE_DL_CarrierConfigDedicated_NB_r13__dl_GapNonAnchor_r13_PR_useNoGap_r13; - - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.inbandCarrierInfo_r13= NULL; - + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.dl_CarrierFreq_r13.carrierFreq_r13=0;//random value set + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.downlinkBitmapNonAnchor_r13= CALLOC(1, + sizeof(struct LTE_DL_CarrierConfigDedicated_NB_r13__downlinkBitmapNonAnchor_r13)); + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.downlinkBitmapNonAnchor_r13->present= + LTE_DL_CarrierConfigDedicated_NB_r13__downlinkBitmapNonAnchor_r13_PR_useNoBitmap_r13; + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.dl_GapNonAnchor_r13 = CALLOC(1,sizeof(struct LTE_DL_CarrierConfigDedicated_NB_r13__dl_GapNonAnchor_r13)); + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.dl_GapNonAnchor_r13->present = + LTE_DL_CarrierConfigDedicated_NB_r13__dl_GapNonAnchor_r13_PR_useNoGap_r13; + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->dl_CarrierConfig_r13.inbandCarrierInfo_r13= NULL; //UL - physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->ul_CarrierConfig_r13.ul_CarrierFreq_r13= NULL; + physicalConfigDedicated2_NB_IoT->carrierConfigDedicated_r13->ul_CarrierConfig_r13.ul_CarrierFreq_r13= NULL; + // NPDCCH + physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13->npdcch_NumRepetitions_r13 =0; + physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13->npdcch_Offset_USS_r13 =0; + physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13->npdcch_StartSF_USS_r13=0; + // NPUSCH //(specs TS 36.331 v14.2.1 pag 643) /* OPTIONAL */ + physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13->ack_NACK_NumRepetitions_r13= NULL; + npusch_AllSymbols= CALLOC(1, sizeof(BOOLEAN_t)); + *npusch_AllSymbols= 1; //TRUE + physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13->npusch_AllSymbols_r13= npusch_AllSymbols; /* OPTIONAL */ + physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13->groupHoppingDisabled_r13=NULL; /* OPTIONAL */ + // UplinkPowerControlDedicated + physicalConfigDedicated2_NB_IoT->uplinkPowerControlDedicated_r13->p0_UE_NPUSCH_r13 = 0; // 0 dB (specs TS36.331 v14.2.1 pag 643) + //Fill the rrcConnectionSetup-NB message + rrcConnectionSetup_NB_IoT->rrc_TransactionIdentifier = Transaction_id; //input value + rrcConnectionSetup_NB_IoT->criticalExtensions.present = LTE_RRCConnectionSetup_NB__criticalExtensions_PR_c1; + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.present =LTE_RRCConnectionSetup_NB__criticalExtensions__c1_PR_rrcConnectionSetup_r13 ; + //MP: carry only SRB1bis at the moment and phyConfigDedicated + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.srb_ToAddModList_r13 = *SRB_configList_NB_IoT; + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.drb_ToAddModList_r13 = NULL; + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.drb_ToReleaseList_r13 = NULL; + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.rlf_TimersAndConstants_r13 = NULL; + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.physicalConfigDedicated_r13 = physicalConfigDedicated2_NB_IoT; + rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.mac_MainConfig_r13 = NULL; - // NPDCCH - physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13->npdcch_NumRepetitions_r13 =0; - physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13->npdcch_Offset_USS_r13 =0; - physicalConfigDedicated2_NB_IoT->npdcch_ConfigDedicated_r13->npdcch_StartSF_USS_r13=0; + if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { + xer_fprint(stdout, &asn_DEF_LTE_DL_CCCH_Message_NB, (void *)&dl_ccch_msg_NB_IoT); + } - // NPUSCH //(specs TS 36.331 v14.2.1 pag 643) /* OPTIONAL */ - physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13->ack_NACK_NumRepetitions_r13= NULL; - npusch_AllSymbols= CALLOC(1, sizeof(BOOLEAN_t)); - *npusch_AllSymbols= 1; //TRUE - physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13->npusch_AllSymbols_r13= npusch_AllSymbols; /* OPTIONAL */ - physicalConfigDedicated2_NB_IoT->npusch_ConfigDedicated_r13->groupHoppingDisabled_r13=NULL; /* OPTIONAL */ + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_CCCH_Message_NB, + NULL, + (void *)&dl_ccch_msg_NB_IoT, + buffer, + 100); - // UplinkPowerControlDedicated - physicalConfigDedicated2_NB_IoT->uplinkPowerControlDedicated_r13->p0_UE_NPUSCH_r13 = 0; // 0 dB (specs TS36.331 v14.2.1 pag 643) - - - //Fill the rrcConnectionSetup-NB message - rrcConnectionSetup_NB_IoT->rrc_TransactionIdentifier = Transaction_id; //input value - rrcConnectionSetup_NB_IoT->criticalExtensions.present = LTE_RRCConnectionSetup_NB__criticalExtensions_PR_c1; - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.present =LTE_RRCConnectionSetup_NB__criticalExtensions__c1_PR_rrcConnectionSetup_r13 ; - //MP: carry only SRB1bis at the moment and phyConfigDedicated - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.srb_ToAddModList_r13 = *SRB_configList_NB_IoT; - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.drb_ToAddModList_r13 = NULL; - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.drb_ToReleaseList_r13 = NULL; - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.rlf_TimersAndConstants_r13 = NULL; - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.physicalConfigDedicated_r13 = physicalConfigDedicated2_NB_IoT; - rrcConnectionSetup_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionSetup_r13.radioResourceConfigDedicated_r13.mac_MainConfig_r13 = NULL; - - if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_DL_CCCH_Message_NB, (void*)&dl_ccch_msg_NB_IoT); - } - enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_CCCH_Message_NB, - NULL, - (void*)&dl_ccch_msg_NB_IoT, - buffer, - 100); - - if (enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - } + if (enc_rval.encoded <= 0) { + LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + } #ifdef USER_MODE - LOG_D(RRC,"RRCConnectionSetup-NB Encoded %zd bits (%zd bytes), ecause %d\n", - enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); + LOG_D(RRC,"RRCConnectionSetup-NB Encoded %zd bits (%zd bytes), ecause %d\n", + enc_rval.encoded,(enc_rval.encoded+7)/8,ecause); #endif - - return((enc_rval.encoded+7)/8); + return((enc_rval.encoded+7)/8); } /*do_SecurityModeCommand - exactly the same as previous implementation*/ uint8_t do_SecurityModeCommand_NB_IoT( - const protocol_ctxt_t* const ctxt_pP, - uint8_t* const buffer, + const protocol_ctxt_t *const ctxt_pP, + uint8_t *const buffer, const uint8_t Transaction_id, const uint8_t cipheringAlgorithm, - const uint8_t integrityProtAlgorithm) -{ + const uint8_t integrityProtAlgorithm) { LTE_DL_DCCH_Message_NB_t dl_dcch_msg_NB_IoT; asn_enc_rval_t enc_rval; - memset(&dl_dcch_msg_NB_IoT,0,sizeof(LTE_DL_DCCH_Message_NB_t)); - dl_dcch_msg_NB_IoT.message.present = LTE_DL_DCCH_MessageType_NB_PR_c1; dl_dcch_msg_NB_IoT.message.choice.c1.present = LTE_DL_DCCH_MessageType_NB__c1_PR_securityModeCommand_r13; - dl_dcch_msg_NB_IoT.message.choice.c1.choice.securityModeCommand_r13.rrc_TransactionIdentifier = Transaction_id; dl_dcch_msg_NB_IoT.message.choice.c1.choice.securityModeCommand_r13.criticalExtensions.present = LTE_SecurityModeCommand__criticalExtensions_PR_c1; - dl_dcch_msg_NB_IoT.message.choice.c1.choice.securityModeCommand_r13.criticalExtensions.choice.c1.present = - LTE_SecurityModeCommand__criticalExtensions__c1_PR_securityModeCommand_r8; - + LTE_SecurityModeCommand__criticalExtensions__c1_PR_securityModeCommand_r8; // the two following information could be based on the mod_id dl_dcch_msg_NB_IoT.message.choice.c1.choice.securityModeCommand_r13.criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.cipheringAlgorithm = (LTE_CipheringAlgorithm_r12_t)cipheringAlgorithm; //bug solved - dl_dcch_msg_NB_IoT.message.choice.c1.choice.securityModeCommand_r13.criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.integrityProtAlgorithm = (e_LTE_SecurityAlgorithmConfig__integrityProtAlgorithm)integrityProtAlgorithm; -//only changed "asn_DEF_DL_DCCH_Message_NB" + //only changed "asn_DEF_DL_DCCH_Message_NB" if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_DL_DCCH_Message_NB, (void*)&dl_dcch_msg_NB_IoT); + xer_fprint(stdout, &asn_DEF_LTE_DL_DCCH_Message_NB, (void *)&dl_dcch_msg_NB_IoT); } + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_DCCH_Message_NB, NULL, - (void*)&dl_dcch_msg_NB_IoT, + (void *)&dl_dcch_msg_NB_IoT, buffer, 100); + if (enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); } - -//#if defined(ENABLE_ITTI) -//# if !defined(DISABLE_XER_SPRINT).... - + //#if defined(ENABLE_ITTI) + //# if !defined(DISABLE_XER_SPRINT).... #ifdef USER_MODE LOG_D(RRC,"[NB-IoT %d] securityModeCommand-NB for UE %x Encoded %zd bits (%zd bytes)\n", ctxt_pP->module_id, @@ -976,47 +815,43 @@ uint8_t do_SecurityModeCommand_NB_IoT( /*do_UECapabilityEnquiry_NB_IoT - very similar to legacy lte*/ uint8_t do_UECapabilityEnquiry_NB_IoT( - const protocol_ctxt_t* const ctxt_pP, - uint8_t* const buffer, + const protocol_ctxt_t *const ctxt_pP, + uint8_t *const buffer, const uint8_t Transaction_id ) { - LTE_DL_DCCH_Message_NB_t dl_dcch_msg_NB_IoT; //no RAT type in NB-IoT asn_enc_rval_t enc_rval; - memset(&dl_dcch_msg_NB_IoT,0,sizeof(LTE_DL_DCCH_Message_NB_t)); - dl_dcch_msg_NB_IoT.message.present = LTE_DL_DCCH_MessageType_NB_PR_c1; dl_dcch_msg_NB_IoT.message.choice.c1.present = LTE_DL_DCCH_MessageType_NB__c1_PR_ueCapabilityEnquiry_r13; - dl_dcch_msg_NB_IoT.message.choice.c1.choice.ueCapabilityEnquiry_r13.rrc_TransactionIdentifier = Transaction_id; - dl_dcch_msg_NB_IoT.message.choice.c1.choice.ueCapabilityEnquiry_r13.criticalExtensions.present = LTE_UECapabilityEnquiry_NB__criticalExtensions_PR_c1; dl_dcch_msg_NB_IoT.message.choice.c1.choice.ueCapabilityEnquiry_r13.criticalExtensions.choice.c1.present = - LTE_UECapabilityEnquiry_NB__criticalExtensions__c1_PR_ueCapabilityEnquiry_r13; + LTE_UECapabilityEnquiry_NB__criticalExtensions__c1_PR_ueCapabilityEnquiry_r13; //no ue_CapabilityRequest (list of RAT_Type) -//only changed "asn_DEF_DL_DCCH_Message_NB" + //only changed "asn_DEF_DL_DCCH_Message_NB" if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_DL_DCCH_Message_NB, (void*)&dl_dcch_msg_NB_IoT); + xer_fprint(stdout, &asn_DEF_LTE_DL_DCCH_Message_NB, (void *)&dl_dcch_msg_NB_IoT); } + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_DCCH_Message_NB, NULL, - (void*)&dl_dcch_msg_NB_IoT, + (void *)&dl_dcch_msg_NB_IoT, buffer, 100); + if (enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - } - -//#if defined(ENABLE_ITTI) -//# if !defined(DISABLE_XER_SPRINT).... + LOG_E(RRC, "ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + } + //#if defined(ENABLE_ITTI) + //# if !defined(DISABLE_XER_SPRINT).... #ifdef USER_MODE LOG_D(RRC,"[NB-IoT %d] UECapabilityEnquiry-NB for UE %x Encoded %zd bits (%zd bytes)\n", ctxt_pP->module_id, @@ -1039,39 +874,32 @@ uint8_t do_UECapabilityEnquiry_NB_IoT( * (including RBs, MAC main configuration and physical channel configuration) * including any associated dedicated NAS information.*/ uint16_t do_RRCConnectionReconfiguration_NB_IoT( - const protocol_ctxt_t* const ctxt_pP, - uint8_t *buffer, - uint8_t Transaction_id, - LTE_SRB_ToAddModList_NB_r13_t *SRB1_list_NB, //SRB_ConfigList2 (default)--> only SRB1 - LTE_DRB_ToAddModList_NB_r13_t *DRB_list_NB_IoT, //DRB_ConfigList (default) - LTE_DRB_ToReleaseList_NB_r13_t *DRB_list2_NB_IoT, //is NULL when passed - struct LTE_PhysicalConfigDedicated_NB_r13 *physicalConfigDedicated_NB_IoT, - LTE_MAC_MainConfig_NB_r13_t *mac_MainConfig_NB_IoT, - struct LTE_RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13* dedicatedInfoNASList_NB_IoT) + const protocol_ctxt_t *const ctxt_pP, + uint8_t *buffer, + uint8_t Transaction_id, + LTE_SRB_ToAddModList_NB_r13_t *SRB1_list_NB, //SRB_ConfigList2 (default)--> only SRB1 + LTE_DRB_ToAddModList_NB_r13_t *DRB_list_NB_IoT, //DRB_ConfigList (default) + LTE_DRB_ToReleaseList_NB_r13_t *DRB_list2_NB_IoT, //is NULL when passed + struct LTE_PhysicalConfigDedicated_NB_r13 *physicalConfigDedicated_NB_IoT, + LTE_MAC_MainConfig_NB_r13_t *mac_MainConfig_NB_IoT, + struct LTE_RRCConnectionReconfiguration_NB_r13_IEs__dedicatedInfoNASList_r13 *dedicatedInfoNASList_NB_IoT) { - - //check on DRB_list if contains more than 2 DRB? - + //check on DRB_list if contains more than 2 DRB? asn_enc_rval_t enc_rval; LTE_DL_DCCH_Message_NB_t dl_dcch_msg_NB_IoT; LTE_RRCConnectionReconfiguration_NB_t *rrcConnectionReconfiguration_NB; - - memset(&dl_dcch_msg_NB_IoT,0,sizeof(LTE_DL_DCCH_Message_NB_t)); - dl_dcch_msg_NB_IoT.message.present = LTE_DL_DCCH_MessageType_NB_PR_c1; dl_dcch_msg_NB_IoT.message.choice.c1.present = LTE_DL_DCCH_MessageType_NB__c1_PR_rrcConnectionReconfiguration_r13; rrcConnectionReconfiguration_NB = &dl_dcch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionReconfiguration_r13; - // RRCConnectionReconfiguration rrcConnectionReconfiguration_NB->rrc_TransactionIdentifier = Transaction_id; rrcConnectionReconfiguration_NB->criticalExtensions.present = LTE_RRCConnectionReconfiguration_NB__criticalExtensions_PR_c1; rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.present =LTE_RRCConnectionReconfiguration_NB__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r13 ; - //RAdioResourceconfigDedicated rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13 = - CALLOC(1,sizeof(*rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13)); + CALLOC(1,sizeof(*rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13)); rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->srb_ToAddModList_r13 = SRB1_list_NB; //only SRB1 rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->drb_ToAddModList_r13 = DRB_list_NB_IoT; rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->drb_ToReleaseList_r13 = DRB_list2_NB_IoT; //NULL @@ -1081,126 +909,94 @@ uint16_t do_RRCConnectionReconfiguration_NB_IoT( if (mac_MainConfig_NB_IoT!=NULL) { rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13 = - CALLOC(1, sizeof(*rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13)); + CALLOC(1, sizeof(*rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13)); rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13->present =LTE_RadioResourceConfigDedicated_NB_r13__mac_MainConfig_r13_PR_explicitValue_r13; - //why memcopy only this one? + //why memcopy only this one? memcpy(&rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13->choice.explicitValue_r13, mac_MainConfig_NB_IoT, sizeof(*mac_MainConfig_NB_IoT)); - } else { - rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13=NULL; + rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.radioResourceConfigDedicated_r13->mac_MainConfig_r13=NULL; } //no measConfig, measIDlist //no mobilityControlInfo - rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.dedicatedInfoNASList_r13 = dedicatedInfoNASList_NB_IoT; //mainly used for cell-reselection/handover purposes?? rrcConnectionReconfiguration_NB->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r13.fullConfig_r13 = NULL; - enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_DCCH_Message_NB, NULL, - (void*)&dl_dcch_msg_NB_IoT, + (void *)&dl_dcch_msg_NB_IoT, buffer, RRC_BUF_SIZE); + if (enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed %s, %li\n", - enc_rval.failed_type->name, enc_rval.encoded); + LOG_E(RRC, "ASN1 message encoding failed %s, %li\n", + enc_rval.failed_type->name, enc_rval.encoded); } //changed only asn_DEF_DL_DCCH_Message_NB if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout,&asn_DEF_LTE_DL_DCCH_Message_NB,(void*)&dl_dcch_msg_NB_IoT); + xer_fprint(stdout,&asn_DEF_LTE_DL_DCCH_Message_NB,(void *)&dl_dcch_msg_NB_IoT); } -//#if defined(ENABLE_ITTI) -//# if !defined(DISABLE_XER_SPRINT)... - - + //#if defined(ENABLE_ITTI) + //# if !defined(DISABLE_XER_SPRINT)... LOG_I(RRC,"RRCConnectionReconfiguration-NB Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); - return((enc_rval.encoded+7)/8); } /*do_RRCConnectionReestablishmentReject - exactly the same as legacy LTE*/ uint8_t do_RRCConnectionReestablishmentReject_NB_IoT( - uint8_t Mod_id, - uint8_t* const buffer) -{ - + uint8_t Mod_id, + uint8_t *const buffer) { asn_enc_rval_t enc_rval; - LTE_DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; LTE_RRCConnectionReestablishmentReject_t *rrcConnectionReestablishmentReject; - memset((void *)&dl_ccch_msg_NB_IoT,0,sizeof(LTE_DL_CCCH_Message_NB_t)); dl_ccch_msg_NB_IoT.message.present = LTE_DL_CCCH_MessageType_NB_PR_c1; dl_ccch_msg_NB_IoT.message.choice.c1.present = LTE_DL_CCCH_MessageType_NB__c1_PR_rrcConnectionReestablishmentReject_r13; rrcConnectionReestablishmentReject = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionReestablishmentReject_r13; - // RRCConnectionReestablishmentReject //exactly the same as LTE rrcConnectionReestablishmentReject->criticalExtensions.present = LTE_RRCConnectionReestablishmentReject__criticalExtensions_PR_rrcConnectionReestablishmentReject_r8; //Only change in "asn_DEF_DL_CCCH_Message_NB" if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_DL_CCCH_Message_NB, (void*)&dl_ccch_msg_NB_IoT); + xer_fprint(stdout, &asn_DEF_LTE_DL_CCCH_Message_NB, (void *)&dl_ccch_msg_NB_IoT); } + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_CCCH_Message_NB, NULL, - (void*)&dl_ccch_msg_NB_IoT, + (void *)&dl_ccch_msg_NB_IoT, buffer, 100); + if (enc_rval.encoded <= 0) { - LOG_E(RRC,"ASN1 message encoding failed (%s, %lu)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + LOG_E(RRC,"ASN1 message encoding failed (%s, %lu)!\n", + enc_rval.failed_type->name, enc_rval.encoded); } //Only change in "asn_DEF_DL_CCCH_Message_NB" -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { - char message_string[20000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_CCCH_Message_NB, (void *) &dl_ccch_msg_NB_IoT)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB_NB_IoT, RRC_DL_CCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_ccch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_ccch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, Mod_id, msg_p); - } - } -# endif -#endif - #ifdef USER_MODE LOG_D(RRC,"RRCConnectionReestablishmentReject Encoded %zd bits (%zd bytes)\n", enc_rval.encoded,(enc_rval.encoded+7)/8); #endif - return((enc_rval.encoded+7)/8); } /*do_RRCConnectionReject_NB_IoT*/ uint8_t do_RRCConnectionReject_NB_IoT( - uint8_t Mod_id, - uint8_t* const buffer) + uint8_t Mod_id, + uint8_t *const buffer) { - asn_enc_rval_t enc_rval; - LTE_DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; LTE_RRCConnectionReject_NB_t *rrcConnectionReject_NB_IoT; - memset((void *)&dl_ccch_msg_NB_IoT,0,sizeof(LTE_DL_CCCH_Message_NB_t)); dl_ccch_msg_NB_IoT.message.present = LTE_DL_CCCH_MessageType_NB_PR_c1; dl_ccch_msg_NB_IoT.message.choice.c1.present = LTE_DL_CCCH_MessageType_NB__c1_PR_rrcConnectionReject_r13; rrcConnectionReject_NB_IoT = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionReject_r13; - // RRCConnectionReject-NB_IoT rrcConnectionReject_NB_IoT->criticalExtensions.present = LTE_RRCConnectionReject_NB__criticalExtensions_PR_c1; rrcConnectionReject_NB_IoT->criticalExtensions.choice.c1.present = LTE_RRCConnectionReject_NB__criticalExtensions__c1_PR_rrcConnectionReject_r13; @@ -1209,48 +1005,30 @@ uint8_t do_RRCConnectionReject_NB_IoT( //new-use of suspend indication //If present, this field indicates that the UE should remain suspended and not release its stored context. rrcConnectionReject_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReject_r13.rrc_SuspendIndication_r13= - CALLOC(1, sizeof(long)); + CALLOC(1, sizeof(long)); *(rrcConnectionReject_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReject_r13.rrc_SuspendIndication_r13)= - LTE_RRCConnectionReject_NB_r13_IEs__rrc_SuspendIndication_r13_true; + LTE_RRCConnectionReject_NB_r13_IEs__rrc_SuspendIndication_r13_true; //Only Modified "asn_DEF_DL_CCCH_Message_NB" if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_DL_CCCH_Message_NB, (void*)&dl_ccch_msg_NB_IoT); + xer_fprint(stdout, &asn_DEF_LTE_DL_CCCH_Message_NB, (void *)&dl_ccch_msg_NB_IoT); } + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_CCCH_Message_NB, NULL, - (void*)&dl_ccch_msg_NB_IoT, + (void *)&dl_ccch_msg_NB_IoT, buffer, 100); + if (enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed (%s, %ld)!\n", - enc_rval.failed_type->name, enc_rval.encoded); + LOG_E(RRC, "ASN1 message encoding failed (%s, %ld)!\n", + enc_rval.failed_type->name, enc_rval.encoded); } -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { - char message_string[20000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_CCCH_Message_NB, (void *) &dl_ccch_msg_NB_IoT)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB_NB_IoT, RRC_DL_CCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_ccch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_ccch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, Mod_id, msg_p); - } - } -# endif -#endif - #ifdef USER_MODE LOG_D(RRC,"RRCConnectionReject-NB Encoded %zd bits (%zd bytes)\n", enc_rval.encoded,(enc_rval.encoded+7)/8); #endif - return((enc_rval.encoded+7)/8); } @@ -1260,19 +1038,16 @@ uint8_t do_RRCConnectionReject_NB_IoT( /*do_DLInformationTransfer_NB*/ uint8_t do_DLInformationTransfer_NB_IoT( - uint8_t Mod_id, - uint8_t **buffer, - uint8_t transaction_id, - uint32_t pdu_length, - uint8_t *pdu_buffer) + uint8_t Mod_id, + uint8_t **buffer, + uint8_t transaction_id, + uint32_t pdu_length, + uint8_t *pdu_buffer) { ssize_t encoded; - LTE_DL_DCCH_Message_NB_t dl_dcch_msg_NB_IoT; - memset(&dl_dcch_msg_NB_IoT, 0, sizeof(LTE_DL_DCCH_Message_NB_t)); - dl_dcch_msg_NB_IoT.message.present = LTE_DL_DCCH_MessageType_NB_PR_c1; dl_dcch_msg_NB_IoT.message.choice.c1.present = LTE_DL_DCCH_MessageType_NB__c1_PR_dlInformationTransfer_r13; dl_dcch_msg_NB_IoT.message.choice.c1.choice.dlInformationTransfer_r13.rrc_TransactionIdentifier = transaction_id; @@ -1280,29 +1055,8 @@ uint8_t do_DLInformationTransfer_NB_IoT( dl_dcch_msg_NB_IoT.message.choice.c1.choice.dlInformationTransfer_r13.criticalExtensions.choice.c1.present = LTE_DLInformationTransfer_NB__criticalExtensions__c1_PR_dlInformationTransfer_r13; dl_dcch_msg_NB_IoT.message.choice.c1.choice.dlInformationTransfer_r13.criticalExtensions.choice.c1.choice.dlInformationTransfer_r13.dedicatedInfoNAS_r13.size = pdu_length; dl_dcch_msg_NB_IoT.message.choice.c1.choice.dlInformationTransfer_r13.criticalExtensions.choice.c1.choice.dlInformationTransfer_r13.dedicatedInfoNAS_r13.buf = pdu_buffer; - - encoded = uper_encode_to_new_buffer (&asn_DEF_LTE_DL_DCCH_Message_NB, NULL, (void*) &dl_dcch_msg_NB_IoT, (void **) buffer); - + encoded = uper_encode_to_new_buffer (&asn_DEF_LTE_DL_DCCH_Message_NB, NULL, (void *) &dl_dcch_msg_NB_IoT, (void **) buffer); //only change in "asn_DEF_DL_DCCH_Message_NB" -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { - char message_string[10000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_DCCH_Message_NB, (void *)&dl_dcch_msg_NB_IoT)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB_NB_IoT, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_dcch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, Mod_id, msg_p); - } - } -# endif -#endif - return encoded; } @@ -1313,70 +1067,43 @@ uint8_t do_DLInformationTransfer_NB_IoT( /*do_RRCConnectionReestablishment_NB-->used to re-establish SRB1*/ //which parameter to use? uint8_t do_RRCConnectionReestablishment_NB_IoT( - uint8_t Mod_id, - uint8_t* const buffer, - const uint8_t Transaction_id, - const NB_IoT_DL_FRAME_PARMS* const frame_parms, //to be changed - LTE_SRB_ToAddModList_NB_r13_t* SRB_list_NB_IoT) //should contain SRB1 already configured? -{ + uint8_t Mod_id, + uint8_t *const buffer, + const uint8_t Transaction_id, + const NB_IoT_DL_FRAME_PARMS *const frame_parms, //to be changed + LTE_SRB_ToAddModList_NB_r13_t *SRB_list_NB_IoT) { //should contain SRB1 already configured? + asn_enc_rval_t enc_rval; + LTE_DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; + LTE_RRCConnectionReestablishment_NB_t *rrcConnectionReestablishment_NB_IoT; + memset(&dl_ccch_msg_NB_IoT, 0, sizeof(LTE_DL_CCCH_Message_NB_t)); + dl_ccch_msg_NB_IoT.message.present = LTE_DL_CCCH_MessageType_NB_PR_c1; + dl_ccch_msg_NB_IoT.message.choice.c1.present = LTE_DL_CCCH_MessageType_NB__c1_PR_rrcConnectionReestablishment_r13; + rrcConnectionReestablishment_NB_IoT = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionReestablishment_r13; + //rrcConnectionReestablishment_NB + rrcConnectionReestablishment_NB_IoT->rrc_TransactionIdentifier = Transaction_id; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.present = LTE_RRCConnectionReestablishment_NB__criticalExtensions_PR_c1; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.present = LTE_RRCConnectionReestablishment_NB__criticalExtensions__c1_PR_rrcConnectionReestablishment_r13; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.srb_ToAddModList_r13 = SRB_list_NB_IoT; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.drb_ToAddModList_r13 = NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.drb_ToReleaseList_r13 = NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.rlf_TimersAndConstants_r13= NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.mac_MainConfig_r13= NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.physicalConfigDedicated_r13 = NULL; + rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.nextHopChainingCount_r13=0; + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_CCCH_Message_NB, + NULL, + (void *)&dl_ccch_msg_NB_IoT, + buffer, + RRC_BUF_SIZE); - asn_enc_rval_t enc_rval; - LTE_DL_CCCH_Message_NB_t dl_ccch_msg_NB_IoT; - LTE_RRCConnectionReestablishment_NB_t* rrcConnectionReestablishment_NB_IoT; + if (enc_rval.encoded <= 0) { + LOG_E(RRC, "ASN1 message encoding failed (%s, %li)!\n", + enc_rval.failed_type->name, enc_rval.encoded); + } - memset(&dl_ccch_msg_NB_IoT, 0, sizeof(LTE_DL_CCCH_Message_NB_t)); - - dl_ccch_msg_NB_IoT.message.present = LTE_DL_CCCH_MessageType_NB_PR_c1; - dl_ccch_msg_NB_IoT.message.choice.c1.present = LTE_DL_CCCH_MessageType_NB__c1_PR_rrcConnectionReestablishment_r13; - rrcConnectionReestablishment_NB_IoT = &dl_ccch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionReestablishment_r13; - - //rrcConnectionReestablishment_NB - rrcConnectionReestablishment_NB_IoT->rrc_TransactionIdentifier = Transaction_id; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.present = LTE_RRCConnectionReestablishment_NB__criticalExtensions_PR_c1; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.present = LTE_RRCConnectionReestablishment_NB__criticalExtensions__c1_PR_rrcConnectionReestablishment_r13; - - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.srb_ToAddModList_r13 = SRB_list_NB_IoT; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.drb_ToAddModList_r13 = NULL; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.drb_ToReleaseList_r13 = NULL; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.rlf_TimersAndConstants_r13= NULL; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.mac_MainConfig_r13= NULL; - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.radioResourceConfigDedicated_r13.physicalConfigDedicated_r13 = NULL; - - rrcConnectionReestablishment_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionReestablishment_r13.nextHopChainingCount_r13=0; - - enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_CCCH_Message_NB, - NULL, - (void*)&dl_ccch_msg_NB_IoT, - buffer, - RRC_BUF_SIZE); - - if (enc_rval.encoded <= 0) { - LOG_E(RRC, "ASN1 message encoding failed (%s, %li)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - } - - if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout,&asn_DEF_LTE_DL_CCCH_Message_NB,(void*)&dl_ccch_msg_NB_IoT); - } - -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { - char message_string[30000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_CCCH_Message_NB, (void *) &dl_ccch_msg_NB_IoT)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_ENB_NB_IoT, RRC_DL_CCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_ccch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_ccch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, Mod_id, msg_p); - } + if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { + xer_fprint(stdout,&asn_DEF_LTE_DL_CCCH_Message_NB,(void *)&dl_ccch_msg_NB_IoT); } -# endif -#endif LOG_I(RRC,"RRCConnectionReestablishment-NB Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); return 0; @@ -1386,40 +1113,29 @@ uint8_t do_RRCConnectionReestablishment_NB_IoT( uint8_t do_RRCConnectionRelease_NB_IoT( uint8_t Mod_id, uint8_t *buffer, - const uint8_t Transaction_id) -{ - + const uint8_t Transaction_id) { asn_enc_rval_t enc_rval; - LTE_DL_DCCH_Message_NB_t dl_dcch_msg_NB_IoT; LTE_RRCConnectionRelease_NB_t *rrcConnectionRelease_NB_IoT; - - memset(&dl_dcch_msg_NB_IoT,0,sizeof(LTE_DL_DCCH_Message_NB_t)); - dl_dcch_msg_NB_IoT.message.present = LTE_DL_DCCH_MessageType_NB_PR_c1; dl_dcch_msg_NB_IoT.message.choice.c1.present = LTE_DL_DCCH_MessageType_NB__c1_PR_rrcConnectionRelease_r13; rrcConnectionRelease_NB_IoT = &dl_dcch_msg_NB_IoT.message.choice.c1.choice.rrcConnectionRelease_r13; - // RRCConnectionRelease rrcConnectionRelease_NB_IoT->rrc_TransactionIdentifier = Transaction_id; rrcConnectionRelease_NB_IoT->criticalExtensions.present = LTE_RRCConnectionRelease_NB__criticalExtensions_PR_c1; rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.present = LTE_RRCConnectionRelease_NB__criticalExtensions__c1_PR_rrcConnectionRelease_r13 ; - rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.releaseCause_r13 = LTE_ReleaseCause_NB_r13_other; rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.redirectedCarrierInfo_r13 = NULL; rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.extendedWaitTime_r13 = NULL; - //Why allocate memory for non critical extension? rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.nonCriticalExtension=CALLOC(1, sizeof(*rrcConnectionRelease_NB_IoT->criticalExtensions.choice.c1.choice.rrcConnectionRelease_r13.nonCriticalExtension)); - enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_DL_DCCH_Message_NB, NULL, - (void*)&dl_dcch_msg_NB_IoT, + (void *)&dl_dcch_msg_NB_IoT, buffer, RRC_BUF_SIZE);//check - return((enc_rval.encoded+7)/8); } diff --git a/openair2/RRC/LTE/rrc_UE.c b/openair2/RRC/LTE/rrc_UE.c index 65150d32ab..49f9e16740 100644 --- a/openair2/RRC/LTE/rrc_UE.c +++ b/openair2/RRC/LTE/rrc_UE.c @@ -44,7 +44,7 @@ #include "common/utils/LOG/log.h" #include "common/utils/LOG/vcd_signal_dumper.h" #ifndef CELLULAR -#include "RRC/LTE/MESSAGES/asn1_msg.h" + #include "RRC/LTE/MESSAGES/asn1_msg.h" #endif #include "LTE_RRCConnectionRequest.h" #include "LTE_RRCConnectionReconfiguration.h" @@ -55,7 +55,7 @@ #include "LTE_BCCH-DL-SCH-Message.h" #include "LTE_PCCH-Message.h" #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) -#include "LTE_MCCH-Message.h" + #include "LTE_MCCH-Message.h" #endif #include "LTE_MeasConfig.h" #include "LTE_MeasGapConfig.h" @@ -66,11 +66,11 @@ #include "RRC/NAS/nas_config.h" #include "RRC/NAS/rb_config.h" #if ENABLE_RAL -#include "rrc_UE_ral.h" + #include "rrc_UE_ral.h" #endif #if defined(ENABLE_SECURITY) -# include "UTIL/OSA/osa_defs.h" + #include "UTIL/OSA/osa_defs.h" #endif #include "pdcp.h" @@ -78,7 +78,7 @@ #include "msc.h" #if defined(ENABLE_ITTI) -# include "intertask_interface.h" + #include "intertask_interface.h" #endif #include "SIMULATION/TOOLS/sim.h" // for taus @@ -86,52 +86,52 @@ #include "openair2/LAYER2/MAC/mac_extern.h" #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) -#include "LTE_SL-Preconfiguration-r12.h" + #include "LTE_SL-Preconfiguration-r12.h" -//for D2D -int ctrl_sock_fd; -#define BUFSIZE 1024 -struct sockaddr_in prose_app_addr; -int slrb_id; -int send_ue_information = 0; + //for D2D + int ctrl_sock_fd; + #define BUFSIZE 1024 + struct sockaddr_in prose_app_addr; + int slrb_id; + int send_ue_information = 0; #endif // for malloc_clear #include "PHY/defs_UE.h" extern void pdcp_config_set_security( - const protocol_ctxt_t* const ctxt_pP, - pdcp_t * const pdcp_pP, + const protocol_ctxt_t *const ctxt_pP, + pdcp_t *const pdcp_pP, const rb_id_t rb_idP, const uint16_t lc_idP, const uint8_t security_modeP, - uint8_t * const kRRCenc, - uint8_t * const kRRCint, - uint8_t * const kUPenc); + uint8_t *const kRRCenc, + uint8_t *const kRRCint, + uint8_t *const kUPenc); // internal prototypes -void rrc_ue_process_securityModeCommand( const protocol_ctxt_t* const ctxt_pP, LTE_SecurityModeCommand_t* const securityModeCommand, const uint8_t eNB_index ); +void rrc_ue_process_securityModeCommand( const protocol_ctxt_t *const ctxt_pP, LTE_SecurityModeCommand_t *const securityModeCommand, const uint8_t eNB_index ); -static int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ); +static int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ); -static int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t rsrq, const uint8_t rsrp ); +static int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t rsrq, const uint8_t rsrp ); /** \brief Generates/Encodes RRCConnnectionSetupComplete message at UE * \param ctxt_pP Running context * \param eNB_index Index of corresponding eNB/CH * \param Transaction_id Transaction identifier */ -static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ); +static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ); /** \brief Generates/Encodes RRCConnectionReconfigurationComplete message at UE * \param ctxt_pP Running context * \param eNB_index Index of corresponding eNB/CH * \param Transaction_id RRC transaction identifier */ -static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ); +static void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ); -static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index ); +static void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t eNB_index ); static uint8_t check_trigger_meas_event( module_id_t module_idP, @@ -144,7 +144,8 @@ static uint8_t check_trigger_meas_event( #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) static void decode_MBSFNAreaConfiguration(module_id_t module_idP, uint8_t eNB_index, frame_t frameP,uint8_t mbsfn_sync_area); -uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,LTE_SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode); +uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,LTE_SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, + SL_TRIGGER_t mode); #endif @@ -157,36 +158,21 @@ uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt /*------------------------------------------------------------------------------*/ /* to avoid gcc warnings when compiling with certain options */ #if defined(ENABLE_USE_MME) || ENABLE_RAL -static Rrc_State_t rrc_get_state (module_id_t ue_mod_idP) -{ +static Rrc_State_t rrc_get_state (module_id_t ue_mod_idP) { return UE_rrc_inst[ue_mod_idP].RrcState; } #endif -static Rrc_Sub_State_t rrc_get_sub_state (module_id_t ue_mod_idP) -{ +static Rrc_Sub_State_t rrc_get_sub_state (module_id_t ue_mod_idP) { return UE_rrc_inst[ue_mod_idP].RrcSubState; } -static int rrc_set_state (module_id_t ue_mod_idP, Rrc_State_t state) -{ +static int rrc_set_state (module_id_t ue_mod_idP, Rrc_State_t state) { AssertFatal ((RRC_STATE_FIRST <= state) && (state <= RRC_STATE_LAST), "Invalid state %d!\n", state); if (UE_rrc_inst[ue_mod_idP].RrcState != state) { UE_rrc_inst[ue_mod_idP].RrcState = state; - -#if defined(ENABLE_ITTI) - { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message(TASK_RRC_UE, RRC_STATE_IND); - RRC_STATE_IND(msg_p).state = UE_rrc_inst[ue_mod_idP].RrcState; - RRC_STATE_IND(msg_p).sub_state = UE_rrc_inst[ue_mod_idP].RrcSubState; - - itti_send_msg_to_task(TASK_UNKNOWN, UE_MODULE_ID_TO_INSTANCE(ue_mod_idP), msg_p); - } -#endif return (1); } @@ -194,43 +180,30 @@ static int rrc_set_state (module_id_t ue_mod_idP, Rrc_State_t state) } //----------------------------------------------------------------------------- -static int rrc_set_sub_state( module_id_t ue_mod_idP, Rrc_Sub_State_t subState ) -{ +static int rrc_set_sub_state( module_id_t ue_mod_idP, Rrc_Sub_State_t subState ) { #if (defined(ENABLE_ITTI) && (defined(ENABLE_USE_MME) || ENABLE_RAL)) switch (UE_rrc_inst[ue_mod_idP].RrcState) { - case RRC_STATE_INACTIVE: - AssertFatal ((RRC_SUB_STATE_INACTIVE_FIRST <= subState) && (subState <= RRC_SUB_STATE_INACTIVE_LAST), - "Invalid sub state %d for state %d!\n", subState, UE_rrc_inst[ue_mod_idP].RrcState); - break; + case RRC_STATE_INACTIVE: + AssertFatal ((RRC_SUB_STATE_INACTIVE_FIRST <= subState) && (subState <= RRC_SUB_STATE_INACTIVE_LAST), + "Invalid sub state %d for state %d!\n", subState, UE_rrc_inst[ue_mod_idP].RrcState); + break; - case RRC_STATE_IDLE: - AssertFatal ((RRC_SUB_STATE_IDLE_FIRST <= subState) && (subState <= RRC_SUB_STATE_IDLE_LAST), - "Invalid sub state %d for state %d!\n", subState, UE_rrc_inst[ue_mod_idP].RrcState); - break; + case RRC_STATE_IDLE: + AssertFatal ((RRC_SUB_STATE_IDLE_FIRST <= subState) && (subState <= RRC_SUB_STATE_IDLE_LAST), + "Invalid sub state %d for state %d!\n", subState, UE_rrc_inst[ue_mod_idP].RrcState); + break; - case RRC_STATE_CONNECTED: - AssertFatal ((RRC_SUB_STATE_CONNECTED_FIRST <= subState) && (subState <= RRC_SUB_STATE_CONNECTED_LAST), - "Invalid sub state %d for state %d!\n", subState, UE_rrc_inst[ue_mod_idP].RrcState); - break; + case RRC_STATE_CONNECTED: + AssertFatal ((RRC_SUB_STATE_CONNECTED_FIRST <= subState) && (subState <= RRC_SUB_STATE_CONNECTED_LAST), + "Invalid sub state %d for state %d!\n", subState, UE_rrc_inst[ue_mod_idP].RrcState); + break; } #endif if (UE_rrc_inst[ue_mod_idP].RrcSubState != subState) { UE_rrc_inst[ue_mod_idP].RrcSubState = subState; - -#if defined(ENABLE_ITTI) - { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message(TASK_RRC_UE, RRC_STATE_IND); - RRC_STATE_IND(msg_p).state = UE_rrc_inst[ue_mod_idP].RrcState; - RRC_STATE_IND(msg_p).sub_state = UE_rrc_inst[ue_mod_idP].RrcSubState; - - itti_send_msg_to_task(TASK_UNKNOWN, UE_MODULE_ID_TO_INSTANCE(ue_mod_idP), msg_p); - } -#endif return (1); } @@ -240,33 +213,30 @@ static int rrc_set_sub_state( module_id_t ue_mod_idP, Rrc_Sub_State_t subState ) //----------------------------------------------------------------------------- void openair_rrc_on_ue( - const protocol_ctxt_t* const ctxt_pP + const protocol_ctxt_t *const ctxt_pP ) //----------------------------------------------------------------------------- { unsigned short i; + LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" UE?:OPENAIR RRC IN....\n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); - - LOG_I(RRC, PROTOCOL_RRC_CTXT_FMT" UE?:OPENAIR RRC IN....\n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP)); - - for (i = 0; i < NB_eNB_INST; i++) { - LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" Activating CCCH (eNB %d)\n", - PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), i); - UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Srb_id = CCCH; - memcpy (&UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Lchan_desc[0], &CCCH_LCHAN_DESC, LCHAN_DESC_SIZE); - memcpy (&UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Lchan_desc[1], &CCCH_LCHAN_DESC, LCHAN_DESC_SIZE); - rrc_config_buffer (&UE_rrc_inst[ctxt_pP->module_id].Srb0[i], CCCH, 1); - UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Active = 1; - } + for (i = 0; i < NB_eNB_INST; i++) { + LOG_D(RRC, PROTOCOL_RRC_CTXT_FMT" Activating CCCH (eNB %d)\n", + PROTOCOL_RRC_CTXT_ARGS(ctxt_pP), i); + UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Srb_id = CCCH; + memcpy (&UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Lchan_desc[0], &CCCH_LCHAN_DESC, LCHAN_DESC_SIZE); + memcpy (&UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Lchan_desc[1], &CCCH_LCHAN_DESC, LCHAN_DESC_SIZE); + rrc_config_buffer (&UE_rrc_inst[ctxt_pP->module_id].Srb0[i], CCCH, 1); + UE_rrc_inst[ctxt_pP->module_id].Srb0[i].Active = 1; + } } //----------------------------------------------------------------------------- -static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) -{ +static void init_SI_UE( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) { UE_rrc_inst[ctxt_pP->module_id].sizeof_SIB1[eNB_index] = 0; UE_rrc_inst[ctxt_pP->module_id].sizeof_SI[eNB_index] = 0; - UE_rrc_inst[ctxt_pP->module_id].SIB1[eNB_index] = (uint8_t*)malloc16_clear( 32 ); + UE_rrc_inst[ctxt_pP->module_id].SIB1[eNB_index] = (uint8_t *)malloc16_clear( 32 ); UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType1_t) ); UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType2_t) ); UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType3_t) ); @@ -284,21 +254,16 @@ static void init_SI_UE( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType18_r12_t) ); UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType19_r12_t) ); UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] = malloc16_clear( sizeof(LTE_SystemInformationBlockType21_r14_t) ); - #endif - UE_rrc_inst[ctxt_pP->module_id].SI[eNB_index] = (uint8_t*)malloc16_clear( 64 ); - - UE_rrc_inst[ctxt_pP->module_id].si[eNB_index] = (LTE_SystemInformation_t*)malloc16_clear( sizeof(LTE_SystemInformation_t) ); - + UE_rrc_inst[ctxt_pP->module_id].SI[eNB_index] = (uint8_t *)malloc16_clear( 64 ); + UE_rrc_inst[ctxt_pP->module_id].si[eNB_index] = (LTE_SystemInformation_t *)malloc16_clear( sizeof(LTE_SystemInformation_t) ); UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus = 0; UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt = 0; } #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) -void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) -{ +void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) { LOG_I(RRC,"Initializing Sidelink Pre-configuration for UE\n"); - UE->SL_Preconfiguration[eNB_index] = malloc16_clear( sizeof(struct LTE_SL_Preconfiguration_r12) ); UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.rohc_Profiles_r12.profile0x0001_r12 = true; UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.carrierFreq_r12 = 3350; @@ -306,7 +271,6 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.additionalSpectrumEmission_r12 = 0; UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.sl_bandwidth_r12 = LTE_SL_PreconfigGeneral_r12__sl_bandwidth_r12_n50; UE->SL_Preconfiguration[eNB_index]->preconfigGeneral_r12.tdd_ConfigSL_r12.subframeAssignmentSL_r12 = LTE_TDD_ConfigSL_r12__subframeAssignmentSL_r12_none; - UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncCP_Len_r12 = LTE_SL_CP_Len_r12_normal; UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator1_r12 = 0; UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncOffsetIndicator2_r12 = 0; @@ -317,7 +281,6 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.syncRefDiffHyst_r12 = LTE_SL_PreconfigSync_r12__syncRefDiffHyst_r12_dB0; UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1 = malloc16_clear(sizeof(struct LTE_SL_PreconfigSync_r12__ext1)); UE->SL_Preconfiguration[eNB_index]->preconfigSync_r12.ext1->syncTxPeriodic_r13 = NULL; - struct LTE_SL_PreconfigCommPool_r12 *preconfigpool = malloc16_clear(sizeof(struct LTE_SL_PreconfigCommPool_r12)); preconfigpool->sc_CP_Len_r12 = LTE_SL_CP_Len_r12_normal; preconfigpool->sc_Period_r12 = LTE_SL_PeriodComm_r12_sf40; @@ -340,7 +303,6 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0; preconfigpool->sc_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[4] = 0; preconfigpool->sc_TxParameters_r12 = 0; - preconfigpool->data_CP_Len_r12 = LTE_SL_CP_Len_r12_normal; // 20 PRBs for SL communications preconfigpool->data_TF_ResourceConfig_r12.prb_Num_r12 = 20; @@ -360,123 +322,117 @@ void init_SL_preconfig(UE_RRC_INST *UE, const uint8_t eNB_index ) preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[2] = 0xFF; preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[3] = 0xFF; preconfigpool->data_TF_ResourceConfig_r12.subframeBitmap_r12.choice.bs40_r12.buf[5] = 0xFF; - preconfigpool->dataHoppingConfig_r12.hoppingParameter_r12 = 0; preconfigpool->dataHoppingConfig_r12.numSubbands_r12 = LTE_SL_HoppingConfigComm_r12__numSubbands_r12_ns1; preconfigpool->dataHoppingConfig_r12.rb_Offset_r12 = 0; - preconfigpool->dataTxParameters_r12 = 0; - ASN_SEQUENCE_ADD(&UE->SL_Preconfiguration[eNB_index]->preconfigComm_r12.list,preconfigpool); - // Rel13 extensions UE->SL_Preconfiguration[eNB_index]->ext1 = NULL; -/* - // Establish a SLRB (using DRB 3 for now) - protocol_ctxt_t ctxt; - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + /* + // Establish a SLRB (using DRB 3 for now) + protocol_ctxt_t ctxt; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); - UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod)); - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - UE->DRB_config[0][0]->drb_Identity = 3; - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - // allowed value 5..15, value : x+4 - *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; - UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); - *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 3; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 - // TTN - Establish a new SLRB for PC5-S (using DRB 10 for now) - UE->DRB_config[0][1] = CALLOC(1,sizeof(struct DRB_ToAddMod)); - UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - UE->DRB_config[0][1]->drb_Identity = 10; - UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - // allowed value 5..15, value : x+4 - *(UE->DRB_config[0][1]->eps_BearerIdentity) = 10; - UE->DRB_config[0][1]->logicalChannelIdentity = CALLOC(1, sizeof(long)); - *(UE->DRB_config[0][1]->logicalChannelIdentity) = UE->DRB_config[0][1]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + // TTN - Establish a new SLRB for PC5-S (using DRB 10 for now) + UE->DRB_config[0][1] = CALLOC(1,sizeof(struct DRB_ToAddMod)); + UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][1]->drb_Identity = 10; + UE->DRB_config[0][1]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][1]->eps_BearerIdentity) = 10; + UE->DRB_config[0][1]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][1]->logicalChannelIdentity) = UE->DRB_config[0][1]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 - struct RLC_Config *DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config)); - struct PDCP_Config *DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config)); - struct PDCP_Config__rlc_UM *PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM)); - struct LogicalChannelConfig *DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig)); - struct LogicalChannelConfig__ul_SpecificParameters - *DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters)); - long *logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + struct RLC_Config *DRB_rlc_config = CALLOC(1,sizeof(struct RLC_Config)); + struct PDCP_Config *DRB_pdcp_config = CALLOC(1,sizeof(struct PDCP_Config)); + struct PDCP_Config__rlc_UM *PDCP_rlc_UM = CALLOC(1,sizeof(struct PDCP_Config__rlc_UM)); + struct LogicalChannelConfig *DRB_lchan_config = CALLOC(1,sizeof(struct LogicalChannelConfig)); + struct LogicalChannelConfig__ul_SpecificParameters + *DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LogicalChannelConfig__ul_SpecificParameters)); + long *logicalchannelgroup_drb = CALLOC(1, sizeof(long)); - DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional; - DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35; - UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; - UE->DRB_config[0][1]->rlc_Config = DRB_rlc_config; + DRB_rlc_config->present = RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + UE->DRB_config[0][1]->rlc_Config = DRB_rlc_config; - DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); - UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; - UE->DRB_config[0][1]->pdcp_Config = DRB_pdcp_config; - DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); - *DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity; - DRB_pdcp_config->rlc_AM = NULL; - DRB_pdcp_config->rlc_UM = NULL; + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + UE->DRB_config[0][1]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; - // avoid gcc warnings - (void)PDCP_rlc_UM; + // avoid gcc warnings + (void)PDCP_rlc_UM; - DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; - PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; - DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed; + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = PDCP_Config__headerCompression_PR_notUsed; - UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; - UE->DRB_config[0][1]->logicalChannelConfig = DRB_lchan_config; - DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); - DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + UE->DRB_config[0][1]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; - DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer - DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; - //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; - DRB_ul_SpecificParameters->bucketSizeDuration = - LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; - // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) - *logicalchannelgroup_drb = 1; - DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; - UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t)); - ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); - ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][1]); + UE->DRB_configList = CALLOC(1,sizeof(DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][1]); - rrc_pdcp_config_asn1_req(&ctxt, - (SRB_ToAddModList_t *) NULL, - UE->DRB_configList, - (DRB_ToReleaseList_t*) NULL, - 0xff, NULL, NULL, NULL -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - , (LTE_PMCH_InfoList_r9_t *) NULL -#endif - ,NULL); + rrc_pdcp_config_asn1_req(&ctxt, + (SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*) NULL, + 0xff, NULL, NULL, NULL + #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + , (LTE_PMCH_InfoList_r9_t *) NULL + #endif + ,NULL); - rrc_rlc_config_asn1_req(&ctxt, - (SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (DRB_ToReleaseList_t*)NULL -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL -#endif - ); -*/ + rrc_rlc_config_asn1_req(&ctxt, + (SRB_ToAddModList_t*)NULL, + UE->DRB_configList, + (DRB_ToReleaseList_t*)NULL + #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,(LTE_PMCH_InfoList_r9_t *)NULL + #endif + ); + */ } #endif //----------------------------------------------------------------------------- -void openair_rrc_ue_init_security( const protocol_ctxt_t* const ctxt_pP ) -{ +void openair_rrc_ue_init_security( const protocol_ctxt_t *const ctxt_pP ) { #if defined(ENABLE_SECURITY) // uint8_t *kRRCenc; // uint8_t *kRRCint; char ascii_buffer[65]; uint8_t i; - memset(UE_rrc_inst[ctxt_pP->module_id].kenb, ctxt_pP->module_id, 32); for (i = 0; i < 32; i++) { @@ -490,8 +446,7 @@ void openair_rrc_ue_init_security( const protocol_ctxt_t* const ctxt_pP ) } //----------------------------------------------------------------------------- -char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_index ) -{ +char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_index ) { protocol_ctxt_t ctxt; PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, NOT_A_RNTI, 0, 0,eNB_index); LOG_I(RRC, @@ -499,7 +454,6 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ PROTOCOL_RRC_CTXT_ARGS(&ctxt)); rrc_set_state (ue_mod_idP, RRC_STATE_INACTIVE); rrc_set_sub_state (ue_mod_idP, RRC_SUB_STATE_INACTIVE); - LOG_I(RRC,"[UE %d] INIT State = RRC_IDLE (eNB %d)\n",ctxt.module_id,eNB_index); UE_rrc_inst[ctxt.module_id].Info[eNB_index].State=RRC_IDLE; UE_rrc_inst[ctxt.module_id].Info[eNB_index].T300_active = 0; @@ -516,22 +470,16 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ #else UE_rrc_inst[ctxt.module_id].integrity_algorithm = LTE_SecurityAlgorithmConfig__integrityProtAlgorithm_reserved; #endif - openair_rrc_ue_init_security(&ctxt); init_SI_UE(&ctxt,eNB_index); LOG_D(RRC,PROTOCOL_RRC_CTXT_FMT" INIT: phy_sync_2_ch_ind\n", PROTOCOL_RRC_CTXT_ARGS(&ctxt)); - - - #ifndef NO_RRM send_msg(&S_rrc,msg_rrc_phy_synch_to_CH_ind(ctxt.module_id,eNB_index,UE_rrc_inst[ctxt.module_id].Mac_id)); #endif - #ifndef NO_RRM send_msg(&S_rrc,msg_rrc_phy_synch_to_CH_ind(ctxt.module_id,eNB_index,UE_rrc_inst[ctxt.module_id].Mac_id)); #endif - #ifdef NO_RRM //init ch SRB0, SRB1 & BDTCH openair_rrc_on_ue(&ctxt); #endif @@ -544,18 +492,14 @@ char openair_rrc_ue_init( const module_id_t ue_mod_idP, const unsigned char eNB_ UE_rrc_inst[ue_mod_idP].num_active_cba_groups = 0; #endif - return 0; } //----------------------------------------------------------------------------- -void rrc_ue_generate_RRCConnectionRequest( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) -{ - +void rrc_ue_generate_RRCConnectionRequest( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) { uint8_t i=0,rv[6]; if(UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.payload_size ==0) { - // Get RRCConnectionRequest, fill random for now // Generate random byte stream for contention resolution for (i=0; i<6; i++) { @@ -572,9 +516,8 @@ void rrc_ue_generate_RRCConnectionRequest( const protocol_ctxt_t* const ctxt_pP, UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.payload_size = do_RRCConnectionRequest( ctxt_pP->module_id, - (uint8_t*)UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.Payload, + (uint8_t *)UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.Payload, rv); - LOG_I(RRC,"[UE %d] : Frame %d, Logical Channel UL-CCCH (SRB0), Generating RRCConnectionRequest (bytes %d, eNB %d)\n", ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Srb0[eNB_index].Tx_buffer.payload_size, eNB_index); @@ -585,7 +528,6 @@ void rrc_ue_generate_RRCConnectionRequest( const protocol_ctxt_t* const ctxt_pP, LOG_T(RRC,"\n"); /*UE_rrc_inst[ue_mod_idP].Srb0[Idx].Tx_buffer.Payload[i] = taus()&0xff; UE_rrc_inst[ue_mod_idP].Srb0[Idx].Tx_buffer.payload_size =i; */ - } } @@ -611,12 +553,11 @@ static const char const nas_attach_req_imsi[] = { //----------------------------------------------------------------------------- void rrc_t310_expiration( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) //----------------------------------------------------------------------------- { - if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State != RRC_CONNECTED) { LOG_D(RRC, "Timer 310 expired, going to RRC_IDLE\n"); UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State = RRC_IDLE; @@ -628,7 +569,7 @@ rrc_t310_expiration( if (UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Active == 1) { LOG_D (RRC,"[Inst %d] eNB_index %d, Remove RB %d\n ", ctxt_pP->module_id, eNB_index, - UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Srb_info.Srb_id); + UE_rrc_inst[ctxt_pP->module_id].Srb2[eNB_index].Srb_info.Srb_id); rrc_pdcp_config_req (ctxt_pP, SRB_FLAG_YES, CONFIG_ACTION_REMOVE, @@ -650,43 +591,36 @@ rrc_t310_expiration( } //----------------------------------------------------------------------------- -static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ) -{ - +static void rrc_ue_generate_RRCConnectionSetupComplete( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ) { uint8_t buffer[100]; uint8_t size; - const char * nas_msg; + const char *nas_msg; int nas_msg_length; - #if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) - nas_msg = (char*) UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data; + nas_msg = (char *) UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.data; nas_msg_length = UE_rrc_inst[ctxt_pP->module_id].initialNasMsg.length; #else nas_msg = nas_attach_req_imsi; nas_msg_length = sizeof(nas_attach_req_imsi); #endif - size = do_RRCConnectionSetupComplete(ctxt_pP->module_id, buffer, Transaction_id, nas_msg_length, nas_msg); - LOG_I(RRC,"[UE %d][RAPROC] Frame %d : Logical Channel UL-DCCH (SRB1), Generating RRCConnectionSetupComplete (bytes%d, eNB %d)\n", ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); LOG_D(RLC, "[FRAME %05d][RRC_UE][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCConnectionSetupComplete to eNB %d MUI %d) --->][PDCP][MOD %02d][RB %02d]\n", ctxt_pP->frame, ctxt_pP->module_id+NB_eNB_INST, size, eNB_index, rrc_mui, ctxt_pP->module_id+NB_eNB_INST, DCCH); rrc_data_req_ue ( - ctxt_pP, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - size, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); + ctxt_pP, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + size, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); } //----------------------------------------------------------------------------- -void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ) -{ - +void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t Transaction_id ) { uint8_t buffer[32], size; size = do_RRCConnectionReconfigurationComplete(ctxt_pP, buffer, Transaction_id); LOG_I(RRC,PROTOCOL_RRC_CTXT_UE_FMT" Logical Channel UL-DCCH (SRB1), Generating RRCConnectionReconfigurationComplete (bytes %d, eNB_index %d)\n", @@ -701,66 +635,35 @@ void rrc_ue_generate_RRCConnectionReconfigurationComplete( const protocol_ctxt_t UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id), DCCH); rrc_data_req_ue ( - ctxt_pP, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - size, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); + ctxt_pP, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + size, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); } //----------------------------------------------------------------------------- // Called by L2 interface (MAC) -int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* const Srb_info, const uint8_t eNB_index ) -{ - LTE_DL_CCCH_Message_t* dl_ccch_msg=NULL; +int rrc_ue_decode_ccch( const protocol_ctxt_t *const ctxt_pP, const SRB_INFO *const Srb_info, const uint8_t eNB_index ) { + LTE_DL_CCCH_Message_t *dl_ccch_msg=NULL; asn_dec_rval_t dec_rval; int rval=0; - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_IN); // LOG_D(RRC,"[UE %d] Decoding DL-CCCH message (%d bytes), State %d\n",ue_mod_idP,Srb_info->Rx_buffer.payload_size, // UE_rrc_inst[ue_mod_idP].Info[eNB_index].State); - dec_rval = uper_decode(NULL, &asn_DEF_LTE_DL_CCCH_Message, - (void**)&dl_ccch_msg, - (uint8_t*)Srb_info->Rx_buffer.Payload, + (void **)&dl_ccch_msg, + (uint8_t *)Srb_info->Rx_buffer.Payload, 100,0,0); if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout,&asn_DEF_LTE_DL_CCCH_Message,(void*)dl_ccch_msg); + xer_fprint(stdout,&asn_DEF_LTE_DL_CCCH_Message,(void *)dl_ccch_msg); } -#if defined(ENABLE_ITTI) -# if defined(DISABLE_ITTI_XER_PRINT) - { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_CCCH_MESSAGE); - memcpy (&msg_p->ittiMsg, (void *) dl_ccch_msg, sizeof(RrcDlCcchMessage)); - - itti_send_msg_to_task (TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } -# else - { - char message_string[10000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_CCCH_Message, (void *)dl_ccch_msg)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_CCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_ccch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_ccch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } -# endif -#endif - if ((dec_rval.code != RC_OK) && (dec_rval.consumed==0)) { LOG_E(RRC,"[UE %d] Frame %d : Failed to decode DL-CCCH-Message (%zu bytes)\n",ctxt_pP->module_id,ctxt_pP->frame,dec_rval.consumed); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_CCCH, VCD_FUNCTION_OUT); @@ -768,74 +671,68 @@ int rrc_ue_decode_ccch( const protocol_ctxt_t* const ctxt_pP, const SRB_INFO* co } if (dl_ccch_msg->message.present == LTE_DL_CCCH_MessageType_PR_c1) { - if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_SI_RECEIVED) { - switch (dl_ccch_msg->message.choice.c1.present) { + case LTE_DL_CCCH_MessageType__c1_PR_NOTHING: + LOG_I(RRC, "[UE%d] Frame %d : Received PR_NOTHING on DL-CCCH-Message\n", + ctxt_pP->module_id, + ctxt_pP->frame); + rval = 0; + break; - case LTE_DL_CCCH_MessageType__c1_PR_NOTHING: - LOG_I(RRC, "[UE%d] Frame %d : Received PR_NOTHING on DL-CCCH-Message\n", - ctxt_pP->module_id, - ctxt_pP->frame); - rval = 0; - break; + case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionReestablishment: + LOG_I(RRC, + "[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReestablishment\n", + ctxt_pP->module_id, + ctxt_pP->frame); + rval = 0; + break; - case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionReestablishment: - LOG_I(RRC, - "[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReestablishment\n", - ctxt_pP->module_id, - ctxt_pP->frame); - rval = 0; - break; + case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionReestablishmentReject: + LOG_I(RRC, + "[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReestablishmentReject\n", + ctxt_pP->module_id, + ctxt_pP->frame); + rval = 0; + break; - case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionReestablishmentReject: - LOG_I(RRC, - "[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReestablishmentReject\n", - ctxt_pP->module_id, - ctxt_pP->frame); - rval = 0; - break; + case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionReject: + LOG_I(RRC, + "[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReject \n", + ctxt_pP->module_id, + ctxt_pP->frame); + rval = 0; + break; - case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionReject: - LOG_I(RRC, - "[UE%d] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionReject \n", - ctxt_pP->module_id, - ctxt_pP->frame); - rval = 0; - break; + case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionSetup: + LOG_I(RRC, + "[UE%d][RAPROC] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionSetup RNTI %x\n", + ctxt_pP->module_id, + ctxt_pP->frame, + ctxt_pP->rnti); + // Get configuration + // Release T300 timer + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T300_active = 0; + rrc_ue_process_radioResourceConfigDedicated( + ctxt_pP, + eNB_index, + &dl_ccch_msg->message.choice.c1.choice.rrcConnectionSetup.criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated); + rrc_set_state (ctxt_pP->module_id, RRC_STATE_CONNECTED); + rrc_set_sub_state (ctxt_pP->module_id, RRC_SUB_STATE_CONNECTED); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].rnti = ctxt_pP->rnti; + rrc_ue_generate_RRCConnectionSetupComplete( + ctxt_pP, + eNB_index, + dl_ccch_msg->message.choice.c1.choice.rrcConnectionSetup.rrc_TransactionIdentifier); + rval = 0; + break; - case LTE_DL_CCCH_MessageType__c1_PR_rrcConnectionSetup: - LOG_I(RRC, - "[UE%d][RAPROC] Frame %d : Logical Channel DL-CCCH (SRB0), Received RRCConnectionSetup RNTI %x\n", - ctxt_pP->module_id, - ctxt_pP->frame, - ctxt_pP->rnti); - // Get configuration - - // Release T300 timer - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T300_active = 0; - rrc_ue_process_radioResourceConfigDedicated( - ctxt_pP, - eNB_index, - &dl_ccch_msg->message.choice.c1.choice.rrcConnectionSetup.criticalExtensions.choice.c1.choice.rrcConnectionSetup_r8.radioResourceConfigDedicated); - - rrc_set_state (ctxt_pP->module_id, RRC_STATE_CONNECTED); - rrc_set_sub_state (ctxt_pP->module_id, RRC_SUB_STATE_CONNECTED); - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].rnti = ctxt_pP->rnti; - rrc_ue_generate_RRCConnectionSetupComplete( - ctxt_pP, - eNB_index, - dl_ccch_msg->message.choice.c1.choice.rrcConnectionSetup.rrc_TransactionIdentifier); - - rval = 0; - break; - - default: - LOG_E(RRC, "[UE%d] Frame %d : Unknown message\n", - ctxt_pP->module_id, - ctxt_pP->frame); - rval = -1; - break; + default: + LOG_E(RRC, "[UE%d] Frame %d : Unknown message\n", + ctxt_pP->module_id, + ctxt_pP->frame); + rval = -1; + break; } } } @@ -850,30 +747,21 @@ rrc_ue_establish_srb1( module_id_t ue_mod_idP, frame_t frameP, uint8_t eNB_index, - struct LTE_SRB_ToAddMod* SRB_config + struct LTE_SRB_ToAddMod *SRB_config ) //----------------------------------------------------------------------------- { // add descriptor from RRC PDU - - UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Active = 1; UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Srb_id = 1; - // copy default configuration for now // memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[0],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); // memcpy(&UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); - - LOG_I(RRC,"[UE %d], CONFIG_SRB1 %d corresponding to eNB_index %d\n", ue_mod_idP,DCCH,eNB_index); - //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id,UNDEF_SECURITY_MODE); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); - // UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Tx_buffer.payload_size=DEFAULT_MEAS_IND_SIZE+1; - - return(0); } @@ -883,30 +771,21 @@ rrc_ue_establish_srb2( module_id_t ue_mod_idP, frame_t frameP, uint8_t eNB_index, - struct LTE_SRB_ToAddMod* SRB_config + struct LTE_SRB_ToAddMod *SRB_config ) //----------------------------------------------------------------------------- { // add descriptor from RRC PDU - - UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Active = 1; UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Status = RADIO_CONFIG_OK;//RADIO CFG UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Srb_id = 2; - // copy default configuration for now // memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[0],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); // memcpy(&UE_rrc_inst[ue_mod_idP].Srb2[eNB_index].Srb_info.Lchan_desc[1],&DCCH_LCHAN_DESC,LCHAN_DESC_SIZE); - - LOG_I(RRC,"[UE %d], CONFIG_SRB2 %d corresponding to eNB_index %d\n",ue_mod_idP,DCCH1,eNB_index); - //rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, lchan_id, UNDEF_SECURITY_MODE); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,lchan_id,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); - // UE_rrc_inst[ue_mod_idP].Srb1[eNB_index].Srb_info.Tx_buffer.payload_size=DEFAULT_MEAS_IND_SIZE+1; - - return(0); } @@ -916,7 +795,7 @@ rrc_ue_establish_drb( module_id_t ue_mod_idP, frame_t frameP, uint8_t eNB_index, - struct LTE_DRB_ToAddMod* DRB_config + struct LTE_DRB_ToAddMod *DRB_config ) //----------------------------------------------------------------------------- { @@ -928,7 +807,6 @@ rrc_ue_establish_drb( (void)ip_addr_offset3; (void)ip_addr_offset4; #endif - LOG_I(RRC,"[UE %d] Frame %d: processing RRCConnectionReconfiguration: reconfiguring DRB %ld/LCID %d\n", ue_mod_idP, frameP, DRB_config->drb_Identity, (int)*DRB_config->logicalChannelIdentity); /* @@ -954,7 +832,6 @@ rrc_ue_establish_drb( ue_mod_idP, ip_addr_offset3+ue_mod_idP, (long int)((eNB_index * maxDRB) + DRB_config->drb_Identity)); - rb_conf_ipv4(0,//add ue_mod_idP,//cx align with the UE index ip_addr_offset3+ue_mod_idP,//inst num_enb+ue_index @@ -967,7 +844,6 @@ rrc_ue_establish_drb( # endif #endif - return(0); } @@ -975,13 +851,12 @@ rrc_ue_establish_drb( //----------------------------------------------------------------------------- void rrc_ue_process_measConfig( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, - LTE_MeasConfig_t* const measConfig + LTE_MeasConfig_t *const measConfig ) //----------------------------------------------------------------------------- { - // This is the procedure described in 36.331 Section 5.5.2.1 int i; long ind; @@ -1003,8 +878,8 @@ rrc_ue_process_measConfig( if (UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index][ind-1]) { LOG_D(RRC,"Modifying measurement object %ld\n",ind); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index][ind-1], - (char*)measObj, + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index][ind-1], + (char *)measObj, sizeof(LTE_MeasObjectToAddMod_t)); } else { LOG_I(RRC,"Adding measurement object %ld\n",ind); @@ -1021,45 +896,43 @@ rrc_ue_process_measConfig( } LOG_I(RRC,"call rrc_mac_config_req \n"); - rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index], - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + UE_rrc_inst[ctxt_pP->module_id].MeasObj[eNB_index], + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); + ); } if (measConfig->reportConfigToRemoveList != NULL) { @@ -1077,8 +950,8 @@ rrc_ue_process_measConfig( if (UE_rrc_inst[ctxt_pP->module_id].ReportConfig[eNB_index][ind-1]) { LOG_I(RRC,"Modifying Report Configuration %ld\n",ind-1); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].ReportConfig[eNB_index][ind-1], - (char*)measConfig->reportConfigToAddModList->list.array[i], + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].ReportConfig[eNB_index][ind-1], + (char *)measConfig->reportConfigToAddModList->list.array[i], sizeof(LTE_ReportConfigToAddMod_t)); } else { LOG_D(RRC,"Adding Report Configuration %ld %p \n",ind-1,measConfig->reportConfigToAddModList->list.array[i]); @@ -1090,8 +963,8 @@ rrc_ue_process_measConfig( if (measConfig->quantityConfig != NULL) { if (UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index]) { LOG_D(RRC,"Modifying Quantity Configuration \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index], - (char*)measConfig->quantityConfig, + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index], + (char *)measConfig->quantityConfig, sizeof(LTE_QuantityConfig_t)); } else { LOG_D(RRC,"Adding Quantity configuration\n"); @@ -1112,8 +985,8 @@ rrc_ue_process_measConfig( if (UE_rrc_inst[ctxt_pP->module_id].MeasId[eNB_index][ind-1]) { LOG_D(RRC,"Modifying Measurement ID %ld\n",ind-1); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].MeasId[eNB_index][ind-1], - (char*)measConfig->measIdToAddModList->list.array[i], + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].MeasId[eNB_index][ind-1], + (char *)measConfig->measIdToAddModList->list.array[i], sizeof(LTE_MeasIdToAddMod_t)); } else { LOG_D(RRC,"Adding Measurement ID %ld %p\n",ind-1,measConfig->measIdToAddModList->list.array[i]); @@ -1124,8 +997,8 @@ rrc_ue_process_measConfig( if (measConfig->measGapConfig !=NULL) { if (UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index]) { - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], - (char*)measConfig->measGapConfig, + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], + (char *)measConfig->measGapConfig, sizeof(LTE_MeasGapConfig_t)); } else { UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index] = measConfig->measGapConfig; @@ -1135,8 +1008,8 @@ rrc_ue_process_measConfig( if (measConfig->quantityConfig != NULL) { if (UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index]) { LOG_I(RRC,"Modifying Quantity Configuration \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index], - (char*)measConfig->quantityConfig, + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index], + (char *)measConfig->quantityConfig, sizeof(LTE_QuantityConfig_t)); } else { LOG_I(RRC,"Adding Quantity configuration\n"); @@ -1147,7 +1020,6 @@ rrc_ue_process_measConfig( (*UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index]->quantityConfigEUTRA->filterCoefficientRSRP)/4); UE_rrc_inst[ctxt_pP->module_id].filter_coeff_rsrq = 1./pow(2, (*UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index]->quantityConfigEUTRA->filterCoefficientRSRQ)/4); - LOG_I(RRC,"[UE %d] set rsrp-coeff for eNB %d: %ld rsrq-coeff: %ld rsrp_factor: %f rsrq_factor: %f \n", ctxt_pP->module_id, eNB_index, // UE_rrc_inst[ue_mod_idP].Info[eNB_index].UE_index, *UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[eNB_index]->quantityConfigEUTRA->filterCoefficientRSRP, @@ -1162,7 +1034,7 @@ rrc_ue_process_measConfig( if (measConfig->speedStatePars != NULL) { if (UE_rrc_inst[ctxt_pP->module_id].speedStatePars) { - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].speedStatePars,(char*)measConfig->speedStatePars,sizeof(struct LTE_MeasConfig__speedStatePars)); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].speedStatePars,(char *)measConfig->speedStatePars,sizeof(struct LTE_MeasConfig__speedStatePars)); } else { UE_rrc_inst[ctxt_pP->module_id].speedStatePars = measConfig->speedStatePars; } @@ -1174,231 +1046,192 @@ rrc_ue_process_measConfig( void -rrc_ue_update_radioResourceConfigDedicated(LTE_RadioResourceConfigDedicated_t* radioResourceConfigDedicated, - const protocol_ctxt_t* const ctxt_pP, - uint8_t eNB_index) -{ - LTE_PhysicalConfigDedicated_t* physicalConfigDedicated2 = NULL; +rrc_ue_update_radioResourceConfigDedicated(LTE_RadioResourceConfigDedicated_t *radioResourceConfigDedicated, + const protocol_ctxt_t *const ctxt_pP, + uint8_t eNB_index) { + LTE_PhysicalConfigDedicated_t *physicalConfigDedicated2 = NULL; + physicalConfigDedicated2 = CALLOC(1,sizeof(*physicalConfigDedicated2)); + physicalConfigDedicated2->pdsch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pdsch_ConfigDedicated)); + physicalConfigDedicated2->pusch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pusch_ConfigDedicated)); + physicalConfigDedicated2->pucch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pucch_ConfigDedicated)); + physicalConfigDedicated2->cqi_ReportConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig)); + physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic + = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); + physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); + physicalConfigDedicated2->schedulingRequestConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->schedulingRequestConfig)); + physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); + physicalConfigDedicated2->uplinkPowerControlDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated)); + physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH = CALLOC(1,sizeof(*physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH)); + physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH = CALLOC(1,sizeof(*physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH)); - physicalConfigDedicated2 = CALLOC(1,sizeof(*physicalConfigDedicated2)); - physicalConfigDedicated2->pdsch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pdsch_ConfigDedicated)); - physicalConfigDedicated2->pusch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pusch_ConfigDedicated)); - physicalConfigDedicated2->pucch_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->pucch_ConfigDedicated)); - physicalConfigDedicated2->cqi_ReportConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig)); - physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic - = CALLOC(1,sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); - physicalConfigDedicated2->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); - physicalConfigDedicated2->schedulingRequestConfig = CALLOC(1,sizeof(*physicalConfigDedicated2->schedulingRequestConfig)); - physicalConfigDedicated2->antennaInfo = CALLOC(1,sizeof(*physicalConfigDedicated2->antennaInfo)); + // Update pdsch_ConfigDedicated + if(radioResourceConfigDedicated->physicalConfigDedicated->pdsch_ConfigDedicated != NULL) { + LOG_I(RRC,"Update pdsch_ConfigDedicated config \n"); - physicalConfigDedicated2->uplinkPowerControlDedicated = CALLOC(1,sizeof(*physicalConfigDedicated2->uplinkPowerControlDedicated)); - physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH = CALLOC(1,sizeof(*physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH)); - physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH = CALLOC(1,sizeof(*physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH)); + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pdsch_ConfigDedicated == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pdsch_ConfigDedicated = CALLOC(1,sizeof(LTE_PDSCH_ConfigDedicated_t)); - // Update pdsch_ConfigDedicated - if(radioResourceConfigDedicated->physicalConfigDedicated->pdsch_ConfigDedicated != NULL) - { - LOG_I(RRC,"Update pdsch_ConfigDedicated config \n"); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pdsch_ConfigDedicated, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->pdsch_ConfigDedicated, + sizeof(physicalConfigDedicated2->pdsch_ConfigDedicated)); + } else { + LOG_I(RRC,"Keep old config for pdsch_ConfigDedicated\n"); + } - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pdsch_ConfigDedicated == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pdsch_ConfigDedicated = CALLOC(1,sizeof(LTE_PDSCH_ConfigDedicated_t)); + // Update pusch_ConfigDedicated + if(radioResourceConfigDedicated->physicalConfigDedicated->pusch_ConfigDedicated != NULL) { + LOG_I(RRC,"Update pusch_ConfigDedicated config \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pdsch_ConfigDedicated, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->pdsch_ConfigDedicated, - sizeof(physicalConfigDedicated2->pdsch_ConfigDedicated)); - } - else - { - LOG_I(RRC,"Keep old config for pdsch_ConfigDedicated\n"); + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pusch_ConfigDedicated == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pusch_ConfigDedicated = CALLOC(1,sizeof(LTE_PUSCH_ConfigDedicated_t)); + + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pusch_ConfigDedicated, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->pusch_ConfigDedicated, + sizeof(physicalConfigDedicated2->pusch_ConfigDedicated)); + } else { + LOG_I(RRC,"Keep old config for pusch_ConfigDedicated\n"); + } + + // Update pucch_ConfigDedicated + if(radioResourceConfigDedicated->physicalConfigDedicated->pucch_ConfigDedicated != NULL) { + LOG_I(RRC,"Update pucch_ConfigDedicated config \n"); + + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pucch_ConfigDedicated == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pucch_ConfigDedicated = CALLOC(1,sizeof(LTE_PUCCH_ConfigDedicated_t)); + + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pucch_ConfigDedicated, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->pucch_ConfigDedicated, + sizeof(physicalConfigDedicated2->pucch_ConfigDedicated)); + } else { + LOG_I(RRC,"Keep old config for pucch_ConfigDedicated\n"); + } + + // Update cqi_ReportConfig + if(radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig != NULL) { + LOG_I(RRC,"Update cqi_ReportConfig config (size=%zu,%zu)\n", sizeof(*physicalConfigDedicated2->cqi_ReportConfig), sizeof(LTE_CQI_ReportConfig_t)); + + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig = CALLOC(1,sizeof(LTE_CQI_ReportConfig_t)); + + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig, + sizeof(*physicalConfigDedicated2->cqi_ReportConfig)); + + if (radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic != NULL) { + LOG_I(RRC,"Update cqi_ReportPeriodic config (size=%zu,%zu)\n", sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic), sizeof(LTE_CQI_ReportPeriodic_t)); + + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig->cqi_ReportPeriodic == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(LTE_CQI_ReportPeriodic_t)); + + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig->cqi_ReportPeriodic, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic, + sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); } + } else { + LOG_I(RRC,"Keep old config for cqi_ReportConfig\n"); + } - // Update pusch_ConfigDedicated - if(radioResourceConfigDedicated->physicalConfigDedicated->pusch_ConfigDedicated != NULL) - { - LOG_I(RRC,"Update pusch_ConfigDedicated config \n"); + // Update schedulingRequestConfig + if(radioResourceConfigDedicated->physicalConfigDedicated->schedulingRequestConfig != NULL) { + LOG_I(RRC,"Update schedulingRequestConfig config \n"); - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pusch_ConfigDedicated == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pusch_ConfigDedicated = CALLOC(1,sizeof(LTE_PUSCH_ConfigDedicated_t)); + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->schedulingRequestConfig == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->schedulingRequestConfig = CALLOC(1,sizeof(LTE_SchedulingRequestConfig_t)); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pusch_ConfigDedicated, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->pusch_ConfigDedicated, - sizeof(physicalConfigDedicated2->pusch_ConfigDedicated)); - } - else - { - LOG_I(RRC,"Keep old config for pusch_ConfigDedicated\n"); - } + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->schedulingRequestConfig, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->schedulingRequestConfig, + sizeof(physicalConfigDedicated2->schedulingRequestConfig)); + } else { + LOG_I(RRC,"Keep old config for schedulingRequestConfig\n"); + } - // Update pucch_ConfigDedicated - if(radioResourceConfigDedicated->physicalConfigDedicated->pucch_ConfigDedicated != NULL) - { - LOG_I(RRC,"Update pucch_ConfigDedicated config \n"); - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pucch_ConfigDedicated == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pucch_ConfigDedicated = CALLOC(1,sizeof(LTE_PUCCH_ConfigDedicated_t)); + // Update soundingRS_UL_ConfigDedicated + if(radioResourceConfigDedicated->physicalConfigDedicated->soundingRS_UL_ConfigDedicated != NULL) { + LOG_I(RRC,"Update soundingRS_UL_ConfigDedicated config \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->pucch_ConfigDedicated, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->pucch_ConfigDedicated, - sizeof(physicalConfigDedicated2->pucch_ConfigDedicated)); - } - else - { - LOG_I(RRC,"Keep old config for pucch_ConfigDedicated\n"); - } + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->soundingRS_UL_ConfigDedicated == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(LTE_SoundingRS_UL_ConfigDedicated_t)); - // Update cqi_ReportConfig - if(radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig != NULL) - { - LOG_I(RRC,"Update cqi_ReportConfig config (size=%zu,%zu)\n", sizeof(*physicalConfigDedicated2->cqi_ReportConfig), sizeof(LTE_CQI_ReportConfig_t)); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->soundingRS_UL_ConfigDedicated, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->soundingRS_UL_ConfigDedicated, + sizeof(physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); + } else { + LOG_I(RRC,"Keep old config for soundingRS_UL_ConfigDedicated\n"); + } - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig = CALLOC(1,sizeof(LTE_CQI_ReportConfig_t)); + // Update antennaInfo + if(radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo != NULL) { + LOG_I(RRC,"Update antennaInfo config \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig, - sizeof(*physicalConfigDedicated2->cqi_ReportConfig)); + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo = CALLOC(1,sizeof(struct LTE_PhysicalConfigDedicated__antennaInfo)); - if (radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic != NULL) { - LOG_I(RRC,"Update cqi_ReportPeriodic config (size=%zu,%zu)\n", sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic), sizeof(LTE_CQI_ReportPeriodic_t)); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo, + sizeof(physicalConfigDedicated2->antennaInfo)); + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.transmissionMode = + radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode; + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.codebookSubsetRestriction = + radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.codebookSubsetRestriction; + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection = + radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection; + LOG_I(PHY,"New Transmission Mode %ld \n",radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode); + LOG_I(PHY,"Configured Transmission Mode %ld \n",UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.transmissionMode); + } else { + LOG_I(RRC,"Keep old config for antennaInfo\n"); + } - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig->cqi_ReportPeriodic == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig->cqi_ReportPeriodic = CALLOC(1,sizeof(LTE_CQI_ReportPeriodic_t)); + // Update uplinkPowerControlDedicated + if(radioResourceConfigDedicated->physicalConfigDedicated->uplinkPowerControlDedicated != NULL) { + LOG_I(RRC,"Update uplinkPowerControlDedicated config \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->cqi_ReportConfig->cqi_ReportPeriodic, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->cqi_ReportConfig->cqi_ReportPeriodic, - sizeof(*physicalConfigDedicated2->cqi_ReportConfig->cqi_ReportPeriodic)); - } - } - else - { - LOG_I(RRC,"Keep old config for cqi_ReportConfig\n"); - } + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->uplinkPowerControlDedicated == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->uplinkPowerControlDedicated = CALLOC(1,sizeof(LTE_UplinkPowerControlDedicated_t)); - // Update schedulingRequestConfig - if(radioResourceConfigDedicated->physicalConfigDedicated->schedulingRequestConfig != NULL) - { - LOG_I(RRC,"Update schedulingRequestConfig config \n"); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->uplinkPowerControlDedicated, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->uplinkPowerControlDedicated, + sizeof(physicalConfigDedicated2->uplinkPowerControlDedicated)); + } else { + LOG_I(RRC,"Keep old config for uplinkPowerControlDedicated\n"); + } - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->schedulingRequestConfig == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->schedulingRequestConfig = CALLOC(1,sizeof(LTE_SchedulingRequestConfig_t)); + // Update tpc_PDCCH_ConfigPUCCH + if(radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUCCH != NULL) { + LOG_I(RRC,"Update tpc_PDCCH_ConfigPUCCH config \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->schedulingRequestConfig, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->schedulingRequestConfig, - sizeof(physicalConfigDedicated2->schedulingRequestConfig)); - } - else - { - LOG_I(RRC,"Keep old config for schedulingRequestConfig\n"); - } + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUCCH == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUCCH = CALLOC(1,sizeof(LTE_TPC_PDCCH_Config_t)); - // Update soundingRS_UL_ConfigDedicated - if(radioResourceConfigDedicated->physicalConfigDedicated->soundingRS_UL_ConfigDedicated != NULL) - { - LOG_I(RRC,"Update soundingRS_UL_ConfigDedicated config \n"); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUCCH, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUCCH, + sizeof(physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH)); + } else { + LOG_I(RRC,"Keep old config for tpc_PDCCH_ConfigPUCCH\n"); + } - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->soundingRS_UL_ConfigDedicated == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->soundingRS_UL_ConfigDedicated = CALLOC(1,sizeof(LTE_SoundingRS_UL_ConfigDedicated_t)); + // Update tpc_PDCCH_ConfigPUSCH + if(radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUSCH != NULL) { + LOG_I(RRC,"Update tpc_PDCCH_ConfigPUSCH config \n"); - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->soundingRS_UL_ConfigDedicated, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->soundingRS_UL_ConfigDedicated, - sizeof(physicalConfigDedicated2->soundingRS_UL_ConfigDedicated)); - } - else - { - LOG_I(RRC,"Keep old config for soundingRS_UL_ConfigDedicated\n"); - } - - // Update antennaInfo - if(radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo != NULL) - { - LOG_I(RRC,"Update antennaInfo config \n"); - - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo = CALLOC(1,sizeof(struct LTE_PhysicalConfigDedicated__antennaInfo)); - - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo, - sizeof(physicalConfigDedicated2->antennaInfo)); - - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.transmissionMode = - radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode; - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.codebookSubsetRestriction = - radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.codebookSubsetRestriction; - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection = - radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.ue_TransmitAntennaSelection; - - LOG_I(PHY,"New Transmission Mode %ld \n",radioResourceConfigDedicated->physicalConfigDedicated->antennaInfo->choice.explicitValue.transmissionMode); - LOG_I(PHY,"Configured Transmission Mode %ld \n",UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->antennaInfo->choice.explicitValue.transmissionMode); - - } - else - { - LOG_I(RRC,"Keep old config for antennaInfo\n"); - } - - - // Update uplinkPowerControlDedicated - if(radioResourceConfigDedicated->physicalConfigDedicated->uplinkPowerControlDedicated != NULL) - { - LOG_I(RRC,"Update uplinkPowerControlDedicated config \n"); - - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->uplinkPowerControlDedicated == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->uplinkPowerControlDedicated = CALLOC(1,sizeof(LTE_UplinkPowerControlDedicated_t)); - - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->uplinkPowerControlDedicated, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->uplinkPowerControlDedicated, - sizeof(physicalConfigDedicated2->uplinkPowerControlDedicated)); - } - else - { - LOG_I(RRC,"Keep old config for uplinkPowerControlDedicated\n"); - } - - // Update tpc_PDCCH_ConfigPUCCH - if(radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUCCH != NULL) - { - LOG_I(RRC,"Update tpc_PDCCH_ConfigPUCCH config \n"); - - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUCCH == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUCCH = CALLOC(1,sizeof(LTE_TPC_PDCCH_Config_t)); - - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUCCH, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUCCH, - sizeof(physicalConfigDedicated2->tpc_PDCCH_ConfigPUCCH)); - } - else - { - LOG_I(RRC,"Keep old config for tpc_PDCCH_ConfigPUCCH\n"); - } - - // Update tpc_PDCCH_ConfigPUSCH - if(radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUSCH != NULL) - { - LOG_I(RRC,"Update tpc_PDCCH_ConfigPUSCH config \n"); - - if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUSCH == NULL) - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUSCH = CALLOC(1,sizeof(LTE_TPC_PDCCH_Config_t)); - - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUSCH, - (char*)radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUSCH, - sizeof(physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH)); - - } - else - { - LOG_I(RRC,"Keep old config for tpc_PDCCH_ConfigPUSCH\n"); - } + if(UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUSCH == NULL) + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUSCH = CALLOC(1,sizeof(LTE_TPC_PDCCH_Config_t)); + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]->tpc_PDCCH_ConfigPUSCH, + (char *)radioResourceConfigDedicated->physicalConfigDedicated->tpc_PDCCH_ConfigPUSCH, + sizeof(physicalConfigDedicated2->tpc_PDCCH_ConfigPUSCH)); + } else { + LOG_I(RRC,"Keep old config for tpc_PDCCH_ConfigPUSCH\n"); + } } //----------------------------------------------------------------------------- void rrc_ue_process_radioResourceConfigDedicated( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, uint8_t eNB_index, - LTE_RadioResourceConfigDedicated_t* radioResourceConfigDedicated + LTE_RadioResourceConfigDedicated_t *radioResourceConfigDedicated ) //----------------------------------------------------------------------------- { - long SRB_id,DRB_id; int i,cnt; LTE_LogicalChannelConfig_t *SRB1_logicalChannelConfig,*SRB2_logicalChannelConfig; @@ -1413,9 +1246,9 @@ rrc_ue_process_radioResourceConfigDedicated( if (UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index]) { #if 1 - rrc_ue_update_radioResourceConfigDedicated(radioResourceConfigDedicated, ctxt_pP, eNB_index); + rrc_ue_update_radioResourceConfigDedicated(radioResourceConfigDedicated, ctxt_pP, eNB_index); #else - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index],(char*)radioResourceConfigDedicated->physicalConfigDedicated, + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index],(char *)radioResourceConfigDedicated->physicalConfigDedicated, sizeof(struct PhysicalConfigDedicated)); #endif } else { @@ -1428,7 +1261,7 @@ rrc_ue_process_radioResourceConfigDedicated( if (radioResourceConfigDedicated->mac_MainConfig) { if (radioResourceConfigDedicated->mac_MainConfig->present == LTE_RadioResourceConfigDedicated__mac_MainConfig_PR_explicitValue) { if (UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index]) { - memcpy((char*)UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index],(char*)&radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue, + memcpy((char *)UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index],(char *)&radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue, sizeof(LTE_MAC_MainConfig_t)); } else { UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index] = &radioResourceConfigDedicated->mac_MainConfig->choice.explicitValue; @@ -1476,7 +1309,6 @@ rrc_ue_process_radioResourceConfigDedicated( if (radioResourceConfigDedicated->srb_ToAddModList) { uint8_t *kRRCenc = NULL; uint8_t *kRRCint = NULL; - #if defined(ENABLE_SECURITY) derive_key_rrc_enc(UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm, UE_rrc_inst[ctxt_pP->module_id].kenb, &kRRCenc); @@ -1486,8 +1318,8 @@ rrc_ue_process_radioResourceConfigDedicated( // Refresh SRBs rrc_pdcp_config_asn1_req(ctxt_pP, radioResourceConfigDedicated->srb_ToAddModList, - (LTE_DRB_ToAddModList_t*)NULL, - (LTE_DRB_ToReleaseList_t*)NULL, + (LTE_DRB_ToAddModList_t *)NULL, + (LTE_DRB_ToReleaseList_t *)NULL, UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm | (UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm << 4), kRRCenc, @@ -1497,18 +1329,16 @@ rrc_ue_process_radioResourceConfigDedicated( ,(LTE_PMCH_InfoList_r9_t *)NULL #endif ,NULL); - // Refresh SRBs rrc_rlc_config_asn1_req(ctxt_pP, radioResourceConfigDedicated->srb_ToAddModList, - (LTE_DRB_ToAddModList_t*)NULL, - (LTE_DRB_ToReleaseList_t*)NULL + (LTE_DRB_ToAddModList_t *)NULL, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,(LTE_PMCH_InfoList_r9_t *)NULL , 0, 0 #endif ); - #if ENABLE_RAL // first msg that includes srb config UE_rrc_inst[ctxt_pP->module_id].num_srb=radioResourceConfigDedicated->srb_ToAddModList->list.count; @@ -1530,7 +1360,6 @@ rrc_ue_process_radioResourceConfigDedicated( if (UE_rrc_inst[ctxt_pP->module_id].SRB1_config[eNB_index]->logicalChannelConfig) { if (UE_rrc_inst[ctxt_pP->module_id].SRB1_config[eNB_index]->logicalChannelConfig->present == LTE_SRB_ToAddMod__logicalChannelConfig_PR_explicitValue) { SRB1_logicalChannelConfig = &UE_rrc_inst[ctxt_pP->module_id].SRB1_config[eNB_index]->logicalChannelConfig->choice.explicitValue; - } else { SRB1_logicalChannelConfig = &SRB1_logicalChannelConfig_defaultValue; } @@ -1540,45 +1369,44 @@ rrc_ue_process_radioResourceConfigDedicated( LOG_I(RRC, "[FRAME %05d][RRC_UE][MOD %02d][][--- MAC_CONFIG_REQ (SRB1 eNB %d) --->][MAC_UE][MOD %02d][]\n", ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); - rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], - 1, - SRB1_logicalChannelConfig, - (LTE_MeasGapConfig_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], + 1, + SRB1_logicalChannelConfig, + (LTE_MeasGapConfig_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , - 0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL + , + 0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); + ); } } else { if (UE_rrc_inst[ctxt_pP->module_id].SRB2_config[eNB_index]) { @@ -1606,44 +1434,43 @@ rrc_ue_process_radioResourceConfigDedicated( eNB_index, ctxt_pP->module_id); rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], - 2, - SRB2_logicalChannelConfig, - UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], + 2, + SRB2_logicalChannelConfig, + UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , - 0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + , + 0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); + ); } } } @@ -1651,22 +1478,19 @@ rrc_ue_process_radioResourceConfigDedicated( // Establish DRBs if present if (radioResourceConfigDedicated->drb_ToAddModList) { - if ( (UE_rrc_inst[ctxt_pP->module_id].defaultDRB == NULL) && (radioResourceConfigDedicated->drb_ToAddModList->list.count >= 1) ) { - // configure the first DRB ID as the default DRB ID - UE_rrc_inst[ctxt_pP->module_id].defaultDRB = malloc(sizeof(rb_id_t)); - *UE_rrc_inst[ctxt_pP->module_id].defaultDRB = radioResourceConfigDedicated->drb_ToAddModList->list.array[0]->drb_Identity; - LOG_I(RRC,"[UE %d] default DRB = %d\n",ctxt_pP->module_id, *UE_rrc_inst[ctxt_pP->module_id].defaultDRB); - } + // configure the first DRB ID as the default DRB ID + UE_rrc_inst[ctxt_pP->module_id].defaultDRB = malloc(sizeof(rb_id_t)); + *UE_rrc_inst[ctxt_pP->module_id].defaultDRB = radioResourceConfigDedicated->drb_ToAddModList->list.array[0]->drb_Identity; + LOG_I(RRC,"[UE %d] default DRB = %d\n",ctxt_pP->module_id, *UE_rrc_inst[ctxt_pP->module_id].defaultDRB); + } uint8_t *kUPenc = NULL; - #if defined(ENABLE_SECURITY) derive_key_up_enc(UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm, UE_rrc_inst[ctxt_pP->module_id].kenb, &kUPenc); #endif - MSC_LOG_TX_MESSAGE( MSC_RRC_UE, MSC_PDCP_UE, @@ -1677,12 +1501,11 @@ rrc_ue_process_radioResourceConfigDedicated( ctxt_pP->rnti, UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm | (UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm << 4)); - // Refresh DRBs rrc_pdcp_config_asn1_req(ctxt_pP, - (LTE_SRB_ToAddModList_t*)NULL, + (LTE_SRB_ToAddModList_t *)NULL, radioResourceConfigDedicated->drb_ToAddModList, - (LTE_DRB_ToReleaseList_t*)NULL, + (LTE_DRB_ToReleaseList_t *)NULL, UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm | (UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm << 4), NULL, @@ -1692,12 +1515,11 @@ rrc_ue_process_radioResourceConfigDedicated( ,(LTE_PMCH_InfoList_r9_t *)NULL #endif , UE_rrc_inst[ctxt_pP->module_id].defaultDRB); - // Refresh DRBs rrc_rlc_config_asn1_req(ctxt_pP, - (LTE_SRB_ToAddModList_t*)NULL, + (LTE_SRB_ToAddModList_t *)NULL, radioResourceConfigDedicated->drb_ToAddModList, - (LTE_DRB_ToReleaseList_t*)NULL + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) ,(LTE_PMCH_InfoList_r9_t *)NULL , 0, 0 @@ -1721,44 +1543,43 @@ rrc_ue_process_radioResourceConfigDedicated( eNB_index, ctxt_pP->module_id); rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].physicalConfigDedicated[eNB_index], #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], - *UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelIdentity, - UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelConfig, - UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], - (LTE_TDD_Config_t*)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + UE_rrc_inst[ctxt_pP->module_id].mac_MainConfig[eNB_index], + *UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelIdentity, + UE_rrc_inst[ctxt_pP->module_id].DRB_config[eNB_index][DRB_id]->logicalChannelConfig, + UE_rrc_inst[ctxt_pP->module_id].measGapConfig[eNB_index], + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , - 0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL + , + 0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - UE_rrc_inst[ue_mod_idP].num_active_cba_groups, // - UE_rrc_inst[ue_mod_idP].cba_rnti[0] + , + UE_rrc_inst[ue_mod_idP].num_active_cba_groups, // + UE_rrc_inst[ue_mod_idP].cba_rnti[0] #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); - + ); } } } @@ -1771,86 +1592,79 @@ rrc_ue_process_radioResourceConfigDedicated( //----------------------------------------------------------------------------- void rrc_ue_process_securityModeCommand( - const protocol_ctxt_t* const ctxt_pP, - LTE_SecurityModeCommand_t* const securityModeCommand, + const protocol_ctxt_t *const ctxt_pP, + LTE_SecurityModeCommand_t *const securityModeCommand, const uint8_t eNB_index ) //----------------------------------------------------------------------------- { - asn_enc_rval_t enc_rval; - LTE_UL_DCCH_Message_t ul_dcch_msg; // SecurityModeCommand_t SecurityModeCommand; uint8_t buffer[200]; int i, securityMode; - LOG_I(RRC,"[UE %d] SFN/SF %d/%d: Receiving from SRB1 (DL-DCCH), Processing securityModeCommand (eNB %d)\n", ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, eNB_index); switch (securityModeCommand->criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.cipheringAlgorithm) { - case LTE_CipheringAlgorithm_r12_eea0: - LOG_I(RRC,"[UE %d] Security algorithm is set to eea0\n", - ctxt_pP->module_id); - securityMode= LTE_CipheringAlgorithm_r12_eea0; - break; + case LTE_CipheringAlgorithm_r12_eea0: + LOG_I(RRC,"[UE %d] Security algorithm is set to eea0\n", + ctxt_pP->module_id); + securityMode= LTE_CipheringAlgorithm_r12_eea0; + break; - case LTE_CipheringAlgorithm_r12_eea1: - LOG_I(RRC,"[UE %d] Security algorithm is set to eea1\n",ctxt_pP->module_id); - securityMode= LTE_CipheringAlgorithm_r12_eea1; - break; + case LTE_CipheringAlgorithm_r12_eea1: + LOG_I(RRC,"[UE %d] Security algorithm is set to eea1\n",ctxt_pP->module_id); + securityMode= LTE_CipheringAlgorithm_r12_eea1; + break; - case LTE_CipheringAlgorithm_r12_eea2: - LOG_I(RRC,"[UE %d] Security algorithm is set to eea2\n", - ctxt_pP->module_id); - securityMode = LTE_CipheringAlgorithm_r12_eea2; - break; + case LTE_CipheringAlgorithm_r12_eea2: + LOG_I(RRC,"[UE %d] Security algorithm is set to eea2\n", + ctxt_pP->module_id); + securityMode = LTE_CipheringAlgorithm_r12_eea2; + break; - default: - LOG_I(RRC,"[UE %d] Security algorithm is set to none\n",ctxt_pP->module_id); - securityMode = LTE_CipheringAlgorithm_r12_spare1; - break; + default: + LOG_I(RRC,"[UE %d] Security algorithm is set to none\n",ctxt_pP->module_id); + securityMode = LTE_CipheringAlgorithm_r12_spare1; + break; } switch (securityModeCommand->criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.integrityProtAlgorithm) { - case LTE_SecurityAlgorithmConfig__integrityProtAlgorithm_eia1: - LOG_I(RRC,"[UE %d] Integrity protection algorithm is set to eia1\n",ctxt_pP->module_id); - securityMode |= 1 << 5; - break; + case LTE_SecurityAlgorithmConfig__integrityProtAlgorithm_eia1: + LOG_I(RRC,"[UE %d] Integrity protection algorithm is set to eia1\n",ctxt_pP->module_id); + securityMode |= 1 << 5; + break; - case LTE_SecurityAlgorithmConfig__integrityProtAlgorithm_eia2: - LOG_I(RRC,"[UE %d] Integrity protection algorithm is set to eia2\n",ctxt_pP->module_id); - securityMode |= 1 << 6; - break; + case LTE_SecurityAlgorithmConfig__integrityProtAlgorithm_eia2: + LOG_I(RRC,"[UE %d] Integrity protection algorithm is set to eia2\n",ctxt_pP->module_id); + securityMode |= 1 << 6; + break; - default: - LOG_I(RRC,"[UE %d] Integrity protection algorithm is set to none\n",ctxt_pP->module_id); - securityMode |= 0x70 ; - break; + default: + LOG_I(RRC,"[UE %d] Integrity protection algorithm is set to none\n",ctxt_pP->module_id); + securityMode |= 0x70 ; + break; } LOG_D(RRC,"[UE %d] security mode is %x \n",ctxt_pP->module_id, securityMode); - /* Store the parameters received */ UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm = securityModeCommand->criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.cipheringAlgorithm; UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm = securityModeCommand->criticalExtensions.choice.c1.choice.securityModeCommand_r8.securityConfigSMC.securityAlgorithmConfig.integrityProtAlgorithm; - memset((void *)&ul_dcch_msg,0,sizeof(LTE_UL_DCCH_Message_t)); //memset((void *)&SecurityModeCommand,0,sizeof(SecurityModeCommand_t)); - ul_dcch_msg.message.present = LTE_UL_DCCH_MessageType_PR_c1; if (securityMode >= NO_SECURITY_MODE) { - LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode complete case \n"); + LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode complete case \n"); ul_dcch_msg.message.choice.c1.present = LTE_UL_DCCH_MessageType__c1_PR_securityModeComplete; } else { - LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode failure case \n"); + LOG_I(RRC, "rrc_ue_process_securityModeCommand, security mode failure case \n"); ul_dcch_msg.message.choice.c1.present = LTE_UL_DCCH_MessageType__c1_PR_securityModeFailure; } - #if defined(ENABLE_SECURITY) uint8_t *kRRCenc = NULL; uint8_t *kUPenc = NULL; @@ -1858,47 +1672,44 @@ rrc_ue_process_securityModeCommand( pdcp_t *pdcp_p = NULL; hash_key_t key = HASHTABLE_NOT_A_KEY_VALUE; hashtable_rc_t h_rc; - key = PDCP_COLL_KEY_VALUE(ctxt_pP->module_id, ctxt_pP->rnti, - ctxt_pP->enb_flag, DCCH, SRB_FLAG_YES); - h_rc = hashtable_get(pdcp_coll_p, key, (void**) &pdcp_p); + ctxt_pP->enb_flag, DCCH, SRB_FLAG_YES); + h_rc = hashtable_get(pdcp_coll_p, key, (void **) &pdcp_p); if (h_rc == HASH_TABLE_OK) { LOG_D(RRC, "PDCP_COLL_KEY_VALUE() returns valid key = %ld\n", key); - LOG_D(RRC, "driving kRRCenc, kRRCint and kUPenc from KeNB=" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x\n", - UE_rrc_inst[ctxt_pP->module_id].kenb[0], UE_rrc_inst[ctxt_pP->module_id].kenb[1], UE_rrc_inst[ctxt_pP->module_id].kenb[2], UE_rrc_inst[ctxt_pP->module_id].kenb[3], - UE_rrc_inst[ctxt_pP->module_id].kenb[4], UE_rrc_inst[ctxt_pP->module_id].kenb[5], UE_rrc_inst[ctxt_pP->module_id].kenb[6], UE_rrc_inst[ctxt_pP->module_id].kenb[7], - UE_rrc_inst[ctxt_pP->module_id].kenb[8], UE_rrc_inst[ctxt_pP->module_id].kenb[9], UE_rrc_inst[ctxt_pP->module_id].kenb[10], UE_rrc_inst[ctxt_pP->module_id].kenb[11], - UE_rrc_inst[ctxt_pP->module_id].kenb[12], UE_rrc_inst[ctxt_pP->module_id].kenb[13], UE_rrc_inst[ctxt_pP->module_id].kenb[14], UE_rrc_inst[ctxt_pP->module_id].kenb[15], - UE_rrc_inst[ctxt_pP->module_id].kenb[16], UE_rrc_inst[ctxt_pP->module_id].kenb[17], UE_rrc_inst[ctxt_pP->module_id].kenb[18], UE_rrc_inst[ctxt_pP->module_id].kenb[19], - UE_rrc_inst[ctxt_pP->module_id].kenb[20], UE_rrc_inst[ctxt_pP->module_id].kenb[21], UE_rrc_inst[ctxt_pP->module_id].kenb[22], UE_rrc_inst[ctxt_pP->module_id].kenb[23], - UE_rrc_inst[ctxt_pP->module_id].kenb[24], UE_rrc_inst[ctxt_pP->module_id].kenb[25], UE_rrc_inst[ctxt_pP->module_id].kenb[26], UE_rrc_inst[ctxt_pP->module_id].kenb[27], - UE_rrc_inst[ctxt_pP->module_id].kenb[28], UE_rrc_inst[ctxt_pP->module_id].kenb[29], UE_rrc_inst[ctxt_pP->module_id].kenb[30], UE_rrc_inst[ctxt_pP->module_id].kenb[31]); - + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x\n", + UE_rrc_inst[ctxt_pP->module_id].kenb[0], UE_rrc_inst[ctxt_pP->module_id].kenb[1], UE_rrc_inst[ctxt_pP->module_id].kenb[2], UE_rrc_inst[ctxt_pP->module_id].kenb[3], + UE_rrc_inst[ctxt_pP->module_id].kenb[4], UE_rrc_inst[ctxt_pP->module_id].kenb[5], UE_rrc_inst[ctxt_pP->module_id].kenb[6], UE_rrc_inst[ctxt_pP->module_id].kenb[7], + UE_rrc_inst[ctxt_pP->module_id].kenb[8], UE_rrc_inst[ctxt_pP->module_id].kenb[9], UE_rrc_inst[ctxt_pP->module_id].kenb[10], UE_rrc_inst[ctxt_pP->module_id].kenb[11], + UE_rrc_inst[ctxt_pP->module_id].kenb[12], UE_rrc_inst[ctxt_pP->module_id].kenb[13], UE_rrc_inst[ctxt_pP->module_id].kenb[14], UE_rrc_inst[ctxt_pP->module_id].kenb[15], + UE_rrc_inst[ctxt_pP->module_id].kenb[16], UE_rrc_inst[ctxt_pP->module_id].kenb[17], UE_rrc_inst[ctxt_pP->module_id].kenb[18], UE_rrc_inst[ctxt_pP->module_id].kenb[19], + UE_rrc_inst[ctxt_pP->module_id].kenb[20], UE_rrc_inst[ctxt_pP->module_id].kenb[21], UE_rrc_inst[ctxt_pP->module_id].kenb[22], UE_rrc_inst[ctxt_pP->module_id].kenb[23], + UE_rrc_inst[ctxt_pP->module_id].kenb[24], UE_rrc_inst[ctxt_pP->module_id].kenb[25], UE_rrc_inst[ctxt_pP->module_id].kenb[26], UE_rrc_inst[ctxt_pP->module_id].kenb[27], + UE_rrc_inst[ctxt_pP->module_id].kenb[28], UE_rrc_inst[ctxt_pP->module_id].kenb[29], UE_rrc_inst[ctxt_pP->module_id].kenb[30], UE_rrc_inst[ctxt_pP->module_id].kenb[31]); derive_key_rrc_enc(UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm, - UE_rrc_inst[ctxt_pP->module_id].kenb, &kRRCenc); + UE_rrc_inst[ctxt_pP->module_id].kenb, &kRRCenc); derive_key_rrc_int(UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm, - UE_rrc_inst[ctxt_pP->module_id].kenb, &kRRCint); + UE_rrc_inst[ctxt_pP->module_id].kenb, &kRRCint); derive_key_up_enc(UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm, - UE_rrc_inst[ctxt_pP->module_id].kenb, &kUPenc); + UE_rrc_inst[ctxt_pP->module_id].kenb, &kUPenc); if (securityMode != 0xff) { pdcp_config_set_security(ctxt_pP, pdcp_p, 0, 0, - UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm - | (UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm << 4), - kRRCenc, kRRCint, kUPenc); + UE_rrc_inst[ctxt_pP->module_id].ciphering_algorithm + | (UE_rrc_inst[ctxt_pP->module_id].integrity_algorithm << 4), + kRRCenc, kRRCint, kUPenc); } else { LOG_I(RRC, "skipped pdcp_config_set_security() as securityMode == 0x%02x", - securityMode); + securityMode); } } else { LOG_I(RRC, "Could not get PDCP instance where key=0x%ld\n", key); @@ -1909,174 +1720,110 @@ rrc_ue_process_securityModeCommand( if (securityModeCommand->criticalExtensions.present == LTE_SecurityModeCommand__criticalExtensions_PR_c1) { if (securityModeCommand->criticalExtensions.choice.c1.present != LTE_SecurityModeCommand__criticalExtensions__c1_PR_securityModeCommand_r8) LOG_W(RRC,"securityModeCommand->criticalExtensions.choice.c1.present (%d) != SecurityModeCommand__criticalExtensions__c1_PR_securityModeCommand_r8\n", - securityModeCommand->criticalExtensions.choice.c1.present); - - + securityModeCommand->criticalExtensions.choice.c1.present); + ul_dcch_msg.message.choice.c1.choice.securityModeComplete.rrc_TransactionIdentifier = securityModeCommand->rrc_TransactionIdentifier; ul_dcch_msg.message.choice.c1.choice.securityModeComplete.criticalExtensions.present = LTE_SecurityModeCommand__criticalExtensions_PR_c1; ul_dcch_msg.message.choice.c1.choice.securityModeComplete.criticalExtensions.choice.securityModeComplete_r8.nonCriticalExtension =NULL; - LOG_I(RRC,"[UE %d] SFN/SF %d/%d: Receiving from SRB1 (DL-DCCH), encoding securityModeComplete (eNB %d), rrc_TransactionIdentifier: %ld\n", - ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, eNB_index, securityModeCommand->rrc_TransactionIdentifier); - + ctxt_pP->module_id,ctxt_pP->frame, ctxt_pP->subframe, eNB_index, securityModeCommand->rrc_TransactionIdentifier); enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, - (void*)&ul_dcch_msg, - buffer, - 100); + (void *)&ul_dcch_msg, + buffer, + 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + enc_rval.failed_type->name, enc_rval.encoded); + if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_UL_DCCH_Message, (void*)&ul_dcch_msg); + xer_fprint(stdout, &asn_DEF_LTE_UL_DCCH_Message, (void *)&ul_dcch_msg); } - -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { - char message_string[20000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_UL_DCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_ul_dcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_ul_dcch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } + + LOG_D(RRC, "securityModeComplete Encoded %zd bits (%zd bytes)\n", enc_rval.encoded, (enc_rval.encoded+7)/8); + + for (i = 0; i < (enc_rval.encoded + 7) / 8; i++) { + LOG_T(RRC, "%02x.", buffer[i]); } -# endif -#endif - LOG_D(RRC, "securityModeComplete Encoded %zd bits (%zd bytes)\n", enc_rval.encoded, (enc_rval.encoded+7)/8); - - for (i = 0; i < (enc_rval.encoded + 7) / 8; i++) { - LOG_T(RRC, "%02x.", buffer[i]); - } - - LOG_T(RRC, "\n"); - rrc_data_req ( - ctxt_pP, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - (enc_rval.encoded + 7) / 8, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - } - - else LOG_W(RRC,"securityModeCommand->criticalExtensions.present (%d) != SecurityModeCommand__criticalExtensions_PR_c1\n", - securityModeCommand->criticalExtensions.present); + LOG_T(RRC, "\n"); + rrc_data_req ( + ctxt_pP, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + (enc_rval.encoded + 7) / 8, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + } else LOG_W(RRC,"securityModeCommand->criticalExtensions.present (%d) != SecurityModeCommand__criticalExtensions_PR_c1\n", + securityModeCommand->criticalExtensions.present); } //----------------------------------------------------------------------------- void rrc_ue_process_ueCapabilityEnquiry( - const protocol_ctxt_t* const ctxt_pP, - LTE_UECapabilityEnquiry_t* UECapabilityEnquiry, + const protocol_ctxt_t *const ctxt_pP, + LTE_UECapabilityEnquiry_t *UECapabilityEnquiry, uint8_t eNB_index ) //----------------------------------------------------------------------------- { - asn_enc_rval_t enc_rval; - LTE_UL_DCCH_Message_t ul_dcch_msg; - - LTE_UE_CapabilityRAT_Container_t ue_CapabilityRAT_Container; - uint8_t buffer[200]; int i; - LOG_I(RRC,"[UE %d] Frame %d: Receiving from SRB1 (DL-DCCH), Processing UECapabilityEnquiry (eNB %d)\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index); - - memset((void *)&ul_dcch_msg,0,sizeof(LTE_UL_DCCH_Message_t)); memset((void *)&ue_CapabilityRAT_Container,0,sizeof(LTE_UE_CapabilityRAT_Container_t)); - ul_dcch_msg.message.present = LTE_UL_DCCH_MessageType_PR_c1; ul_dcch_msg.message.choice.c1.present = LTE_UL_DCCH_MessageType__c1_PR_ueCapabilityInformation; ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.rrc_TransactionIdentifier = UECapabilityEnquiry->rrc_TransactionIdentifier; - ue_CapabilityRAT_Container.rat_Type = LTE_RAT_Type_eutra; OCTET_STRING_fromBuf(&ue_CapabilityRAT_Container.ueCapabilityRAT_Container, - (const char*)UE_rrc_inst[ctxt_pP->module_id].UECapability, + (const char *)UE_rrc_inst[ctxt_pP->module_id].UECapability, UE_rrc_inst[ctxt_pP->module_id].UECapability_size); // ue_CapabilityRAT_Container.ueCapabilityRAT_Container.buf = UE_rrc_inst[ue_mod_idP].UECapability; // ue_CapabilityRAT_Container.ueCapabilityRAT_Container.size = UE_rrc_inst[ue_mod_idP].UECapability_size; - - AssertFatal(UECapabilityEnquiry->criticalExtensions.present == LTE_UECapabilityEnquiry__criticalExtensions_PR_c1, - "UECapabilityEnquiry->criticalExtensions.present (%d) != UECapabilityEnquiry__criticalExtensions_PR_c1 (%d)\n", - UECapabilityEnquiry->criticalExtensions.present,LTE_UECapabilityEnquiry__criticalExtensions_PR_c1); + "UECapabilityEnquiry->criticalExtensions.present (%d) != UECapabilityEnquiry__criticalExtensions_PR_c1 (%d)\n", + UECapabilityEnquiry->criticalExtensions.present,LTE_UECapabilityEnquiry__criticalExtensions_PR_c1); if (UECapabilityEnquiry->criticalExtensions.choice.c1.present != LTE_UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8) LOG_I(RRC,"UECapabilityEnquiry->criticalExtensions.choice.c1.present (%d) != UECapabilityEnquiry__criticalExtensions__c1_PR_ueCapabilityEnquiry_r8)\n", - UECapabilityEnquiry->criticalExtensions.choice.c1.present); - + UECapabilityEnquiry->criticalExtensions.choice.c1.present); + ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.present = LTE_UECapabilityInformation__criticalExtensions_PR_c1; ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.present = LTE_UECapabilityInformation__criticalExtensions__c1_PR_ueCapabilityInformation_r8; ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list.count =0; - + for (i=0; icriticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.count; i++) { - if (*UECapabilityEnquiry->criticalExtensions.choice.c1.choice.ueCapabilityEnquiry_r8.ue_CapabilityRequest.list.array[i] - == LTE_RAT_Type_eutra) { + == LTE_RAT_Type_eutra) { ASN_SEQUENCE_ADD( - &ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list, - &ue_CapabilityRAT_Container); - - enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, (void*) &ul_dcch_msg, buffer, 100); + &ul_dcch_msg.message.choice.c1.choice.ueCapabilityInformation.criticalExtensions.choice.c1.choice.ueCapabilityInformation_r8.ue_CapabilityRAT_ContainerList.list, + &ue_CapabilityRAT_Container); + enc_rval = uper_encode_to_buffer(&asn_DEF_LTE_UL_DCCH_Message, NULL, (void *) &ul_dcch_msg, buffer, 100); AssertFatal (enc_rval.encoded > 0, "ASN1 message encoding failed (%s, %jd)!\n", - enc_rval.failed_type->name, enc_rval.encoded); - + enc_rval.failed_type->name, enc_rval.encoded); + if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_UL_DCCH_Message, (void*)&ul_dcch_msg); + xer_fprint(stdout, &asn_DEF_LTE_UL_DCCH_Message, (void *)&ul_dcch_msg); } - -#if defined(ENABLE_ITTI) -# if !defined(DISABLE_XER_SPRINT) - { - char message_string[20000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_UL_DCCH_Message, (void *) &ul_dcch_msg)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_UL_DCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_ul_dcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_ul_dcch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } -# endif -#endif - - LOG_I(RRC,"UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); - - for (i = 0; i < (enc_rval.encoded + 7) / 8; i++) { - LOG_T(RRC, "%02x.", buffer[i]); - } - - LOG_T(RRC, "\n"); + LOG_I(RRC,"UECapabilityInformation Encoded %zd bits (%zd bytes)\n",enc_rval.encoded,(enc_rval.encoded+7)/8); rrc_data_req_ue ( - ctxt_pP, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - (enc_rval.encoded + 7) / 8, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); + ctxt_pP, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + (enc_rval.encoded + 7) / 8, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); } } } @@ -2085,20 +1832,19 @@ rrc_ue_process_ueCapabilityEnquiry( //----------------------------------------------------------------------------- void rrc_ue_process_rrcConnectionReconfiguration( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, LTE_RRCConnectionReconfiguration_t *rrcConnectionReconfiguration, uint8_t eNB_index ) //----------------------------------------------------------------------------- { - LOG_I(RRC,"[UE %d] Frame %d: Receiving from SRB1 (DL-DCCH), Processing RRCConnectionReconfiguration (eNB %d)\n", ctxt_pP->module_id,ctxt_pP->frame,eNB_index); if (rrcConnectionReconfiguration->criticalExtensions.present == LTE_RRCConnectionReconfiguration__criticalExtensions_PR_c1) { if (rrcConnectionReconfiguration->criticalExtensions.choice.c1.present == LTE_RRCConnectionReconfiguration__criticalExtensions__c1_PR_rrcConnectionReconfiguration_r8) { - LTE_RRCConnectionReconfiguration_r8_IEs_t* rrcConnectionReconfiguration_r8 = + LTE_RRCConnectionReconfiguration_r8_IEs_t *rrcConnectionReconfiguration_r8 = &rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8; if (rrcConnectionReconfiguration_r8->mobilityControlInfo) { @@ -2124,42 +1870,42 @@ rrc_ue_process_rrcConnectionReconfiguration( //TTN for D2D //if RRCConnectionReconfiguration message includes the sl-CommConfig if ((rrcConnectionReconfiguration_r8->nonCriticalExtension != NULL) - && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension - != NULL) - && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension - != NULL) - && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension - != NULL) - && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension - != NULL) - && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12 - != NULL)) { - if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12->commTxResources_r12->present != LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING){ - LOG_I(RRC,"sl-CommConfig is present\n"); - //process sl-CommConfig - rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, - (LTE_SystemInformationBlockType18_r12_t *)NULL, - (LTE_SystemInformationBlockType19_r12_t *)NULL, - rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12, - (LTE_SL_DiscConfig_r12_t *)NULL - ); - } + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension + != NULL) + && (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12 + != NULL)) { + if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12->commTxResources_r12->present != + LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING) { + LOG_I(RRC,"sl-CommConfig is present\n"); + //process sl-CommConfig + rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, + (LTE_SystemInformationBlockType18_r12_t *)NULL, + (LTE_SystemInformationBlockType19_r12_t *)NULL, + rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_CommConfig_r12, + (LTE_SL_DiscConfig_r12_t *)NULL + ); + } } -/* - //if RRCConnectionReconfiguration message includes the sl-DiscConfig - if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12->discTxResources_r12->present != SL_DiscConfig_r12__discTxResources_r12_PR_NOTHING ){ - LOG_I(RRC,"sl-DiscConfig is present\n"); - //process sl-DiscConfig - rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, - (SystemInformationBlockType18_r12_t *)NULL, - (SystemInformationBlockType19_r12_t *)NULL, - (SL_CommConfig_r12_t* )NULL, - rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12 - ); - } -*/ - + /* + //if RRCConnectionReconfiguration message includes the sl-DiscConfig + if (rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12->discTxResources_r12->present != SL_DiscConfig_r12__discTxResources_r12_PR_NOTHING ){ + LOG_I(RRC,"sl-DiscConfig is present\n"); + //process sl-DiscConfig + rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, + (SystemInformationBlockType18_r12_t *)NULL, + (SystemInformationBlockType19_r12_t *)NULL, + (SL_CommConfig_r12_t* )NULL, + rrcConnectionReconfiguration_r8->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->nonCriticalExtension->sl_DiscConfig_r12 + ); + } + */ #if defined(ENABLE_ITTI) /* Check if there is dedicated NAS information to forward to NAS */ @@ -2172,12 +1918,10 @@ rrc_ue_process_rrcConnectionReconfiguration( for (list_count = 0; list_count < rrcConnectionReconfiguration_r8->dedicatedInfoNASList->list.count; list_count++) { pdu_length = rrcConnectionReconfiguration_r8->dedicatedInfoNASList->list.array[list_count]->size; pdu_buffer = rrcConnectionReconfiguration_r8->dedicatedInfoNASList->list.array[list_count]->buf; - msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_CONN_ESTABLI_CNF); NAS_CONN_ESTABLI_CNF(msg_p).errCode = AS_SUCCESS; NAS_CONN_ESTABLI_CNF(msg_p).nasMsg.length = pdu_length; NAS_CONN_ESTABLI_CNF(msg_p).nasMsg.data = pdu_buffer; - itti_send_msg_to_task(TASK_NAS_UE, ctxt_pP->instance, msg_p); } @@ -2189,7 +1933,6 @@ rrc_ue_process_rrcConnectionReconfiguration( MessageDef *message_ral_p = NULL; rrc_ral_connection_reestablishment_ind_t connection_reestablishment_ind; int i; - message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_CONNECTION_REESTABLISHMENT_IND); memset(&connection_reestablishment_ind, 0, sizeof(rrc_ral_connection_reestablishment_ind_t)); // TO DO ral_si_ind.plmn_id = 0; @@ -2214,7 +1957,6 @@ rrc_ue_process_rrcConnectionReconfiguration( connection_reestablishment_ind.num_srb = rrcConnectionReconfiguration->criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count + UE_rrc_inst[ctxt_pP->module_id].num_srb; - } else { connection_reestablishment_ind.num_srb += UE_rrc_inst[ctxt_pP->module_id].num_srb; } @@ -2238,9 +1980,9 @@ rrc_ue_process_rrcConnectionReconfiguration( //----------------------------------------------------------------------------- void rrc_ue_process_mobilityControlInfo( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, - struct LTE_MobilityControlInfo* const mobilityControlInfo + struct LTE_MobilityControlInfo *const mobilityControlInfo ) //----------------------------------------------------------------------------- { @@ -2256,7 +1998,6 @@ rrc_ue_process_mobilityControlInfo( UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T304_active = 1; UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].T304_cnt = T304[mobilityControlInfo->t304]; - /* drb2release_list = CALLOC (1, sizeof (*drb2release_list)); lcid= CALLOC (1, sizeof (DRB_Identity_t)); // long @@ -2282,22 +2023,20 @@ rrc_ue_process_mobilityControlInfo( NULL, // key rrc encryption NULL, // key rrc integrity NULL // key encryption -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,NULL -#endif + #endif ,NULL); rrc_rlc_config_asn1_req(NB_eNB_INST+ue_mod_idP, frameP,0,eNB_index, NULL,// SRB_ToAddModList NULL,// DRB_ToAddModList drb2release_list // DRB_ToReleaseList -#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) ,NULL -#endif + #endif ,NULL); */ - - //A little cleanup at RRC... //Copying current queue config to free RRC index /* @@ -2319,53 +2058,49 @@ rrc_ue_process_mobilityControlInfo( LOG_I(RRC, "HO: Reset PDCP and RLC for configured RBs.. \n[FRAME %05d][RRC_UE][MOD %02d][][--- MAC_CONFIG_REQ (SRB2 eNB %d) --->][MAC_UE][MOD %02d][]\n", ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); - // Reset MAC and configure PHY rrc_mac_config_req_ue(ctxt_pP->module_id, - 0, - eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + 0, + eNB_index, + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (LTE_SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - mobilityControlInfo, - (uint8_t *)NULL, - (uint16_t *)NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + mobilityControlInfo, + (uint8_t *)NULL, + (uint16_t *)NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - ,0, - 0 + ,0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); - + ); // Re-establish PDCP for all RBs that are established // rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, ue_mod_idP+DCCH); // rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, ue_mod_idP+DCCH1); // rrc_pdcp_config_req (ue_mod_idP+NB_eNB_INST, frameP, 0, CONFIG_ACTION_ADD, ue_mod_idP+DTCH); - - // Re-establish RLC for all RBs that are established // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,ue_mod_idP+DCCH,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); // rrc_rlc_config_req(ue_mod_idP+NB_eNB_INST,frameP,0,CONFIG_ACTION_ADD,ue_mod_idP+DCCH1,SIGNALLING_RADIO_BEARER,Rlc_info_am_config); @@ -2387,14 +2122,13 @@ rrc_detach_from_eNB( //----------------------------------------------------------------------------- void rrc_ue_decode_dcch( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const rb_id_t Srb_id, - const uint8_t* const Buffer, + const uint8_t *const Buffer, const uint8_t eNB_indexP ) //----------------------------------------------------------------------------- { - //DL_DCCH_Message_t dldcchmsg; LTE_DL_DCCH_Message_t *dl_dcch_msg=NULL;//&dldcchmsg; // asn_dec_rval_t dec_rval; @@ -2410,336 +2144,296 @@ rrc_ue_decode_dcch( return; } - //memset(dl_dcch_msg,0,sizeof(DL_DCCH_Message_t)); - - // decode messages - // LOG_D(RRC,"[UE %d] Decoding DL-DCCH message\n",ue_mod_idP); - /* - for (i=0;i<30;i++) - LOG_T(RRC,"%x.",Buffer[i]); - LOG_T(RRC, "\n"); - */ uper_decode(NULL, &asn_DEF_LTE_DL_DCCH_Message, - (void**)&dl_dcch_msg, - (uint8_t*)Buffer, + (void **)&dl_dcch_msg, + (uint8_t *)Buffer, RRC_BUF_SIZE,0,0); if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout,&asn_DEF_LTE_DL_DCCH_Message,(void*)dl_dcch_msg); + xer_fprint(stdout,&asn_DEF_LTE_DL_DCCH_Message,(void *)dl_dcch_msg); } -#if defined(ENABLE_ITTI) -# if defined(DISABLE_ITTI_XER_PRINT) - { - msg_p = itti_alloc_new_message (TASK_RRC_UE, RRC_DL_DCCH_MESSAGE); - memcpy (&msg_p->ittiMsg, (void *) dl_dcch_msg, sizeof(RrcDlDcchMessage)); - - itti_send_msg_to_task (TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } -# else - { - char message_string[30000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_DL_DCCH_Message, (void *)dl_dcch_msg)) > 0) { - msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_DCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_dcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_dcch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } -# endif -#endif - if (dl_dcch_msg->message.present == LTE_DL_DCCH_MessageType_PR_c1) { - if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_indexP].State >= RRC_CONNECTED) { - switch (dl_dcch_msg->message.choice.c1.present) { + case LTE_DL_DCCH_MessageType__c1_PR_NOTHING: + LOG_I(RRC, "[UE %d] Frame %d : Received PR_NOTHING on DL-DCCH-Message\n", + ctxt_pP->module_id, ctxt_pP->frame); + return; - case LTE_DL_DCCH_MessageType__c1_PR_NOTHING: - LOG_I(RRC, "[UE %d] Frame %d : Received PR_NOTHING on DL-DCCH-Message\n", - ctxt_pP->module_id, ctxt_pP->frame); - return; + case LTE_DL_DCCH_MessageType__c1_PR_csfbParametersResponseCDMA2000: + break; - case LTE_DL_DCCH_MessageType__c1_PR_csfbParametersResponseCDMA2000: - break; - - case LTE_DL_DCCH_MessageType__c1_PR_dlInformationTransfer: { + case LTE_DL_DCCH_MessageType__c1_PR_dlInformationTransfer: { #if defined(ENABLE_ITTI) - LTE_DLInformationTransfer_t *dlInformationTransfer = &dl_dcch_msg->message.choice.c1.choice.dlInformationTransfer; + LTE_DLInformationTransfer_t *dlInformationTransfer = &dl_dcch_msg->message.choice.c1.choice.dlInformationTransfer; - if ((dlInformationTransfer->criticalExtensions.present == LTE_DLInformationTransfer__criticalExtensions_PR_c1) - && (dlInformationTransfer->criticalExtensions.choice.c1.present - == LTE_DLInformationTransfer__criticalExtensions__c1_PR_dlInformationTransfer_r8) - && (dlInformationTransfer->criticalExtensions.choice.c1.choice.dlInformationTransfer_r8.dedicatedInfoType.present - == LTE_DLInformationTransfer_r8_IEs__dedicatedInfoType_PR_dedicatedInfoNAS)) { - /* This message hold a dedicated info NAS payload, forward it to NAS */ - struct LTE_DLInformationTransfer_r8_IEs__dedicatedInfoType *dedicatedInfoType = + if ((dlInformationTransfer->criticalExtensions.present == LTE_DLInformationTransfer__criticalExtensions_PR_c1) + && (dlInformationTransfer->criticalExtensions.choice.c1.present + == LTE_DLInformationTransfer__criticalExtensions__c1_PR_dlInformationTransfer_r8) + && (dlInformationTransfer->criticalExtensions.choice.c1.choice.dlInformationTransfer_r8.dedicatedInfoType.present + == LTE_DLInformationTransfer_r8_IEs__dedicatedInfoType_PR_dedicatedInfoNAS)) { + /* This message hold a dedicated info NAS payload, forward it to NAS */ + struct LTE_DLInformationTransfer_r8_IEs__dedicatedInfoType *dedicatedInfoType = &dlInformationTransfer->criticalExtensions.choice.c1.choice.dlInformationTransfer_r8.dedicatedInfoType; - uint32_t pdu_length; - uint8_t *pdu_buffer; - MessageDef *msg_p; + uint32_t pdu_length; + uint8_t *pdu_buffer; + MessageDef *msg_p; + pdu_length = dedicatedInfoType->choice.dedicatedInfoNAS.size; + pdu_buffer = dedicatedInfoType->choice.dedicatedInfoNAS.buf; + msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_DOWNLINK_DATA_IND); + NAS_DOWNLINK_DATA_IND(msg_p).UEid = ctxt_pP->module_id; // TODO set the UEid to something else ? + NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length = pdu_length; + NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data = pdu_buffer; + itti_send_msg_to_task(TASK_NAS_UE, ctxt_pP->instance, msg_p); + } - pdu_length = dedicatedInfoType->choice.dedicatedInfoNAS.size; - pdu_buffer = dedicatedInfoType->choice.dedicatedInfoNAS.buf; +#endif + break; + } - msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_DOWNLINK_DATA_IND); - NAS_DOWNLINK_DATA_IND(msg_p).UEid = ctxt_pP->module_id; // TODO set the UEid to something else ? - NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.length = pdu_length; - NAS_DOWNLINK_DATA_IND(msg_p).nasMsg.data = pdu_buffer; + case LTE_DL_DCCH_MessageType__c1_PR_handoverFromEUTRAPreparationRequest: + break; + + case LTE_DL_DCCH_MessageType__c1_PR_mobilityFromEUTRACommand: + break; + + case LTE_DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration: + + // first check if mobilityControlInfo is present + if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo + != NULL) { + /* 36.331, 5.3.5.4 Reception of an RRCConnectionReconfiguration including the mobilityControlInfo by the UE (handover)*/ + if (UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId + != dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo->targetPhysCellId) { + LOG_W(RRC, + "[UE %d] Frame %d: Handover target (%ld) is different from RSRP measured target (%ld)..\n", + ctxt_pP->module_id, + ctxt_pP->frame, + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo->targetPhysCellId, + UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId); + return; + } else if ((target_eNB_index = get_adjacent_cell_mod_id(UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId)) + == 0xFF) { + LOG_W(RRC, + "[UE %d] Frame %d: ue_mod_idP of the target eNB not found, check the network topology\n", + ctxt_pP->module_id, + ctxt_pP->frame); + return; + } else { + LOG_I(RRC, + "[UE% d] Frame %d: Received rrcConnectionReconfiguration with mobilityControlInfo \n", + ctxt_pP->module_id, + ctxt_pP->frame); + UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag = 1; // Ready to send more MeasReports if required + } + } + + rrc_ue_process_rrcConnectionReconfiguration( + ctxt_pP, + &dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration, + eNB_indexP); + + if (target_eNB_index != 0xFF) { + rrc_ue_generate_RRCConnectionReconfigurationComplete( + ctxt_pP, + target_eNB_index, + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.rrc_TransactionIdentifier); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_indexP].State = RRC_HO_EXECUTION; + UE_rrc_inst[ctxt_pP->module_id].Info[target_eNB_index].State = RRC_RECONFIGURED; + LOG_I(RRC, "[UE %d] State = RRC_RECONFIGURED during HO (eNB %d)\n", + ctxt_pP->module_id, target_eNB_index); +#if defined(ENABLE_ITTI) +#if ENABLE_RAL + { + MessageDef *message_ral_p = NULL; + rrc_ral_connection_reconfiguration_ho_ind_t connection_reconfiguration_ho_ind; + int i; + message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_CONNECTION_RECONFIGURATION_HO_IND); + memset(&connection_reconfiguration_ho_ind, 0, sizeof(rrc_ral_connection_reconfiguration_ho_ind_t)); + connection_reconfiguration_ho_ind.ue_id = ctxt_pP->module_id; + + if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList + != NULL) { + connection_reconfiguration_ho_ind.num_drb = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count; + + for (i=0; ( + imessage.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count) + && (i < maxDRB); i++) { + // why minus 1 in RRC code for drb_identity ? + connection_reconfiguration_ho_ind.drb_id[i] = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.array[i]->drb_Identity; + } + } else { + connection_reconfiguration_ho_ind.num_drb = 0; + } + + if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList + != NULL) { + connection_reconfiguration_ho_ind.num_srb = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count + + + UE_rrc_inst[ctxt_pP->module_id].num_srb; + } else { + connection_reconfiguration_ho_ind.num_srb += UE_rrc_inst[ctxt_pP->module_id].num_srb; + } + + if (connection_reconfiguration_ho_ind.num_srb > 2 ) { + connection_reconfiguration_ho_ind.num_srb =2; + } + + memcpy (&message_ral_p->ittiMsg, (void *) &connection_reconfiguration_ho_ind, sizeof(rrc_ral_connection_reconfiguration_ho_ind_t)); + //#warning "ue_mod_idP ? for instance ? => YES" + LOG_I(RRC, "Sending RRC_RAL_CONNECTION_RECONFIGURATION_HO_IND to mRAL\n"); + itti_send_msg_to_task (TASK_RAL_UE, ctxt_pP->instance, message_ral_p); + } +#endif +#endif + } else { + rrc_ue_generate_RRCConnectionReconfigurationComplete( + ctxt_pP, + eNB_indexP, + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.rrc_TransactionIdentifier); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_indexP].State = RRC_RECONFIGURED; + LOG_I(RRC, "[UE %d] State = RRC_RECONFIGURED (eNB %d)\n", + ctxt_pP->module_id, + eNB_indexP); +#if defined(ENABLE_ITTI) +#if ENABLE_RAL + { + MessageDef *message_ral_p = NULL; + rrc_ral_connection_reconfiguration_ind_t connection_reconfiguration_ind; + int i; + message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_CONNECTION_RECONFIGURATION_IND); + memset(&connection_reconfiguration_ind, 0, sizeof(rrc_ral_connection_reconfiguration_ind_t)); + connection_reconfiguration_ind.ue_id = ctxt_pP->module_id; + + if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList + != NULL) { + connection_reconfiguration_ind.num_drb = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count; + + for (i=0; ( + imessage.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count) + && (i < maxDRB); i++) { + // why minus 1 in RRC code for drb_identity ? + connection_reconfiguration_ind.drb_id[i] = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.array[i]->drb_Identity; + } + } else { + connection_reconfiguration_ind.num_drb = 0; + } + + if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList + != NULL) { + connection_reconfiguration_ind.num_srb = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count + + + UE_rrc_inst[ctxt_pP->module_id].num_srb; + } else { + connection_reconfiguration_ind.num_srb +=UE_rrc_inst[ctxt_pP->module_id].num_srb; + } + + if (connection_reconfiguration_ind.num_srb > 2 ) { + connection_reconfiguration_ind.num_srb =2; + } + + memcpy (&message_ral_p->ittiMsg, (void *) &connection_reconfiguration_ind, sizeof(rrc_ral_connection_reconfiguration_ind_t)); + //#warning "ue_mod_idP ? for instance ? => YES" + LOG_I(RRC, "Sending RRC_RAL_CONNECTION_RECONFIGURATION_IND to mRAL\n"); + itti_send_msg_to_task (TASK_RAL_UE, ctxt_pP->instance, message_ral_p); + } +#endif +#endif + } + + //TTN test D2D (should not be here - in reality, this message will be triggered from ProSeApp) + if (send_ue_information == 0) { + LOG_I(RRC, "TEST SidelinkUEInformation [UE %d] Received (eNB %d)\n", + ctxt_pP->module_id, eNB_indexP); + LTE_SL_DestinationInfoList_r12_t *destinationInfoList = CALLOC(1, sizeof(LTE_SL_DestinationInfoList_r12_t)); + LTE_SL_DestinationIdentity_r12_t *sl_destination_identity = CALLOC(1, sizeof(LTE_SL_DestinationIdentity_r12_t)); + sl_destination_identity->size = 3; + sl_destination_identity->buf = CALLOC(1,3); + sl_destination_identity->buf[0] = 0x00; + sl_destination_identity->buf[1] = 0x00; + sl_destination_identity->buf[2] = 0x01; + sl_destination_identity->bits_unused = 0; + ASN_SEQUENCE_ADD(&destinationInfoList->list,sl_destination_identity); + rrc_ue_generate_SidelinkUEInformation(ctxt_pP, eNB_indexP, destinationInfoList, NULL, SL_TRANSMIT_NON_RELAY_ONE_TO_ONE); + send_ue_information ++; + } + + break; + + case LTE_DL_DCCH_MessageType__c1_PR_rrcConnectionRelease: +#if defined(ENABLE_ITTI) + msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_CONN_RELEASE_IND); + + if ((dl_dcch_msg->message.choice.c1.choice.rrcConnectionRelease.criticalExtensions.present + == LTE_RRCConnectionRelease__criticalExtensions_PR_c1) + && (dl_dcch_msg->message.choice.c1.choice.rrcConnectionRelease.criticalExtensions.choice.c1.present + == LTE_RRCConnectionRelease__criticalExtensions__c1_PR_rrcConnectionRelease_r8)) { + NAS_CONN_RELEASE_IND(msg_p).cause = + dl_dcch_msg->message.choice.c1.choice.rrcConnectionRelease.criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.releaseCause; + } itti_send_msg_to_task(TASK_NAS_UE, ctxt_pP->instance, msg_p); - } - -#endif - break; - } - - case LTE_DL_DCCH_MessageType__c1_PR_handoverFromEUTRAPreparationRequest: - break; - - case LTE_DL_DCCH_MessageType__c1_PR_mobilityFromEUTRACommand: - break; - - case LTE_DL_DCCH_MessageType__c1_PR_rrcConnectionReconfiguration: - - // first check if mobilityControlInfo is present - if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo - != NULL) { - /* 36.331, 5.3.5.4 Reception of an RRCConnectionReconfiguration including the mobilityControlInfo by the UE (handover)*/ - if (UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId - != dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo->targetPhysCellId) { - LOG_W(RRC, - "[UE %d] Frame %d: Handover target (%ld) is different from RSRP measured target (%ld)..\n", - ctxt_pP->module_id, - ctxt_pP->frame, - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.mobilityControlInfo->targetPhysCellId, - UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId); - return; - } else if ((target_eNB_index = get_adjacent_cell_mod_id(UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId)) - == 0xFF) { - LOG_W(RRC, - "[UE %d] Frame %d: ue_mod_idP of the target eNB not found, check the network topology\n", - ctxt_pP->module_id, - ctxt_pP->frame); - return; - } else { - LOG_I(RRC, - "[UE% d] Frame %d: Received rrcConnectionReconfiguration with mobilityControlInfo \n", - ctxt_pP->module_id, - ctxt_pP->frame); - UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag = 1; // Ready to send more MeasReports if required - } - } - - rrc_ue_process_rrcConnectionReconfiguration( - ctxt_pP, - &dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration, - eNB_indexP); - - if (target_eNB_index != 0xFF) { - rrc_ue_generate_RRCConnectionReconfigurationComplete( - ctxt_pP, - target_eNB_index, - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.rrc_TransactionIdentifier); - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_indexP].State = RRC_HO_EXECUTION; - UE_rrc_inst[ctxt_pP->module_id].Info[target_eNB_index].State = RRC_RECONFIGURED; - LOG_I(RRC, "[UE %d] State = RRC_RECONFIGURED during HO (eNB %d)\n", - ctxt_pP->module_id, target_eNB_index); -#if defined(ENABLE_ITTI) #if ENABLE_RAL - { - MessageDef *message_ral_p = NULL; - rrc_ral_connection_reconfiguration_ho_ind_t connection_reconfiguration_ho_ind; - int i; - - message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_CONNECTION_RECONFIGURATION_HO_IND); - memset(&connection_reconfiguration_ho_ind, 0, sizeof(rrc_ral_connection_reconfiguration_ho_ind_t)); - connection_reconfiguration_ho_ind.ue_id = ctxt_pP->module_id; - - if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList - != NULL) { - connection_reconfiguration_ho_ind.num_drb = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count; - - for (i=0; ( - imessage.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count) - && (i < maxDRB); i++) { - // why minus 1 in RRC code for drb_identity ? - connection_reconfiguration_ho_ind.drb_id[i] = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.array[i]->drb_Identity; - } - } else { - connection_reconfiguration_ho_ind.num_drb = 0; - } - - if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList - != NULL) { - connection_reconfiguration_ho_ind.num_srb = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count - + - UE_rrc_inst[ctxt_pP->module_id].num_srb; - } else { - connection_reconfiguration_ho_ind.num_srb += UE_rrc_inst[ctxt_pP->module_id].num_srb; - } - - if (connection_reconfiguration_ho_ind.num_srb > 2 ) { - connection_reconfiguration_ho_ind.num_srb =2; - } - - memcpy (&message_ral_p->ittiMsg, (void *) &connection_reconfiguration_ho_ind, sizeof(rrc_ral_connection_reconfiguration_ho_ind_t)); - //#warning "ue_mod_idP ? for instance ? => YES" - LOG_I(RRC, "Sending RRC_RAL_CONNECTION_RECONFIGURATION_HO_IND to mRAL\n"); - itti_send_msg_to_task (TASK_RAL_UE, ctxt_pP->instance, message_ral_p); - } + msg_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_CONNECTION_RELEASE_IND); + RRC_RAL_CONNECTION_RELEASE_IND(msg_p).ue_id = ctxt_pP->module_id; + itti_send_msg_to_task(TASK_RAL_UE, ctxt_pP->instance, msg_p); #endif #endif - } else { - rrc_ue_generate_RRCConnectionReconfigurationComplete( + break; + + case LTE_DL_DCCH_MessageType__c1_PR_securityModeCommand: + LOG_I(RRC, "[UE %d] Received securityModeCommand (eNB %d)\n", + ctxt_pP->module_id, eNB_indexP); + rrc_ue_process_securityModeCommand( ctxt_pP, - eNB_indexP, - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.rrc_TransactionIdentifier); - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_indexP].State = RRC_RECONFIGURED; - LOG_I(RRC, "[UE %d] State = RRC_RECONFIGURED (eNB %d)\n", + &dl_dcch_msg->message.choice.c1.choice.securityModeCommand, + eNB_indexP); + break; + + case LTE_DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry: + LOG_I(RRC, "[UE %d] Received Capability Enquiry (eNB %d)\n", ctxt_pP->module_id, eNB_indexP); -#if defined(ENABLE_ITTI) -#if ENABLE_RAL - { - MessageDef *message_ral_p = NULL; - rrc_ral_connection_reconfiguration_ind_t connection_reconfiguration_ind; - int i; - - message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_CONNECTION_RECONFIGURATION_IND); - memset(&connection_reconfiguration_ind, 0, sizeof(rrc_ral_connection_reconfiguration_ind_t)); - connection_reconfiguration_ind.ue_id = ctxt_pP->module_id; - - if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList - != NULL) { - connection_reconfiguration_ind.num_drb = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count; - - for (i=0; ( - imessage.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.count) - && (i < maxDRB); i++) { - // why minus 1 in RRC code for drb_identity ? - connection_reconfiguration_ind.drb_id[i] = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->drb_ToAddModList->list.array[i]->drb_Identity; - } - } else { - connection_reconfiguration_ind.num_drb = 0; - } - - if (dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList - != NULL) { - connection_reconfiguration_ind.num_srb = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionReconfiguration.criticalExtensions.choice.c1.choice.rrcConnectionReconfiguration_r8.radioResourceConfigDedicated->srb_ToAddModList->list.count - + - UE_rrc_inst[ctxt_pP->module_id].num_srb; - } else { - connection_reconfiguration_ind.num_srb +=UE_rrc_inst[ctxt_pP->module_id].num_srb; - } - - if (connection_reconfiguration_ind.num_srb > 2 ) { - connection_reconfiguration_ind.num_srb =2; - } - - memcpy (&message_ral_p->ittiMsg, (void *) &connection_reconfiguration_ind, sizeof(rrc_ral_connection_reconfiguration_ind_t)); - //#warning "ue_mod_idP ? for instance ? => YES" - LOG_I(RRC, "Sending RRC_RAL_CONNECTION_RECONFIGURATION_IND to mRAL\n"); - itti_send_msg_to_task (TASK_RAL_UE, ctxt_pP->instance, message_ral_p); - } -#endif -#endif - - } - - //TTN test D2D (should not be here - in reality, this message will be triggered from ProSeApp) - if (send_ue_information == 0) { - LOG_I(RRC, "TEST SidelinkUEInformation [UE %d] Received (eNB %d)\n", - ctxt_pP->module_id, eNB_indexP); - LTE_SL_DestinationInfoList_r12_t *destinationInfoList = CALLOC(1, sizeof(LTE_SL_DestinationInfoList_r12_t)); - LTE_SL_DestinationIdentity_r12_t *sl_destination_identity = CALLOC(1, sizeof(LTE_SL_DestinationIdentity_r12_t)); - sl_destination_identity->size = 3; - sl_destination_identity->buf = CALLOC(1,3); - sl_destination_identity->buf[0] = 0x00; - sl_destination_identity->buf[1] = 0x00; - sl_destination_identity->buf[2] = 0x01; - sl_destination_identity->bits_unused = 0; - ASN_SEQUENCE_ADD(&destinationInfoList->list,sl_destination_identity); - rrc_ue_generate_SidelinkUEInformation(ctxt_pP, eNB_indexP, destinationInfoList, NULL, SL_TRANSMIT_NON_RELAY_ONE_TO_ONE); - send_ue_information ++; - } - break; - - case LTE_DL_DCCH_MessageType__c1_PR_rrcConnectionRelease: -#if defined(ENABLE_ITTI) - msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_CONN_RELEASE_IND); - - if ((dl_dcch_msg->message.choice.c1.choice.rrcConnectionRelease.criticalExtensions.present - == LTE_RRCConnectionRelease__criticalExtensions_PR_c1) - && (dl_dcch_msg->message.choice.c1.choice.rrcConnectionRelease.criticalExtensions.choice.c1.present - == LTE_RRCConnectionRelease__criticalExtensions__c1_PR_rrcConnectionRelease_r8)) { - NAS_CONN_RELEASE_IND(msg_p).cause = - dl_dcch_msg->message.choice.c1.choice.rrcConnectionRelease.criticalExtensions.choice.c1.choice.rrcConnectionRelease_r8.releaseCause; - } - - itti_send_msg_to_task(TASK_NAS_UE, ctxt_pP->instance, msg_p); -#if ENABLE_RAL - msg_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_CONNECTION_RELEASE_IND); - RRC_RAL_CONNECTION_RELEASE_IND(msg_p).ue_id = ctxt_pP->module_id; - itti_send_msg_to_task(TASK_RAL_UE, ctxt_pP->instance, msg_p); -#endif -#endif - break; - - case LTE_DL_DCCH_MessageType__c1_PR_securityModeCommand: - LOG_I(RRC, "[UE %d] Received securityModeCommand (eNB %d)\n", - ctxt_pP->module_id, eNB_indexP); - rrc_ue_process_securityModeCommand( - ctxt_pP, - &dl_dcch_msg->message.choice.c1.choice.securityModeCommand, - eNB_indexP); - break; - - case LTE_DL_DCCH_MessageType__c1_PR_ueCapabilityEnquiry: - LOG_I(RRC, "[UE %d] Received Capability Enquiry (eNB %d)\n", - ctxt_pP->module_id, - eNB_indexP); - rrc_ue_process_ueCapabilityEnquiry( - ctxt_pP, - &dl_dcch_msg->message.choice.c1.choice.ueCapabilityEnquiry, - eNB_indexP); - break; - - case LTE_DL_DCCH_MessageType__c1_PR_counterCheck: - break; + rrc_ue_process_ueCapabilityEnquiry( + ctxt_pP, + &dl_dcch_msg->message.choice.c1.choice.ueCapabilityEnquiry, + eNB_indexP); + break; + case LTE_DL_DCCH_MessageType__c1_PR_counterCheck: + break; #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - case LTE_DL_DCCH_MessageType__c1_PR_ueInformationRequest_r9: - break; + + case LTE_DL_DCCH_MessageType__c1_PR_ueInformationRequest_r9: + break; #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - case LTE_DL_DCCH_MessageType__c1_PR_loggedMeasurementConfiguration_r10: - break; - case LTE_DL_DCCH_MessageType__c1_PR_rnReconfiguration_r10: - break; + case LTE_DL_DCCH_MessageType__c1_PR_loggedMeasurementConfiguration_r10: + break; + + case LTE_DL_DCCH_MessageType__c1_PR_rnReconfiguration_r10: + break; #endif - case LTE_DL_DCCH_MessageType__c1_PR_spare1: - case LTE_DL_DCCH_MessageType__c1_PR_spare2: - case LTE_DL_DCCH_MessageType__c1_PR_spare3: + case LTE_DL_DCCH_MessageType__c1_PR_spare1: + case LTE_DL_DCCH_MessageType__c1_PR_spare2: + case LTE_DL_DCCH_MessageType__c1_PR_spare3: #if (LTE_RRC_VERSION < MAKE_VERSION(14, 0, 0)) - case LTE_DL_DCCH_MessageType__c1_PR_spare4: + case LTE_DL_DCCH_MessageType__c1_PR_spare4: #endif - break; + break; - default: - break; + default: + break; } } } @@ -2756,8 +2450,7 @@ const char SIBType[12][6] = {"SIB3","SIB4","SIB5","SIB6","SIB7","SIB8","SIB9","S const char SIBPeriod[8][6]= {"rf8","rf16","rf32","rf64","rf128","rf256","rf512","ERR"}; int siPeriod_int[7] = {80,160,320,640,1280,2560,5120}; -const char* SIBreserved( long value ) -{ +const char *SIBreserved( long value ) { if (value < 0 || value > 1) return "ERR"; @@ -2766,8 +2459,7 @@ const char* SIBreserved( long value ) return "reserved"; } -const char* SIBbarred( long value ) -{ +const char *SIBbarred( long value ) { if (value < 0 || value > 1) return "ERR"; @@ -2776,8 +2468,7 @@ const char* SIBbarred( long value ) return "barred"; } -const char* SIBallowed( long value ) -{ +const char *SIBallowed( long value ) { if (value < 0 || value > 1) return "ERR"; @@ -2786,23 +2477,21 @@ const char* SIBallowed( long value ) return "allowed"; } -const char* SIB2SoundingPresent( int value ) -{ +const char *SIB2SoundingPresent( int value ) { switch (value) { - case LTE_SoundingRS_UL_ConfigCommon_PR_NOTHING: - return "NOTHING"; + case LTE_SoundingRS_UL_ConfigCommon_PR_NOTHING: + return "NOTHING"; - case LTE_SoundingRS_UL_ConfigCommon_PR_release: - return "release"; + case LTE_SoundingRS_UL_ConfigCommon_PR_release: + return "release"; - case LTE_SoundingRS_UL_ConfigCommon_PR_setup: - return "setup"; + case LTE_SoundingRS_UL_ConfigCommon_PR_setup: + return "setup"; } return "ERR"; } -const char* SIB2numberOfRA_Preambles( long value ) -{ +const char *SIB2numberOfRA_Preambles( long value ) { static char temp[4] = {0}; if (value < 0 || value > 15) @@ -2812,16 +2501,14 @@ const char* SIB2numberOfRA_Preambles( long value ) temp[3] = 0; // terminate string return temp; } -const char* SIB2powerRampingStep( long value ) -{ +const char *SIB2powerRampingStep( long value ) { if (value < 0 || value > 3) return "ERR"; static const char str[4][4] = {"dB0","dB2","dB4","dB6"}; return str[value]; } -const char* SIB2preambleInitialReceivedTargetPower( long value ) -{ +const char *SIB2preambleInitialReceivedTargetPower( long value ) { static char temp[8] = {0}; if (value < 0 || value > 15) @@ -2831,8 +2518,7 @@ const char* SIB2preambleInitialReceivedTargetPower( long value ) temp[7] = 0; // terminate string return temp; } -const char* SIB2preambleTransMax( long value ) -{ +const char *SIB2preambleTransMax( long value ) { static char temp[5] = {0}; if (value < 0 || value > 10) @@ -2844,27 +2530,26 @@ const char* SIB2preambleTransMax( long value ) } switch (value) { - case 6: - return "n10"; + case 6: + return "n10"; - case 7: - return "n20"; + case 7: + return "n20"; - case 8: - return "n50"; + case 8: + return "n50"; - case 9: - return "n100"; + case 9: + return "n100"; - case 10: - return "n200"; + case 10: + return "n200"; } /* unreachable but gcc warns... */ return "ERR"; } -const char* SIB2ra_ResponseWindowSize( long value ) -{ +const char *SIB2ra_ResponseWindowSize( long value ) { static char temp[4] = {0}; if (value < 0 || value > 7) @@ -2876,8 +2561,7 @@ const char* SIB2ra_ResponseWindowSize( long value ) snprintf( temp, sizeof(temp), "sf%ld", value+2 ); return temp; } -const char* SIB2mac_ContentionResolutionTimer( long value ) -{ +const char *SIB2mac_ContentionResolutionTimer( long value ) { static char temp[5] = {0}; if (value < 0 || value > 7) @@ -2886,8 +2570,7 @@ const char* SIB2mac_ContentionResolutionTimer( long value ) snprintf( temp, sizeof(temp), "sf%ld", 8 + value*8 ); return temp; } -const char* SIB2modificationPeriodCoeff( long value ) -{ +const char *SIB2modificationPeriodCoeff( long value ) { static char temp[32] = {0}; if (value < 0 || value > 3) @@ -2896,8 +2579,7 @@ const char* SIB2modificationPeriodCoeff( long value ) snprintf( temp, sizeof(temp), "n%d", (int)pow(2,value+1) ); return temp; } -const char* SIB2defaultPagingCycle( long value ) -{ +const char *SIB2defaultPagingCycle( long value ) { static char temp[32] = {0}; if (value < 0 || value > 3) @@ -2906,8 +2588,7 @@ const char* SIB2defaultPagingCycle( long value ) snprintf( temp, sizeof(temp), "rf%d", (int)pow(2,value+4) ); return temp; } -const char* SIB2nB( long value ) -{ +const char *SIB2nB( long value ) { if (value < 0 || value > 7) return "ERR"; @@ -2920,17 +2601,14 @@ const char* SIB2nB( long value ) //----------------------------------------------------------------------------- int decode_BCCH_DLSCH_Message( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, - uint8_t* const Sdu, + uint8_t *const Sdu, const uint8_t Sdu_len, const uint8_t rsrq, - const uint8_t rsrp ) -{ + const uint8_t rsrp ) { LTE_BCCH_DL_SCH_Message_t *bcch_message = NULL; - LTE_SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; - int i; - + LTE_SystemInformationBlockType1_t *sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_BCCH, VCD_FUNCTION_IN ); if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 1) && // SIB1 received @@ -2943,6 +2621,10 @@ int decode_BCCH_DLSCH_Message( rrc_set_sub_state( ctxt_pP->module_id, RRC_SUB_STATE_IDLE_RECEIVING_SIB ); + if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { + xer_fprint(stdout, &asn_DEF_LTE_BCCH_DL_SCH_Message,(void *)bcch_message ); + } + asn_dec_rval_t dec_rval = uper_decode_complete( NULL, &asn_DEF_LTE_BCCH_DL_SCH_Message, (void **)&bcch_message, @@ -2953,83 +2635,50 @@ int decode_BCCH_DLSCH_Message( LOG_E( RRC, "[UE %"PRIu8"] Failed to decode BCCH_DLSCH_MESSAGE (%zu bits)\n", ctxt_pP->module_id, dec_rval.consumed ); - for (i=0;iittiMsg, (void *) bcch_message, sizeof(RrcDlBcchMessage)); - - itti_send_msg_to_task (TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } -# else - { - char message_string[15000]; - size_t message_string_size; - - if ((message_string_size = xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_BCCH_DL_SCH_Message, (void *)bcch_message)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized (TASK_RRC_UE, RRC_DL_BCCH, message_string_size + sizeof (IttiMsgText)); - msg_p->ittiMsg.rrc_dl_bcch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_dl_bcch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } -# endif -#endif - if (bcch_message->message.present == LTE_BCCH_DL_SCH_MessageType_PR_c1) { switch (bcch_message->message.choice.c1.present) { - case LTE_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1: - if ((ctxt_pP->frame % 2) == 0) { - // even frame - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 0) { - LTE_SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; - memcpy( (void*)sib1, - (void*)&bcch_message->message.choice.c1.choice.systemInformationBlockType1, - sizeof(LTE_SystemInformationBlockType1_t) ); - LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id ); - - decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp ); + case LTE_BCCH_DL_SCH_MessageType__c1_PR_systemInformationBlockType1: + if ((ctxt_pP->frame % 2) == 0) { + // even frame + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 0) { + LTE_SystemInformationBlockType1_t *sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; + memcpy( (void *)sib1, + (void *)&bcch_message->message.choice.c1.choice.systemInformationBlockType1, + sizeof(LTE_SystemInformationBlockType1_t) ); + LOG_D( RRC, "[UE %"PRIu8"] Decoding First SIB1\n", ctxt_pP->module_id ); + decode_SIB1( ctxt_pP, eNB_index, rsrq, rsrp ); + } } - } - break; + break; - case LTE_BCCH_DL_SCH_MessageType__c1_PR_systemInformation: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 1) { - // SIB1 with schedulingInfoList is available + case LTE_BCCH_DL_SCH_MessageType__c1_PR_systemInformation: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1) == 1) { + // SIB1 with schedulingInfoList is available + LTE_SystemInformation_t *si = UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; + memcpy( si, + &bcch_message->message.choice.c1.choice.systemInformation, + sizeof(LTE_SystemInformation_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n", + ctxt_pP->module_id, + ctxt_pP->frame ); + decode_SI( ctxt_pP, eNB_index ); + //if (nfapi_mode == 3) + UE_mac_inst[ctxt_pP->module_id].SI_Decoded = 1; + } - LTE_SystemInformation_t* si = UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; - memcpy( si, - &bcch_message->message.choice.c1.choice.systemInformation, - sizeof(LTE_SystemInformation_t) ); + break; - LOG_I( RRC, "[UE %"PRIu8"] Decoding SI for frameP %"PRIu32"\n", - ctxt_pP->module_id, - ctxt_pP->frame ); - decode_SI( ctxt_pP, eNB_index ); - //if (nfapi_mode == 3) - UE_mac_inst[ctxt_pP->module_id].SI_Decoded = 1; - } - - break; - - case LTE_BCCH_DL_SCH_MessageType__c1_PR_NOTHING: - default: - break; + case LTE_BCCH_DL_SCH_MessageType__c1_PR_NOTHING: + default: + break; } } @@ -3043,22 +2692,18 @@ int decode_BCCH_DLSCH_Message( } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_BCCH, VCD_FUNCTION_OUT ); - return 0; } //----------------------------------------------------------------------------- int decode_PCCH_DLSCH_Message( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, - uint8_t* const Sdu, - const uint8_t Sdu_len) -{ + uint8_t *const Sdu, + const uint8_t Sdu_len) { LTE_PCCH_Message_t *pcch_message = NULL; int i; - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_UE_DECODE_PCCH, VCD_FUNCTION_IN ); - asn_dec_rval_t dec_rval = uper_decode_complete( NULL, &asn_DEF_LTE_PCCH_Message, (void **)&pcch_message, @@ -3069,11 +2714,13 @@ int decode_PCCH_DLSCH_Message( LOG_E( RRC, "[UE %"PRIu8"] Failed to decode PCCH_MESSAGE (%zu bits)\n", ctxt_pP->module_id, dec_rval.consumed ); - for (i=0;imodule_id].sib1[eNB_index]; - +int decode_SIB1( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t rsrq, const uint8_t rsrp ) { + LTE_SystemInformationBlockType1_t *sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SIB1, VCD_FUNCTION_IN ); - LOG_I( RRC, "[UE %d] : Dumping SIB 1\n", ctxt_pP->module_id ); - LTE_PLMN_Identity_t *PLMN_identity = &sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->plmn_Identity; - int mccdigits = PLMN_identity->mcc->list.count; int mncdigits = PLMN_identity->mnc.list.count; - int mcc; if (mccdigits == 2) { @@ -3111,10 +2752,10 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, mnc = *PLMN_identity->mnc.list.array[0]*100 + *PLMN_identity->mnc.list.array[1]*10 + *PLMN_identity->mnc.list.array[2]; } - LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, - ((sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2)?((sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1]):0)); - LOG_I( RRC, "cellReservedForOperatorUse : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse, SIBreserved(sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse) ); - + LOG_I( RRC, "PLMN MCC %0*d, MNC %0*d, TAC 0x%04x\n", mccdigits, mcc, mncdigits, mnc, + ((sib1->cellAccessRelatedInfo.trackingAreaCode.size == 2)?((sib1->cellAccessRelatedInfo.trackingAreaCode.buf[0]<<8) + sib1->cellAccessRelatedInfo.trackingAreaCode.buf[1]):0)); + LOG_I( RRC, "cellReservedForOperatorUse : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse, + SIBreserved(sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[0]->cellReservedForOperatorUse) ); // search internal table for provider name int plmn_ind = 0; @@ -3137,7 +2778,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib1->cellAccessRelatedInfo.cellIdentity.buf[1], sib1->cellAccessRelatedInfo.cellIdentity.buf[2], sib1->cellAccessRelatedInfo.cellIdentity.buf[3] >> sib1->cellAccessRelatedInfo.cellIdentity.bits_unused); - LOG_I( RRC, "cellAccessRelatedInfo.cellBarred : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.cellBarred, SIBbarred(sib1->cellAccessRelatedInfo.cellBarred) ); LOG_I( RRC, "cellAccessRelatedInfo.intraFreqReselection : raw:%ld decoded:%s\n", sib1->cellAccessRelatedInfo.intraFreqReselection, SIBallowed(sib1->cellAccessRelatedInfo.intraFreqReselection) ); LOG_I( RRC, "cellAccessRelatedInfo.csg_Indication : %d\n", sib1->cellAccessRelatedInfo.csg_Indication ); @@ -3189,55 +2829,50 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "siWindowLength : %s\n", siWindowLength[min(sib1->si_WindowLength,7)] ); LOG_I( RRC, "systemInfoValueTag : %ld\n", sib1->systemInfoValueTag ); - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIperiod = siPeriod_int[sib1->schedulingInfoList.list.array[0]->si_Periodicity]; UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIwindowsize = siWindowLength_int[sib1->si_WindowLength]; LOG_I( RRC, "[FRAME unknown][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB1 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", ctxt_pP->module_id, eNB_index, ctxt_pP->module_id ); - rrc_mac_config_req_ue(ctxt_pP->module_id, 0, eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (LTE_SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config, - (LTE_MobilityControlInfo_t *) NULL, - &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIwindowsize, - &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIperiod, - NULL, - NULL, - NULL, - (LTE_MBSFN_SubframeConfigList_t *)NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]->tdd_Config, + (LTE_MobilityControlInfo_t *) NULL, + &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIwindowsize, + &UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIperiod, + NULL, + NULL, + NULL, + (LTE_MBSFN_SubframeConfigList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); - + ); LOG_I(RRC,"Setting SIStatus bit 0 to 1\n"); UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus = 1; UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIB1systemInfoValueTag = sib1->systemInfoValueTag; - #if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME) { int cell_valid = 0; @@ -3246,13 +2881,11 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, /* Cell is not barred */ int plmn; int plmn_number; - plmn_number = sib1->cellAccessRelatedInfo.plmn_IdentityList.list.count; /* Compare requested PLMN and PLMNs from SIB1*/ for (plmn = 0; plmn < plmn_number; plmn++) { LTE_PLMN_Identity_t *plmn_Identity; - plmn_Identity = &sib1->cellAccessRelatedInfo.plmn_IdentityList.list.array[plmn]->plmn_Identity; if ( @@ -3278,7 +2911,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, ) { /* PLMN match, send a confirmation to NAS */ MessageDef *msg_p; - msg_p = itti_alloc_new_message(TASK_RRC_UE, NAS_CELL_SELECTION_CNF); NAS_CELL_SELECTION_CNF (msg_p).errCode = AS_SUCCESS; NAS_CELL_SELECTION_CNF (msg_p).cellID = BIT_STRING_to_uint32(&sib1->cellAccessRelatedInfo.cellIdentity); @@ -3286,7 +2918,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, NAS_CELL_SELECTION_CNF (msg_p).rat = 0xFF; NAS_CELL_SELECTION_CNF (msg_p).rsrq = rsrq; NAS_CELL_SELECTION_CNF (msg_p).rsrp = rsrp; - itti_send_msg_to_task(TASK_NAS_UE, ctxt_pP->instance, msg_p); cell_valid = 1; break; @@ -3297,24 +2928,19 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, if (cell_valid == 0) { /* Cell can not be used, ask PHY to try the next one */ MessageDef *msg_p; - msg_p = itti_alloc_new_message(TASK_RRC_UE, PHY_FIND_NEXT_CELL_REQ); - itti_send_msg_to_task(TASK_PHY_UE, ctxt_pP->instance, msg_p); - LOG_E(RRC, "Synched with a cell, but PLMN doesn't match our SIM, the message PHY_FIND_NEXT_CELL_REQ is sent but lost in current UE implementation! \n"); + LOG_E(RRC, "Synched with a cell, but PLMN doesn't match our SIM, the message PHY_FIND_NEXT_CELL_REQ is sent but lost in current UE implementation! \n"); } } #endif - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SIB1, VCD_FUNCTION_OUT ); - return 0; } //----------------------------------------------------------------------------- - void dump_sib2( LTE_SystemInformationBlockType2_t *sib2 ) -{ +void dump_sib2( LTE_SystemInformationBlockType2_t *sib2 ) { // ac_BarringInfo if (sib2->ac_BarringInfo) { LOG_I( RRC, "ac_BarringInfo->ac_BarringForEmergency : %d\n", @@ -3364,7 +2990,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower : raw:%ld decoded:%s\n", sib2->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower, SIB2preambleInitialReceivedTargetPower(sib2->radioResourceConfigCommon.rach_ConfigCommon.powerRampingParameters.preambleInitialReceivedTargetPower) ); - LOG_I( RRC, "radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax : raw:%ld decoded:%s\n", sib2->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax, SIB2preambleTransMax(sib2->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.preambleTransMax) ); @@ -3374,15 +2999,12 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer : raw:%ld decoded:%s\n", sib2->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer, SIB2mac_ContentionResolutionTimer(sib2->radioResourceConfigCommon.rach_ConfigCommon.ra_SupervisionInfo.mac_ContentionResolutionTimer) ); - LOG_I( RRC, "radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx : %ld\n", sib2->radioResourceConfigCommon.rach_ConfigCommon.maxHARQ_Msg3Tx ); - // BCCH LOG_I( RRC, "radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff : raw:%ld decoded:%s\n", sib2->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff, SIB2modificationPeriodCoeff(sib2->radioResourceConfigCommon.bcch_Config.modificationPeriodCoeff) ); - // PCCH LOG_I( RRC, "radioResourceConfigCommon.pcch_Config.defaultPagingCycle : raw:%ld decoded:%s\n", sib2->radioResourceConfigCommon.pcch_Config.defaultPagingCycle, @@ -3390,7 +3012,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "radioResourceConfigCommon.pcch_Config.nB : raw:%ld decoded:%s\n", sib2->radioResourceConfigCommon.pcch_Config.nB, SIB2nB(sib2->radioResourceConfigCommon.pcch_Config.nB) ); - // PRACH LOG_I( RRC, "radioResourceConfigCommon.prach_Config.rootSequenceIndex : %ld\n", sib2->radioResourceConfigCommon.prach_Config.rootSequenceIndex ); @@ -3402,13 +3023,11 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib2->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.zeroCorrelationZoneConfig ); LOG_I( RRC, "radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset : %ld\n", sib2->radioResourceConfigCommon.prach_Config.prach_ConfigInfo.prach_FreqOffset ); - // PDSCH-Config LOG_I( RRC, "radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower : %ld\n", sib2->radioResourceConfigCommon.pdsch_ConfigCommon.referenceSignalPower ); LOG_I( RRC, "radioResourceConfigCommon.pdsch_ConfigCommon.p_b : %ld\n", sib2->radioResourceConfigCommon.pdsch_ConfigCommon.p_b ); - // PUSCH-Config LOG_I( RRC, "radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB : %ld\n", sib2->radioResourceConfigCommon.pusch_ConfigCommon.pusch_ConfigBasic.n_SB ); @@ -3426,7 +3045,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib2->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.sequenceHoppingEnabled ); LOG_I( RRC, "radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift : %ld\n", sib2->radioResourceConfigCommon.pusch_ConfigCommon.ul_ReferenceSignalsPUSCH.cyclicShift ); - // PUCCH-Config LOG_I( RRC, "radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift : %ld\n", sib2->radioResourceConfigCommon.pucch_ConfigCommon.deltaPUCCH_Shift ); @@ -3436,7 +3054,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib2->radioResourceConfigCommon.pucch_ConfigCommon.nCS_AN ); LOG_I( RRC, "radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN : %ld\n", sib2->radioResourceConfigCommon.pucch_ConfigCommon.n1PUCCH_AN ); - // SoundingRS_UL_Config LOG_I( RRC, "radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present : raw:%d decoded:%s\n", sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.present, @@ -3450,11 +3067,10 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission : %d\n", sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.ackNackSRS_SimultaneousTransmission ); - if(sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts) - { - LOG_I( RRC, "radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts : %ld\n", - /* TODO: check that it's okay to access [0] */ - sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts[0] ); + if(sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts) { + LOG_I( RRC, "radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts : %ld\n", + /* TODO: check that it's okay to access [0] */ + sib2->radioResourceConfigCommon.soundingRS_UL_ConfigCommon.choice.setup.srs_MaxUpPts[0] ); } } @@ -3477,15 +3093,12 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, sib2->radioResourceConfigCommon.uplinkPowerControlCommon.deltaFList_PUCCH.deltaF_PUCCH_Format2b ); LOG_I( RRC, "radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 : %ld\n", sib2->radioResourceConfigCommon.uplinkPowerControlCommon.deltaPreambleMsg3 ); - LOG_I( RRC, "radioResourceConfigCommon.ul_CyclicPrefixLength : %ld\n", sib2->radioResourceConfigCommon.ul_CyclicPrefixLength ); - #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 2, 0)) // UplinkPowerControlCommon_v1020 // ... #endif - LOG_I( RRC, "ue_TimersAndConstants.t300 : %ld\n", sib2->ue_TimersAndConstants.t300 ); LOG_I( RRC, "ue_TimersAndConstants.t301 : %ld\n", sib2->ue_TimersAndConstants.t301 ); LOG_I( RRC, "ue_TimersAndConstants.t310 : %ld\n", sib2->ue_TimersAndConstants.t310 ); @@ -3512,15 +3125,16 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "mbsfn_SubframeConfigList : not defined\n" ); LOG_I( RRC, "timeAlignmentTimerCommon : %ld\n", sib2->timeAlignmentTimerCommon ); - #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + if (sib2->lateNonCriticalExtension) { LOG_I( RRC, "lateNonCriticalExtension : %p\n", sib2->lateNonCriticalExtension ); } else LOG_I( RRC, "lateNonCriticalExtension : not defined\n" ); -#endif +#endif #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + if (sib2->ext1 && sib2->ext1->ssac_BarringForMMTEL_Voice_r9) { LOG_I( RRC, "ssac_BarringForMMTEL_Voice_r9->ac_BarringFactor : %ld\n", sib2->ext1->ssac_BarringForMMTEL_Voice_r9->ac_BarringFactor ); @@ -3540,9 +3154,10 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, BIT_STRING_to_uint32(&sib2->ext1->ssac_BarringForMMTEL_Video_r9->ac_BarringForSpecialAC) ); } else LOG_I( RRC, "ssac_BarringForMMTEL_Video_r9 : not defined\n" ); -#endif +#endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + if (sib2->ext2 && sib2->ext2->ac_BarringForCSFB_r10) { LOG_I( RRC, "ac_BarringForCSFB_r10->ac_BarringFactor : %ld\n", sib2->ext2->ac_BarringForCSFB_r10->ac_BarringFactor ); @@ -3557,10 +3172,8 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, } //----------------------------------------------------------------------------- - void dump_sib3( LTE_SystemInformationBlockType3_t *sib3 ) -{ +void dump_sib3( LTE_SystemInformationBlockType3_t *sib3 ) { LOG_I( RRC, "Dumping SIB3 (see TS36.331 V8.21.0)\n" ); - int q_Hyst_dB = sib3->cellReselectionInfoCommon.q_Hyst; // sib3->cellReselectionInfoCommon.q_Hyst is a enumerated value if (q_Hyst_dB > 6) @@ -3593,7 +3206,6 @@ int decode_SIB1( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LOG_I( RRC, "cellReselectionServingFreqInfo.threshServingLow : %ld\n", sib3->cellReselectionServingFreqInfo.threshServingLow ); LOG_I( RRC, "cellReselectionServingFreqInfo.cellReselectionPriority : %ld\n", sib3->cellReselectionServingFreqInfo.cellReselectionPriority ); - LOG_I( RRC, "intraFreqCellReselectionInfo.q_RxLevMin : %ld\n", sib3->intraFreqCellReselectionInfo.q_RxLevMin ); if (sib3->intraFreqCellReselectionInfo.p_Max) { @@ -3630,7 +3242,6 @@ int Qoffsettab[31] = {-24,-22,-20,-18,-16,-14,-12,-10,-8,-6,-5,-4,-3,-2,-1,0,1,2 int PhysCellIdRange[16] = {4,8,12,16,24,32,48,64,84,96,128,168,252,504,0,0}; uint64_t arfcn_to_freq(long arfcn) { - if (arfcn < 600) // Band 1 return((uint64_t)2110000000 + (arfcn*100000)); else if (arfcn <1200) // Band 2 @@ -3704,86 +3315,102 @@ uint64_t arfcn_to_freq(long arfcn) { exit(1); } } - void dump_sib5( LTE_SystemInformationBlockType5_t *sib5 ) -{ +void dump_sib5( LTE_SystemInformationBlockType5_t *sib5 ) { LTE_InterFreqCarrierFreqList_t interFreqCarrierFreqList = sib5->interFreqCarrierFreqList; int i,j; LTE_InterFreqCarrierFreqInfo_t *ifcfInfo; - LOG_I( RRC, "Dumping SIB5 (see TS36.331 V8.21.0)\n" ); - for (i=0;idl_CarrierFreq), - ifcfInfo->dl_CarrierFreq); + arfcn_to_freq(ifcfInfo->dl_CarrierFreq), + ifcfInfo->dl_CarrierFreq); LOG_I(RRC," Q_RXLevMin : %ld\n", ifcfInfo->q_RxLevMin); + if (ifcfInfo->p_Max != NULL) LOG_I(RRC," P_max : %ld\n", *ifcfInfo->p_Max); + LOG_I(RRC," T_ReselectionEUTRA : %ld\n",ifcfInfo->t_ReselectionEUTRA); + if (ifcfInfo->t_ReselectionEUTRA_SF) { LOG_I(RRC," t_ReselectionEUTRA_SF.sf_Medium %ld, t_ReselectionEUTRA_SF.sf_High %ld", - ifcfInfo->t_ReselectionEUTRA_SF->sf_Medium, - ifcfInfo->t_ReselectionEUTRA_SF->sf_High); + ifcfInfo->t_ReselectionEUTRA_SF->sf_Medium, + ifcfInfo->t_ReselectionEUTRA_SF->sf_High); } + LOG_I(RRC," threshX_High : %ld\n",ifcfInfo->threshX_High); LOG_I(RRC," threshX_Low : %ld\n",ifcfInfo->threshX_Low); + switch(ifcfInfo->allowedMeasBandwidth) { - case LTE_AllowedMeasBandwidth_mbw6: - LOG_I(RRC," AllowedMeasBandwidth : 6\n"); - break; - case LTE_AllowedMeasBandwidth_mbw15: - LOG_I(RRC," AllowedMeasBandwidth : 15\n"); - break; - case LTE_AllowedMeasBandwidth_mbw25: - LOG_I(RRC," AllowedMeasBandwidth : 25\n"); - break; - case LTE_AllowedMeasBandwidth_mbw50: - LOG_I(RRC," AllowedMeasBandwidth : 50\n"); - break; - case LTE_AllowedMeasBandwidth_mbw75: - LOG_I(RRC," AllowedMeasBandwidth : 75\n"); - break; - case LTE_AllowedMeasBandwidth_mbw100: - LOG_I(RRC," AllowedMeasBandwidth : 100\n"); - break; + case LTE_AllowedMeasBandwidth_mbw6: + LOG_I(RRC," AllowedMeasBandwidth : 6\n"); + break; + + case LTE_AllowedMeasBandwidth_mbw15: + LOG_I(RRC," AllowedMeasBandwidth : 15\n"); + break; + + case LTE_AllowedMeasBandwidth_mbw25: + LOG_I(RRC," AllowedMeasBandwidth : 25\n"); + break; + + case LTE_AllowedMeasBandwidth_mbw50: + LOG_I(RRC," AllowedMeasBandwidth : 50\n"); + break; + + case LTE_AllowedMeasBandwidth_mbw75: + LOG_I(RRC," AllowedMeasBandwidth : 75\n"); + break; + + case LTE_AllowedMeasBandwidth_mbw100: + LOG_I(RRC," AllowedMeasBandwidth : 100\n"); + break; } + if (ifcfInfo->presenceAntennaPort1) LOG_I(RRC," PresenceAntennaPort1 : True\n"); else LOG_I(RRC," PresenceAntennaPort1 : False\n"); + if (ifcfInfo->cellReselectionPriority) { LOG_I(RRC," CellReselectionPriority : %ld\n", - *ifcfInfo->cellReselectionPriority); + *ifcfInfo->cellReselectionPriority); } + LOG_I(RRC," NeighCellConfig : "); - for (j=0;jneighCellConfig.size;j++) { + + for (j=0; jneighCellConfig.size; j++) { printf("%2x ",ifcfInfo->neighCellConfig.buf[j]); } + printf("\n"); + if (ifcfInfo->q_OffsetFreq) LOG_I(RRC," Q_OffsetFreq : %d\n",Qoffsettab[*ifcfInfo->q_OffsetFreq]); + if (ifcfInfo->interFreqNeighCellList) { - - for (j=0;jinterFreqNeighCellList->list.count;j++) { - LOG_I(RRC," Cell %d\n", j); - LOG_I(RRC," PhysCellId : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->physCellId); - LOG_I(RRC," Q_OffsetRange : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->q_OffsetCell); - + for (j=0; jinterFreqNeighCellList->list.count; j++) { + LOG_I(RRC," Cell %d\n", j); + LOG_I(RRC," PhysCellId : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->physCellId); + LOG_I(RRC," Q_OffsetRange : %ld\n",ifcfInfo->interFreqNeighCellList->list.array[j]->q_OffsetCell); } } + if (ifcfInfo->interFreqBlackCellList) { + for (j=0; jinterFreqBlackCellList->list.count; j++) { + LOG_I(RRC," Cell %d\n", j); + LOG_I(RRC," PhysCellId start: %ld\n",ifcfInfo->interFreqBlackCellList->list.array[j]->start); - for (j=0;jinterFreqBlackCellList->list.count;j++) { - LOG_I(RRC," Cell %d\n", j); - LOG_I(RRC," PhysCellId start: %ld\n",ifcfInfo->interFreqBlackCellList->list.array[j]->start); - if (ifcfInfo->interFreqBlackCellList->list.array[i]->range) { - LOG_I(RRC," PhysCellId Range : %ld\n",*ifcfInfo->interFreqBlackCellList->list.array[j]->range); - } + if (ifcfInfo->interFreqBlackCellList->list.array[i]->range) { + LOG_I(RRC," PhysCellId Range : %ld\n",*ifcfInfo->interFreqBlackCellList->list.array[j]->range); + } } } + #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) + if (ifcfInfo->ext1 && ifcfInfo->ext1->q_QualMin_r9) LOG_I(RRC," Q_QualMin_r9 : %ld\n",*ifcfInfo->ext1->q_QualMin_r9); @@ -3791,14 +3418,13 @@ uint64_t arfcn_to_freq(long arfcn) { LOG_I(RRC," threshX_HighQ_r9 : %ld\n",ifcfInfo->ext1->threshX_Q_r9->threshX_HighQ_r9); LOG_I(RRC," threshX_LowQ_r9: %ld\n",ifcfInfo->ext1->threshX_Q_r9->threshX_LowQ_r9); } + #endif } - } #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - void dump_sib13( LTE_SystemInformationBlockType13_r9_t *sib13 ) -{ +void dump_sib13( LTE_SystemInformationBlockType13_r9_t *sib13 ) { LOG_I( RRC, "[UE] Dumping SIB13\n" ); LOG_I( RRC, "[UE] dumping sib13 second time\n" ); LOG_I( RRC, "[UE] NotificationRepetitionCoeff-r9 : %ld\n", sib13->notificationConfig_r9.notificationRepetitionCoeff_r9 ); @@ -3809,72 +3435,73 @@ uint64_t arfcn_to_freq(long arfcn) { //TTN - SIB18 //----------------------------------------------------------------------------- - void dump_sib18(LTE_SystemInformationBlockType18_r12_t *sib18){ - LOG_I( RRC, "[UE] Dumping SIB18\n" ); - for (int i = 0; i < sib18->commConfig_r12->commRxPool_r12.list.count; i++) { - LOG_I(RRC, " Contents of SIB18 %d/%d \n", i+1, sib18->commConfig_r12->commRxPool_r12.list.count); - LOG_I(RRC, " SIB18 rxPool_sc_CP_Len: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_CP_Len_r12); - LOG_I(RRC, " SIB18 sc_Period_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_Period_r12); - LOG_I(RRC, " SIB18 data_CP_Len_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->data_CP_Len_r12); - LOG_I(RRC, " SIB18 prb_Num_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Num_r12); - LOG_I(RRC, " SIB18 prb_Start_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Start_r12); - LOG_I(RRC, " SIB18 prb_End_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_End_r12); - //to add more log - } +void dump_sib18(LTE_SystemInformationBlockType18_r12_t *sib18) { + LOG_I( RRC, "[UE] Dumping SIB18\n" ); + + for (int i = 0; i < sib18->commConfig_r12->commRxPool_r12.list.count; i++) { + LOG_I(RRC, " Contents of SIB18 %d/%d \n", i+1, sib18->commConfig_r12->commRxPool_r12.list.count); + LOG_I(RRC, " SIB18 rxPool_sc_CP_Len: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_CP_Len_r12); + LOG_I(RRC, " SIB18 sc_Period_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_Period_r12); + LOG_I(RRC, " SIB18 data_CP_Len_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->data_CP_Len_r12); + LOG_I(RRC, " SIB18 prb_Num_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, " SIB18 prb_Start_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, " SIB18 prb_End_r12: %ld \n", sib18->commConfig_r12->commRxPool_r12.list.array[i]->sc_TF_ResourceConfig_r12.prb_End_r12); + //to add more log + } } //TTN - SIB19 //----------------------------------------------------------------------------- - void dump_sib19(LTE_SystemInformationBlockType19_r12_t *sib19){ - LOG_I( RRC, "[UE] Dumping SIB19\n" ); - for (int i = 0; i < sib19->discConfig_r12->discRxPool_r12.list.count; i++) { - LOG_I(RRC, " Contents of SIB19 %d/%d \n", i+1, sib19->discConfig_r12->discRxPool_r12.list.count); - LOG_I(RRC, " SIB19 cp_Len_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->cp_Len_r12); - LOG_I(RRC, " SIB19 discPeriod_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->discPeriod_r12); - LOG_I(RRC, " SIB19 numRetx_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRetx_r12); - LOG_I(RRC, " SIB19 numRepetition_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRepetition_r12); - LOG_I(RRC, " SIB19 prb_Num_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Num_r12); - LOG_I(RRC, " SIB19 prb_Start_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Start_r12); - LOG_I(RRC, " SIB19 prb_End_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_End_r12); - //to add more log - } +void dump_sib19(LTE_SystemInformationBlockType19_r12_t *sib19) { + LOG_I( RRC, "[UE] Dumping SIB19\n" ); + + for (int i = 0; i < sib19->discConfig_r12->discRxPool_r12.list.count; i++) { + LOG_I(RRC, " Contents of SIB19 %d/%d \n", i+1, sib19->discConfig_r12->discRxPool_r12.list.count); + LOG_I(RRC, " SIB19 cp_Len_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->cp_Len_r12); + LOG_I(RRC, " SIB19 discPeriod_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->discPeriod_r12); + LOG_I(RRC, " SIB19 numRetx_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRetx_r12); + LOG_I(RRC, " SIB19 numRepetition_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->numRepetition_r12); + LOG_I(RRC, " SIB19 prb_Num_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Num_r12); + LOG_I(RRC, " SIB19 prb_Start_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_Start_r12); + LOG_I(RRC, " SIB19 prb_End_r12: %ld \n", sib19->discConfig_r12->discRxPool_r12.list.array[i]->tf_ResourceConfig_r12.prb_End_r12); + //to add more log + } } - void dump_sib21(LTE_SystemInformationBlockType21_r14_t *sib21){ - if ((sib21->sl_V2X_ConfigCommon_r14 != NULL) && (sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 !=NULL) ){ - for (int i = 0; i < sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count; i++) { - LOG_I(RRC, " Contents of SIB21 %d/%d \n", i+1, sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count); - LOG_I(RRC, " SIB21 sl_Subframe_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sl_Subframe_r14.present); - LOG_I(RRC, " SIB21 adjacencyPSCCH_PSSCH_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->adjacencyPSCCH_PSSCH_r14); - LOG_I(RRC, " SIB21 sizeSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sizeSubchannel_r14); - LOG_I(RRC, " SIB21 numSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->numSubchannel_r14); - LOG_I(RRC, " SIB21 startRB_Subchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->startRB_Subchannel_r14); - //to add more log - } +void dump_sib21(LTE_SystemInformationBlockType21_r14_t *sib21) { + if ((sib21->sl_V2X_ConfigCommon_r14 != NULL) && (sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14 !=NULL) ) { + for (int i = 0; i < sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count; i++) { + LOG_I(RRC, " Contents of SIB21 %d/%d \n", i+1, sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.count); + LOG_I(RRC, " SIB21 sl_Subframe_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sl_Subframe_r14.present); + LOG_I(RRC, " SIB21 adjacencyPSCCH_PSSCH_r14: %d \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->adjacencyPSCCH_PSSCH_r14); + LOG_I(RRC, " SIB21 sizeSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->sizeSubchannel_r14); + LOG_I(RRC, " SIB21 numSubchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->numSubchannel_r14); + LOG_I(RRC, " SIB21 startRB_Subchannel_r14: %ld \n", sib21->sl_V2X_ConfigCommon_r14->v2x_CommRxPool_r14->list.array[i]->startRB_Subchannel_r14); + //to add more log } - } + } +} #endif //----------------------------------------------------------------------------- - int decode_SI( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) -{ - LTE_SystemInformation_t** si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; +int decode_SI( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) { + LTE_SystemInformation_t **si = &UE_rrc_inst[ctxt_pP->module_id].si[eNB_index]; int new_sib = 0; - LTE_SystemInformationBlockType1_t* sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; - + LTE_SystemInformationBlockType1_t *sib1 = UE_rrc_inst[ctxt_pP->module_id].sib1[eNB_index]; VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI, VCD_FUNCTION_IN ); // Dump contents if ((*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_systemInformation_r8 || #if (LTE_RRC_VERSION >= MAKE_VERSION(15, 3, 0)) - (*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture_r15) { + (*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture_r15) { #else - (*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) { + (*si)->criticalExtensions.present == LTE_SystemInformation__criticalExtensions_PR_criticalExtensionsFuture) { #endif LOG_D( RRC, "[UE] (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count %d\n", (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.count ); - } else { + } + else { LOG_D( RRC, "[UE] Unknown criticalExtension version (not Rel8)\n" ); return -1; } @@ -3884,311 +3511,310 @@ uint64_t arfcn_to_freq(long arfcn) { typeandinfo = (*si)->criticalExtensions.choice.systemInformation_r8.sib_TypeAndInfo.list.array[i]; switch(typeandinfo->present) { - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index], &typeandinfo->choice.sib2, sizeof(LTE_SystemInformationBlockType2_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB2 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib2( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] ); - LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB2 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id ); - - rrc_mac_config_req_ue(ctxt_pP->module_id, 0, eNB_index, - &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->radioResourceConfigCommon, - (struct LTE_PhysicalConfigDedicated *)NULL, + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index], &typeandinfo->choice.sib2, sizeof(LTE_SystemInformationBlockType2_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB2 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib2( UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index] ); + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB2 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id ); + rrc_mac_config_req_ue(ctxt_pP->module_id, 0, eNB_index, + &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->radioResourceConfigCommon, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, + (LTE_SCellToAddMod_r10_t *)NULL, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_CarrierFreq, - UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth, - &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.additionalSpectrumEmission, - UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->mbsfn_SubframeConfigList + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_CarrierFreq, + UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.ul_Bandwidth, + &UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->freqInfo.additionalSpectrumEmission, + UE_rrc_inst[ctxt_pP->module_id].sib2[eNB_index]->mbsfn_SubframeConfigList #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - ,0, - 0 + ,0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); - // After SI is received, prepare RRCConnectionRequest + ); + // After SI is received, prepare RRCConnectionRequest #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - if (UE_rrc_inst[ctxt_pP->module_id].MBMS_flag < 3) // see -Q option + if (UE_rrc_inst[ctxt_pP->module_id].MBMS_flag < 3) // see -Q option #endif #if !(defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)) - rrc_ue_generate_RRCConnectionRequest( ctxt_pP, eNB_index ); + rrc_ue_generate_RRCConnectionRequest( ctxt_pP, eNB_index ); #endif - if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_IDLE) { - LOG_I( RRC, "[UE %d] Received SIB1/SIB2/SIB3 Switching to RRC_SI_RECEIVED\n", ctxt_pP->module_id ); - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State = RRC_SI_RECEIVED; + if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_IDLE) { + LOG_I( RRC, "[UE %d] Received SIB1/SIB2/SIB3 Switching to RRC_SI_RECEIVED\n", ctxt_pP->module_id ); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State = RRC_SI_RECEIVED; #if ENABLE_RAL - { - MessageDef *message_ral_p = NULL; - rrc_ral_system_information_ind_t ral_si_ind; - - message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_SYSTEM_INFORMATION_IND); - memset(&ral_si_ind, 0, sizeof(rrc_ral_system_information_ind_t)); - ral_si_ind.plmn_id.MCCdigit2 = '0'; - ral_si_ind.plmn_id.MCCdigit1 = '2'; - ral_si_ind.plmn_id.MNCdigit3 = '0'; - ral_si_ind.plmn_id.MCCdigit3 = '8'; - ral_si_ind.plmn_id.MNCdigit2 = '9'; - ral_si_ind.plmn_id.MNCdigit1 = '9'; - ral_si_ind.cell_id = 1; - ral_si_ind.dbm = 0; - //ral_si_ind.dbm = fifo_dump_emos_UE.PHY_measurements->rx_rssi_dBm[eNB_index]; - // TO DO - ral_si_ind.sinr = 0; - //ral_si_ind.sinr = fifo_dump_emos_UE.PHY_measurements->subband_cqi_dB[eNB_index][phy_vars_ue->lte_frame_parms.nb_antennas_rx][0]; - // TO DO - ral_si_ind.link_data_rate = 0; - memcpy (&message_ral_p->ittiMsg, (void *) &ral_si_ind, sizeof(rrc_ral_system_information_ind_t)); + { + MessageDef *message_ral_p = NULL; + rrc_ral_system_information_ind_t ral_si_ind; + message_ral_p = itti_alloc_new_message (TASK_RRC_UE, RRC_RAL_SYSTEM_INFORMATION_IND); + memset(&ral_si_ind, 0, sizeof(rrc_ral_system_information_ind_t)); + ral_si_ind.plmn_id.MCCdigit2 = '0'; + ral_si_ind.plmn_id.MCCdigit1 = '2'; + ral_si_ind.plmn_id.MNCdigit3 = '0'; + ral_si_ind.plmn_id.MCCdigit3 = '8'; + ral_si_ind.plmn_id.MNCdigit2 = '9'; + ral_si_ind.plmn_id.MNCdigit1 = '9'; + ral_si_ind.cell_id = 1; + ral_si_ind.dbm = 0; + //ral_si_ind.dbm = fifo_dump_emos_UE.PHY_measurements->rx_rssi_dBm[eNB_index]; + // TO DO + ral_si_ind.sinr = 0; + //ral_si_ind.sinr = fifo_dump_emos_UE.PHY_measurements->subband_cqi_dB[eNB_index][phy_vars_ue->lte_frame_parms.nb_antennas_rx][0]; + // TO DO + ral_si_ind.link_data_rate = 0; + memcpy (&message_ral_p->ittiMsg, (void *) &ral_si_ind, sizeof(rrc_ral_system_information_ind_t)); #warning "ue_mod_idP ? for instance ?" - itti_send_msg_to_task (TASK_RAL_UE, UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id), message_ral_p); - } + itti_send_msg_to_task (TASK_RAL_UE, UE_MODULE_ID_TO_INSTANCE(ctxt_pP->module_id), message_ral_p); + } #endif - } - } - break; // case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 + } + } - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index], &typeandinfo->choice.sib3, sizeof(LTE_SystemInformationBlockType3_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB3 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib3( UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index] ); + break; // case SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 - } - break; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index], &typeandinfo->choice.sib3, sizeof(LTE_SystemInformationBlockType3_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB3 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib3( UE_rrc_inst[ctxt_pP->module_id].sib3[eNB_index] ); + } - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=8; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib4[eNB_index], &typeandinfo->choice.sib4, sizeof(LTE_SystemInformationBlockType4_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB4 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } + break; - break; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=8; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib4[eNB_index], &typeandinfo->choice.sib4, sizeof(LTE_SystemInformationBlockType4_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB4 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(LTE_SystemInformationBlockType5_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB5 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib5(UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index]); - } - break; + break; - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32; - new_sib=1; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index], &typeandinfo->choice.sib5, sizeof(LTE_SystemInformationBlockType5_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB5 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib5(UE_rrc_inst[ctxt_pP->module_id].sib5[eNB_index]); + } - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib6[eNB_index], &typeandinfo->choice.sib6, sizeof(LTE_SystemInformationBlockType6_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB6 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + break; - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&64) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=64; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib7[eNB_index], &typeandinfo->choice.sib7, sizeof(LTE_SystemInformationBlockType7_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB7 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib6[eNB_index], &typeandinfo->choice.sib6, sizeof(LTE_SystemInformationBlockType6_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB6 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&128) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=128; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib8[eNB_index], &typeandinfo->choice.sib8, sizeof(LTE_SystemInformationBlockType8_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB8 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + break; - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&256) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=256; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index], &typeandinfo->choice.sib9, sizeof(LTE_SystemInformationBlockType9_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB9 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&64) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=64; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib7[eNB_index], &typeandinfo->choice.sib7, sizeof(LTE_SystemInformationBlockType7_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB7 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&512) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=512; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib10[eNB_index], &typeandinfo->choice.sib10, sizeof(LTE_SystemInformationBlockType10_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB10 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + break; - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1024) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=1024; - new_sib=1; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&128) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=128; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib8[eNB_index], &typeandinfo->choice.sib8, sizeof(LTE_SystemInformationBlockType8_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB8 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib11[eNB_index], &typeandinfo->choice.sib11, sizeof(LTE_SystemInformationBlockType11_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB11 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + break; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&256) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=256; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib9[eNB_index], &typeandinfo->choice.sib9, sizeof(LTE_SystemInformationBlockType9_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB9 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } + + break; + + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&512) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=512; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib10[eNB_index], &typeandinfo->choice.sib10, sizeof(LTE_SystemInformationBlockType10_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB10 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } + + break; + + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&1024) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=1024; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib11[eNB_index], &typeandinfo->choice.sib11, sizeof(LTE_SystemInformationBlockType11_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB11 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } + + break; #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 2, 0)) - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2048) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2048; - new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib12[eNB_index], &typeandinfo->choice.sib12_v920, sizeof(LTE_SystemInformationBlockType12_r9_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB12 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - } - break; + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib12_v920: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&2048) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=2048; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib12[eNB_index], &typeandinfo->choice.sib12_v920, sizeof(LTE_SystemInformationBlockType12_r9_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB12 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + } - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4096) == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4096; - new_sib=1; + break; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index], &typeandinfo->choice.sib13_v920, sizeof(LTE_SystemInformationBlockType13_r9_t) ); - LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB13 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); - dump_sib13( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] ); - // adding here function to store necessary parameters for using in decode_MCCH_Message + maybe transfer to PHY layer - LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB13 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); - rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, - (LTE_SCellToAddMod_r10_t *)NULL, - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - (LTE_MBSFN_SubframeConfigList_t *)NULL, - 0, - &UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index]->mbsfn_AreaInfoList_r9, - (LTE_PMCH_InfoList_r9_t *)NULL + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&4096) == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=4096; + new_sib=1; + memcpy( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index], &typeandinfo->choice.sib13_v920, sizeof(LTE_SystemInformationBlockType13_r9_t) ); + LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB13 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); + dump_sib13( UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index] ); + // adding here function to store necessary parameters for using in decode_MCCH_Message + maybe transfer to PHY layer + LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB13 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + rrc_mac_config_req_ue(ctxt_pP->module_id,0,eNB_index, + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, + (LTE_SCellToAddMod_r10_t *)NULL, + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + (LTE_MBSFN_SubframeConfigList_t *)NULL, + 0, + &UE_rrc_inst[ctxt_pP->module_id].sib13[eNB_index]->mbsfn_AreaInfoList_r9, + (LTE_PMCH_InfoList_r9_t *)NULL #ifdef CBA - ,0, - 0 + ,0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL -#endif - ); - break; - } + , + 0, + NULL, + NULL #endif + ); + break; + } +#endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + //SIB18 - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) == 0) { + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib18_v1250: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) == 0) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=8192; new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], &typeandinfo->choice.sib18_v1250, sizeof(LTE_SystemInformationBlockType18_r12_t) ); LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB18 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); dump_sib18( UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index] ); // adding here function to store necessary parameters to transfer to PHY layer LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB18 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); - + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); //process SIB18 to transfer SL-related parameters to PHY rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, - UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], - (LTE_SystemInformationBlockType19_r12_t *)NULL, - (LTE_SL_CommConfig_r12_t *)NULL, - (LTE_SL_DiscConfig_r12_t *)NULL - ); + UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index], + (LTE_SystemInformationBlockType19_r12_t *)NULL, + (LTE_SL_CommConfig_r12_t *)NULL, + (LTE_SL_DiscConfig_r12_t *)NULL + ); + } - } - break; + break; - //SIB19 - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) == 0) { + //SIB19 + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib19_v1250: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) == 0) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=16384; new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], &typeandinfo->choice.sib19_v1250, sizeof(LTE_SystemInformationBlockType19_r12_t) ); LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB19 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); dump_sib19( UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index] ); // adding here function to store necessary parameters to transfer to PHY layer LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB19 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); //process SIB19 to transfer SL-related parameters to PHY rrc_ue_process_sidelink_radioResourceConfig(ctxt_pP->module_id,eNB_index, - (LTE_SystemInformationBlockType18_r12_t *)NULL, - UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], - (LTE_SL_CommConfig_r12_t *)NULL, - (LTE_SL_DiscConfig_r12_t *)NULL - ); + (LTE_SystemInformationBlockType18_r12_t *)NULL, + UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index], + (LTE_SL_CommConfig_r12_t *)NULL, + (LTE_SL_DiscConfig_r12_t *)NULL + ); + } - } - break; + break; - //SIB21 - case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430: - if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32768) == 0) { + //SIB21 + case LTE_SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib21_v1430: + if ((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&32768) == 0) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus|=32768; new_sib=1; - memcpy( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index], &typeandinfo->choice.sib21_v1430, sizeof(LTE_SystemInformationBlockType21_r14_t) ); LOG_I( RRC, "[UE %"PRIu8"] Frame %"PRIu32" Found SIB21 from eNB %"PRIu8"\n", ctxt_pP->module_id, ctxt_pP->frame, eNB_index ); dump_sib21( UE_rrc_inst[ctxt_pP->module_id].sib21[eNB_index] ); // adding here function to store necessary parameters to transfer to PHY layer LOG_I( RRC, "[FRAME %05"PRIu32"][RRC_UE][MOD %02"PRIu8"][][--- MAC_CONFIG_REQ (SIB21 params eNB %"PRIu8") --->][MAC_UE][MOD %02"PRIu8"][]\n", - ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); + ctxt_pP->frame, ctxt_pP->module_id, eNB_index, ctxt_pP->module_id); //process SIB21 //TODO - } - break; - + } + break; #endif - default: - break; - } + default: + break; + } } + if (new_sib == 1) { UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt++; @@ -4196,9 +3822,9 @@ uint64_t arfcn_to_freq(long arfcn) { rrc_set_sub_state( ctxt_pP->module_id, RRC_SUB_STATE_IDLE_SIB_COMPLETE ); LOG_I(RRC,"SIStatus %x, SIcnt %d/%d\n", - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus, - UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt, - sib1->schedulingInfoList.list.count); + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus, + UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIcnt, + sib1->schedulingInfoList.list.count); } VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_UE_DECODE_SI , VCD_FUNCTION_OUT); @@ -4207,8 +3833,7 @@ uint64_t arfcn_to_freq(long arfcn) { // layer 3 filtering of RSRP (EUTRA) measurements: 36.331, Sec. 5.5.3.2 //----------------------------------------------------------------------------- -void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) -{ +void ue_meas_filtering( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) { float a = UE_rrc_inst[ctxt_pP->module_id].filter_coeff_rsrp; // 'a' in 36.331 Sec. 5.5.3.2 float a1 = UE_rrc_inst[ctxt_pP->module_id].filter_coeff_rsrq; //float rsrp_db, rsrq_db; @@ -4219,18 +3844,17 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ if(UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[0]->quantityConfigEUTRA->filterCoefficientRSRP != NULL) { for (eNB_offset = 0; eNB_offset<1+get_n_adj_cells(ctxt_pP->module_id,0); eNB_offset++) { UE_rrc_inst[ctxt_pP->module_id].rsrp_db[eNB_offset] = get_RSRP(ctxt_pP->module_id,0,eNB_offset); - /* - (dB_fixed_times10(get_RSRP(ctxt_pP->module_id,0,eNB_offset))/10.0) - - get_rx_total_gain_dB(ctxt_pP->module_id,0) - - get_bw_gain_dB(ctxt_pP->module_id); - */ + /* + (dB_fixed_times10(get_RSRP(ctxt_pP->module_id,0,eNB_offset))/10.0) - + get_rx_total_gain_dB(ctxt_pP->module_id,0) - + get_bw_gain_dB(ctxt_pP->module_id); + */ UE_rrc_inst[ctxt_pP->module_id].rsrp_db_filtered[eNB_offset] = (1.0-a)*UE_rrc_inst[ctxt_pP->module_id].rsrp_db_filtered[eNB_offset] + a*UE_rrc_inst[ctxt_pP->module_id].rsrp_db[eNB_offset]; - LOG_D(RRC,"RSRP_dBm: %3.2f \n",get_RSRP(ctxt_pP->module_id,0,eNB_offset));; - /* LOG_D(RRC,"gain_loss_dB: %d \n",get_rx_total_gain_dB(ctxt_pP->module_id,0)); - LOG_D(RRC,"gain_fixed_dB: %d \n",dB_fixed(frame_parms->N_RB_DL*12));*/ + /* LOG_D(RRC,"gain_loss_dB: %d \n",get_rx_total_gain_dB(ctxt_pP->module_id,0)); + LOG_D(RRC,"gain_fixed_dB: %d \n",dB_fixed(frame_parms->N_RB_DL*12));*/ LOG_D(PHY,"[UE %d] Frame %d, RRC Measurements => rssi %3.1f dBm (digital: %3.1f dB)\n", ctxt_pP->module_id, ctxt_pP->frame, @@ -4268,9 +3892,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ //Below routine implements Measurement Reporting procedure from 36.331 Section 5.5.5 //----------------------------------------------------------------------------- - void rrc_ue_generate_MeasurementReport(protocol_ctxt_t* const ctxt_pP, uint8_t eNB_index ) -{ - +void rrc_ue_generate_MeasurementReport(protocol_ctxt_t *const ctxt_pP, uint8_t eNB_index ) { uint8_t buffer[32], size; uint8_t i; uint8_t target_eNB_offset; @@ -4282,7 +3904,6 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ float rsrp_filtered, rsrq_filtered; static frame_t pframe=0; int result; - nElem = 98; nElem1 = 35; target_eNB_offset = UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget; // eNB_offset of target eNB: used to obtain the mod_id of target eNB @@ -4290,14 +3911,11 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ for (i=0; imodule_id].measReportList[0][i] != NULL) { measId = UE_rrc_inst[ctxt_pP->module_id].measReportList[0][i]->measId; - // Note: Values in the meas report have to be the mapped values...to implement binary search for LUT rsrp_filtered = UE_rrc_inst[ctxt_pP->module_id].rsrp_db_filtered[eNB_index];//nid_cell]; rsrp_s = binary_search_float(RSRP_meas_mapping,nElem, rsrp_filtered); - rsrq_filtered = UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[eNB_index];//nid_cell]; //RSRQ of serving cell rsrq_s = binary_search_float(RSRQ_meas_mapping,nElem1,rsrq_filtered);//mapped RSRQ of serving cell - LOG_D(RRC,"[UE %d] Frame %d: source eNB %d :rsrp_s: %ld rsrq_s: %ld rsrp_filtered: %f rsrq_filtered: %f \n", ctxt_pP->module_id, ctxt_pP->frame, @@ -4308,7 +3926,6 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ rsrq_filtered); rsrp_t = binary_search_float(RSRP_meas_mapping,nElem,UE_rrc_inst[ctxt_pP->module_id].rsrp_db_filtered[target_eNB_offset]); //RSRP of target cell rsrq_t = binary_search_float(RSRQ_meas_mapping,nElem1,UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[target_eNB_offset]); //RSRQ of target cell - LOG_D(RRC,"[UE %d] Frame %d: target eNB %d :rsrp_t: %ld rsrq_t: %ld rsrp_filtered: %f rsrq_filtered: %f \n", ctxt_pP->module_id, ctxt_pP->frame, @@ -4317,7 +3934,6 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ rsrq_t, UE_rrc_inst[ctxt_pP->module_id].rsrp_db_filtered[target_eNB_offset], UE_rrc_inst[ctxt_pP->module_id].rsrq_db_filtered[target_eNB_offset]); - // if (measFlag == 1) { targetCellId = UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId ;//get_adjacent_cell_id(ue_mod_idP,target_eNB_offset); //PhycellId of target cell @@ -4339,7 +3955,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) ,NULL, NULL #endif - ); + ); AssertFatal (result == TRUE, "PDCP data request failed!\n"); //LOG_D(RRC, "[UE %d] Frame %d Sending MeasReport (%d bytes) through DCCH%d to PDCP \n",ue_mod_idP,frameP, size, DCCH); } @@ -4352,8 +3968,7 @@ void ue_meas_filtering( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_ // Measurement report triggering, described in 36.331 Section 5.5.4.1: called periodically //----------------------------------------------------------------------------- -void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index ) -{ +void ue_measurement_report_triggering(protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index ) { uint8_t i,j; LTE_Hysteresis_t hys; LTE_TimeToTrigger_t ttt_ms; @@ -4393,65 +4008,65 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint -1]->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.choice.eventA3.a3_Offset; switch (UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][reportConfigId-1]->reportConfig.choice.reportConfigEUTRA.triggerType.choice.event.eventId.present) { - case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA1: - LOG_D(RRC,"[UE %d] Frame %d : A1 event: check if serving becomes better than threshold\n", - ctxt_pP->module_id, ctxt_pP->frame); - break; + case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA1: + LOG_D(RRC,"[UE %d] Frame %d : A1 event: check if serving becomes better than threshold\n", + ctxt_pP->module_id, ctxt_pP->frame); + break; - case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA2: - LOG_D(RRC,"[UE %d] Frame %d : A2 event, check if serving becomes worse than a threshold\n", - ctxt_pP->module_id, ctxt_pP->frame); - break; + case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA2: + LOG_D(RRC,"[UE %d] Frame %d : A2 event, check if serving becomes worse than a threshold\n", + ctxt_pP->module_id, ctxt_pP->frame); + break; - case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA3: - LOG_D(RRC,"[UE %d] Frame %d : A3 event: check if a neighboring cell becomes offset better than serving to trigger a measurement event \n", - ctxt_pP->module_id, ctxt_pP->frame); + case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA3: + LOG_D(RRC,"[UE %d] Frame %d : A3 event: check if a neighboring cell becomes offset better than serving to trigger a measurement event \n", + ctxt_pP->module_id, ctxt_pP->frame); - if ((check_trigger_meas_event( - ctxt_pP->module_id, - ctxt_pP->frame, - eNB_index, - i,j,ofn,ocn,hys,ofs,ocs,a3_offset,ttt_ms)) && - (UE_rrc_inst[ctxt_pP->module_id].Info[0].State >= RRC_CONNECTED) && - (UE_rrc_inst[ctxt_pP->module_id].Info[0].T304_active == 0 ) && - (UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag == 1)) { - //trigger measurement reporting procedure (36.331, section 5.5.5) - if (UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] == NULL) { - UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] = malloc(sizeof(MEAS_REPORT_LIST)); + if ((check_trigger_meas_event( + ctxt_pP->module_id, + ctxt_pP->frame, + eNB_index, + i,j,ofn,ocn,hys,ofs,ocs,a3_offset,ttt_ms)) && + (UE_rrc_inst[ctxt_pP->module_id].Info[0].State >= RRC_CONNECTED) && + (UE_rrc_inst[ctxt_pP->module_id].Info[0].T304_active == 0 ) && + (UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag == 1)) { + //trigger measurement reporting procedure (36.331, section 5.5.5) + if (UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] == NULL) { + UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] = malloc(sizeof(MEAS_REPORT_LIST)); + } + + UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j]->measId = UE_rrc_inst[ctxt_pP->module_id].MeasId[i][j]->measId; + UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j]->numberOfReportsSent = 0; + rrc_ue_generate_MeasurementReport( + ctxt_pP, + eNB_index); + UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag = 1; + LOG_I(RRC,"[UE %d] Frame %d: A3 event detected, state: %d \n", + ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Info[0].State); + } else { + if(UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] != NULL) { + free(UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j]); + } + + UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] = NULL; } - UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j]->measId = UE_rrc_inst[ctxt_pP->module_id].MeasId[i][j]->measId; - UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j]->numberOfReportsSent = 0; - rrc_ue_generate_MeasurementReport( - ctxt_pP, - eNB_index); - UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag = 1; - LOG_I(RRC,"[UE %d] Frame %d: A3 event detected, state: %d \n", - ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Info[0].State); - } else { - if(UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] != NULL) { - free(UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j]); - } + break; - UE_rrc_inst[ctxt_pP->module_id].measReportList[i][j] = NULL; - } + case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA4: + LOG_D(RRC,"[UE %d] Frame %d : received an A4 event, neighbor becomes offset better than a threshold\n", + ctxt_pP->module_id, ctxt_pP->frame); + break; - break; + case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA5: + LOG_D(RRC,"[UE %d] Frame %d: received an A5 event, serving becomes worse than threshold 1 and neighbor becomes better than threshold 2\n", + ctxt_pP->module_id, ctxt_pP->frame); + break; - case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA4: - LOG_D(RRC,"[UE %d] Frame %d : received an A4 event, neighbor becomes offset better than a threshold\n", - ctxt_pP->module_id, ctxt_pP->frame); - break; - - case LTE_ReportConfigEUTRA__triggerType__event__eventId_PR_eventA5: - LOG_D(RRC,"[UE %d] Frame %d: received an A5 event, serving becomes worse than threshold 1 and neighbor becomes better than threshold 2\n", - ctxt_pP->module_id, ctxt_pP->frame); - break; - - default: - LOG_D(RRC,"Invalid ReportConfigEUTRA__triggerType__event__eventId: %d", - UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][j]->reportConfig.choice.reportConfigEUTRA.triggerType.present); - break; + default: + LOG_D(RRC,"Invalid ReportConfigEUTRA__triggerType__event__eventId: %d", + UE_rrc_inst[ctxt_pP->module_id].ReportConfig[i][j]->reportConfig.choice.reportConfigEUTRA.triggerType.present); + break; } } } @@ -4464,7 +4079,7 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint //check_trigger_meas_event(ue_mod_idP, frameP, eNB_index, i,j,ofn,ocn,hys,ofs,ocs,a3_offset,ttt_ms) //----------------------------------------------------------------------------- - uint8_t check_trigger_meas_event( +uint8_t check_trigger_meas_event( module_id_t ue_mod_idP, frame_t frameP, uint8_t eNB_index, @@ -4476,12 +4091,10 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint LTE_Q_OffsetRange_t ofs, LTE_Q_OffsetRange_t ocs, long a3_offset, - LTE_TimeToTrigger_t ttt ) -{ + LTE_TimeToTrigger_t ttt ) { uint8_t eNB_offset; // uint8_t currentCellIndex = frame_parms->Nid_cell; uint8_t tmp_offset; - LOG_I(RRC,"[UE %d] ofn(%ld) ocn(%ld) hys(%ld) ofs(%ld) ocs(%ld) a3_offset(%ld) ttt(%ld) rssi %3.1f\n", ue_mod_idP, ofn,ocn,hys,ofs,ocs,a3_offset,ttt, @@ -4511,8 +4124,8 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint LOG_D(RRC,"[UE %d] Frame %d eNB %d: Handover triggered: targetCellId: %ld currentCellId: %d eNB_offset: %d rsrp source: %3.1f rsrp target: %3.1f\n", ue_mod_idP, frameP, eNB_index, UE_rrc_inst->HandoverInfoUe.targetCellId,ue_cnx_index,eNB_offset, - get_RSRP(ue_mod_idP,0,0), - get_RSRP(ue_mod_idP,0,1)); + get_RSRP(ue_mod_idP,0,0), + get_RSRP(ue_mod_idP,0,1)); UE_rrc_inst->Info[0].handoverTarget = eNB_offset; //LOG_D(RRC,"PHY_ID: %d \n",UE_rrc_inst->HandoverInfoUe.targetCellId); return 1; @@ -4529,12 +4142,9 @@ void ue_measurement_report_triggering(protocol_ctxt_t* const ctxt_pP, const uint #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) //----------------------------------------------------------------------------- -int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, const uint8_t* const Sdu, const uint8_t Sdu_len, const uint8_t mbsfn_sync_area ) -{ - +int decode_MCCH_Message( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, const uint8_t *const Sdu, const uint8_t Sdu_len, const uint8_t mbsfn_sync_area ) { LTE_MCCH_Message_t *mcch=NULL; - LTE_MBSFNAreaConfiguration_r9_t** mcch_message=&UE_rrc_inst[ctxt_pP->module_id].mcch_message[eNB_index]; - + LTE_MBSFNAreaConfiguration_r9_t **mcch_message=&UE_rrc_inst[ctxt_pP->module_id].mcch_message[eNB_index]; asn_dec_rval_t dec_rval; if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].MCCHStatus[mbsfn_sync_area] == 1) { @@ -4555,12 +4165,12 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB ctxt_pP->module_id, dec_rval.consumed); //free the memory - SEQUENCE_free(&asn_DEF_LTE_MCCH_Message, (void*)mcch, 1); + SEQUENCE_free(&asn_DEF_LTE_MCCH_Message, (void *)mcch, 1); return -1; } if ( LOG_DEBUGFLAG(DEBUG_ASN1) ) { - xer_fprint(stdout, &asn_DEF_LTE_MCCH_Message, (void*)mcch); + xer_fprint(stdout, &asn_DEF_LTE_MCCH_Message, (void *)mcch); } if (mcch->message.present == LTE_MCCH_MessageType_PR_c1) { @@ -4582,7 +4192,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB eNB_index, ctxt_pP->frame, mbsfn_sync_area); - } } } @@ -4591,16 +4200,14 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB } //----------------------------------------------------------------------------- - void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_index, frame_t frameP, uint8_t mbsfn_sync_area ) -{ +void decode_MBSFNAreaConfiguration( module_id_t ue_mod_idP, uint8_t eNB_index, frame_t frameP, uint8_t mbsfn_sync_area ) { uint8_t i; protocol_ctxt_t ctxt; - LOG_I(RRC,"[UE %d] Frame %d : Number of MCH(s) in the MBSFN Sync Area %d is %d\n", ue_mod_idP, frameP, mbsfn_sync_area, UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9.list.count); - // Configure commonSF_Alloc - for(i=0; i< UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->commonSF_Alloc_r9.list.count;i++){ + // Configure commonSF_Alloc + for(i=0; i< UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->commonSF_Alloc_r9.list.count; i++) { LOG_W(RRC,"[UE %d] Frame %d, commonSF_Alloc_r9: radioframeAllocationPeriod(%ldn),radioframeAllocationOffset(%ld), subframeAllocation(%x,%x,%x)\n", ue_mod_idP, frameP, UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->commonSF_Alloc_r9.list.array[i]->radioframeAllocationPeriod<<1, @@ -4610,64 +4217,58 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->commonSF_Alloc_r9.list.array[i]->subframeAllocation.choice.oneFrame.buf[2]); UE_mac_inst[ue_mod_idP].commonSF_Alloc_r9_mbsfn_SubframeConfig[i] = UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->commonSF_Alloc_r9.list.array[i]; } + LOG_W(RRC,"[UE %d] Frame %d, commonSF_AllocPeriod_r9 %drf \n", ue_mod_idP, frameP, 4<commonSF_AllocPeriod_r9); - // Configure commonSF_AllocPeriod UE_mac_inst[ue_mod_idP].commonSF_AllocPeriod_r9 = UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->commonSF_AllocPeriod_r9; - // store to MAC/PHY necessary parameters for receiving MTCHs - rrc_mac_config_req_ue(ue_mod_idP,0,eNB_index, - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, + (LTE_SCellToAddMod_r10_t *)NULL, + //(struct PhysicalConfigDedicatedSCell_r10 *)NULL, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - (LTE_MBSFN_SubframeConfigList_t *)NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + (LTE_MBSFN_SubframeConfigList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(9, 0, 0)) - , - 0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - &UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9 - + , + 0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + &UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9 #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - , - 0, - NULL, - NULL + , + 0, + NULL, + NULL #endif - ); - + ); UE_rrc_inst[ue_mod_idP].Info[eNB_index].MCCHStatus[mbsfn_sync_area] = 1; - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_idP, ENB_FLAG_NO, UE_rrc_inst[ue_mod_idP].Info[eNB_index].rnti, frameP, 0,eNB_index); - // Config Radio Bearer for MBMS user data (similar way to configure for eNB side in init_MBMS function) rrc_pdcp_config_asn1_req(&ctxt, NULL, // SRB_ToAddModList NULL, // DRB_ToAddModList - (LTE_DRB_ToReleaseList_t*)NULL, + (LTE_DRB_ToReleaseList_t *)NULL, 0, // security mode NULL, // key rrc encryption NULL, // key rrc integrity @@ -4676,7 +4277,6 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB ,&(UE_rrc_inst[ue_mod_idP].mcch_message[eNB_index]->pmch_InfoList_r9) #endif ,NULL); - rrc_rlc_config_asn1_req(&ctxt, NULL,// SRB_ToAddModList NULL,// DRB_ToAddModList @@ -4687,490 +4287,433 @@ int decode_MCCH_Message( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB #endif ); // */ - } #endif // rel10 #if defined(ENABLE_ITTI) //----------------------------------------------------------------------------- -void *rrc_ue_task( void *args_p ) -{ +void *rrc_ue_task( void *args_p ) { MessageDef *msg_p; instance_t instance; unsigned int ue_mod_id; int result; SRB_INFO *srb_info_p; - protocol_ctxt_t ctxt; itti_mark_task_ready (TASK_RRC_UE); while(1) { // Wait for a message itti_receive_msg (TASK_RRC_UE, &msg_p); - instance = ITTI_MSG_INSTANCE (msg_p); ue_mod_id = UE_INSTANCE_TO_MODULE_ID(instance); switch (ITTI_MSG_ID(msg_p)) { - case TERMINATE_MESSAGE: - LOG_W(RRC, " *** Exiting RRC thread\n"); - itti_exit_task (); - break; + case TERMINATE_MESSAGE: + LOG_W(RRC, " *** Exiting RRC thread\n"); + itti_exit_task (); + break; - case MESSAGE_TEST: - break; + case MESSAGE_TEST: + break; /* MAC messages */ - case RRC_MAC_IN_SYNC_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), - RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index); + case RRC_MAC_IN_SYNC_IND: + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), + RRC_MAC_IN_SYNC_IND (msg_p).frame, RRC_MAC_IN_SYNC_IND (msg_p).enb_index); + UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; - UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N310_cnt = 0; + if (UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].T310_active == 1) { + UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N311_cnt++; + } - if (UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].T310_active == 1) { - UE_rrc_inst[ue_mod_id].Info[RRC_MAC_IN_SYNC_IND (msg_p).enb_index].N311_cnt++; - } + break; - break; + case RRC_MAC_OUT_OF_SYNC_IND: + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), + RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index); + UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++; + break; - case RRC_MAC_OUT_OF_SYNC_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), - RRC_MAC_OUT_OF_SYNC_IND (msg_p).frame, RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index); + case RRC_MAC_BCCH_DATA_IND: + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), + RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); + // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); + decode_BCCH_DLSCH_Message (&ctxt, + RRC_MAC_BCCH_DATA_IND (msg_p).enb_index, + RRC_MAC_BCCH_DATA_IND (msg_p).sdu, + RRC_MAC_BCCH_DATA_IND (msg_p).sdu_size, + RRC_MAC_BCCH_DATA_IND (msg_p).rsrq, + RRC_MAC_BCCH_DATA_IND (msg_p).rsrp); + break; - UE_rrc_inst[ue_mod_id].Info[RRC_MAC_OUT_OF_SYNC_IND (msg_p).enb_index].N310_cnt ++; - break; - - case RRC_MAC_BCCH_DATA_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), - RRC_MAC_BCCH_DATA_IND (msg_p).frame, RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); - - // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, RRC_MAC_BCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_BCCH_DATA_IND (msg_p).enb_index); - decode_BCCH_DLSCH_Message (&ctxt, - RRC_MAC_BCCH_DATA_IND (msg_p).enb_index, - RRC_MAC_BCCH_DATA_IND (msg_p).sdu, - RRC_MAC_BCCH_DATA_IND (msg_p).sdu_size, - RRC_MAC_BCCH_DATA_IND (msg_p).rsrq, - RRC_MAC_BCCH_DATA_IND (msg_p).rsrp); - break; - - case RRC_MAC_CCCH_DATA_CNF: - LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), - RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index); - - // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds) - UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index].Tx_buffer.payload_size = 0; - break; - - case RRC_MAC_CCCH_DATA_IND: - LOG_D(RRC, "[UE %d] RNTI %x Received %s: frameP %d, eNB %d\n", - ue_mod_id, - RRC_MAC_CCCH_DATA_IND (msg_p).rnti, - ITTI_MSG_NAME (msg_p), - RRC_MAC_CCCH_DATA_IND (msg_p).frame, - RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - - srb_info_p = &UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; - - memcpy (srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND (msg_p).sdu, - RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size); - srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size; - // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - rrc_ue_decode_ccch (&ctxt, - srb_info_p, - RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); - break; + case RRC_MAC_CCCH_DATA_CNF: + LOG_D(RRC, "[UE %d] Received %s: eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), + RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index); + // reset the tx buffer to indicate RRC that ccch was successfully transmitted (for example if contention resolution succeeds) + UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_CNF (msg_p).enb_index].Tx_buffer.payload_size = 0; + break; + case RRC_MAC_CCCH_DATA_IND: + LOG_D(RRC, "[UE %d] RNTI %x Received %s: frameP %d, eNB %d\n", + ue_mod_id, + RRC_MAC_CCCH_DATA_IND (msg_p).rnti, + ITTI_MSG_NAME (msg_p), + RRC_MAC_CCCH_DATA_IND (msg_p).frame, + RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); + srb_info_p = &UE_rrc_inst[ue_mod_id].Srb0[RRC_MAC_CCCH_DATA_IND (msg_p).enb_index]; + memcpy (srb_info_p->Rx_buffer.Payload, RRC_MAC_CCCH_DATA_IND (msg_p).sdu, + RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size); + srb_info_p->Rx_buffer.payload_size = RRC_MAC_CCCH_DATA_IND (msg_p).sdu_size; + // PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, RRC_MAC_CCCH_DATA_IND (msg_p).rnti, RRC_MAC_CCCH_DATA_IND (msg_p).frame, 0, RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); + rrc_ue_decode_ccch (&ctxt, + srb_info_p, + RRC_MAC_CCCH_DATA_IND (msg_p).enb_index); + break; #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - case RRC_MAC_MCCH_DATA_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), - RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); - - //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_MCCH_DATA_IND (msg_p).enb_index); - decode_MCCH_Message ( - &ctxt, - RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, - RRC_MAC_MCCH_DATA_IND (msg_p).sdu, - RRC_MAC_MCCH_DATA_IND (msg_p).sdu_size, - RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); - break; - - /* //TTN (for D2D) - case RRC_MAC_SL_DISCOVERY_DATA_IND: - LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), - RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); - //send to ProSeApp - break; -*/ + case RRC_MAC_MCCH_DATA_IND: + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d, mbsfn SA %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), + RRC_MAC_MCCH_DATA_IND (msg_p).frame, RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); + //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_MCCH_DATA_IND (msg_p).frame, 0,RRC_MAC_MCCH_DATA_IND (msg_p).enb_index); + decode_MCCH_Message ( + &ctxt, + RRC_MAC_MCCH_DATA_IND (msg_p).enb_index, + RRC_MAC_MCCH_DATA_IND (msg_p).sdu, + RRC_MAC_MCCH_DATA_IND (msg_p).sdu_size, + RRC_MAC_MCCH_DATA_IND (msg_p).mbsfn_sync_area); + break; + /* //TTN (for D2D) + case RRC_MAC_SL_DISCOVERY_DATA_IND: + LOG_D(RRC, "[UE %d] Received %s: frameP %d, eNB %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), + RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, M_RNTI, RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).frame, 0,RRC_MAC_SL_DISCOVERY_DATA_IND (msg_p).enb_index); + //send to ProSeApp + break; + */ # endif /* PDCP messages */ - case RRC_DCCH_DATA_IND: - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index); - LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n", - RRC_DCCH_DATA_IND (msg_p).module_id, - ITTI_MSG_NAME (msg_p), - RRC_DCCH_DATA_IND (msg_p).frame, - RRC_DCCH_DATA_IND (msg_p).dcch_index, - RRC_DCCH_DATA_IND (msg_p).eNB_index); - - LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT"Received %s DCCH %d, eNB %d\n", - PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), - ITTI_MSG_NAME (msg_p), - RRC_DCCH_DATA_IND (msg_p).dcch_index, - RRC_DCCH_DATA_IND (msg_p).eNB_index); - rrc_ue_decode_dcch ( - &ctxt, - RRC_DCCH_DATA_IND (msg_p).dcch_index, - RRC_DCCH_DATA_IND (msg_p).sdu_p, - RRC_DCCH_DATA_IND (msg_p).eNB_index); - // Message buffer has been processed, free it now. - result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), RRC_DCCH_DATA_IND (msg_p).sdu_p); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - break; - + case RRC_DCCH_DATA_IND: + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, RRC_DCCH_DATA_IND (msg_p).module_id, ENB_FLAG_NO, RRC_DCCH_DATA_IND (msg_p).rnti, RRC_DCCH_DATA_IND (msg_p).frame, 0,RRC_DCCH_DATA_IND (msg_p).eNB_index); + LOG_D(RRC, "[UE %d] Received %s: frameP %d, DCCH %d, eNB %d\n", + RRC_DCCH_DATA_IND (msg_p).module_id, + ITTI_MSG_NAME (msg_p), + RRC_DCCH_DATA_IND (msg_p).frame, + RRC_DCCH_DATA_IND (msg_p).dcch_index, + RRC_DCCH_DATA_IND (msg_p).eNB_index); + LOG_D(RRC, PROTOCOL_RRC_CTXT_UE_FMT"Received %s DCCH %d, eNB %d\n", + PROTOCOL_RRC_CTXT_UE_ARGS(&ctxt), + ITTI_MSG_NAME (msg_p), + RRC_DCCH_DATA_IND (msg_p).dcch_index, + RRC_DCCH_DATA_IND (msg_p).eNB_index); + rrc_ue_decode_dcch ( + &ctxt, + RRC_DCCH_DATA_IND (msg_p).dcch_index, + RRC_DCCH_DATA_IND (msg_p).sdu_p, + RRC_DCCH_DATA_IND (msg_p).eNB_index); + // Message buffer has been processed, free it now. + result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), RRC_DCCH_DATA_IND (msg_p).sdu_p); + AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); + break; # if defined(ENABLE_USE_MME) - case NAS_KENB_REFRESH_REQ: - memcpy((void*)UE_rrc_inst[ue_mod_id].kenb, (void*)NAS_KENB_REFRESH_REQ(msg_p).kenb, sizeof(UE_rrc_inst[ue_mod_id].kenb)); - + case NAS_KENB_REFRESH_REQ: + memcpy((void *)UE_rrc_inst[ue_mod_id].kenb, (void *)NAS_KENB_REFRESH_REQ(msg_p).kenb, sizeof(UE_rrc_inst[ue_mod_id].kenb)); LOG_D(RRC, "[UE %d] Received %s: refreshed RRC::KeNB = " - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x\n", - ue_mod_id, ITTI_MSG_NAME (msg_p), - UE_rrc_inst[ue_mod_id].kenb[0], UE_rrc_inst[ue_mod_id].kenb[1], UE_rrc_inst[ue_mod_id].kenb[2], UE_rrc_inst[ue_mod_id].kenb[3], - UE_rrc_inst[ue_mod_id].kenb[4], UE_rrc_inst[ue_mod_id].kenb[5], UE_rrc_inst[ue_mod_id].kenb[6], UE_rrc_inst[ue_mod_id].kenb[7], - UE_rrc_inst[ue_mod_id].kenb[8], UE_rrc_inst[ue_mod_id].kenb[9], UE_rrc_inst[ue_mod_id].kenb[10], UE_rrc_inst[ue_mod_id].kenb[11], - UE_rrc_inst[ue_mod_id].kenb[12], UE_rrc_inst[ue_mod_id].kenb[13], UE_rrc_inst[ue_mod_id].kenb[14], UE_rrc_inst[ue_mod_id].kenb[15], - UE_rrc_inst[ue_mod_id].kenb[16], UE_rrc_inst[ue_mod_id].kenb[17], UE_rrc_inst[ue_mod_id].kenb[18], UE_rrc_inst[ue_mod_id].kenb[19], - UE_rrc_inst[ue_mod_id].kenb[20], UE_rrc_inst[ue_mod_id].kenb[21], UE_rrc_inst[ue_mod_id].kenb[22], UE_rrc_inst[ue_mod_id].kenb[23], - UE_rrc_inst[ue_mod_id].kenb[24], UE_rrc_inst[ue_mod_id].kenb[25], UE_rrc_inst[ue_mod_id].kenb[26], UE_rrc_inst[ue_mod_id].kenb[27], - UE_rrc_inst[ue_mod_id].kenb[28], UE_rrc_inst[ue_mod_id].kenb[29], UE_rrc_inst[ue_mod_id].kenb[30], UE_rrc_inst[ue_mod_id].kenb[31]); - - break; + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x\n", + ue_mod_id, ITTI_MSG_NAME (msg_p), + UE_rrc_inst[ue_mod_id].kenb[0], UE_rrc_inst[ue_mod_id].kenb[1], UE_rrc_inst[ue_mod_id].kenb[2], UE_rrc_inst[ue_mod_id].kenb[3], + UE_rrc_inst[ue_mod_id].kenb[4], UE_rrc_inst[ue_mod_id].kenb[5], UE_rrc_inst[ue_mod_id].kenb[6], UE_rrc_inst[ue_mod_id].kenb[7], + UE_rrc_inst[ue_mod_id].kenb[8], UE_rrc_inst[ue_mod_id].kenb[9], UE_rrc_inst[ue_mod_id].kenb[10], UE_rrc_inst[ue_mod_id].kenb[11], + UE_rrc_inst[ue_mod_id].kenb[12], UE_rrc_inst[ue_mod_id].kenb[13], UE_rrc_inst[ue_mod_id].kenb[14], UE_rrc_inst[ue_mod_id].kenb[15], + UE_rrc_inst[ue_mod_id].kenb[16], UE_rrc_inst[ue_mod_id].kenb[17], UE_rrc_inst[ue_mod_id].kenb[18], UE_rrc_inst[ue_mod_id].kenb[19], + UE_rrc_inst[ue_mod_id].kenb[20], UE_rrc_inst[ue_mod_id].kenb[21], UE_rrc_inst[ue_mod_id].kenb[22], UE_rrc_inst[ue_mod_id].kenb[23], + UE_rrc_inst[ue_mod_id].kenb[24], UE_rrc_inst[ue_mod_id].kenb[25], UE_rrc_inst[ue_mod_id].kenb[26], UE_rrc_inst[ue_mod_id].kenb[27], + UE_rrc_inst[ue_mod_id].kenb[28], UE_rrc_inst[ue_mod_id].kenb[29], UE_rrc_inst[ue_mod_id].kenb[30], UE_rrc_inst[ue_mod_id].kenb[31]); + break; /* NAS messages */ - case NAS_CELL_SELECTION_REQ: + case NAS_CELL_SELECTION_REQ: + LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id), + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit1, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit2, + NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit3, + NAS_CELL_SELECTION_REQ (msg_p).rat); - LOG_D(RRC, "[UE %d] Received %s: state %d, plmnID (%d%d%d.%d%d%d), rat %x\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id), - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit1, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit2, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MCCdigit3, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit1, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit2, - NAS_CELL_SELECTION_REQ (msg_p).plmnID.MNCdigit3, - NAS_CELL_SELECTION_REQ (msg_p).rat); - - if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) { - // have a look at MAC/main.c void dl_phy_sync_success(...) - openair_rrc_ue_init(ue_mod_id,0); - } - - /* Save cell selection criterion */ - { - UE_rrc_inst[ue_mod_id].plmnID = NAS_CELL_SELECTION_REQ (msg_p).plmnID; - UE_rrc_inst[ue_mod_id].rat = NAS_CELL_SELECTION_REQ (msg_p).rat; - LOG_D(RRC, "[UE %d] Save cell selection criterion MCC %X%X%X MNC %X%X%X\n", - ue_mod_id, - UE_rrc_inst[ue_mod_id].plmnID.MCCdigit1, - UE_rrc_inst[ue_mod_id].plmnID.MCCdigit2, - UE_rrc_inst[ue_mod_id].plmnID.MCCdigit3, - UE_rrc_inst[ue_mod_id].plmnID.MNCdigit1, - UE_rrc_inst[ue_mod_id].plmnID.MNCdigit2, - UE_rrc_inst[ue_mod_id].plmnID.MNCdigit3); - - } - - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_INACTIVE: { - /* Need to first activate lower layers */ - MessageDef *message_p; - - message_p = itti_alloc_new_message(TASK_RRC_UE, ACTIVATE_MESSAGE); - - itti_send_msg_to_task(TASK_L2L1, UE_MODULE_ID_TO_INSTANCE(ue_mod_id), message_p); - - rrc_set_state (ue_mod_id, RRC_STATE_IDLE); - /* Fall through to next case */ - } - - case RRC_STATE_IDLE: { - /* Ask to layer 1 to find a cell matching the criterion */ - MessageDef *message_p; - - message_p = itti_alloc_new_message(TASK_RRC_UE, PHY_FIND_CELL_REQ); - - PHY_FIND_CELL_REQ (message_p).earfcn_start = 1; - PHY_FIND_CELL_REQ (message_p).earfcn_end = 1; - - itti_send_msg_to_task(TASK_PHY_UE, UE_MODULE_ID_TO_INSTANCE(ue_mod_id), message_p); - rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_SEARCHING); - - break; - } - - case RRC_STATE_CONNECTED: - /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); - break; - - default: - LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); - break; - } - - break; - - case NAS_CONN_ESTABLI_REQ: - LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_ESTABLI_REQ (msg_p).cause, - NAS_CONN_ESTABLI_REQ (msg_p).type, - NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.MMEcode, - NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.m_tmsi, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit1, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit2, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit3, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit1, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit2, - NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit3); - - //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0); - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, 0, 0, 0); - - UE_rrc_inst[ue_mod_id].initialNasMsg = NAS_CONN_ESTABLI_REQ (msg_p).initialNasMsg; - - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_IDLE: { - if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { - rrc_ue_generate_RRCConnectionRequest(&ctxt, 0); - LOG_D(RRC, "not sending connection request\n"); - - rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); + if (rrc_get_state(ue_mod_id) == RRC_STATE_INACTIVE) { + // have a look at MAC/main.c void dl_phy_sync_success(...) + openair_rrc_ue_init(ue_mod_id,0); } - break; - } - - case RRC_STATE_INACTIVE: - case RRC_STATE_CONNECTED: - /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); - break; - - default: - LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); - break; - } - - break; - - case NAS_UPLINK_DATA_REQ: { - uint32_t length; - uint8_t *buffer; - - LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_REQ (msg_p).UEid); - - /* Create message for PDCP (ULInformationTransfer_t) */ - length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data); - - /* Transfer data to PDCP */ - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0,0); - - // check if SRB2 is created, if yes request data_req on DCCH1 (SRB2) - if(UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) - { - rrc_data_req_ue (&ctxt, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - length, buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - } - else - { - rrc_data_req_ue (&ctxt, - DCCH1, - rrc_mui++, - SDU_CONFIRM_NO, - length, buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - } - break; - } - -# endif - -# if ENABLE_RAL - - case RRC_RAL_SCAN_REQ: - LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id,ITTI_MSG_NAME (msg_p) ); - - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_INACTIVE: { - /* Need to first activate lower layers */ - MessageDef *message_p; - - message_p = itti_alloc_new_message(TASK_RRC_UE, ACTIVATE_MESSAGE); - - itti_send_msg_to_task(TASK_L2L1, instance, message_p); - - rrc_set_state (ue_mod_id, RRC_STATE_IDLE); - /* Fall through to next case */ - } - - case RRC_STATE_IDLE: { - if (rrc_get_sub_state(ue_mod_id) != RRC_SUB_STATE_IDLE_SEARCHING) { - /* Ask to layer 1 to find a cell matching the criterion */ - MessageDef *message_p; - - message_p = itti_alloc_new_message(TASK_RRC_UE, PHY_FIND_CELL_REQ); - - rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_SEARCHING); - - PHY_FIND_CELL_REQ (message_p).transaction_id = RRC_RAL_SCAN_REQ (msg_p).transaction_id; - PHY_FIND_CELL_REQ (message_p).earfcn_start = 1; - PHY_FIND_CELL_REQ (message_p).earfcn_end = 1; //44 - - itti_send_msg_to_task(TASK_PHY_UE, instance, message_p); + /* Save cell selection criterion */ + { + UE_rrc_inst[ue_mod_id].plmnID = NAS_CELL_SELECTION_REQ (msg_p).plmnID; + UE_rrc_inst[ue_mod_id].rat = NAS_CELL_SELECTION_REQ (msg_p).rat; + LOG_D(RRC, "[UE %d] Save cell selection criterion MCC %X%X%X MNC %X%X%X\n", + ue_mod_id, + UE_rrc_inst[ue_mod_id].plmnID.MCCdigit1, + UE_rrc_inst[ue_mod_id].plmnID.MCCdigit2, + UE_rrc_inst[ue_mod_id].plmnID.MCCdigit3, + UE_rrc_inst[ue_mod_id].plmnID.MNCdigit1, + UE_rrc_inst[ue_mod_id].plmnID.MNCdigit2, + UE_rrc_inst[ue_mod_id].plmnID.MNCdigit3); } - break; - } - - case RRC_STATE_CONNECTED: - /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); - break; - - default: - LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); - break; - } - - break; - - case PHY_FIND_CELL_IND: - LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); - - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_IDLE: - switch (rrc_get_sub_state(ue_mod_id)) { - case RRC_SUB_STATE_IDLE_SEARCHING: { - MessageDef *message_p; - int i; - - message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_SCAN_CONF); - - RRC_RAL_SCAN_CONF (message_p).transaction_id = PHY_FIND_CELL_IND(msg_p).transaction_id; - RRC_RAL_SCAN_CONF (message_p).num_scan_resp = PHY_FIND_CELL_IND(msg_p).cell_nb; - - for (i = 0 ; i < PHY_FIND_CELL_IND(msg_p).cell_nb; i++) { - // TO DO - memset(&RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].link_addr, 0, sizeof(ral_link_addr_t)); - // TO DO - memset(&RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].network_id, 0, sizeof(ral_network_id_t)); - - RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].sig_strength.choice = RAL_SIG_STRENGTH_CHOICE_DBM; - RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].sig_strength._union.dbm = PHY_FIND_CELL_IND(msg_p).cells[i].rsrp; + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_INACTIVE: { + rrc_set_state (ue_mod_id, RRC_STATE_IDLE); + /* Fall through to next case */ } - rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE); + case RRC_STATE_IDLE: { + /* Ask to layer 1 to find a cell matching the criterion */ + MessageDef *message_p; + message_p = itti_alloc_new_message(TASK_RRC_UE, PHY_FIND_CELL_REQ); + PHY_FIND_CELL_REQ (message_p).earfcn_start = 1; + PHY_FIND_CELL_REQ (message_p).earfcn_end = 1; + itti_send_msg_to_task(TASK_PHY_UE, UE_MODULE_ID_TO_INSTANCE(ue_mod_id), message_p); + rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_SEARCHING); + break; + } - itti_send_msg_to_task(TASK_RAL_UE, instance, message_p); - break; - } + case RRC_STATE_CONNECTED: + /* should not happen */ + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; - default: - LOG_E(RRC, "[UE %d] Invalid RRC state %d substate %d\n", - ue_mod_id, - rrc_get_state(ue_mod_id), - rrc_get_sub_state(ue_mod_id)); + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; } break; - case RRC_STATE_INACTIVE: - case RRC_STATE_CONNECTED: - /* should not happen */ - LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + case NAS_CONN_ESTABLI_REQ: + LOG_D(RRC, "[UE %d] Received %s: cause %d, type %d, s_tmsi (mme code %"PRIu8", m-tmsi %"PRIu32"), plmnID (%d%d%d.%d%d%d)\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_CONN_ESTABLI_REQ (msg_p).cause, + NAS_CONN_ESTABLI_REQ (msg_p).type, + NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.MMEcode, + NAS_CONN_ESTABLI_REQ (msg_p).s_tmsi.m_tmsi, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit1, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit2, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MCCdigit3, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit1, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit2, + NAS_CONN_ESTABLI_REQ (msg_p).plmnID.MNCdigit3); + //PROTOCOL_CTXT_SET_BY_INSTANCE(&ctxt, instance, ENB_FLAG_NO, NOT_A_RNTI, 0, 0); + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, NOT_A_RNTI, 0, 0, 0); + UE_rrc_inst[ue_mod_id].initialNasMsg = NAS_CONN_ESTABLI_REQ (msg_p).initialNasMsg; + + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_IDLE: { + if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { + rrc_ue_generate_RRCConnectionRequest(&ctxt, 0); + LOG_D(RRC, "not sending connection request\n"); + rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); + } + + break; + } + + case RRC_STATE_INACTIVE: + case RRC_STATE_CONNECTED: + /* should not happen */ + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; + + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; + } + break; - default: - LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); - break; - } + case NAS_UPLINK_DATA_REQ: { + uint32_t length; + uint8_t *buffer; + LOG_D(RRC, "[UE %d] Received %s: UEid %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), NAS_UPLINK_DATA_REQ (msg_p).UEid); + /* Create message for PDCP (ULInformationTransfer_t) */ + length = do_ULInformationTransfer(&buffer, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.length, NAS_UPLINK_DATA_REQ (msg_p).nasMsg.data); + /* Transfer data to PDCP */ + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0,0); - break; // PHY_FIND_CELL_IND - - case PHY_MEAS_REPORT_IND: { - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); - MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_MEASUREMENT_REPORT_IND); - - memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).threshold, - &PHY_MEAS_REPORT_IND(msg_p).threshold, - sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).threshold)); - - memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param, - &PHY_MEAS_REPORT_IND(msg_p).link_param, - sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param)); - - LOG_D(RRC, "[UE %d] PHY_MEAS_REPORT_IN: sending msg %s to %s \n", ue_mod_id, "RRC_RAL_MEASUREMENT_REPORT_IND", "TASK_RAL_UE"); - itti_send_msg_to_task(TASK_RAL_UE, instance, message_p); - break; - } - - case RRC_RAL_CONFIGURE_THRESHOLD_REQ: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); - rrc_ue_ral_handle_configure_threshold_request(ue_mod_id, msg_p); - break; - - case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); - - switch (rrc_get_state(ue_mod_id)) { - case RRC_STATE_IDLE: { - if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0, 0); - rrc_ue_generate_RRCConnectionRequest(&ctxt, 0); - LOG_D(RRC, "not sending connection request\n"); - rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); + // check if SRB2 is created, if yes request data_req on DCCH1 (SRB2) + if(UE_rrc_inst[ue_mod_id].SRB2_config[0] == NULL) { + rrc_data_req_ue (&ctxt, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + length, buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + } else { + rrc_data_req_ue (&ctxt, + DCCH1, + rrc_mui++, + SDU_CONFIRM_NO, + length, buffer, + PDCP_TRANSMISSION_MODE_CONTROL); } break; } - case RRC_STATE_INACTIVE: - case RRC_STATE_CONNECTED: - /* should not happen */ - LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); +# endif +# if ENABLE_RAL + + case RRC_RAL_SCAN_REQ: + LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id,ITTI_MSG_NAME (msg_p) ); + + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_INACTIVE: { + rrc_set_state (ue_mod_id, RRC_STATE_IDLE); + /* Fall through to next case */ + } + + case RRC_STATE_IDLE: { + if (rrc_get_sub_state(ue_mod_id) != RRC_SUB_STATE_IDLE_SEARCHING) { + /* Ask to layer 1 to find a cell matching the criterion */ + MessageDef *message_p; + message_p = itti_alloc_new_message(TASK_RRC_UE, PHY_FIND_CELL_REQ); + rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_SEARCHING); + PHY_FIND_CELL_REQ (message_p).transaction_id = RRC_RAL_SCAN_REQ (msg_p).transaction_id; + PHY_FIND_CELL_REQ (message_p).earfcn_start = 1; + PHY_FIND_CELL_REQ (message_p).earfcn_end = 1; //44 + itti_send_msg_to_task(TASK_PHY_UE, instance, message_p); + } + + break; + } + + case RRC_STATE_CONNECTED: + /* should not happen */ + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; + + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; + } + break; - default: - LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + case PHY_FIND_CELL_IND: + LOG_D(RRC, "[UE %d] Received %s: state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_IDLE: + switch (rrc_get_sub_state(ue_mod_id)) { + case RRC_SUB_STATE_IDLE_SEARCHING: { + MessageDef *message_p; + int i; + message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_SCAN_CONF); + RRC_RAL_SCAN_CONF (message_p).transaction_id = PHY_FIND_CELL_IND(msg_p).transaction_id; + RRC_RAL_SCAN_CONF (message_p).num_scan_resp = PHY_FIND_CELL_IND(msg_p).cell_nb; + + for (i = 0 ; i < PHY_FIND_CELL_IND(msg_p).cell_nb; i++) { + // TO DO + memset(&RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].link_addr, 0, sizeof(ral_link_addr_t)); + // TO DO + memset(&RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].network_id, 0, sizeof(ral_network_id_t)); + RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].sig_strength.choice = RAL_SIG_STRENGTH_CHOICE_DBM; + RRC_RAL_SCAN_CONF (message_p).link_scan_resp[i].sig_strength._union.dbm = PHY_FIND_CELL_IND(msg_p).cells[i].rsrp; + } + + rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE); + itti_send_msg_to_task(TASK_RAL_UE, instance, message_p); + break; + } + + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d substate %d\n", + ue_mod_id, + rrc_get_state(ue_mod_id), + rrc_get_sub_state(ue_mod_id)); + } + + break; + + case RRC_STATE_INACTIVE: + case RRC_STATE_CONNECTED: + /* should not happen */ + LOG_E(RRC, "[UE %d] indication %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; + + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; + } + + break; // PHY_FIND_CELL_IND + + case PHY_MEAS_REPORT_IND: { + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); + MessageDef *message_p; + message_p = itti_alloc_new_message(TASK_RRC_UE, RRC_RAL_MEASUREMENT_REPORT_IND); + memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).threshold, + &PHY_MEAS_REPORT_IND(msg_p).threshold, + sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).threshold)); + memcpy(&RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param, + &PHY_MEAS_REPORT_IND(msg_p).link_param, + sizeof(RRC_RAL_MEASUREMENT_REPORT_IND (message_p).link_param)); + LOG_D(RRC, "[UE %d] PHY_MEAS_REPORT_IN: sending msg %s to %s \n", ue_mod_id, "RRC_RAL_MEASUREMENT_REPORT_IND", "TASK_RAL_UE"); + itti_send_msg_to_task(TASK_RAL_UE, instance, message_p); break; } - break; + case RRC_RAL_CONFIGURE_THRESHOLD_REQ: + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); + rrc_ue_ral_handle_configure_threshold_request(ue_mod_id, msg_p); + break; - case RRC_RAL_CONNECTION_RELEASE_REQ: - LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); - break; + case RRC_RAL_CONNECTION_ESTABLISHMENT_REQ: + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); + + switch (rrc_get_state(ue_mod_id)) { + case RRC_STATE_IDLE: { + if (rrc_get_sub_state(ue_mod_id) == RRC_SUB_STATE_IDLE_SIB_COMPLETE) { + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, ue_mod_id, ENB_FLAG_NO, UE_rrc_inst[ue_mod_id].Info[0].rnti, 0, 0, 0); + rrc_ue_generate_RRCConnectionRequest(&ctxt, 0); + LOG_D(RRC, "not sending connection request\n"); + rrc_set_sub_state (ue_mod_id, RRC_SUB_STATE_IDLE_CONNECTING); + } + + break; + } + + case RRC_STATE_INACTIVE: + case RRC_STATE_CONNECTED: + /* should not happen */ + LOG_E(RRC, "[UE %d] request %s in RRC state %d\n", ue_mod_id, ITTI_MSG_NAME (msg_p), rrc_get_state(ue_mod_id)); + break; + + default: + LOG_E(RRC, "[UE %d] Invalid RRC state %d\n", ue_mod_id, rrc_get_state(ue_mod_id)); + break; + } + + break; + + case RRC_RAL_CONNECTION_RELEASE_REQ: + LOG_D(RRC, "[UE %d] Received %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); + break; #endif - default: - LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); - break; + default: + LOG_E(RRC, "[UE %d] Received unexpected message %s\n", ue_mod_id, ITTI_MSG_NAME (msg_p)); + break; } result = itti_free (ITTI_MSG_ORIGIN_ID(msg_p), msg_p); @@ -5186,28 +4729,24 @@ void *rrc_ue_task( void *args_p ) /*------------------------------------------------------------------------------*/ void openair_rrc_top_init_ue( - int eMBMS_active, - char* uecap_xer, - uint8_t cba_group_active, - uint8_t HO_active + int eMBMS_active, + char *uecap_xer, + uint8_t cba_group_active, + uint8_t HO_active ) //----------------------------------------------------------------------------- { - module_id_t module_id; OAI_UECapability_t *UECap = NULL; int CC_id; - /* for no gcc warnings */ (void)CC_id; - LOG_D(RRC, "[OPENAIR][INIT] Init function start: NB_UE_INST=%d, NB_eNB_INST=%d\n", NB_UE_INST, NB_eNB_INST); if (NB_UE_INST > 0) { - UE_rrc_inst = (UE_RRC_INST*) malloc16(NB_UE_INST*sizeof(UE_RRC_INST)); + UE_rrc_inst = (UE_RRC_INST *) malloc16(NB_UE_INST*sizeof(UE_RRC_INST)); memset (UE_rrc_inst, 0, NB_UE_INST * sizeof(UE_RRC_INST)); LOG_D(RRC, "ALLOCATE %d Bytes for UE_RRC_INST @ %p\n", (unsigned int)(NB_UE_INST*sizeof(UE_RRC_INST)), UE_rrc_inst); - // fill UE capability UECap = fill_ue_capability (uecap_xer); @@ -5225,18 +4764,15 @@ openair_rrc_top_init_ue( } #endif - #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - /* TODO: this is disabled for the moment because the standard UE - * crashes when calling this function. - */ - //init_SL_preconfig(&UE_rrc_inst[module_id],0); + /* TODO: this is disabled for the moment because the standard UE + * crashes when calling this function. + */ + //init_SL_preconfig(&UE_rrc_inst[module_id],0); #endif - } else { UE_rrc_inst = NULL; } - } //----------------------------------------------------------------------------- @@ -5246,1086 +4782,1028 @@ rrc_top_cleanup_ue( ) //----------------------------------------------------------------------------- { - if (NB_UE_INST > 0) free (UE_rrc_inst); - - } //----------------------------------------------------------------------------- -uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index,LTE_SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, SL_TRIGGER_t mode) -{ - uint8_t size=0; - uint8_t buffer[100]; +uint8_t rrc_ue_generate_SidelinkUEInformation( const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index,LTE_SL_DestinationInfoList_r12_t *destinationInfoList, long *discTxResourceReq, + SL_TRIGGER_t mode) { + uint8_t size=0; + uint8_t buffer[100]; - //Generate SidelinkUEInformation - if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) > 0) && (destinationInfoList != NULL)) {//if SIB18 is available - size = do_SidelinkUEInformation(ctxt_pP->module_id, buffer, destinationInfoList, NULL, mode); - LOG_I(RRC,"[UE %d][RRC_UE] Frame %d : Logical Channel UL-DCCH, Generating SidelinkUEInformation (bytes%d, eNB %d)\n", - ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); - //return size; - } - if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) > 0) && (discTxResourceReq != NULL)) {//if SIB19 is available - size = do_SidelinkUEInformation(ctxt_pP->module_id, buffer, NULL, discTxResourceReq, mode); - LOG_I(RRC,"[UE %d][RRC_UE] Frame %d : Logical Channel UL-DCCH, Generating SidelinkUEInformation (bytes%d, eNB %d)\n", - ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); - //return size; - } + //Generate SidelinkUEInformation + if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&8192) > 0) && (destinationInfoList != NULL)) {//if SIB18 is available + size = do_SidelinkUEInformation(ctxt_pP->module_id, buffer, destinationInfoList, NULL, mode); + LOG_I(RRC,"[UE %d][RRC_UE] Frame %d : Logical Channel UL-DCCH, Generating SidelinkUEInformation (bytes%d, eNB %d)\n", + ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); + //return size; + } - rrc_data_req_ue ( - ctxt_pP, - DCCH, - rrc_mui++, - SDU_CONFIRM_NO, - size, - buffer, - PDCP_TRANSMISSION_MODE_CONTROL); - return size; + if (((UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].SIStatus&16384) > 0) && (discTxResourceReq != NULL)) {//if SIB19 is available + size = do_SidelinkUEInformation(ctxt_pP->module_id, buffer, NULL, discTxResourceReq, mode); + LOG_I(RRC,"[UE %d][RRC_UE] Frame %d : Logical Channel UL-DCCH, Generating SidelinkUEInformation (bytes%d, eNB %d)\n", + ctxt_pP->module_id,ctxt_pP->frame, size, eNB_index); + //return size; + } + + rrc_data_req_ue ( + ctxt_pP, + DCCH, + rrc_mui++, + SDU_CONFIRM_NO, + size, + buffer, + PDCP_TRANSMISSION_MODE_CONTROL); + return size; } // 3GPP 36.331 (Section 5.10.7.3) -uint8_t fill_SLSS(const protocol_ctxt_t* const ctxt_pP, const uint8_t eNB_index, LTE_SLSSID_r12_t *slss_id, uint8_t *subframe, uint8_t mode) -{ - long syncOffsetIndicator = 0; - switch(mode) { - case 1: //if triggered by SL discovery announcement and in-coverage +uint8_t fill_SLSS(const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, LTE_SLSSID_r12_t *slss_id, uint8_t *subframe, uint8_t mode) { + long syncOffsetIndicator = 0; + + switch(mode) { + case 1: //if triggered by SL discovery announcement and in-coverage //discSyncConfig_r12 contains only one element *slss_id = UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index]->discConfig_r12->discSyncConfig_r12->list.array[0]->slssid_r12; syncOffsetIndicator = UE_rrc_inst[ctxt_pP->module_id].sib19[eNB_index]->discConfig_r12->discSyncConfig_r12->list.array[0]->syncOffsetIndicator_r12; //select subframe for SLSS break; - case 2: //if triggered by SL communication and in-coverage + case 2: //if triggered by SL communication and in-coverage if (UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->txParameters_r12) { - *slss_id = UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->slssid_r12; - syncOffsetIndicator = UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->syncOffsetIndicator_r12; + *slss_id = UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->slssid_r12; + syncOffsetIndicator = UE_rrc_inst[ctxt_pP->module_id].sib18[eNB_index]->commConfig_r12->commSyncConfig_r12->list.array[0]->syncOffsetIndicator_r12; - //if RRC_CONNECTED (Todo: and if networkControlledSyncTx (RRCConnectionReconfiguration) is configured and set to On) - if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_CONNECTED){ - //select subframe(s) indicated by syncOffsetIndicator - *subframe = syncOffsetIndicator; - } else { - //select subframe(s) indicated by syncOffsetIndicator within SC period - } - break; - case 3: //if triggered by V2X communication and in coverage + //if RRC_CONNECTED (Todo: and if networkControlledSyncTx (RRCConnectionReconfiguration) is configured and set to On) + if (UE_rrc_inst[ctxt_pP->module_id].Info[eNB_index].State == RRC_CONNECTED) { + //select subframe(s) indicated by syncOffsetIndicator + *subframe = syncOffsetIndicator; + } else { + //select subframe(s) indicated by syncOffsetIndicator within SC period + } - break; - case 4: //if triggered by V2X communication and out-of-coverage + break; - break; - case 5: //if triggered by V2X communication and UE has GNSS as the synchronization reference + case 3: //if triggered by V2X communication and in coverage + break; - default: - //if UE has a selected SyncRefUE - //TODO - //else (no SyncRefUE Selected) - //Todo if trigger by V2X - //else randomly select an SLSSID from the set defined for out-of-coverage - *slss_id = 170;//hardcoded - //select the subframe according to syncOffsetIndicator1/2 from the preconfigured parameters - break; + case 4: //if triggered by V2X communication and out-of-coverage + break; + + case 5: //if triggered by V2X communication and UE has GNSS as the synchronization reference + default: + //if UE has a selected SyncRefUE + //TODO + //else (no SyncRefUE Selected) + //Todo if trigger by V2X + //else randomly select an SLSSID from the set defined for out-of-coverage + *slss_id = 170;//hardcoded + //select the subframe according to syncOffsetIndicator1/2 from the preconfigured parameters + break; } - } - return 0; + } + + return 0; } //----------------------------------------------------------------------------- void rrc_ue_process_sidelink_radioResourceConfig( - module_id_t Mod_idP, - uint8_t eNB_index, - LTE_SystemInformationBlockType18_r12_t *sib18, - LTE_SystemInformationBlockType19_r12_t *sib19, - LTE_SL_CommConfig_r12_t* sl_CommConfig, - LTE_SL_DiscConfig_r12_t* sl_DiscConfig + module_id_t Mod_idP, + uint8_t eNB_index, + LTE_SystemInformationBlockType18_r12_t *sib18, + LTE_SystemInformationBlockType19_r12_t *sib19, + LTE_SL_CommConfig_r12_t *sl_CommConfig, + LTE_SL_DiscConfig_r12_t *sl_DiscConfig ) //----------------------------------------------------------------------------- { - //process SIB18, configure MAC/PHY for receiving SL communication (RRC_IDLE and RRC_CONNECTED), for transmitting SL communication (RRC_IDLE) - if (sib18 != NULL) { - if (sib18->commConfig_r12 != NULL) { - //do not consider commTXPoolExceptional for the moment - //configure PHY/MAC to receive SL communication by using the RPs indicated by commRxPool - //sib18->commConfig_r12->commRxPool_r12 - //TODO - - if (sib18->commConfig_r12->commTxPoolNormalCommon_r12 !=NULL) { //commTxPoolNormalCommon - to transmit SL communication in RRC_IDLE - //maybe we don't consider this case for the moment since UE will immediately establish a RRC connection after receiving SIB messages - //configure PHY/MAC to transmit SL communication using the RPs indicated by the first entry in commTxPoolNormalCommon - //SL_CommResourcePool_r12_t sl_CommResourcePool = sib18->commConfig_r12->commTxPoolNormalCommon_r12->list.array[0]; - } + //process SIB18, configure MAC/PHY for receiving SL communication (RRC_IDLE and RRC_CONNECTED), for transmitting SL communication (RRC_IDLE) + if (sib18 != NULL) { + if (sib18->commConfig_r12 != NULL) { + //do not consider commTXPoolExceptional for the moment + //configure PHY/MAC to receive SL communication by using the RPs indicated by commRxPool + //sib18->commConfig_r12->commRxPool_r12 + //TODO + if (sib18->commConfig_r12->commTxPoolNormalCommon_r12 !=NULL) { //commTxPoolNormalCommon - to transmit SL communication in RRC_IDLE + //maybe we don't consider this case for the moment since UE will immediately establish a RRC connection after receiving SIB messages + //configure PHY/MAC to transmit SL communication using the RPs indicated by the first entry in commTxPoolNormalCommon + //SL_CommResourcePool_r12_t sl_CommResourcePool = sib18->commConfig_r12->commTxPoolNormalCommon_r12->list.array[0]; } - } + } + } - //process SIB19, configure MAC/PHY for receiving SL discovery (RRC_IDLE and RRC_CONNECTED), for transmitting SL discovery (RRC_IDLE) - if (sib19 != NULL) { - //to receive non-PS related discovery announcements (discRxPool) - //sib19->discConfig_r12->discRxPool_r12; + //process SIB19, configure MAC/PHY for receiving SL discovery (RRC_IDLE and RRC_CONNECTED), for transmitting SL discovery (RRC_IDLE) + if (sib19 != NULL) { + //to receive non-PS related discovery announcements (discRxPool) + //sib19->discConfig_r12->discRxPool_r12; + //to receive PS related discovery announcements (discRxPoolPS) + //sib19->ext1->discConfigPS_13->discRxPoolPS_r13; + //to transmit non-PS related discovery in RRC_IDLE + //sib19->discConfig_r12->discTxPoolCommon_r12; + //to transmit PS related discovery in RRC_IDLE + //sib19->ext1->discConfigPS_13->discTxPoolPS_Common_r13; + } - //to receive PS related discovery announcements (discRxPoolPS) - //sib19->ext1->discConfigPS_13->discRxPoolPS_r13; + //process sl_CommConfig, configure MAC/PHY for transmitting SL communication (RRC_CONNECTED) + if (sl_CommConfig != NULL) { + if (sl_CommConfig->commTxResources_r12 != NULL) { + switch (sl_CommConfig->commTxResources_r12->present) { + case LTE_SL_CommConfig_r12__commTxResources_r12_PR_setup: + if (sl_CommConfig->commTxResources_r12->choice.setup.present == LTE_SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12 ) { + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %lu \n", + Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size ); + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI buf 0x%p \n", + Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf ); + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, Mac_MainConfig_r12.retx_BSR_TimerSL %ld \n", + Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL ); + LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sc_CommTxConfig %ld \n", + Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL ); + //configure scheduled resource for SL + //TODO + } else if (sl_CommConfig->commTxResources_r12->choice.setup.present == LTE_SL_CommConfig_r12__commTxResources_r12__setup_PR_ue_Selected_r12) { + //configure dedicated resources (commTxPoolNormalDedicated) for SL from which UE can autonomously select + //sl_CommConfig->commTxResources_r12->choice.setup.choice.ue_Selected_r12.commTxPoolNormalDedicated_r12; + //for the moment, only pass the first entry (e.g., do not consider priorityList in commTxPoolNormalDedicated (3GPP 36.331 Section 5.10.4 1>2>3>4)) + //sl_CommConfig->commTxResources_r12->choice.setup.choice.ue_Selected_r12.commTxPoolNormalDedicated_r12.poolToAddModList_r12->list.array[0]; + } else { + //SL_CommConfig_r12__commTxResources_r12__setup_PR_NOTHING /* No components present */ + } - //to transmit non-PS related discovery in RRC_IDLE - //sib19->discConfig_r12->discTxPoolCommon_r12; + break; - //to transmit PS related discovery in RRC_IDLE - //sib19->ext1->discConfigPS_13->discTxPoolPS_Common_r13; - } + case LTE_SL_CommConfig_r12__commTxResources_r12_PR_release: + //release dedicated resources for SL communication + break; - //process sl_CommConfig, configure MAC/PHY for transmitting SL communication (RRC_CONNECTED) - if (sl_CommConfig != NULL) { + case LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING: /* No components present */ + break; - if (sl_CommConfig->commTxResources_r12 != NULL) { - switch (sl_CommConfig->commTxResources_r12->present){ - case LTE_SL_CommConfig_r12__commTxResources_r12_PR_setup: - if (sl_CommConfig->commTxResources_r12->choice.setup.present == LTE_SL_CommConfig_r12__commTxResources_r12__setup_PR_scheduled_r12 ){ - - LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI size %lu \n", - Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.size ); - LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sl_RNTI buf 0x%p \n", - Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.sl_RNTI_r12.buf ); - LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, Mac_MainConfig_r12.retx_BSR_TimerSL %ld \n", - Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL ); - LOG_I(RRC,"[UE %d][RRC_UE] scheduled resource for SL, sc_CommTxConfig %ld \n", - Mod_idP, sl_CommConfig->commTxResources_r12->choice.setup.choice.scheduled_r12.mac_MainConfig_r12.retx_BSR_TimerSL ); - //configure scheduled resource for SL - //TODO - } else if (sl_CommConfig->commTxResources_r12->choice.setup.present == LTE_SL_CommConfig_r12__commTxResources_r12__setup_PR_ue_Selected_r12){ - //configure dedicated resources (commTxPoolNormalDedicated) for SL from which UE can autonomously select - //sl_CommConfig->commTxResources_r12->choice.setup.choice.ue_Selected_r12.commTxPoolNormalDedicated_r12; - - //for the moment, only pass the first entry (e.g., do not consider priorityList in commTxPoolNormalDedicated (3GPP 36.331 Section 5.10.4 1>2>3>4)) - //sl_CommConfig->commTxResources_r12->choice.setup.choice.ue_Selected_r12.commTxPoolNormalDedicated_r12.poolToAddModList_r12->list.array[0]; - } else { - //SL_CommConfig_r12__commTxResources_r12__setup_PR_NOTHING /* No components present */ - } - break; - - case LTE_SL_CommConfig_r12__commTxResources_r12_PR_release: - //release dedicated resources for SL communication - break; - - case LTE_SL_CommConfig_r12__commTxResources_r12_PR_NOTHING: /* No components present */ - break; - - default: - break; - } + default: + break; } + } + } - } + //process sl_DiscConfig, configure MAC/PHY for transmitting SL discovery announcements (RRC_CONNECTED) + if (sl_DiscConfig != NULL) { + //dedicated resources for transmitting non-PS related discovery + if (sl_DiscConfig->discTxResources_r12 != NULL) { + switch (sl_DiscConfig->discTxResources_r12->present) { + case LTE_SL_DiscConfig_r12__discTxResources_r12_PR_setup: + if (sl_DiscConfig->discTxResources_r12->choice.setup.present == LTE_SL_DiscConfig_r12__discTxResources_r12__setup_PR_scheduled_r12) { + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discHoppingConfig_r12; + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discTF_IndexList_r12; + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discTxConfig_r12; + } else if (sl_DiscConfig->discTxResources_r12->choice.setup.present == LTE_SL_DiscConfig_r12__discTxResources_r12__setup_PR_ue_Selected_r12) { + //sl_DiscConfig->discTxResources_r12->choice.setup.choice.ue_Selected_r12.discTxPoolDedicated_r12; + } else { + //SL_DiscConfig_r12__discTxResources_r12__setup_PR_NOTHING, /* No components present */ + } - //process sl_DiscConfig, configure MAC/PHY for transmitting SL discovery announcements (RRC_CONNECTED) - if (sl_DiscConfig != NULL) { - //dedicated resources for transmitting non-PS related discovery - if (sl_DiscConfig->discTxResources_r12 != NULL) { + break; - switch (sl_DiscConfig->discTxResources_r12->present) { - case LTE_SL_DiscConfig_r12__discTxResources_r12_PR_setup: - if (sl_DiscConfig->discTxResources_r12->choice.setup.present == LTE_SL_DiscConfig_r12__discTxResources_r12__setup_PR_scheduled_r12) { - //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discHoppingConfig_r12; - //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discTF_IndexList_r12; - //sl_DiscConfig->discTxResources_r12->choice.setup.choice.scheduled_r12.discTxConfig_r12; - } else if (sl_DiscConfig->discTxResources_r12->choice.setup.present == LTE_SL_DiscConfig_r12__discTxResources_r12__setup_PR_ue_Selected_r12) { - //sl_DiscConfig->discTxResources_r12->choice.setup.choice.ue_Selected_r12.discTxPoolDedicated_r12; - } else { - //SL_DiscConfig_r12__discTxResources_r12__setup_PR_NOTHING, /* No components present */ - } - break; - case LTE_SL_DiscConfig_r12__discTxResources_r12_PR_release: - //release dedicated resources for SL discovery - break; - case LTE_SL_DiscConfig_r12__discTxResources_r12_PR_NOTHING: /* No components present */ - break; - default: - break; - } + case LTE_SL_DiscConfig_r12__discTxResources_r12_PR_release: + //release dedicated resources for SL discovery + break; + case LTE_SL_DiscConfig_r12__discTxResources_r12_PR_NOTHING: /* No components present */ + break; + + default: + break; } - //dedicated resources for transmitting PS related discovery - if (sl_DiscConfig->ext2->discTxResourcesPS_r13 != NULL){ - switch (sl_DiscConfig->ext2->discTxResourcesPS_r13->present) { - case LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_setup: - if (sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.present == LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_scheduled_r13) { - //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.scheduled_r13.discHoppingConfig_r13; - //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.scheduled_r13.discTxConfig_r13 - } else if (sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.present == LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_ue_Selected_r13) { - //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.ue_Selected_r13.discTxPoolPS_Dedicated_r13; - } else { - //SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_NOTHING, /* No components present */ - } + } - break; - case LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_release: - break; - case LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_NOTHING: - /* No components present */ - break; - default: - break; - } + //dedicated resources for transmitting PS related discovery + if (sl_DiscConfig->ext2->discTxResourcesPS_r13 != NULL) { + switch (sl_DiscConfig->ext2->discTxResourcesPS_r13->present) { + case LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_setup: + if (sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.present == LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_scheduled_r13) { + //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.scheduled_r13.discHoppingConfig_r13; + //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.scheduled_r13.discTxConfig_r13 + } else if (sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.present == LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_ue_Selected_r13) { + //sl_DiscConfig->ext2->discTxResourcesPS_r13->choice.setup.choice.ue_Selected_r13.discTxPoolPS_Dedicated_r13; + } else { + //SL_DiscConfig_r12__ext2__discTxResourcesPS_r13__setup_PR_NOTHING, /* No components present */ + } + + break; + + case LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_release: + break; + + case LTE_SL_DiscConfig_r12__ext2__discTxResourcesPS_r13_PR_NOTHING: + /* No components present */ + break; + + default: + break; } - } + } + } } #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) //----------------------------------------------------------- void -rrc_control_socket_init(){ +rrc_control_socket_init() { + struct sockaddr_in rrc_ctrl_socket_addr; + pthread_attr_t attr; + struct sched_param sched_param; + int optval; // flag value for setsockopt + //int n; // message byte size + // create the control socket + ctrl_sock_fd = socket(AF_INET, SOCK_DGRAM, 0); - struct sockaddr_in rrc_ctrl_socket_addr; - pthread_attr_t attr; - struct sched_param sched_param; - int optval; // flag value for setsockopt - //int n; // message byte size + if (ctrl_sock_fd == -1) { + LOG_E(RRC,"[rrc_control_socket_init] :Error opening socket %d (%d:%s)\n",ctrl_sock_fd,errno, strerror(errno)); + exit(EXIT_FAILURE); + } + // if (ctrl_sock_fd < 0) + // error("ERROR: Failed on opening socket"); + optval = 1; + setsockopt(ctrl_sock_fd, SOL_SOCKET, SO_REUSEADDR, + (const void *)&optval , sizeof(int)); + //build the server's address + bzero((char *) &rrc_ctrl_socket_addr, sizeof(rrc_ctrl_socket_addr)); + rrc_ctrl_socket_addr.sin_family = AF_INET; + rrc_ctrl_socket_addr.sin_addr.s_addr = htonl(INADDR_ANY); + rrc_ctrl_socket_addr.sin_port = htons(CONTROL_SOCKET_PORT_NO); - // create the control socket - ctrl_sock_fd = socket(AF_INET, SOCK_DGRAM, 0); - if (ctrl_sock_fd == -1) { - LOG_E(RRC,"[rrc_control_socket_init] :Error opening socket %d (%d:%s)\n",ctrl_sock_fd,errno, strerror(errno)); - exit(EXIT_FAILURE); - } - // if (ctrl_sock_fd < 0) - // error("ERROR: Failed on opening socket"); - optval = 1; - setsockopt(ctrl_sock_fd, SOL_SOCKET, SO_REUSEADDR, - (const void *)&optval , sizeof(int)); + // associate the parent socket with a port + if (bind(ctrl_sock_fd, (struct sockaddr *) &rrc_ctrl_socket_addr, + sizeof(rrc_ctrl_socket_addr)) < 0) { + LOG_E(RRC,"[rrc_control_socket_init] ERROR: Failed on binding the socket\n"); + exit(1); + } - //build the server's address - bzero((char *) &rrc_ctrl_socket_addr, sizeof(rrc_ctrl_socket_addr)); - rrc_ctrl_socket_addr.sin_family = AF_INET; - rrc_ctrl_socket_addr.sin_addr.s_addr = htonl(INADDR_ANY); - rrc_ctrl_socket_addr.sin_port = htons(CONTROL_SOCKET_PORT_NO); - // associate the parent socket with a port - if (bind(ctrl_sock_fd, (struct sockaddr *) &rrc_ctrl_socket_addr, - sizeof(rrc_ctrl_socket_addr)) < 0) { - LOG_E(RRC,"[rrc_control_socket_init] ERROR: Failed on binding the socket\n"); - exit(1); - } - //create thread to listen to incoming packets - if (pthread_attr_init(&attr) != 0) { - LOG_E(RRC, "[rrc_control_socket_init]Failed to initialize pthread attribute for ProSe -> RRC communication (%d:%s)\n", - errno, strerror(errno)); - exit(EXIT_FAILURE); - } + //create thread to listen to incoming packets + if (pthread_attr_init(&attr) != 0) { + LOG_E(RRC, "[rrc_control_socket_init]Failed to initialize pthread attribute for ProSe -> RRC communication (%d:%s)\n", + errno, strerror(errno)); + exit(EXIT_FAILURE); + } - sched_param.sched_priority = 10; + sched_param.sched_priority = 10; + pthread_attr_setschedpolicy(&attr, SCHED_RR); + pthread_attr_setschedparam(&attr, &sched_param); + pthread_t rrc_control_socket_thread; - pthread_attr_setschedpolicy(&attr, SCHED_RR); - pthread_attr_setschedparam(&attr, &sched_param); - - pthread_t rrc_control_socket_thread; - - if (pthread_create(&rrc_control_socket_thread, &attr, rrc_control_socket_thread_fct, NULL) != 0) { - LOG_E(RRC, "[rrc_control_socket_init]Failed to create new thread for RRC/ProSeApp communication (%d:%s)\n", - errno, strerror(errno)); - exit(EXIT_FAILURE); - } - - pthread_setname_np( rrc_control_socket_thread, "RRC Control Socket" ); + if (pthread_create(&rrc_control_socket_thread, &attr, rrc_control_socket_thread_fct, NULL) != 0) { + LOG_E(RRC, "[rrc_control_socket_init]Failed to create new thread for RRC/ProSeApp communication (%d:%s)\n", + errno, strerror(errno)); + exit(EXIT_FAILURE); + } + pthread_setname_np( rrc_control_socket_thread, "RRC Control Socket" ); } //-------------------------------------------------------- -void *rrc_control_socket_thread_fct(void *arg) -{ +void *rrc_control_socket_thread_fct(void *arg) { + int prose_addr_len; + char send_buf[BUFSIZE]; + char receive_buf[BUFSIZE]; + //int optval; + int n; + struct sidelink_ctrl_element *sl_ctrl_msg_recv = NULL; + struct sidelink_ctrl_element *sl_ctrl_msg_send = NULL; + uint32_t sourceL2Id, groupL2Id, destinationL2Id; + module_id_t module_id = 0; //hardcoded for testing only + uint8_t type; + UE_RRC_INST *UE = NULL; + protocol_ctxt_t ctxt; + struct LTE_RLC_Config *DRB_rlc_config = NULL; + struct LTE_PDCP_Config *DRB_pdcp_config = NULL; + struct LTE_PDCP_Config__rlc_UM *PDCP_rlc_UM = NULL; + struct LTE_LogicalChannelConfig *DRB_lchan_config = NULL; + struct LTE_LogicalChannelConfig__ul_SpecificParameters *DRB_ul_SpecificParameters = NULL; + long *logicalchannelgroup_drb = NULL; + int j = 0; + int i = 0; + //from the main program, listen for the incoming messages from control socket (ProSe App) + prose_addr_len = sizeof(prose_app_addr); - int prose_addr_len; - char send_buf[BUFSIZE]; - char receive_buf[BUFSIZE]; - //int optval; - int n; - struct sidelink_ctrl_element *sl_ctrl_msg_recv = NULL; - struct sidelink_ctrl_element *sl_ctrl_msg_send = NULL; - uint32_t sourceL2Id, groupL2Id, destinationL2Id; - module_id_t module_id = 0; //hardcoded for testing only - uint8_t type; - UE_RRC_INST *UE = NULL; - protocol_ctxt_t ctxt; - struct LTE_RLC_Config *DRB_rlc_config = NULL; - struct LTE_PDCP_Config *DRB_pdcp_config = NULL; - struct LTE_PDCP_Config__rlc_UM *PDCP_rlc_UM = NULL; - struct LTE_LogicalChannelConfig *DRB_lchan_config = NULL; - struct LTE_LogicalChannelConfig__ul_SpecificParameters *DRB_ul_SpecificParameters = NULL; - long *logicalchannelgroup_drb = NULL; - int j = 0; - int i = 0; + //int enable_notification = 1; + while (1) { + LOG_I(RRC,"Listening to incoming connection from ProSe App \n"); + // receive a message from ProSe App + memset(receive_buf, 0, BUFSIZE); + n = recvfrom(ctrl_sock_fd, receive_buf, BUFSIZE, 0, + (struct sockaddr *) &prose_app_addr, (socklen_t *)&prose_addr_len); - //from the main program, listen for the incoming messages from control socket (ProSe App) - prose_addr_len = sizeof(prose_app_addr); - //int enable_notification = 1; - while (1) { - LOG_I(RRC,"Listening to incoming connection from ProSe App \n"); - // receive a message from ProSe App - memset(receive_buf, 0, BUFSIZE); - n = recvfrom(ctrl_sock_fd, receive_buf, BUFSIZE, 0, - (struct sockaddr *) &prose_app_addr, (socklen_t *)&prose_addr_len); - if (n < 0){ - LOG_E(RRC, "ERROR: Failed to receive from ProSe App\n"); - exit(EXIT_FAILURE); - } - //TODO: should store the address of ProSeApp [UE_rrc_inst] to be able to send UE state notification to the App + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to receive from ProSe App\n"); + exit(EXIT_FAILURE); + } - //sl_ctrl_msg_recv = (struct sidelink_ctrl_element *) receive_buf; - sl_ctrl_msg_recv = calloc(1, sizeof(struct sidelink_ctrl_element)); - memcpy((void *)sl_ctrl_msg_recv, (void *)receive_buf, sizeof(struct sidelink_ctrl_element)); + //TODO: should store the address of ProSeApp [UE_rrc_inst] to be able to send UE state notification to the App + //sl_ctrl_msg_recv = (struct sidelink_ctrl_element *) receive_buf; + sl_ctrl_msg_recv = calloc(1, sizeof(struct sidelink_ctrl_element)); + memcpy((void *)sl_ctrl_msg_recv, (void *)receive_buf, sizeof(struct sidelink_ctrl_element)); - //process the message - switch (sl_ctrl_msg_recv->type) { + //process the message + switch (sl_ctrl_msg_recv->type) { case SESSION_INIT_REQ: - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type); - } - //TODO: get SL_UE_STATE from lower layer + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"Received SessionInitializationRequest on socket from ProSe App (msg type: %d)\n", sl_ctrl_msg_recv->type); + } - LOG_I(RRC,"Send UEStateInformation to ProSe App \n"); - memset(send_buf, 0, BUFSIZE); + //TODO: get SL_UE_STATE from lower layer + LOG_I(RRC,"Send UEStateInformation to ProSe App \n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = UE_STATUS_INFO; + sl_ctrl_msg_send->sidelinkPrimitive.ue_state = UE_STATE_OFF_NETWORK; //off-network + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); - sl_ctrl_msg_send->type = UE_STATUS_INFO; - sl_ctrl_msg_send->sidelinkPrimitive.ue_state = UE_STATE_OFF_NETWORK; //off-network - memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); - free(sl_ctrl_msg_send); + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } - prose_addr_len = sizeof(prose_app_addr); - n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - if (n < 0) { - LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); - exit(EXIT_FAILURE); - } + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; + ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; + LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type); + LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state); + } - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; - ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; - LOG_UI(RRC,"[UEStateInformation] msg type: %d\n",ptr_ctrl_msg->type); - LOG_UI(RRC,"[UEStateInformation] UE state: %d\n",ptr_ctrl_msg->sidelinkPrimitive.ue_state); - } - /* if (enable_notification > 0) { - //create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds) - pthread_t notification_thread; - if( pthread_create( ¬ification_thread , NULL , send_UE_status_notification , (void*) &sockfd) < 0) - error("ERROR: could not create thread"); - } - enable_notification = 0; - */ - break; + /* if (enable_notification > 0) { + //create thread to send status notification (for testing purpose, status notification will be sent e.g., every 20 seconds) + pthread_t notification_thread; + if( pthread_create( ¬ification_thread , NULL , send_UE_status_notification , (void*) &sockfd) < 0) + error("ERROR: could not create thread"); + } + enable_notification = 0; + */ + break; case GROUP_COMMUNICATION_ESTABLISH_REQ: - sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id; - groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id; + sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id; + groupL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id; - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); - LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); - LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress)); - } + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"[GroupCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[GroupCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); + LOG_UI(RRC,"[GroupCommunicationEstablishReq] group Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); + LOG_UI(RRC,"[GroupCommunicationEstablishReq] group IP Address: " IPV4_ADDR "\n",IPV4_ADDR_FORMAT(sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupIpAddress)); + } - //store sourceL2Id/groupL2Id - UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; - UE_rrc_inst[module_id].groupL2Id = groupL2Id; - j = 0; - i = 0; - for (i=0; i< MAX_NUM_DEST; i++) { - if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; - if (UE_rrc_inst[module_id].destinationList[i] == groupL2Id) break; //group already exists! - } - if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = groupL2Id; + //store sourceL2Id/groupL2Id + UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; + UE_rrc_inst[module_id].groupL2Id = groupL2Id; + j = 0; + i = 0; - // configure lower layers PDCP/MAC/PHY for this communication - //Establish a new RBID/LCID for this communication - // Establish a SLRB (using DRB 3 for now) - UE = &UE_rrc_inst[module_id]; - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; - UE->DRB_config[0][0] = CALLOC(1,sizeof(struct LTE_DRB_ToAddMod)); - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - UE->DRB_config[0][0]->drb_Identity = 3; - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - // allowed value 5..15, value : x+4 - *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; - UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); - *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + if (UE_rrc_inst[module_id].destinationList[i] == groupL2Id) break; //group already exists! + } - DRB_rlc_config = CALLOC(1,sizeof(struct LTE_RLC_Config)); - DRB_pdcp_config = CALLOC(1,sizeof(struct LTE_PDCP_Config)); - PDCP_rlc_UM = CALLOC(1,sizeof(struct LTE_PDCP_Config__rlc_UM)); - DRB_lchan_config = CALLOC(1,sizeof(struct LTE_LogicalChannelConfig)); - DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters)); - logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = groupL2Id; - DRB_rlc_config->present = LTE_RLC_Config_PR_um_Bi_Directional; - DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35; - UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; - - DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); - UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; - DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); - *DRB_pdcp_config->discardTimer = LTE_PDCP_Config__discardTimer_infinity; - DRB_pdcp_config->rlc_AM = NULL; - DRB_pdcp_config->rlc_UM = NULL; - - /* avoid gcc warnings */ - (void)PDCP_rlc_UM; - - DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; - PDCP_rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; - DRB_pdcp_config->headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed; - - UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; - DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); - DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; - - DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer - DRB_ul_SpecificParameters->prioritisedBitRate =LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; - //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; - DRB_ul_SpecificParameters->bucketSizeDuration = - LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; - - // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) - - *logicalchannelgroup_drb = 1; - DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; - - UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t)); - ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); - - rrc_pdcp_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t *) NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*) NULL, - 0xff, NULL, NULL, NULL + // configure lower layers PDCP/MAC/PHY for this communication + //Establish a new RBID/LCID for this communication + // Establish a SLRB (using DRB 3 for now) + UE = &UE_rrc_inst[module_id]; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct LTE_DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 3; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + DRB_rlc_config = CALLOC(1,sizeof(struct LTE_RLC_Config)); + DRB_pdcp_config = CALLOC(1,sizeof(struct LTE_PDCP_Config)); + PDCP_rlc_UM = CALLOC(1,sizeof(struct LTE_PDCP_Config__rlc_UM)); + DRB_lchan_config = CALLOC(1,sizeof(struct LTE_LogicalChannelConfig)); + DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters)); + logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + DRB_rlc_config->present = LTE_RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = LTE_PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + /* avoid gcc warnings */ + (void)PDCP_rlc_UM; + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed; + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + rrc_pdcp_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *) NULL, + 0xff, NULL, NULL, NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - , (LTE_PMCH_InfoList_r9_t *) NULL + , (LTE_PMCH_InfoList_r9_t *) NULL #endif - ,NULL); - - - rrc_rlc_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*)NULL + ,NULL); + rrc_rlc_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *)NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL - , 0, 0 + ,(LTE_PMCH_InfoList_r9_t *)NULL + , 0, 0 #endif - ); - - rrc_rlc_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*)NULL + ); + rrc_rlc_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *)NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL - , sourceL2Id, groupL2Id + ,(LTE_PMCH_InfoList_r9_t *)NULL + , sourceL2Id, groupL2Id #endif - ); - - - //configure MAC with sourceL2Id/groupL2ID - rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + ); + //configure MAC with sourceL2Id/groupL2ID + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 3, //LCID - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 3, //LCID + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,CONFIG_ACTION_ADD, - &sourceL2Id, - &groupL2Id + ,CONFIG_ACTION_ADD, + &sourceL2Id, + &groupL2Id #endif - ); + ); + LOG_I(RRC,"Send GroupCommunicationEstablishResp to ProSe App\n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = GROUP_COMMUNICATION_ESTABLISH_RSP; + sl_ctrl_msg_send->sidelinkPrimitive.slrb_id = 3; //slrb_id + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - LOG_I(RRC,"Send GroupCommunicationEstablishResp to ProSe App\n"); - memset(send_buf, 0, BUFSIZE); - sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); - sl_ctrl_msg_send->type = GROUP_COMMUNICATION_ESTABLISH_RSP; - sl_ctrl_msg_send->sidelinkPrimitive.slrb_id = 3; //slrb_id + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } - memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); - free(sl_ctrl_msg_send); + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; + ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; + LOG_UI(RRC,"[GroupCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); + LOG_UI(RRC,"[GroupCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); + } - prose_addr_len = sizeof(prose_app_addr); - n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - if (n < 0){ - LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); - exit(EXIT_FAILURE); - } - - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; - ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; - LOG_UI(RRC,"[GroupCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); - LOG_UI(RRC,"[GroupCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); - } - break; + break; case GROUP_COMMUNICATION_RELEASE_REQ: - printf("-----------------------------------\n"); - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id); - } - //reset groupL2ID from MAC LAYER - UE_rrc_inst[module_id].groupL2Id = 0x00000000; - sourceL2Id = UE_rrc_inst[module_id].sourceL2Id; + printf("-----------------------------------\n"); - rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, - #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, - #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 0, - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL - #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[GroupCommunicationReleaseRequest] Slrb Id: %i\n",sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id); + } - #endif - #ifdef CBA - , - 0, - 0 - #endif - #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,CONFIG_ACTION_REMOVE, - &sourceL2Id, - &destinationL2Id - #endif - ); + //reset groupL2ID from MAC LAYER + UE_rrc_inst[module_id].groupL2Id = 0x00000000; + sourceL2Id = UE_rrc_inst[module_id].sourceL2Id; + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, +#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, +#endif + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 0, + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL +#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL +#endif +#ifdef CBA + , + 0, + 0 +#endif +#if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) + ,CONFIG_ACTION_REMOVE, + &sourceL2Id, + &destinationL2Id +#endif + ); + LOG_I(RRC,"Send GroupCommunicationReleaseResponse to ProSe App \n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = GROUP_COMMUNICATION_RELEASE_RSP; + //if the requested id exists -> release this ID + if (sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id == slrb_id) { + sl_ctrl_msg_send->sidelinkPrimitive.group_comm_release_rsp = GROUP_COMMUNICATION_RELEASE_OK; + slrb_id = 0; //Reset slrb_id + } else { + sl_ctrl_msg_send->sidelinkPrimitive.group_comm_release_rsp = GROUP_COMMUNICATION_RELEASE_FAILURE; + } - LOG_I(RRC,"Send GroupCommunicationReleaseResponse to ProSe App \n"); - memset(send_buf, 0, BUFSIZE); + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); - sl_ctrl_msg_send->type = GROUP_COMMUNICATION_RELEASE_RSP; - //if the requested id exists -> release this ID - if (sl_ctrl_msg_recv->sidelinkPrimitive.slrb_id == slrb_id) { - sl_ctrl_msg_send->sidelinkPrimitive.group_comm_release_rsp = GROUP_COMMUNICATION_RELEASE_OK; - slrb_id = 0; //Reset slrb_id - } else { - sl_ctrl_msg_send->sidelinkPrimitive.group_comm_release_rsp = GROUP_COMMUNICATION_RELEASE_FAILURE; - } - memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); - free(sl_ctrl_msg_send); - - prose_addr_len = sizeof(prose_app_addr); - n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - if (n < 0){ - LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); - exit(EXIT_FAILURE); - } - break; + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + break; case DIRECT_COMMUNICATION_ESTABLISH_REQ: - sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id; - destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id; + sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.sourceL2Id; + destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.direct_comm_establish_req.destinationL2Id; - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); - LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); - } + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"[DirectCommunicationEstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[DirectCommunicationEstablishReq] source Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.sourceL2Id); + LOG_UI(RRC,"[DirectCommunicationEstablishReq] destination Id: 0x%08x\n",sl_ctrl_msg_recv->sidelinkPrimitive.group_comm_establish_req.groupL2Id); + } - //store sourceL2Id/destinationL2Id - UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; - i = 0; - j = 0; - for (i=0; i< MAX_NUM_DEST; i++) { - if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; - if (UE_rrc_inst[module_id].destinationList[i] == destinationL2Id) break; //destination already exists! - } - if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = destinationL2Id; + //store sourceL2Id/destinationL2Id + UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; + i = 0; + j = 0; - // configure lower layers PDCP/MAC/PHY for this communication - //Establish a new RBID/LCID for this communication - // Establish a SLRB (using DRB 3 for now) - UE = &UE_rrc_inst[module_id]; - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; - UE->DRB_config[0][0] = CALLOC(1,sizeof(struct LTE_DRB_ToAddMod)); - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - UE->DRB_config[0][0]->drb_Identity = 3; - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - // allowed value 5..15, value : x+4 - *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; - UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); - *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + if (UE_rrc_inst[module_id].destinationList[i] == destinationL2Id) break; //destination already exists! + } - DRB_rlc_config = CALLOC(1,sizeof(struct LTE_RLC_Config)); - DRB_pdcp_config = CALLOC(1,sizeof(struct LTE_PDCP_Config)); - PDCP_rlc_UM = CALLOC(1,sizeof(struct LTE_PDCP_Config__rlc_UM)); - DRB_lchan_config = CALLOC(1,sizeof(struct LTE_LogicalChannelConfig)); - DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters)); - logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = destinationL2Id; - DRB_rlc_config->present = LTE_RLC_Config_PR_um_Bi_Directional; - DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35; - UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; - - DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); - UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; - DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); - *DRB_pdcp_config->discardTimer = LTE_PDCP_Config__discardTimer_infinity; - DRB_pdcp_config->rlc_AM = NULL; - DRB_pdcp_config->rlc_UM = NULL; - - /* avoid gcc warnings */ - (void)PDCP_rlc_UM; - - DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; - PDCP_rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; - DRB_pdcp_config->headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed; - - UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; - DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); - DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; - - DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer - DRB_ul_SpecificParameters->prioritisedBitRate =LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; - //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; - DRB_ul_SpecificParameters->bucketSizeDuration = - LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; - - // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) - - *logicalchannelgroup_drb = 1; - DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; - - UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t)); - ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); - - rrc_pdcp_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t *) NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*) NULL, - 0xff, NULL, NULL, NULL + // configure lower layers PDCP/MAC/PHY for this communication + //Establish a new RBID/LCID for this communication + // Establish a SLRB (using DRB 3 for now) + UE = &UE_rrc_inst[module_id]; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct LTE_DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 3; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 3; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + DRB_rlc_config = CALLOC(1,sizeof(struct LTE_RLC_Config)); + DRB_pdcp_config = CALLOC(1,sizeof(struct LTE_PDCP_Config)); + PDCP_rlc_UM = CALLOC(1,sizeof(struct LTE_PDCP_Config__rlc_UM)); + DRB_lchan_config = CALLOC(1,sizeof(struct LTE_LogicalChannelConfig)); + DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters)); + logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + DRB_rlc_config->present = LTE_RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = LTE_PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + /* avoid gcc warnings */ + (void)PDCP_rlc_UM; + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed; + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate =LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + rrc_pdcp_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *) NULL, + 0xff, NULL, NULL, NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - , (LTE_PMCH_InfoList_r9_t *) NULL + , (LTE_PMCH_InfoList_r9_t *) NULL #endif - ,NULL); - - - rrc_rlc_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*)NULL + ,NULL); + rrc_rlc_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *)NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL - , 0, 0 + ,(LTE_PMCH_InfoList_r9_t *)NULL + , 0, 0 #endif - ); - - rrc_rlc_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*)NULL + ); + rrc_rlc_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *)NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL - , sourceL2Id, destinationL2Id + ,(LTE_PMCH_InfoList_r9_t *)NULL + , sourceL2Id, destinationL2Id #endif - ); - - - //configure MAC with sourceL2Id/destinationL2Id - rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + ); + //configure MAC with sourceL2Id/destinationL2Id + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 3, //LCID - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 3, //LCID + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,CONFIG_ACTION_ADD, - &sourceL2Id, - &destinationL2Id + ,CONFIG_ACTION_ADD, + &sourceL2Id, + &destinationL2Id #endif - ); + ); + LOG_I(RRC,"Send DirectCommunicationEstablishResp to ProSe App\n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = DIRECT_COMMUNICATION_ESTABLISH_RSP; + sl_ctrl_msg_send->sidelinkPrimitive.slrb_id = 3; //slrb_id + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - LOG_I(RRC,"Send DirectCommunicationEstablishResp to ProSe App\n"); - memset(send_buf, 0, BUFSIZE); - sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); - sl_ctrl_msg_send->type = DIRECT_COMMUNICATION_ESTABLISH_RSP; - sl_ctrl_msg_send->sidelinkPrimitive.slrb_id = 3; //slrb_id + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } - memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); - free(sl_ctrl_msg_send); + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; + ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; + LOG_UI(RRC,"[DirectCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); + LOG_UI(RRC,"[DirectCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); + } - prose_addr_len = sizeof(prose_app_addr); - n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - if (n < 0){ - LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); - exit(EXIT_FAILURE); - } - - - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - struct sidelink_ctrl_element *ptr_ctrl_msg = NULL; - ptr_ctrl_msg = (struct sidelink_ctrl_element *) send_buf; - LOG_UI(RRC,"[DirectCommunicationEstablishResponse] msg type: %d\n",ptr_ctrl_msg->type); - LOG_UI(RRC,"[DirectCommunicationEstablishResponse] slrb_id: %d\n",ptr_ctrl_msg->sidelinkPrimitive.slrb_id); - } - break; + break; case PC5S_ESTABLISH_REQ: - type = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type; - sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id; - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX - LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id); - } - if (type > 0) { - destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id; - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id); - } - } + type = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type; + sourceL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id; - //store sourceL2Id/destinationL2Id - if (type > 0) { //TX - UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; - j = 0; - i = 0; - for (i=0; i< MAX_NUM_DEST; i++) { - if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; - if (UE_rrc_inst[module_id].destinationList[i] == destinationL2Id) break; //group already exists! - } - if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = destinationL2Id; - } else {//RX - UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; - } + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"[PC5EstablishReq] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + LOG_UI(RRC,"[PC5EstablishReq] type: %d\n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.type); //RX/TX + LOG_UI(RRC,"[PC5EstablishReq] source Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.sourceL2Id); + } - // configure lower layers PDCP/MAC/PHY for this communication - //Establish a new RBID/LCID for this communication - // Establish a SLRB (using DRB 10 for now) - UE = &UE_rrc_inst[module_id]; - PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + if (type > 0) { + destinationL2Id = sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id; - UE->DRB_config[0][0] = CALLOC(1,sizeof(struct LTE_DRB_ToAddMod)); - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - UE->DRB_config[0][0]->drb_Identity = 10; - UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); - // allowed value 5..15, value : x+4 - *(UE->DRB_config[0][0]->eps_BearerIdentity) = 10; - UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); - *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"[PC5EstablishReq] destination Id: 0x%08x \n",sl_ctrl_msg_recv->sidelinkPrimitive.pc5s_establish_req.destinationL2Id); + } + } - DRB_rlc_config = CALLOC(1,sizeof(struct LTE_RLC_Config)); - DRB_pdcp_config = CALLOC(1,sizeof(struct LTE_PDCP_Config)); - PDCP_rlc_UM = CALLOC(1,sizeof(struct LTE_PDCP_Config__rlc_UM)); - DRB_lchan_config = CALLOC(1,sizeof(struct LTE_LogicalChannelConfig)); - DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters)); - logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + //store sourceL2Id/destinationL2Id + if (type > 0) { //TX + UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; + j = 0; + i = 0; - DRB_rlc_config->present = LTE_RLC_Config_PR_um_Bi_Directional; - DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; - DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35; - UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + for (i=0; i< MAX_NUM_DEST; i++) { + if ((UE_rrc_inst[module_id].destinationList[i] == 0) && (j == 0)) j = i+1; - DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); - UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; - DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); - *DRB_pdcp_config->discardTimer = LTE_PDCP_Config__discardTimer_infinity; - DRB_pdcp_config->rlc_AM = NULL; - DRB_pdcp_config->rlc_UM = NULL; + if (UE_rrc_inst[module_id].destinationList[i] == destinationL2Id) break; //group already exists! + } - /* avoid gcc warnings */ - (void)PDCP_rlc_UM; + if ((i == MAX_NUM_DEST) && (j > 0)) UE_mac_inst[module_id].destinationList[j-1] = destinationL2Id; + } else {//RX + UE_rrc_inst[module_id].sourceL2Id = sourceL2Id; + } - DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; - PDCP_rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; - DRB_pdcp_config->headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed; - - UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; - DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); - DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; - - DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer - DRB_ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; - //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; - DRB_ul_SpecificParameters->bucketSizeDuration = - LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; - - // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) - - *logicalchannelgroup_drb = 1; - DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; - - UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t)); - ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); - - rrc_pdcp_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t *) NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*) NULL, - 0xff, NULL, NULL, NULL + // configure lower layers PDCP/MAC/PHY for this communication + //Establish a new RBID/LCID for this communication + // Establish a SLRB (using DRB 10 for now) + UE = &UE_rrc_inst[module_id]; + PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, 0, ENB_FLAG_NO, 0x1234, 0, 0,0); + UE->DRB_config[0][0] = CALLOC(1,sizeof(struct LTE_DRB_ToAddMod)); + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + UE->DRB_config[0][0]->drb_Identity = 10; + UE->DRB_config[0][0]->eps_BearerIdentity = CALLOC(1, sizeof(long)); + // allowed value 5..15, value : x+4 + *(UE->DRB_config[0][0]->eps_BearerIdentity) = 10; + UE->DRB_config[0][0]->logicalChannelIdentity = CALLOC(1, sizeof(long)); + *(UE->DRB_config[0][0]->logicalChannelIdentity) = UE->DRB_config[0][0]->drb_Identity; //(long) (ue_context_pP->ue_context.e_rab[i].param.e_rab_id + 2); // value : x+2 + DRB_rlc_config = CALLOC(1,sizeof(struct LTE_RLC_Config)); + DRB_pdcp_config = CALLOC(1,sizeof(struct LTE_PDCP_Config)); + PDCP_rlc_UM = CALLOC(1,sizeof(struct LTE_PDCP_Config__rlc_UM)); + DRB_lchan_config = CALLOC(1,sizeof(struct LTE_LogicalChannelConfig)); + DRB_ul_SpecificParameters = CALLOC(1, sizeof(struct LTE_LogicalChannelConfig__ul_SpecificParameters)); + logicalchannelgroup_drb = CALLOC(1, sizeof(long)); + DRB_rlc_config->present = LTE_RLC_Config_PR_um_Bi_Directional; + DRB_rlc_config->choice.um_Bi_Directional.ul_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.sn_FieldLength = LTE_SN_FieldLength_size10; + DRB_rlc_config->choice.um_Bi_Directional.dl_UM_RLC.t_Reordering = LTE_T_Reordering_ms35; + UE->DRB_config[0][0]->rlc_Config = DRB_rlc_config; + DRB_pdcp_config = CALLOC(1, sizeof(*DRB_pdcp_config)); + UE->DRB_config[0][0]->pdcp_Config = DRB_pdcp_config; + DRB_pdcp_config->discardTimer = CALLOC(1, sizeof(long)); + *DRB_pdcp_config->discardTimer = LTE_PDCP_Config__discardTimer_infinity; + DRB_pdcp_config->rlc_AM = NULL; + DRB_pdcp_config->rlc_UM = NULL; + /* avoid gcc warnings */ + (void)PDCP_rlc_UM; + DRB_pdcp_config->rlc_UM = PDCP_rlc_UM; + PDCP_rlc_UM->pdcp_SN_Size = LTE_PDCP_Config__rlc_UM__pdcp_SN_Size_len12bits; + DRB_pdcp_config->headerCompression.present = LTE_PDCP_Config__headerCompression_PR_notUsed; + UE->DRB_config[0][0]->logicalChannelConfig = DRB_lchan_config; + DRB_ul_SpecificParameters = CALLOC(1, sizeof(*DRB_ul_SpecificParameters)); + DRB_lchan_config->ul_SpecificParameters = DRB_ul_SpecificParameters; + DRB_ul_SpecificParameters->priority = 12; // lower priority than srb1, srb2 and other dedicated bearer + DRB_ul_SpecificParameters->prioritisedBitRate = LTE_LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_kBps8 ; + //LogicalChannelConfig__ul_SpecificParameters__prioritisedBitRate_infinity; + DRB_ul_SpecificParameters->bucketSizeDuration = + LTE_LogicalChannelConfig__ul_SpecificParameters__bucketSizeDuration_ms50; + // LCG for DTCH can take the value from 1 to 3 as defined in 36331: normally controlled by upper layers (like RRM) + *logicalchannelgroup_drb = 1; + DRB_ul_SpecificParameters->logicalChannelGroup = logicalchannelgroup_drb; + UE->DRB_configList = CALLOC(1,sizeof(LTE_DRB_ToAddModList_t)); + ASN_SEQUENCE_ADD(&UE->DRB_configList->list,UE->DRB_config[0][0]); + rrc_pdcp_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *) NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *) NULL, + 0xff, NULL, NULL, NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - , (LTE_PMCH_InfoList_r9_t *) NULL + , (LTE_PMCH_InfoList_r9_t *) NULL #endif - ,NULL); - - - rrc_rlc_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*)NULL + ,NULL); + rrc_rlc_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *)NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL - , 0, 0 + ,(LTE_PMCH_InfoList_r9_t *)NULL + , 0, 0 #endif - ); + ); - //TX - if (type > 0) { - rrc_rlc_config_asn1_req(&ctxt, - (LTE_SRB_ToAddModList_t*)NULL, - UE->DRB_configList, - (LTE_DRB_ToReleaseList_t*)NULL + //TX + if (type > 0) { + rrc_rlc_config_asn1_req(&ctxt, + (LTE_SRB_ToAddModList_t *)NULL, + UE->DRB_configList, + (LTE_DRB_ToReleaseList_t *)NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,(LTE_PMCH_InfoList_r9_t *)NULL - , sourceL2Id, destinationL2Id + ,(LTE_PMCH_InfoList_r9_t *)NULL + , sourceL2Id, destinationL2Id #endif - ); - - //configure MAC with sourceL2Id/groupL2ID - rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + ); + //configure MAC with sourceL2Id/groupL2ID + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 10, //LCID - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 10, //LCID + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,CONFIG_ACTION_ADD, - &sourceL2Id, - &destinationL2Id + ,CONFIG_ACTION_ADD, + &sourceL2Id, + &destinationL2Id #endif - ); - } else {//RX - //configure MAC with sourceL2Id/groupL2ID - rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 - (LTE_RadioResourceConfigCommonSIB_t *)NULL, - (struct LTE_PhysicalConfigDedicated *)NULL, + ); + } else {//RX + //configure MAC with sourceL2Id/groupL2ID + rrc_mac_config_req_ue(module_id,0,0, //eNB_index =0 + (LTE_RadioResourceConfigCommonSIB_t *)NULL, + (struct LTE_PhysicalConfigDedicated *)NULL, #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - (LTE_SCellToAddMod_r10_t *)NULL, - //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, + (LTE_SCellToAddMod_r10_t *)NULL, + //struct PhysicalConfigDedicatedSCell_r10 *physicalConfigDedicatedSCell_r10, #endif - (LTE_MeasObjectToAddMod_t **)NULL, - (LTE_MAC_MainConfig_t *)NULL, - 10, //LCID - (struct LTE_LogicalChannelConfig *)NULL, - (LTE_MeasGapConfig_t *)NULL, - (LTE_TDD_Config_t *)NULL, - (LTE_MobilityControlInfo_t *)NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL + (LTE_MeasObjectToAddMod_t **)NULL, + (LTE_MAC_MainConfig_t *)NULL, + 10, //LCID + (struct LTE_LogicalChannelConfig *)NULL, + (LTE_MeasGapConfig_t *)NULL, + (LTE_TDD_Config_t *)NULL, + (LTE_MobilityControlInfo_t *)NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,0, - (LTE_MBSFN_AreaInfoList_r9_t *)NULL, - (LTE_PMCH_InfoList_r9_t *)NULL - + ,0, + (LTE_MBSFN_AreaInfoList_r9_t *)NULL, + (LTE_PMCH_InfoList_r9_t *)NULL #endif #ifdef CBA - , - 0, - 0 + , + 0, + 0 #endif #if (LTE_RRC_VERSION >= MAKE_VERSION(10, 0, 0)) - ,CONFIG_ACTION_ADD, - &sourceL2Id, - NULL + ,CONFIG_ACTION_ADD, + &sourceL2Id, + NULL #endif - ); + ); + } - } + LOG_I(RRC,"Send PC5EstablishRsp to ProSe App\n"); + memset(send_buf, 0, BUFSIZE); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = PC5S_ESTABLISH_RSP; + sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid28 = 10; + sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid29 = 10; + sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid30 = 10; + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - LOG_I(RRC,"Send PC5EstablishRsp to ProSe App\n"); - memset(send_buf, 0, BUFSIZE); - sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); - sl_ctrl_msg_send->type = PC5S_ESTABLISH_RSP; - sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid28 = 10; - sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid29 = 10; - sl_ctrl_msg_send->sidelinkPrimitive.pc5s_establish_rsp.slrbid_lcid30 = 10; - memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); - - prose_addr_len = sizeof(prose_app_addr); - n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); -// free(sl_ctrl_msg_send); - if (n < 0){ - LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); - exit(EXIT_FAILURE); - } - break; + // free(sl_ctrl_msg_send); + if (n < 0) { + LOG_E(RRC, "ERROR: Failed to send to ProSe App\n"); + exit(EXIT_FAILURE); + } + break; case PC5_DISCOVERY_MESSAGE: + if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)) { + LOG_UI(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); + } - if (LOG_DEBUGFLAG(DEBUG_CTRLSOCKET)){ - LOG_UI(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type); - } //prepare SL_Discovery buffer - if (UE_rrc_inst) { - memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE); - UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.payload_size = PC5_DISCOVERY_PAYLOAD_SIZE; - LOG_I(RRC,"[PC5DiscoveryMessage] Copied %d bytes\n",PC5_DISCOVERY_PAYLOAD_SIZE); - } - break; + if (UE_rrc_inst) { + memcpy((void *)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void *)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE); + UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.payload_size = PC5_DISCOVERY_PAYLOAD_SIZE; + LOG_I(RRC,"[PC5DiscoveryMessage] Copied %d bytes\n",PC5_DISCOVERY_PAYLOAD_SIZE); + } + + break; + default: - break; - } - } - free (sl_ctrl_msg_recv); - return 0; + break; + } + } + + free (sl_ctrl_msg_recv); + return 0; } //----------------------------------------------------------------------------- int decode_SL_Discovery_Message( - const protocol_ctxt_t* const ctxt_pP, + const protocol_ctxt_t *const ctxt_pP, const uint8_t eNB_index, - const uint8_t* Sdu, - const uint8_t Sdu_len) -{ - - int prose_addr_len; - char send_buf[BUFSIZE]; - int n; - struct sidelink_ctrl_element *sl_ctrl_msg_send = NULL; - - //from the main program, listen for the incoming messages from control socket (ProSe App) - prose_addr_len = sizeof(prose_app_addr); - - //Store in Rx_buffer - memcpy((void*)&UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.Payload[0], (void*)Sdu, Sdu_len); - UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.payload_size = Sdu_len; - - memset(send_buf, 0, BUFSIZE); - //send to ProSeApp - memcpy((void *)send_buf, (void*)Sdu, Sdu_len); - prose_addr_len = sizeof(prose_app_addr); - - sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); - sl_ctrl_msg_send->type = PC5_DISCOVERY_MESSAGE; - // TODO: Add a check for the SDU size. - memcpy((void*)&sl_ctrl_msg_send->sidelinkPrimitive.pc5_discovery_message.payload[0], (void*) Sdu, PC5_DISCOVERY_PAYLOAD_SIZE); - - memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); - free(sl_ctrl_msg_send); - - prose_addr_len = sizeof(prose_app_addr); - - n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); - if (n < 0){ - // TODO: We should not just exit if the Prose App has not yet attached. It creates a race condition. - LOG_I(RRC, "ERROR: Failed to send to ProSe App\n"); - //exit(EXIT_FAILURE); - } - + const uint8_t *Sdu, + const uint8_t Sdu_len) { + int prose_addr_len; + char send_buf[BUFSIZE]; + int n; + struct sidelink_ctrl_element *sl_ctrl_msg_send = NULL; + //from the main program, listen for the incoming messages from control socket (ProSe App) + prose_addr_len = sizeof(prose_app_addr); + //Store in Rx_buffer + memcpy((void *)&UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.Payload[0], (void *)Sdu, Sdu_len); + UE_rrc_inst[ctxt_pP->module_id].SL_Discovery[0].Rx_buffer.payload_size = Sdu_len; + memset(send_buf, 0, BUFSIZE); + //send to ProSeApp + memcpy((void *)send_buf, (void *)Sdu, Sdu_len); + prose_addr_len = sizeof(prose_app_addr); + sl_ctrl_msg_send = calloc(1, sizeof(struct sidelink_ctrl_element)); + sl_ctrl_msg_send->type = PC5_DISCOVERY_MESSAGE; + // TODO: Add a check for the SDU size. + memcpy((void *)&sl_ctrl_msg_send->sidelinkPrimitive.pc5_discovery_message.payload[0], (void *) Sdu, PC5_DISCOVERY_PAYLOAD_SIZE); + memcpy((void *)send_buf, (void *)sl_ctrl_msg_send, sizeof(struct sidelink_ctrl_element)); + free(sl_ctrl_msg_send); + prose_addr_len = sizeof(prose_app_addr); + n = sendto(ctrl_sock_fd, (char *)send_buf, sizeof(struct sidelink_ctrl_element), 0, (struct sockaddr *)&prose_app_addr, prose_addr_len); + if (n < 0) { + // TODO: We should not just exit if the Prose App has not yet attached. It creates a race condition. + LOG_I(RRC, "ERROR: Failed to send to ProSe App\n"); + //exit(EXIT_FAILURE); + } return(0); } @@ -6335,112 +5813,111 @@ int decode_SL_Discovery_Message( //----------------------------------------------------------------------------- RRC_status_t rrc_rx_tx_ue( - protocol_ctxt_t* const ctxt_pP, + protocol_ctxt_t *const ctxt_pP, const uint8_t enb_indexP, const int CC_id ) //----------------------------------------------------------------------------- { - #ifdef LOCALIZATION double estimated_distance; protocol_ctxt_t ctxt; #endif VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_IN); - // check timers + // check timers - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_active == 1) { - if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt % 10) == 0) - LOG_D(RRC, - "[UE %d][RAPROC] Frame %d T300 Count %d ms\n", ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt); + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_active == 1) { + if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt % 10) == 0) + LOG_D(RRC, + "[UE %d][RAPROC] Frame %d T300 Count %d ms\n", ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt); - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt - == T300[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.t300]) { - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_active = 0; - // ALLOW CCCH to be used - UE_rrc_inst[ctxt_pP->module_id].Srb0[enb_indexP].Tx_buffer.payload_size = 0; - rrc_ue_generate_RRCConnectionRequest (ctxt_pP, enb_indexP); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); - return (RRC_ConnSetup_failed); - } - - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt++; - } - - if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].SIStatus&2)>0) { - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt - == N310[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.n310]) { - LOG_I(RRC,"Activating T310\n"); - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 1; - } - } else { // in case we have not received SIB2 yet - /* if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt == 100) { - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt = 0; - - }*/ + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt + == T300[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.t300]) { + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_active = 0; + // ALLOW CCCH to be used + UE_rrc_inst[ctxt_pP->module_id].Srb0[enb_indexP].Tx_buffer.payload_size = 0; + rrc_ue_generate_RRCConnectionRequest (ctxt_pP, enb_indexP); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); - return RRC_OK; + return (RRC_ConnSetup_failed); } - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active == 1) { - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N311_cnt - == N311[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.n311]) { - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 0; - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N311_cnt = 0; - } + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T300_cnt++; + } - if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt % 10) == 0) { - LOG_D(RRC, "[UE %d] Frame %d T310 Count %d ms\n", ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt); - } + if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].SIStatus&2)>0) { + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt + == N310[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.n310]) { + LOG_I(RRC,"Activating T310\n"); + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 1; + } + } else { // in case we have not received SIB2 yet + /* if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt == 100) { + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N310_cnt = 0; - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt == T310[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.t310]) { - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 0; - rrc_t310_expiration (ctxt_pP, enb_indexP); - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); - LOG_I(RRC,"Returning RRC_PHY_RESYNCH: T310 expired\n"); - return RRC_PHY_RESYNCH; - } + }*/ + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); + return RRC_OK; + } - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt++; + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active == 1) { + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N311_cnt + == N311[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.n311]) { + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 0; + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].N311_cnt = 0; } - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_active==1) { - if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt % 10) == 0) - LOG_D(RRC,"[UE %d][RAPROC] Frame %d T304 Count %d ms\n",ctxt_pP->module_id,ctxt_pP->frame, - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt); - - if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt == 0) { - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_active = 0; - UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag = 1; - LOG_E(RRC,"[UE %d] Handover failure..initiating connection re-establishment procedure... \n", - ctxt_pP->module_id); - //Implement 36.331, section 5.3.5.6 here - VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); - return(RRC_Handover_failed); - } - - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt--; + if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt % 10) == 0) { + LOG_D(RRC, "[UE %d] Frame %d T310 Count %d ms\n", ctxt_pP->module_id, ctxt_pP->frame, UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt); } - // Layer 3 filtering of RRC measurements - if (UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[0] != NULL) { - ue_meas_filtering(ctxt_pP,enb_indexP); - } - - ue_measurement_report_triggering(ctxt_pP,enb_indexP); - - if (UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget > 0) { - LOG_I(RRC,"[UE %d] Frame %d : RRC handover initiated\n", ctxt_pP->module_id, ctxt_pP->frame); - } - - if((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].State == RRC_HO_EXECUTION) && - (UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId != 0xFF)) { - UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].State= RRC_IDLE; + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt == T310[UE_rrc_inst[ctxt_pP->module_id].sib2[enb_indexP]->ue_TimersAndConstants.t310]) { + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_active = 0; + rrc_t310_expiration (ctxt_pP, enb_indexP); VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); - return(RRC_HO_STARTED); + LOG_I(RRC,"Returning RRC_PHY_RESYNCH: T310 expired\n"); + return RRC_PHY_RESYNCH; } + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T310_cnt++; + } + + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_active==1) { + if ((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt % 10) == 0) + LOG_D(RRC,"[UE %d][RAPROC] Frame %d T304 Count %d ms\n",ctxt_pP->module_id,ctxt_pP->frame, + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt); + + if (UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt == 0) { + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_active = 0; + UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.measFlag = 1; + LOG_E(RRC,"[UE %d] Handover failure..initiating connection re-establishment procedure... \n", + ctxt_pP->module_id); + //Implement 36.331, section 5.3.5.6 here + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); + return(RRC_Handover_failed); + } + + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].T304_cnt--; + } + + // Layer 3 filtering of RRC measurements + if (UE_rrc_inst[ctxt_pP->module_id].QuantityConfig[0] != NULL) { + ue_meas_filtering(ctxt_pP,enb_indexP); + } + + ue_measurement_report_triggering(ctxt_pP,enb_indexP); + + if (UE_rrc_inst[ctxt_pP->module_id].Info[0].handoverTarget > 0) { + LOG_I(RRC,"[UE %d] Frame %d : RRC handover initiated\n", ctxt_pP->module_id, ctxt_pP->frame); + } + + if((UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].State == RRC_HO_EXECUTION) && + (UE_rrc_inst[ctxt_pP->module_id].HandoverInfoUe.targetCellId != 0xFF)) { + UE_rrc_inst[ctxt_pP->module_id].Info[enb_indexP].State= RRC_IDLE; + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); + return(RRC_HO_STARTED); + } + VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME(VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_RX_TX,VCD_FUNCTION_OUT); return (RRC_OK); } diff --git a/openair2/RRC/LTE/rrc_eNB.c b/openair2/RRC/LTE/rrc_eNB.c index cbce507341..d0a6693429 100644 --- a/openair2/RRC/LTE/rrc_eNB.c +++ b/openair2/RRC/LTE/rrc_eNB.c @@ -5499,37 +5499,6 @@ rrc_eNB_decode_ccch( 0, 0); - /* - #if defined(ENABLE_ITTI) - # if defined(DISABLE_ITTI_XER_PRINT) - { - MessageDef *message_p; - - message_p = itti_alloc_new_message(TASK_RRC_ENB, RRC_UL_CCCH_MESSAGE); - memcpy(&message_p->ittiMsg, (void *)ul_ccch_msg, sizeof(RrcUlCcchMessage)); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, message_p); - } - # else - { - char message_string[10000]; - size_t message_string_size; - - if ((message_string_size = - xer_sprint(message_string, sizeof(message_string), &asn_DEF_LTE_UL_CCCH_Message, (void *)ul_ccch_msg)) > 0) { - MessageDef *msg_p; - - msg_p = itti_alloc_new_message_sized(TASK_RRC_ENB, RRC_UL_CCCH, message_string_size + sizeof(IttiMsgText)); - msg_p->ittiMsg.rrc_ul_ccch.size = message_string_size; - memcpy(&msg_p->ittiMsg.rrc_ul_ccch.text, message_string, message_string_size); - - itti_send_msg_to_task(TASK_UNKNOWN, ctxt_pP->instance, msg_p); - } - } - # endif - #endif - */ - for (i = 0; i < 8; i++) { LOG_T(RRC, "%x.", ((uint8_t *) & ul_ccch_msg)[i]); } @@ -6017,12 +5986,8 @@ rrc_eNB_decode_dcch( LTE_UL_DCCH_Message_t *ul_dcch_msg = NULL; //&uldcchmsg; int i; struct rrc_eNB_ue_context_s *ue_context_p = NULL; -#if defined(ENABLE_ITTI) -# if defined(ENABLE_USE_MME) MessageDef *msg_delete_tunnels_p = NULL; uint8_t xid; -#endif -#endif int dedicated_DRB=0; T(T_ENB_RRC_UL_DCCH_DATA_IN, T_INT(ctxt_pP->module_id), T_INT(ctxt_pP->frame), T_INT(ctxt_pP->subframe), T_INT(ctxt_pP->rnti)); diff --git a/openair2/X2AP/x2ap_eNB.c b/openair2/X2AP/x2ap_eNB.c index d12dfa8819..13f6989f1c 100644 --- a/openair2/X2AP/x2ap_eNB.c +++ b/openair2/X2AP/x2ap_eNB.c @@ -67,30 +67,21 @@ void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p, static void x2ap_eNB_handle_sctp_data_ind(instance_t instance, sctp_data_ind_t *sctp_data_ind) { - int result; - DevAssert(sctp_data_ind != NULL); - x2ap_eNB_handle_message(instance, sctp_data_ind->assoc_id, sctp_data_ind->stream, sctp_data_ind->buffer, sctp_data_ind->buffer_length); - result = itti_free(TASK_UNKNOWN, sctp_data_ind->buffer); AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } static -void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_association_resp_t *sctp_new_association_resp) -{ +void x2ap_eNB_handle_sctp_association_resp(instance_t instance, sctp_new_association_resp_t *sctp_new_association_resp) { x2ap_eNB_instance_t *instance_p; x2ap_eNB_data_t *x2ap_enb_data_p; - DevAssert(sctp_new_association_resp != NULL); - -printf("x2ap_eNB_handle_sctp_association_resp at 1\n"); -dump_trees(); - + printf("x2ap_eNB_handle_sctp_association_resp at 1\n"); + dump_trees(); instance_p = x2ap_eNB_get_instance(instance); DevAssert(instance_p != NULL); @@ -99,13 +90,15 @@ dump_trees(); */ if (sctp_new_association_resp->assoc_id != -1) { x2ap_enb_data_p = x2ap_get_eNB(instance_p, sctp_new_association_resp->assoc_id, - sctp_new_association_resp->ulp_cnx_id); + sctp_new_association_resp->ulp_cnx_id); + if (x2ap_enb_data_p != NULL) { /* some sanity check - to be refined at some point */ if (sctp_new_association_resp->sctp_state != SCTP_STATE_ESTABLISHED) { X2AP_ERROR("x2ap_enb_data_p not NULL and sctp state not SCTP_STATE_ESTABLISHED, what to do?\n"); abort(); } + x2ap_enb_data_p->in_streams = sctp_new_association_resp->in_streams; x2ap_enb_data_p->out_streams = sctp_new_association_resp->out_streams; return; @@ -113,70 +106,60 @@ dump_trees(); } x2ap_enb_data_p = x2ap_get_eNB(instance_p, -1, - sctp_new_association_resp->ulp_cnx_id); + sctp_new_association_resp->ulp_cnx_id); DevAssert(x2ap_enb_data_p != NULL); - -printf("x2ap_eNB_handle_sctp_association_resp at 2\n"); -dump_trees(); + printf("x2ap_eNB_handle_sctp_association_resp at 2\n"); + dump_trees(); if (sctp_new_association_resp->sctp_state != SCTP_STATE_ESTABLISHED) { X2AP_WARN("Received unsuccessful result for SCTP association (%u), instance %d, cnx_id %u\n", sctp_new_association_resp->sctp_state, instance, sctp_new_association_resp->ulp_cnx_id); - x2ap_handle_x2_setup_message(x2ap_enb_data_p, - sctp_new_association_resp->sctp_state == SCTP_STATE_SHUTDOWN); - + sctp_new_association_resp->sctp_state == SCTP_STATE_SHUTDOWN); return; } -printf("x2ap_eNB_handle_sctp_association_resp at 3\n"); -dump_trees(); - + printf("x2ap_eNB_handle_sctp_association_resp at 3\n"); + dump_trees(); /* Update parameters */ x2ap_enb_data_p->assoc_id = sctp_new_association_resp->assoc_id; x2ap_enb_data_p->in_streams = sctp_new_association_resp->in_streams; x2ap_enb_data_p->out_streams = sctp_new_association_resp->out_streams; - -printf("x2ap_eNB_handle_sctp_association_resp at 4\n"); -dump_trees(); - + printf("x2ap_eNB_handle_sctp_association_resp at 4\n"); + dump_trees(); /* Prepare new x2 Setup Request */ x2ap_eNB_generate_x2_setup_request(instance_p, x2ap_enb_data_p); } static -void x2ap_eNB_handle_sctp_association_ind(instance_t instance, sctp_new_association_ind_t *sctp_new_association_ind) -{ +void x2ap_eNB_handle_sctp_association_ind(instance_t instance, sctp_new_association_ind_t *sctp_new_association_ind) { x2ap_eNB_instance_t *instance_p; x2ap_eNB_data_t *x2ap_enb_data_p; - -printf("x2ap_eNB_handle_sctp_association_ind at 1 (called for instance %d)\n", instance); -dump_trees(); + printf("x2ap_eNB_handle_sctp_association_ind at 1 (called for instance %d)\n", instance); + dump_trees(); DevAssert(sctp_new_association_ind != NULL); - instance_p = x2ap_eNB_get_instance(instance); DevAssert(instance_p != NULL); - x2ap_enb_data_p = x2ap_get_eNB(instance_p, sctp_new_association_ind->assoc_id, -1); + if (x2ap_enb_data_p != NULL) abort(); -// DevAssert(x2ap_enb_data_p != NULL); + + // DevAssert(x2ap_enb_data_p != NULL); if (x2ap_enb_data_p == NULL) { /* Create new eNB descriptor */ x2ap_enb_data_p = calloc(1, sizeof(*x2ap_enb_data_p)); DevAssert(x2ap_enb_data_p != NULL); - x2ap_enb_data_p->cnx_id = x2ap_eNB_fetch_add_global_cnx_id(); - x2ap_enb_data_p->x2ap_eNB_instance = instance_p; - /* Insert the new descriptor in list of known eNB * but not yet associated. */ RB_INSERT(x2ap_enb_map, &instance_p->x2ap_enb_head, x2ap_enb_data_p); x2ap_enb_data_p->state = X2AP_ENB_STATE_CONNECTED; instance_p->x2_target_enb_nb++; + if (instance_p->x2_target_enb_pending_nb > 0) { instance_p->x2_target_enb_pending_nb--; } @@ -184,37 +167,31 @@ dump_trees(); X2AP_WARN("x2ap_enb_data_p already exists\n"); } -printf("x2ap_eNB_handle_sctp_association_ind at 2\n"); -dump_trees(); + printf("x2ap_eNB_handle_sctp_association_ind at 2\n"); + dump_trees(); /* Update parameters */ x2ap_enb_data_p->assoc_id = sctp_new_association_ind->assoc_id; x2ap_enb_data_p->in_streams = sctp_new_association_ind->in_streams; x2ap_enb_data_p->out_streams = sctp_new_association_ind->out_streams; - -printf("x2ap_eNB_handle_sctp_association_ind at 3\n"); -dump_trees(); + printf("x2ap_eNB_handle_sctp_association_ind at 3\n"); + dump_trees(); } int x2ap_eNB_init_sctp (x2ap_eNB_instance_t *instance_p, - net_ip_address_t *local_ip_addr, - uint32_t enb_port_for_X2C) -{ + net_ip_address_t *local_ip_addr, + uint32_t enb_port_for_X2C) { // Create and alloc new message MessageDef *message; sctp_init_t *sctp_init = NULL; - DevAssert(instance_p != NULL); DevAssert(local_ip_addr != NULL); - message = itti_alloc_new_message (TASK_X2AP, SCTP_INIT_MSG_MULTI_REQ); sctp_init = &message->ittiMsg.sctp_init_multi; - sctp_init->port = enb_port_for_X2C; sctp_init->ppid = X2AP_SCTP_PPID; sctp_init->ipv4 = 1; sctp_init->ipv6 = 0; sctp_init->nb_ipv4_addr = 1; - #if 0 memcpy(&sctp_init->ipv4_address, local_ip_addr, @@ -227,9 +204,7 @@ int x2ap_eNB_init_sctp (x2ap_eNB_instance_t *instance_p, */ sctp_init->nb_ipv6_addr = 0; sctp_init->ipv6_address[0] = "0:0:0:0:0:0:0:1"; - return itti_send_msg_to_task (TASK_SCTP, instance_p->instance, message); - } static void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p, @@ -237,47 +212,33 @@ static void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p, net_ip_address_t *local_ip_addr, uint16_t in_streams, uint16_t out_streams, - uint32_t enb_port_for_X2C, - int multi_sd) -{ - + uint32_t enb_port_for_X2C, + int multi_sd) { MessageDef *message = NULL; sctp_new_association_req_multi_t *sctp_new_association_req = NULL; x2ap_eNB_data_t *x2ap_enb_data = NULL; - DevAssert(instance_p != NULL); DevAssert(target_eNB_ip_address != NULL); - message = itti_alloc_new_message(TASK_X2AP, SCTP_NEW_ASSOCIATION_REQ_MULTI); - sctp_new_association_req = &message->ittiMsg.sctp_new_association_req_multi; - sctp_new_association_req->port = enb_port_for_X2C; sctp_new_association_req->ppid = X2AP_SCTP_PPID; - sctp_new_association_req->in_streams = in_streams; sctp_new_association_req->out_streams = out_streams; - sctp_new_association_req->multi_sd = multi_sd; - memcpy(&sctp_new_association_req->remote_address, target_eNB_ip_address, sizeof(*target_eNB_ip_address)); - memcpy(&sctp_new_association_req->local_address, local_ip_addr, sizeof(*local_ip_addr)); - /* Create new eNB descriptor */ x2ap_enb_data = calloc(1, sizeof(*x2ap_enb_data)); DevAssert(x2ap_enb_data != NULL); - x2ap_enb_data->cnx_id = x2ap_eNB_fetch_add_global_cnx_id(); sctp_new_association_req->ulp_cnx_id = x2ap_enb_data->cnx_id; - x2ap_enb_data->assoc_id = -1; x2ap_enb_data->x2ap_eNB_instance = instance_p; - /* Insert the new descriptor in list of known eNB * but not yet associated. */ @@ -285,18 +246,14 @@ static void x2ap_eNB_register_eNB(x2ap_eNB_instance_t *instance_p, x2ap_enb_data->state = X2AP_ENB_STATE_WAITING; instance_p->x2_target_enb_nb ++; instance_p->x2_target_enb_pending_nb ++; - itti_send_msg_to_task(TASK_SCTP, instance_p->instance, message); } static void x2ap_eNB_handle_register_eNB(instance_t instance, - x2ap_register_enb_req_t *x2ap_register_eNB) -{ + x2ap_register_enb_req_t *x2ap_register_eNB) { x2ap_eNB_instance_t *new_instance; - DevAssert(x2ap_register_eNB != NULL); - /* Look if the provided instance already exists */ new_instance = x2ap_eNB_get_instance(instance); @@ -308,13 +265,10 @@ void x2ap_eNB_handle_register_eNB(instance_t instance, DevCheck(new_instance->mcc == x2ap_register_eNB->mcc, new_instance->mcc, x2ap_register_eNB->mcc, 0); DevCheck(new_instance->mnc == x2ap_register_eNB->mnc, new_instance->mnc, x2ap_register_eNB->mnc, 0); X2AP_WARN("eNB[%d] already registered\n", instance); - } - else { + } else { new_instance = calloc(1, sizeof(x2ap_eNB_instance_t)); DevAssert(new_instance != NULL); - RB_INIT(&new_instance->x2ap_enb_head); - /* Copy usefull parameters */ new_instance->instance = instance; new_instance->eNB_name = x2ap_register_eNB->eNB_name; @@ -324,10 +278,9 @@ void x2ap_eNB_handle_register_eNB(instance_t instance, new_instance->mcc = x2ap_register_eNB->mcc; new_instance->mnc = x2ap_register_eNB->mnc; new_instance->mnc_digit_length = x2ap_register_eNB->mnc_digit_length; - new_instance->num_cc = x2ap_register_eNB->num_cc; - for (int i = 0; i< x2ap_register_eNB->num_cc; i++){ + for (int i = 0; i< x2ap_register_eNB->num_cc; i++) { new_instance->eutra_band[i] = x2ap_register_eNB->eutra_band[i]; new_instance->downlink_frequency[i] = x2ap_register_eNB->downlink_frequency[i]; new_instance->uplink_frequency_offset[i] = x2ap_register_eNB->uplink_frequency_offset[i]; @@ -343,44 +296,40 @@ void x2ap_eNB_handle_register_eNB(instance_t instance, memcpy(new_instance->target_enb_x2_ip_address, x2ap_register_eNB->target_enb_x2_ip_address, x2ap_register_eNB->nb_x2 * sizeof(net_ip_address_t)); - new_instance->nb_x2 = x2ap_register_eNB->nb_x2; new_instance->enb_x2_ip_address = x2ap_register_eNB->enb_x2_ip_address; new_instance->sctp_in_streams = x2ap_register_eNB->sctp_in_streams; new_instance->sctp_out_streams = x2ap_register_eNB->sctp_out_streams; new_instance->enb_port_for_X2C = x2ap_register_eNB->enb_port_for_X2C; - /* Add the new instance to the list of eNB (meaningfull in virtual mode) */ x2ap_eNB_insert_new_instance(new_instance); - X2AP_INFO("Registered new eNB[%d] and %s eNB id %u\n", - instance, - x2ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home", - x2ap_register_eNB->eNB_id); + instance, + x2ap_register_eNB->cell_type == CELL_MACRO_ENB ? "macro" : "home", + x2ap_register_eNB->eNB_id); + /* initiate the SCTP listener */ if (x2ap_eNB_init_sctp(new_instance,&x2ap_register_eNB->enb_x2_ip_address,x2ap_register_eNB->enb_port_for_X2C) < 0 ) { - X2AP_ERROR ("Error while sending SCTP_INIT_MSG to SCTP \n"); - return; + X2AP_ERROR ("Error while sending SCTP_INIT_MSG to SCTP \n"); + return; } - X2AP_INFO("eNB[%d] eNB id %u acting as a listner (server)\n", - instance, x2ap_register_eNB->eNB_id); + + X2AP_INFO("eNB[%d] eNB id %u acting as a listner (server)\n", + instance, x2ap_register_eNB->eNB_id); } } static void x2ap_eNB_handle_sctp_init_msg_multi_cnf( - instance_t instance_id, - sctp_init_msg_multi_cnf_t *m) -{ + instance_t instance_id, + sctp_init_msg_multi_cnf_t *m) { x2ap_eNB_instance_t *instance; int index; - DevAssert(m != NULL); - instance = x2ap_eNB_get_instance(instance_id); DevAssert(instance != NULL); - instance->multi_sd = m->multi_sd; + /* Exit if CNF message reports failure. * Failure means multi_sd < 0. */ @@ -392,72 +341,67 @@ void x2ap_eNB_handle_sctp_init_msg_multi_cnf( /* Trying to connect to the provided list of eNB ip address */ for (index = 0; index < instance->nb_x2; index++) { - - X2AP_INFO("eNB[%d] eNB id %u acting as an initiator (client)\n", - instance_id, instance->eNB_id); - x2ap_eNB_register_eNB(instance, - &instance->target_enb_x2_ip_address[index], - &instance->enb_x2_ip_address, - instance->sctp_in_streams, - instance->sctp_out_streams, - instance->enb_port_for_X2C, - instance->multi_sd); + X2AP_INFO("eNB[%d] eNB id %u acting as an initiator (client)\n", + instance_id, instance->eNB_id); + x2ap_eNB_register_eNB(instance, + &instance->target_enb_x2_ip_address[index], + &instance->enb_x2_ip_address, + instance->sctp_in_streams, + instance->sctp_out_streams, + instance->enb_port_for_X2C, + instance->multi_sd); } } -void *x2ap_task(void *arg) -{ +void *x2ap_task(void *arg) { MessageDef *received_msg = NULL; int result; - X2AP_DEBUG("Starting X2AP layer\n"); - x2ap_eNB_prepare_internal_data(); - itti_mark_task_ready(TASK_X2AP); while (1) { itti_receive_msg(TASK_X2AP, &received_msg); + switch (ITTI_MSG_ID(received_msg)) { - case TERMINATE_MESSAGE: - X2AP_WARN(" *** Exiting X2AP thread\n"); - itti_exit_task(); - break; + case TERMINATE_MESSAGE: + X2AP_WARN(" *** Exiting X2AP thread\n"); + itti_exit_task(); + break; - case X2AP_REGISTER_ENB_REQ: - x2ap_eNB_handle_register_eNB(ITTI_MESSAGE_GET_INSTANCE(received_msg), - &X2AP_REGISTER_ENB_REQ(received_msg)); - break; + case X2AP_REGISTER_ENB_REQ: + x2ap_eNB_handle_register_eNB(ITTI_MESSAGE_GET_INSTANCE(received_msg), + &X2AP_REGISTER_ENB_REQ(received_msg)); + break; - case SCTP_INIT_MSG_MULTI_CNF: - x2ap_eNB_handle_sctp_init_msg_multi_cnf(ITTI_MESSAGE_GET_INSTANCE(received_msg), - &received_msg->ittiMsg.sctp_init_msg_multi_cnf); - break; + case SCTP_INIT_MSG_MULTI_CNF: + x2ap_eNB_handle_sctp_init_msg_multi_cnf(ITTI_MESSAGE_GET_INSTANCE(received_msg), + &received_msg->ittiMsg.sctp_init_msg_multi_cnf); + break; - case SCTP_NEW_ASSOCIATION_RESP: - x2ap_eNB_handle_sctp_association_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg), - &received_msg->ittiMsg.sctp_new_association_resp); - break; + case SCTP_NEW_ASSOCIATION_RESP: + x2ap_eNB_handle_sctp_association_resp(ITTI_MESSAGE_GET_INSTANCE(received_msg), + &received_msg->ittiMsg.sctp_new_association_resp); + break; - case SCTP_NEW_ASSOCIATION_IND: - x2ap_eNB_handle_sctp_association_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg), - &received_msg->ittiMsg.sctp_new_association_ind); - break; + case SCTP_NEW_ASSOCIATION_IND: + x2ap_eNB_handle_sctp_association_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg), + &received_msg->ittiMsg.sctp_new_association_ind); + break; - case SCTP_DATA_IND: - x2ap_eNB_handle_sctp_data_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg), - &received_msg->ittiMsg.sctp_data_ind); - break; + case SCTP_DATA_IND: + x2ap_eNB_handle_sctp_data_ind(ITTI_MESSAGE_GET_INSTANCE(received_msg), + &received_msg->ittiMsg.sctp_data_ind); + break; - default: - X2AP_ERROR("Received unhandled message: %d:%s\n", - ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg)); - break; + default: + X2AP_ERROR("Received unhandled message: %d:%s\n", + ITTI_MSG_ID(received_msg), ITTI_MSG_NAME(received_msg)); + break; } result = itti_free (ITTI_MSG_ORIGIN_ID(received_msg), received_msg); AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - received_msg = NULL; } diff --git a/openair3/NAS/UE/nas_itti_messaging.c b/openair3/NAS/UE/nas_itti_messaging.c index 0389106ec3..0c5a2fec1f 100644 --- a/openair3/NAS/UE/nas_itti_messaging.c +++ b/openair3/NAS/UE/nas_itti_messaging.c @@ -85,94 +85,13 @@ static const uint8_t esm_message_ids[] = { ESM_STATUS, }; -static int _nas_find_message_index(const uint8_t message_id, const uint8_t *message_ids, const int ids_number) -{ - int i; - for(i = 0; i < ids_number; i ++) { - if (message_id == message_ids[i]) { - return (2 + i); - } - } - - return (1); +int nas_itti_plain_msg(const char *buffer, const nas_message_t *msg, const int length, const int down_link) { + return 0; } -int nas_itti_plain_msg(const char *buffer, const nas_message_t *msg, const int length, const int down_link) -{ - MessageDef *message_p; - int data_length = length < NAS_DATA_LENGHT_MAX ? length : NAS_DATA_LENGHT_MAX; - int message_type = -1; - MessagesIds messageId_raw = -1; - MessagesIds messageId_plain = -1; - - /* Define message ids */ - if (msg->header.protocol_discriminator == EPS_MOBILITY_MANAGEMENT_MESSAGE) { - message_type = 0; - messageId_raw = down_link ? NAS_DL_EMM_RAW_MSG : NAS_UL_EMM_RAW_MSG; - messageId_plain = down_link ? NAS_DL_EMM_PLAIN_MSG : NAS_UL_EMM_PLAIN_MSG; - } else { - if (msg->header.protocol_discriminator == EPS_SESSION_MANAGEMENT_MESSAGE) { - message_type = 1; - messageId_raw = down_link ? NAS_DL_ESM_RAW_MSG : NAS_UL_ESM_RAW_MSG; - messageId_plain = down_link ? NAS_DL_ESM_PLAIN_MSG : NAS_UL_ESM_PLAIN_MSG; - } - } - - if (message_type >= 0) { - /* Create and send the RAW message */ - message_p = itti_alloc_new_message(TASK_ORIGIN, messageId_raw); - - NAS_DL_EMM_RAW_MSG(message_p).lenght = length; - memset ((void *) &(NAS_DL_EMM_RAW_MSG(message_p).data), 0, NAS_DATA_LENGHT_MAX); - memcpy ((void *) &(NAS_DL_EMM_RAW_MSG(message_p).data), buffer, data_length); - - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - - /* Create and send the plain message */ - if (message_type == 0) { - message_p = itti_alloc_new_message(TASK_ORIGIN, messageId_plain); - - NAS_DL_EMM_PLAIN_MSG(message_p).present = _nas_find_message_index(msg->plain.emm.header.message_type, emm_message_ids, sizeof(emm_message_ids) / sizeof(emm_message_ids[0])); - memcpy ((void *) &(NAS_DL_EMM_PLAIN_MSG(message_p).choice), &msg->plain.emm, sizeof (EMM_msg)); - } else { - message_p = itti_alloc_new_message(TASK_ORIGIN, messageId_plain); - - NAS_DL_ESM_PLAIN_MSG(message_p).present = _nas_find_message_index(msg->plain.esm.header.message_type, esm_message_ids, sizeof(esm_message_ids) / sizeof(esm_message_ids[0])); - memcpy ((void *) &(NAS_DL_ESM_PLAIN_MSG(message_p).choice), &msg->plain.esm, sizeof (ESM_msg)); - } - - return itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - } - - return EXIT_FAILURE; -} - -int nas_itti_protected_msg(const char *buffer, const nas_message_t *msg, const int length, const int down_link) -{ - MessageDef *message_p = NULL; - - if (msg->header.protocol_discriminator == EPS_MOBILITY_MANAGEMENT_MESSAGE) { - message_p = itti_alloc_new_message(TASK_ORIGIN, down_link ? NAS_DL_EMM_PROTECTED_MSG : NAS_UL_EMM_PROTECTED_MSG); - - memcpy ((void *) &(NAS_DL_EMM_PROTECTED_MSG(message_p).header), &msg->header, sizeof (nas_message_security_header_t)); - NAS_DL_EMM_PROTECTED_MSG(message_p).present = _nas_find_message_index(msg->security_protected.plain.emm.header.message_type, emm_message_ids, sizeof(emm_message_ids) / sizeof(emm_message_ids[0])); - memcpy ((void *) &(NAS_DL_EMM_PROTECTED_MSG(message_p).choice), &msg->security_protected.plain.emm, sizeof (EMM_msg)); - } else { - if (msg->header.protocol_discriminator == EPS_SESSION_MANAGEMENT_MESSAGE) { - message_p = itti_alloc_new_message(TASK_ORIGIN, down_link ? NAS_DL_ESM_PROTECTED_MSG : NAS_UL_ESM_PROTECTED_MSG); - - memcpy ((void *) &(NAS_DL_ESM_PROTECTED_MSG(message_p).header), &msg->header, sizeof (nas_message_security_header_t)); - NAS_DL_ESM_PROTECTED_MSG(message_p).present = _nas_find_message_index(msg->security_protected.plain.esm.header.message_type, esm_message_ids, sizeof(esm_message_ids) / sizeof(esm_message_ids[0])); - memcpy ((void *) &(NAS_DL_ESM_PROTECTED_MSG(message_p).choice), &msg->security_protected.plain.esm, sizeof (ESM_msg)); - } - } - - if (message_p != NULL) { - return itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); - } - - return EXIT_FAILURE; +int nas_itti_protected_msg(const char *buffer, const nas_message_t *msg, const int length, const int down_link) { + return 0; } #endif @@ -180,112 +99,89 @@ int nas_itti_protected_msg(const char *buffer, const nas_message_t *msg, const i extern unsigned char NB_eNB_INST; -int nas_itti_kenb_refresh_req(const Byte_t kenb[32]) -{ +int nas_itti_kenb_refresh_req(const Byte_t kenb[32]) { MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_KENB_REFRESH_REQ); - memcpy(NAS_KENB_REFRESH_REQ(message_p).kenb, kenb, sizeof(NAS_KENB_REFRESH_REQ(message_p).kenb)); - MSC_LOG_TX_MESSAGE( - MSC_NAS_UE, - MSC_RRC_UE, - NULL,0, - "0 NAS_KENB_REFRESH_REQ KeNB " - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x" - "%02x%02x%02x%02x", - kenb[0], kenb[1], kenb[2], kenb[3], - kenb[4], kenb[5], kenb[6], kenb[7], - kenb[8], kenb[9], kenb[10], kenb[11], - kenb[12], kenb[13], kenb[14], kenb[15], - kenb[16], kenb[17], kenb[18], kenb[19], - kenb[20], kenb[21], kenb[22], kenb[23], - kenb[24], kenb[25], kenb[26], kenb[27], - kenb[28], kenb[29], kenb[30], kenb[31]); - + MSC_NAS_UE, + MSC_RRC_UE, + NULL,0, + "0 NAS_KENB_REFRESH_REQ KeNB " + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x" + "%02x%02x%02x%02x", + kenb[0], kenb[1], kenb[2], kenb[3], + kenb[4], kenb[5], kenb[6], kenb[7], + kenb[8], kenb[9], kenb[10], kenb[11], + kenb[12], kenb[13], kenb[14], kenb[15], + kenb[16], kenb[17], kenb[18], kenb[19], + kenb[20], kenb[21], kenb[22], kenb[23], + kenb[24], kenb[25], kenb[26], kenb[27], + kenb[28], kenb[29], kenb[30], kenb[31]); return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + 0 /* TODO to be virtualized */, message_p); } -int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id) -{ +int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat, int user_id) { MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_CELL_SELECTION_REQ); - NAS_CELL_SELECTION_REQ(message_p).plmnID = plmnID; NAS_CELL_SELECTION_REQ(message_p).rat = rat; - MSC_LOG_TX_MESSAGE( - MSC_NAS_UE, - MSC_RRC_UE, - NULL,0, - "0 NAS_CELL_SELECTION_REQ PLMN %X%X%X.%X%X%X", - plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3, - plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3); - + MSC_NAS_UE, + MSC_RRC_UE, + NULL,0, + "0 NAS_CELL_SELECTION_REQ PLMN %X%X%X.%X%X%X", + plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3, + plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3); return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); } -int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t s_tmsi, plmn_t plmnID, Byte_t *data, uint32_t length, int user_id) -{ +int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t s_tmsi, plmn_t plmnID, Byte_t *data, uint32_t length, int user_id) { MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_CONN_ESTABLI_REQ); - NAS_CONN_ESTABLI_REQ(message_p).cause = cause; NAS_CONN_ESTABLI_REQ(message_p).type = type; NAS_CONN_ESTABLI_REQ(message_p).s_tmsi = s_tmsi; NAS_CONN_ESTABLI_REQ(message_p).plmnID = plmnID; NAS_CONN_ESTABLI_REQ(message_p).initialNasMsg.data = data; NAS_CONN_ESTABLI_REQ(message_p).initialNasMsg.length = length; - MSC_LOG_TX_MESSAGE( - MSC_NAS_UE, - MSC_RRC_UE, - NULL,0, - "0 NAS_CONN_ESTABLI_REQ MME code %u m-TMSI %u PLMN %X%X%X.%X%X%X", - s_tmsi.MMEcode, s_tmsi.m_tmsi, - plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3, - plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3); - + MSC_NAS_UE, + MSC_RRC_UE, + NULL,0, + "0 NAS_CONN_ESTABLI_REQ MME code %u m-TMSI %u PLMN %X%X%X.%X%X%X", + s_tmsi.MMEcode, s_tmsi.m_tmsi, + plmnID.MCCdigit1, plmnID.MCCdigit2, plmnID.MCCdigit3, + plmnID.MNCdigit1, plmnID.MNCdigit2, plmnID.MNCdigit3); return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); } -int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t length, int user_id) -{ +int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t length, int user_id) { MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_UPLINK_DATA_REQ); - NAS_UPLINK_DATA_REQ(message_p).UEid = ue_id; NAS_UPLINK_DATA_REQ(message_p).nasMsg.data = data; NAS_UPLINK_DATA_REQ(message_p).nasMsg.length = length; - return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); } -int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, const nas_error_code_t errCode, int user_id) -{ +int nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, const nas_error_code_t errCode, int user_id) { MessageDef *message_p; - message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_RAB_ESTABLI_RSP); - NAS_RAB_ESTABLI_RSP(message_p).s_tmsi = s_tmsi; NAS_RAB_ESTABLI_RSP(message_p).rabID = rabID; NAS_RAB_ESTABLI_RSP(message_p).errCode = errCode; - MSC_LOG_TX_MESSAGE( - MSC_NAS_UE, - MSC_RRC_UE, - NULL,0, - "0 NAS_RAB_ESTABLI_RSP MME code %u m-TMSI %u rb id %u status %u", - s_tmsi.MMEcode, s_tmsi.m_tmsi,rabID, errCode ); + MSC_NAS_UE, + MSC_RRC_UE, + NULL,0, + "0 NAS_RAB_ESTABLI_RSP MME code %u m-TMSI %u rb id %u status %u", + s_tmsi.MMEcode, s_tmsi.m_tmsi,rabID, errCode ); return itti_send_msg_to_task(TASK_RRC_UE, NB_eNB_INST + user_id, message_p); } diff --git a/openair3/S1AP/s1ap_eNB_decoder.c b/openair3/S1AP/s1ap_eNB_decoder.c index c12374f758..dd1dfadc23 100644 --- a/openair3/S1AP/s1ap_eNB_decoder.c +++ b/openair3/S1AP/s1ap_eNB_decoder.c @@ -36,103 +36,52 @@ #include "s1ap_common.h" #include "s1ap_eNB_decoder.h" -static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu) -{ - MessageDef *message_p; - MessagesIds message_id; +static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu) { asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; DevAssert(pdu != NULL); switch(pdu->choice.initiatingMessage.procedureCode) { case S1AP_ProcedureCode_id_downlinkNASTransport: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_DOWNLINK_NAS_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_downlink_nas_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_downlink_nas_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_InitialContextSetup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_UEContextRelease: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_UE_CONTEXT_RELEASE_COMMAND_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_ue_context_release_command_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_ue_context_release_command_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_Paging: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_PAGING_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_paging_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_paging_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); S1AP_INFO("Paging initiating message\n"); free(res.buffer); break; case S1AP_ProcedureCode_id_E_RABSetup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_E_RAB_SETUP_REQUEST_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_setup_request_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_request_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("E_RABSetup initiating message\n"); break; case S1AP_ProcedureCode_id_E_RABModify: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_E_RAB_MODIFY_REQUEST_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_modify_request_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_request_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("E_RABModify initiating message\n"); break; case S1AP_ProcedureCode_id_E_RABRelease: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_E_RAB_RELEASE_REQUEST_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_release_request_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_e_rab_release_request_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("TODO E_RABRelease initiating message\n"); break; case S1AP_ProcedureCode_id_ErrorIndication: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_ERROR_INDICATION_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, - res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_error_indication_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_error_indication_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("TODO ErrorIndication initiating message\n"); break; @@ -148,21 +97,13 @@ static int s1ap_eNB_decode_initiating_message(S1AP_S1AP_PDU_t *pdu) return 0; } -static int s1ap_eNB_decode_successful_outcome(S1AP_S1AP_PDU_t *pdu) -{ - MessageDef *message_p; - MessagesIds message_id; +static int s1ap_eNB_decode_successful_outcome(S1AP_S1AP_PDU_t *pdu) { asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; DevAssert(pdu != NULL); switch(pdu->choice.successfulOutcome.procedureCode) { case S1AP_ProcedureCode_id_S1Setup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_S1_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; @@ -175,21 +116,13 @@ static int s1ap_eNB_decode_successful_outcome(S1AP_S1AP_PDU_t *pdu) return 0; } -static int s1ap_eNB_decode_unsuccessful_outcome(S1AP_S1AP_PDU_t *pdu) -{ - MessageDef *message_p; - MessagesIds message_id; +static int s1ap_eNB_decode_unsuccessful_outcome(S1AP_S1AP_PDU_t *pdu) { asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; DevAssert(pdu != NULL); switch(pdu->choice.unsuccessfulOutcome.procedureCode) { case S1AP_ProcedureCode_id_S1Setup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_S1_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; @@ -203,13 +136,10 @@ static int s1ap_eNB_decode_unsuccessful_outcome(S1AP_S1AP_PDU_t *pdu) } int s1ap_eNB_decode_pdu(S1AP_S1AP_PDU_t *pdu, const uint8_t *const buffer, - const uint32_t length) -{ + const uint32_t length) { asn_dec_rval_t dec_ret; - DevAssert(pdu != NULL); DevAssert(buffer != NULL); - dec_ret = aper_decode(NULL, &asn_DEF_S1AP_S1AP_PDU, (void **)&pdu, diff --git a/openair3/S1AP/s1ap_eNB_encoder.c b/openair3/S1AP/s1ap_eNB_encoder.c index bc0c69792d..e282d1dd78 100644 --- a/openair3/S1AP/s1ap_eNB_encoder.c +++ b/openair3/S1AP/s1ap_eNB_encoder.c @@ -47,8 +47,7 @@ static inline int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu, static inline int s1ap_eNB_encode_unsuccessfull_outcome(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len); -int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) -{ +int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) { int ret = -1; DevAssert(pdu != NULL); DevAssert(buffer != NULL); @@ -79,71 +78,38 @@ int s1ap_eNB_encode_pdu(S1AP_S1AP_PDU_t *pdu, uint8_t **buffer, uint32_t *len) static inline int s1ap_eNB_encode_initiating(S1AP_S1AP_PDU_t *pdu, - uint8_t **buffer, uint32_t *len) -{ - MessageDef *message_p; - MessagesIds message_id; + uint8_t **buffer, uint32_t *len) { asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; DevAssert(pdu != NULL); switch(pdu->choice.initiatingMessage.procedureCode) { case S1AP_ProcedureCode_id_S1Setup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_S1_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_s1_setup_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_s1_setup_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_uplinkNASTransport: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_UPLINK_NAS_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_uplink_nas_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_uplink_nas_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_UECapabilityInfoIndication: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_UE_CAPABILITY_IND_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_ue_capability_ind_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_ue_capability_ind_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_initialUEMessage: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_INITIAL_UE_MESSAGE_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_ue_message_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_initial_ue_message_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_NASNonDeliveryIndication: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_NAS_NON_DELIVERY_IND_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_nas_non_delivery_ind_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_nas_non_delivery_ind_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_UEContextReleaseRequest: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_UE_CONTEXT_RELEASE_REQ_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_ue_context_release_req_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_ue_context_release_req_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; @@ -166,63 +132,35 @@ int s1ap_eNB_encode_initiating(S1AP_S1AP_PDU_t *pdu, static inline int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu, - uint8_t **buffer, uint32_t *len) -{ - MessageDef *message_p; - MessagesIds message_id; + uint8_t **buffer, uint32_t *len) { asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; DevAssert(pdu != NULL); switch(pdu->choice.successfulOutcome.procedureCode) { case S1AP_ProcedureCode_id_InitialContextSetup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_UEContextRelease: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_UE_CONTEXT_RELEASE_COMPLETE_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_ue_context_release_complete_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_ue_context_release_complete_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; case S1AP_ProcedureCode_id_E_RABSetup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_E_RAB_SETUP_RESPONSE_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_setup_response_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_e_rab_setup_response_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("E_RABSetup successful message\n"); break; case S1AP_ProcedureCode_id_E_RABModify: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_E_RAB_MODIFY_RESPONSE_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_modify_response_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_e_rab_modify_response_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("E_RABModify successful message\n"); break; case S1AP_ProcedureCode_id_E_RABRelease: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_E_RAB_RELEASE_RESPONSE_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_e_rab_release_response_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_e_rab_release_response_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); S1AP_INFO("E_RAB Release successful message\n"); break; @@ -246,21 +184,13 @@ int s1ap_eNB_encode_successfull_outcome(S1AP_S1AP_PDU_t *pdu, static inline int s1ap_eNB_encode_unsuccessfull_outcome(S1AP_S1AP_PDU_t *pdu, - uint8_t **buffer, uint32_t *len) -{ - MessageDef *message_p; - MessagesIds message_id; + uint8_t **buffer, uint32_t *len) { asn_encode_to_new_buffer_result_t res = { NULL, {0, NULL, NULL} }; DevAssert(pdu != NULL); switch(pdu->choice.unsuccessfulOutcome.procedureCode) { case S1AP_ProcedureCode_id_InitialContextSetup: res = asn_encode_to_new_buffer(NULL, ATS_CANONICAL_XER, &asn_DEF_S1AP_S1AP_PDU, pdu); - message_id = S1AP_INITIAL_CONTEXT_SETUP_LOG; - message_p = itti_alloc_new_message_sized(TASK_S1AP, message_id, res.result.encoded + sizeof (IttiMsgText)); - message_p->ittiMsg.s1ap_initial_context_setup_log.size = res.result.encoded; - memcpy(&message_p->ittiMsg.s1ap_initial_context_setup_log.text, res.buffer, res.result.encoded); - itti_send_msg_to_task(TASK_UNKNOWN, INSTANCE_DEFAULT, message_p); free(res.buffer); break; diff --git a/targets/COMMON/create_tasks.c b/targets/COMMON/create_tasks.c index 2c27cc29e8..3cb7d23467 100644 --- a/targets/COMMON/create_tasks.c +++ b/targets/COMMON/create_tasks.c @@ -25,40 +25,34 @@ # include "common/utils/LOG/log.h" # include "targets/RT/USER/lte-softmodem.h" -# ifdef OPENAIR2 -# if defined(ENABLE_USE_MME) -# include "sctp_eNB_task.h" -# include "x2ap_eNB.h" -# include "s1ap_eNB.h" -# include "nas_ue_task.h" -# include "udp_eNB_task.h" -# include "gtpv1u_eNB_task.h" -/* temporary warning removale while implementing noS1 */ -/* as config option */ -# else -# ifdef EPC_MODE_ENABLED -# undef EPC_MODE_ENABLED -# endif -# define EPC_MODE_ENABLED 0 -# endif -# if ENABLE_RAL -# include "lteRALue.h" -# include "lteRALenb.h" -# endif -# include "RRC/LTE/rrc_defs.h" -# endif +#ifdef OPENAIR2 + #if defined(ENABLE_USE_MME) + #include "sctp_eNB_task.h" + #include "x2ap_eNB.h" + #include "s1ap_eNB.h" + #include "nas_ue_task.h" + #include "udp_eNB_task.h" + #include "gtpv1u_eNB_task.h" + /* temporary warning removale while implementing noS1 */ + /* as config option */ + #else + #ifdef EPC_MODE_ENABLED + #undef EPC_MODE_ENABLED + #endif + #define EPC_MODE_ENABLED 0 + #endif + #if ENABLE_RAL + #include "lteRALue.h" + #include "lteRALenb.h" + #endif + #include "RRC/LTE/rrc_defs.h" +#endif # include "enb_app.h" -int create_tasks(uint32_t enb_nb) -{ +int create_tasks(uint32_t enb_nb) { LOG_D(ENB_APP, "%s(enb_nb:%d\n", __FUNCTION__, enb_nb); - itti_wait_ready(1); - if (itti_create_task (TASK_L2L1, l2l1_task, NULL) < 0) { - LOG_E(PDCP, "Create task for L2L1 failed\n"); - return -1; - } if (enb_nb > 0) { /* Last task to create, others task must be ready before its start */ @@ -67,50 +61,52 @@ int create_tasks(uint32_t enb_nb) return -1; } } + # if defined(ENABLE_USE_MME) + if (EPC_MODE_ENABLED) { - if (enb_nb > 0) { - if (itti_create_task (TASK_X2AP, x2ap_task, NULL) < 0) { - LOG_E(X2AP, "Create task for X2AP failed\n"); - return -1; - } + if (enb_nb > 0) { + if (itti_create_task (TASK_X2AP, x2ap_task, NULL) < 0) { + LOG_E(X2AP, "Create task for X2AP failed\n"); + return -1; + } - if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) { - LOG_E(SCTP, "Create task for SCTP failed\n"); - return -1; - } + if (itti_create_task (TASK_SCTP, sctp_eNB_task, NULL) < 0) { + LOG_E(SCTP, "Create task for SCTP failed\n"); + return -1; + } - if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0) { - LOG_E(S1AP, "Create task for S1AP failed\n"); - return -1; - } - if(!(get_softmodem_params()->emulate_rf)){ - if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) { - LOG_E(UDP_, "Create task for UDP failed\n"); - return -1; - } - } + if (itti_create_task (TASK_S1AP, s1ap_eNB_task, NULL) < 0) { + LOG_E(S1AP, "Create task for S1AP failed\n"); + return -1; + } - if (itti_create_task (TASK_GTPV1_U, >pv1u_eNB_task, NULL) < 0) { - LOG_E(GTPU, "Create task for GTPV1U failed\n"); + if(!(get_softmodem_params()->emulate_rf)) { + if (itti_create_task (TASK_UDP, udp_eNB_task, NULL) < 0) { + LOG_E(UDP_, "Create task for UDP failed\n"); return -1; } } - } /* if (EPC_MODE_ENABLED) */ -#endif - if (enb_nb > 0) { - LOG_I(RRC,"Creating RRC eNB Task\n"); - - if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) { - LOG_E(RRC, "Create task for RRC eNB failed\n"); + if (itti_create_task (TASK_GTPV1_U, >pv1u_eNB_task, NULL) < 0) { + LOG_E(GTPU, "Create task for GTPV1U failed\n"); return -1; } } + } /* if (EPC_MODE_ENABLED) */ +#endif + + if (enb_nb > 0) { + LOG_I(RRC,"Creating RRC eNB Task\n"); + + if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) { + LOG_E(RRC, "Create task for RRC eNB failed\n"); + return -1; + } + } itti_wait_ready(0); - return 0; } #endif diff --git a/targets/COMMON/create_tasks_ue.c b/targets/COMMON/create_tasks_ue.c index 20b5979f31..601b342ee8 100644 --- a/targets/COMMON/create_tasks_ue.c +++ b/targets/COMMON/create_tasks_ue.c @@ -24,57 +24,52 @@ # include "create_tasks.h" # include "common/utils/LOG/log.h" -# ifdef OPENAIR2 -# if defined(ENABLE_USE_MME) -# include "sctp_eNB_task.h" -# include "s1ap_eNB.h" -# include "nas_ue_task.h" -# include "udp_eNB_task.h" -# include "gtpv1u_eNB_task.h" -# endif -# if ENABLE_RAL -# include "lteRALue.h" -# include "lteRALenb.h" -# endif -# include "RRC/LTE/rrc_defs.h" -# endif +#ifdef OPENAIR2 + #if defined(ENABLE_USE_MME) + #include "sctp_eNB_task.h" + #include "s1ap_eNB.h" + #include "nas_ue_task.h" + #include "udp_eNB_task.h" + #include "gtpv1u_eNB_task.h" + #endif + #if ENABLE_RAL + #include "lteRALue.h" + #include "lteRALenb.h" + #endif + #include "RRC/LTE/rrc_defs.h" +#endif # include "enb_app.h" -int create_tasks_ue(uint32_t ue_nb) -{ +int create_tasks_ue(uint32_t ue_nb) { LOG_D(ENB_APP, "%s(ue_nb:%d)\n", __FUNCTION__, ue_nb); - itti_wait_ready(1); - if (itti_create_task (TASK_L2L1, l2l1_task, NULL) < 0) { - LOG_E(PDCP, "Create task for L2L1 failed\n"); - return -1; - } - # if defined(ENABLE_USE_MME) # if defined(NAS_BUILT_IN_UE) - if (ue_nb > 0) { - nas_user_container_t *users = calloc(1, sizeof(*users)); - if (users == NULL) abort(); - users->count = ue_nb; - if (itti_create_task (TASK_NAS_UE, nas_ue_task, users) < 0) { - LOG_E(NAS, "Create task for NAS UE failed\n"); - return -1; - } - } -# endif -# endif - if (ue_nb > 0) { - if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0) { - LOG_E(RRC, "Create task for RRC UE failed\n"); - return -1; - } + if (ue_nb > 0) { + nas_user_container_t *users = calloc(1, sizeof(*users)); + if (users == NULL) abort(); + + users->count = ue_nb; + + if (itti_create_task (TASK_NAS_UE, nas_ue_task, users) < 0) { + LOG_E(NAS, "Create task for NAS UE failed\n"); + return -1; } + } +# endif +# endif + + if (ue_nb > 0) { + if (itti_create_task (TASK_RRC_UE, rrc_ue_task, NULL) < 0) { + LOG_E(RRC, "Create task for RRC UE failed\n"); + return -1; + } + } itti_wait_ready(0); - return 0; } #endif diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index 2ded10d3b0..c9accabeb6 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -127,10 +127,7 @@ int config_sync_var=-1; uint16_t runtime_phy_rx[29][6]; // SISO [MCS 0-28][RBs 0-5 : 6, 15, 25, 50, 75, 100] uint16_t runtime_phy_tx[29][6]; // SISO [MCS 0-28][RBs 0-5 : 6, 15, 25, 50, 75, 100] -#if defined(ENABLE_ITTI) - volatile int start_eNB = 0; - volatile int start_UE = 0; -#endif + volatile int oai_exit = 0; uint32_t downlink_frequency[MAX_NUM_CCs][4]; @@ -382,61 +379,6 @@ static void *scope_thread(void *arg) { #endif - - -#if defined(ENABLE_ITTI) -void *l2l1_task(void *arg) { - MessageDef *message_p = NULL; - int result; - itti_set_task_real_time(TASK_L2L1); - itti_mark_task_ready(TASK_L2L1); - /* Wait for the initialize message */ - printf("Wait for the ITTI initialize message\n"); - - while (1) { - itti_receive_msg (TASK_L2L1, &message_p); - - switch (ITTI_MSG_ID(message_p)) { - case INITIALIZE_MESSAGE: - /* Start eNB thread */ - LOG_D(PHY, "L2L1 TASK received %s\n", ITTI_MSG_NAME(message_p)); - start_eNB = 1; - break; - - case TERMINATE_MESSAGE: - LOG_W(PHY, " *** Exiting L2L1 thread\n"); - oai_exit=1; - start_eNB = 0; - itti_exit_task (); - break; - - case ACTIVATE_MESSAGE: - start_UE = 1; - break; - - case DEACTIVATE_MESSAGE: - start_UE = 0; - break; - - case MESSAGE_TEST: - printf("Received %s\n", ITTI_MSG_NAME(message_p)); - break; - - default: - printf("Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); - break; - } - - result = itti_free (ITTI_MSG_ORIGIN_ID(message_p), message_p); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - message_p = NULL; - }; - - return NULL; -} -#endif - - static void get_options(void) { CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP); get_common_options(); @@ -567,7 +509,6 @@ int stop_L1L2(module_id_t enb_id) { /* these tasks need to pick up new configuration */ terminate_task(enb_id, TASK_ENB_APP, TASK_RRC_ENB); - terminate_task(enb_id, TASK_ENB_APP, TASK_L2L1); oai_exit = 1; LOG_I(ENB_APP, "calling kill_RU_proc() for instance %d\n", enb_id); kill_RU_proc(RC.ru[enb_id]); @@ -619,13 +560,6 @@ int restart_L1L2(module_id_t enb_id) { LOG_I(RRC, "Re-created task for RRC eNB successfully\n"); } - if (itti_create_task (TASK_L2L1, l2l1_task, NULL) < 0) { - LOG_E(PDCP, "Create task for L2L1 failed\n"); - return -1; - } else { - LOG_I(PDCP, "Re-created task for L2L1 successfully\n"); - } - /* pass a reconfiguration request which will configure everything down to * RC.eNB[i][j]->frame_parms, too */ msg_p = itti_alloc_new_message(TASK_ENB_APP, RRC_CONFIGURATION_REQ); diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index 6d182b16cf..197887b5da 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -35,12 +35,12 @@ #include "flexran_agent.h" #if defined(ENABLE_ITTI) -#if defined(ENABLE_USE_MME) -#include "s1ap_eNB.h" -#ifdef PDCP_USE_NETLINK -#include "SIMULATION/ETH_TRANSPORT/proto.h" -#endif -#endif + #if defined(ENABLE_USE_MME) + #include "s1ap_eNB.h" + #ifdef PDCP_USE_NETLINK + #include "SIMULATION/ETH_TRANSPORT/proto.h" + #endif + #endif #endif /* help strings definition for command line options, used in CMDLINE_XXX_DESC macros and printed when -h option is used */ @@ -60,14 +60,14 @@ #define CONFIG_HLP_UENANTR "set UE number of rx antennas\n" #define CONFIG_HLP_UENANTT "set UE number of tx antennas\n" #define CONFIG_HLP_UESCAN "set UE to scan around carrier\n" -#define CONFIG_HLP_DUMPFRAME "dump UE received frame to rxsig_frame0.dat and exit\n" +#define CONFIG_HLP_DUMPFRAME "dump UE received frame to rxsig_frame0.dat and exit\n" #define CONFIG_HLP_DLSHIFT "dynamic shift for LLR compuation for TM3/4 (default 0)\n" #define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n" #define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n" -#define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n" +#define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n" #define CONFIG_HLP_CLK "tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)\n" -#define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n" -#define CONFIG_HLP_NOSNGLT "Disables single-thread mode in lte-softmodem\n" +#define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n" +#define CONFIG_HLP_NOSNGLT "Disables single-thread mode in lte-softmodem\n" #define CONFIG_HLP_TADV "Set timing_advance\n" #define CONFIG_HLP_DLF "Set the downlink frequency for all component carriers\n" #define CONFIG_HLP_CHOFF "Channel id offset\n" @@ -76,10 +76,10 @@ #define CONFIG_HLP_ITTIL "Generate ITTI analyzser logs (similar to wireshark logs but with more details)\n" #define CONFIG_HLP_DLMCS "Set the maximum downlink MCS\n" #define CONFIG_HLP_STMON "Enable processing timing measurement of lte softmodem on per subframe basis \n" -#define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n" +#define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n" #define CONFIG_HLP_EMULIFACE "Set the interface name for the multicast transport for emulation mode (e.g. eth0, lo, etc.) \n" -//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation" -#define CONFIG_HLP_MSLOTS "Skip the missed slots/subframes \n" +//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation" +#define CONFIG_HLP_MSLOTS "Skip the missed slots/subframes \n" #define CONFIG_HLP_ULMCS "Set the maximum uplink MCS\n" #define CONFIG_HLP_TDD "Set hardware to TDD mode (default: FDD). Used only with -U (otherwise set in config file).\n" #define CONFIG_HLP_SNR "Set average SNR in dB (for --siml1 option)\n" @@ -103,7 +103,7 @@ #define CONFIG_HLP_USRP_CLK_SRC "USRP clock source: 'internal' or 'external'\n" /***************************************************************************************************************************************/ -/* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument +/* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument when calling config_get or config_getlist functions */ @@ -112,15 +112,15 @@ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UEMODEPARAMS_DESC { \ -{"calib-ue-rx", CONFIG_HLP_CALUER, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ -{"calib-ue-rx-med", CONFIG_HLP_CALUERM, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ -{"calib-ue-rx-byp", CONFIG_HLP_CALUERB, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ -{"debug-ue-prach", CONFIG_HLP_DBGUEPR, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ -{"no-L2-connect", CONFIG_HLP_NOL2CN, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ -{"calib-prach-tx", CONFIG_HLP_CALPRACH, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ -{"loop-memory", CONFIG_HLP_UELOOP, 0, strptr:&loopfile, defstrval:"iqs.in", TYPE_STRING,0}, \ -{"ue-dump-frame", CONFIG_HLP_DUMPFRAME, PARAMFLAG_BOOL, iptr:&dumpframe, defintval:0, TYPE_INT, 0}, \ -} + {"calib-ue-rx", CONFIG_HLP_CALUER, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx-med", CONFIG_HLP_CALUERM, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx-byp", CONFIG_HLP_CALUERB, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"debug-ue-prach", CONFIG_HLP_DBGUEPR, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"no-L2-connect", CONFIG_HLP_NOL2CN, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"calib-prach-tx", CONFIG_HLP_CALPRACH, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"loop-memory", CONFIG_HLP_UELOOP, 0, strptr:&loopfile, defstrval:"iqs.in", TYPE_STRING,0}, \ + {"ue-dump-frame", CONFIG_HLP_DUMPFRAME, PARAMFLAG_BOOL, iptr:&dumpframe, defintval:0, TYPE_INT, 0}, \ + } #define CMDLINE_CALIBUERX_IDX 0 #define CMDLINE_CALIBUERXMED_IDX 1 #define CMDLINE_CALIBUERXBYP_IDX 2 @@ -138,41 +138,41 @@ /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UEPARAMS_DESC { \ -{"siml1", CONFIG_HLP_SIML1, PARAMFLAG_BOOL, iptr:&simL1flag, defintval:0, TYPE_INT, 0}, \ -{"U", CONFIG_HLP_NUMUE, 0, u8ptr:&NB_UE_INST, defuintval:1, TYPE_UINT, 0}, \ -{"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:130, TYPE_DOUBLE, 0}, \ -{"ue-rxgain-off", CONFIG_HLP_UERXGOFF, 0, dblptr:&rx_gain_off, defdblval:0, TYPE_DOUBLE, 0}, \ -{"ue-txgain", CONFIG_HLP_UETXG, 0, dblptr:&(tx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ -{"ue-nb-ant-rx", CONFIG_HLP_UENANTR, 0, u8ptr:&nb_antenna_rx, defuintval:1, TYPE_UINT8, 0}, \ -{"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \ -{"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \ -{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:23, TYPE_INT, 0}, \ -{"emul-iface", CONFIG_HLP_EMULIFACE, 0, strptr:&emul_iface, defstrval:"lo", TYPE_STRING, 100}, \ -{"L2-emul", NULL, 0, u8ptr:&nfapi_mode, defuintval:3, TYPE_UINT8, 0}, \ -{"num-ues", NULL, 0, u8ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT8, 0}, \ -{"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \ -{"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \ -{"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200",TYPE_STRING, 0}, \ -{"usrp-clksrc", CONFIG_HLP_USRP_CLK_SRC,0, strptr:(char **)&usrp_clksrc, defstrval:"internal", TYPE_STRING, 0}, \ -{"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \ -{"clock", CONFIG_HLP_CLK, 0, uptr:&clock_source, defintval:0, TYPE_UINT, 0}, \ -{"s" , CONFIG_HLP_SNR, 0, iptr:&snr_dB, defintval:25, TYPE_INT, 0}, \ -{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \ -{"A", CONFIG_HLP_TADV, 0, iptr:&(timingadv), defintval:0, TYPE_INT, 0} \ -} + {"siml1", CONFIG_HLP_SIML1, PARAMFLAG_BOOL, iptr:&simL1flag, defintval:0, TYPE_INT, 0}, \ + {"U", CONFIG_HLP_NUMUE, 0, u8ptr:&NB_UE_INST, defuintval:1, TYPE_UINT, 0}, \ + {"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:130, TYPE_DOUBLE, 0}, \ + {"ue-rxgain-off", CONFIG_HLP_UERXGOFF, 0, dblptr:&rx_gain_off, defdblval:0, TYPE_DOUBLE, 0}, \ + {"ue-txgain", CONFIG_HLP_UETXG, 0, dblptr:&(tx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ + {"ue-nb-ant-rx", CONFIG_HLP_UENANTR, 0, u8ptr:&nb_antenna_rx, defuintval:1, TYPE_UINT8, 0}, \ + {"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \ + {"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \ + {"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:23, TYPE_INT, 0}, \ + {"emul-iface", CONFIG_HLP_EMULIFACE, 0, strptr:&emul_iface, defstrval:"lo", TYPE_STRING, 100}, \ + {"L2-emul", NULL, 0, u8ptr:&nfapi_mode, defuintval:3, TYPE_UINT8, 0}, \ + {"num-ues", NULL, 0, u8ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT8, 0}, \ + {"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \ + {"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \ + {"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200",TYPE_STRING, 0}, \ + {"usrp-clksrc", CONFIG_HLP_USRP_CLK_SRC,0, strptr:(char **)&usrp_clksrc, defstrval:"internal", TYPE_STRING, 0}, \ + {"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \ + {"clock", CONFIG_HLP_CLK, 0, uptr:&clock_source, defintval:0, TYPE_UINT, 0}, \ + {"s" , CONFIG_HLP_SNR, 0, iptr:&snr_dB, defintval:25, TYPE_INT, 0}, \ + {"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \ + {"A", CONFIG_HLP_TADV, 0, iptr:&(timingadv), defintval:0, TYPE_INT, 0} \ + } /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* command line parameters specific to UE threads */ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UETHREADSPARAMS_DESC { \ -{"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \ -{"threadOneSubframe", NULL, 0, iptr:&(threads.one), defintval:1, TYPE_INT, 0}, \ -{"threadTwoSubframe", NULL, 0, iptr:&(threads.two), defintval:1, TYPE_INT, 0}, \ -{"threadThreeSubframe", NULL, 0, iptr:&(threads.three), defintval:1, TYPE_INT, 0}, \ -{"threadSlot1ProcOne", NULL, 0, iptr:&(threads.slot1_proc_one), defintval:1, TYPE_INT, 0}, \ -{"threadSlot1ProcTwo", NULL, 0, iptr:&(threads.slot1_proc_two), defintval:1, TYPE_INT, 0}, \ -} + {"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \ + {"threadOneSubframe", NULL, 0, iptr:&(threads.one), defintval:1, TYPE_INT, 0}, \ + {"threadTwoSubframe", NULL, 0, iptr:&(threads.two), defintval:1, TYPE_INT, 0}, \ + {"threadThreeSubframe", NULL, 0, iptr:&(threads.three), defintval:1, TYPE_INT, 0}, \ + {"threadSlot1ProcOne", NULL, 0, iptr:&(threads.slot1_proc_one), defintval:1, TYPE_INT, 0}, \ + {"threadSlot1ProcTwo", NULL, 0, iptr:&(threads.slot1_proc_two), defintval:1, TYPE_INT, 0}, \ + } #define DEFAULT_DLF 2680000000 @@ -191,28 +191,28 @@ #define CLOCK_SOURCE softmodem_params.clock_source #define USIM_TEST softmodem_params.usim_test #define CMDLINE_PARAMS_DESC { \ -{"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&RF_CONFIG_FILE, defstrval:NULL, TYPE_STRING, sizeof(RF_CONFIG_FILE)}, \ -{"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \ -{"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&PHY_TEST, defintval:0, TYPE_INT, 0}, \ -{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \ -{"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&EMULATE_RF, defintval:0, TYPE_INT, 0}, \ -{"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \ -{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \ -{"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \ -{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \ -{"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \ -{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&DO_FORMS, defintval:0, TYPE_INT8, 0}, \ -{"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ -{"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ -{"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ -{"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ -{"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ -{"parallel-config", CONFIG_HLP_PARALLEL_CMD,0, strptr:(char **)¶llel_config, defstrval:NULL, TYPE_STRING, 0}, \ -{"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \ -{"noS1", CONFIG_HLP_NOS1, PARAMFLAG_BOOL, uptr:&noS1, defintval:0, TYPE_INT, 0}, \ -{"nokrnmod", CONFIG_HLP_NOKRNMOD, PARAMFLAG_BOOL, uptr:&nokrnmod, defintval:0, TYPE_INT, 0}, \ -{"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, uptr:&nonbiot, defuintval:0, TYPE_INT, 0}, \ -} + {"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&RF_CONFIG_FILE, defstrval:NULL, TYPE_STRING, sizeof(RF_CONFIG_FILE)}, \ + {"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \ + {"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&PHY_TEST, defintval:0, TYPE_INT, 0}, \ + {"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \ + {"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&EMULATE_RF, defintval:0, TYPE_INT, 0}, \ + {"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \ + {"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \ + {"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \ + {"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \ + {"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \ + {"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&DO_FORMS, defintval:0, TYPE_INT8, 0}, \ + {"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ + {"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ + {"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ + {"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ + {"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ + {"parallel-config", CONFIG_HLP_PARALLEL_CMD,0, strptr:(char **)¶llel_config, defstrval:NULL, TYPE_STRING, 0}, \ + {"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \ + {"noS1", CONFIG_HLP_NOS1, PARAMFLAG_BOOL, uptr:&noS1, defintval:0, TYPE_INT, 0}, \ + {"nokrnmod", CONFIG_HLP_NOKRNMOD, PARAMFLAG_BOOL, uptr:&nokrnmod, defintval:0, TYPE_INT, 0}, \ + {"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, uptr:&nonbiot, defuintval:0, TYPE_INT, 0}, \ + } #define CONFIG_HLP_FLOG "Enable online log \n" #define CONFIG_HLP_LOGL "Set the global log level, valide options: (4:trace, 3:debug, 2:info, 1:warn, (0:error))\n" @@ -224,17 +224,17 @@ /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define START_MSC softmodem_params.start_msc #define CMDLINE_LOGPARAMS_DESC { \ -{"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ -{"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ -{"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ -{"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ -} -#define CMDLINE_ONLINELOG_IDX 0 + {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ + {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ + {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ + {"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ + } +#define CMDLINE_ONLINELOG_IDX 0 #define CMDLINE_GLOGLEVEL_IDX 1 #define CMDLINE_STARTTELN_IDX 2 -/***************************************************************************************************************************************/ +/***************************************************************************************************************************************/ /* */ #include "threads_t.h" @@ -242,21 +242,21 @@ #define SOFTMODEM_NOKRNMOD_BIT (1<<1) #define SOFTMODEM_NONBIOT_BIT (1<<2) typedef struct { - uint64_t optmask; - THREAD_STRUCT thread_struct; - char rf_config_file[1024]; - int phy_test; - uint8_t usim_test; - int emulate_rf; - int wait_for_sync; //eNodeB only - int single_thread_flag; //eNodeB only - int chain_offset; - uint32_t do_forms; - int numerology; - unsigned int start_msc; - int nonbiotflag; - uint32_t clock_source; - int hw_timing_advance; + uint64_t optmask; + THREAD_STRUCT thread_struct; + char rf_config_file[1024]; + int phy_test; + uint8_t usim_test; + int emulate_rf; + int wait_for_sync; //eNodeB only + int single_thread_flag; //eNodeB only + int chain_offset; + uint32_t do_forms; + int numerology; + unsigned int start_msc; + int nonbiotflag; + uint32_t clock_source; + int hw_timing_advance; } softmodem_params_t; #define SOFTMODEM_NOS1 ( get_softmodem_optmask() & SOFTMODEM_NOS1_BIT) @@ -265,7 +265,7 @@ typedef struct { extern uint64_t get_softmodem_optmask(void); extern uint64_t set_softmodem_optmask(uint64_t bitmask); extern void get_common_options(void); -extern softmodem_params_t* get_softmodem_params(void); +extern softmodem_params_t *get_softmodem_params(void); uint64_t get_pdcp_optmask(void); extern pthread_cond_t sync_cond; @@ -290,21 +290,13 @@ extern int sync_var; extern int transmission_mode; extern double cpuf; -#if defined(ENABLE_ITTI) -extern volatile int start_eNB; -extern volatile int start_UE; -#endif - - - - // In lte-enb.c extern void init_eNB(int single_thread_flag,int wait_for_sync); extern void stop_eNB(int); extern void kill_eNB_proc(int inst); // In lte-ru.c -extern void init_RU(char*); +extern void init_RU(char *); extern void stop_ru(RU_t *ru); extern void init_RU_proc(RU_t *ru); extern void stop_RU(int nb_ru); @@ -315,8 +307,9 @@ extern void set_function_spec_param(RU_t *ru); extern int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg); extern void fill_ue_band_info(void); -extern void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax, LTE_DL_FRAME_PARMS *fp); -extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char * name); +extern void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax, + LTE_DL_FRAME_PARMS *fp); +extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char *name); extern void reset_opp_meas(void); extern void print_opp_meas(void); @@ -331,7 +324,7 @@ extern void RCConfig_sim(void); extern void init_ocm(double,double); extern void init_ue_devices(PHY_VARS_UE *); -PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, +PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, uint8_t UE_id, uint8_t abstraction_flag); void init_eNB_afterRU(void); @@ -346,8 +339,8 @@ extern int restart_L1L2(module_id_t enb_id); extern void init_UE_stub_single_thread(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface); -extern PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, - uint8_t UE_id, - uint8_t abstraction_flag); +extern PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, + uint8_t UE_id, + uint8_t abstraction_flag); #endif diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c index 38937226e5..95517a6931 100644 --- a/targets/RT/USER/lte-uesoftmodem.c +++ b/targets/RT/USER/lte-uesoftmodem.c @@ -124,10 +124,6 @@ int config_sync_var=-1; uint16_t runtime_phy_rx[29][6]; // SISO [MCS 0-28][RBs 0-5 : 6, 15, 25, 50, 75, 100] uint16_t runtime_phy_tx[29][6]; // SISO [MCS 0-28][RBs 0-5 : 6, 15, 25, 50, 75, 100] -#if defined(ENABLE_ITTI) - volatile int start_eNB = 0; - volatile int start_UE = 0; -#endif volatile int oai_exit = 0; clock_source_t clock_source = internal; @@ -398,48 +394,6 @@ static void *scope_thread(void *arg) { -#if defined(ENABLE_ITTI) -void *l2l1_task(void *arg) { - MessageDef *message_p = NULL; - int result; - itti_set_task_real_time(TASK_L2L1); - itti_mark_task_ready(TASK_L2L1); - - do { - // Wait for a message - itti_receive_msg (TASK_L2L1, &message_p); - - switch (ITTI_MSG_ID(message_p)) { - case TERMINATE_MESSAGE: - oai_exit=1; - itti_exit_task (); - break; - - case ACTIVATE_MESSAGE: - start_UE = 1; - break; - - case DEACTIVATE_MESSAGE: - start_UE = 0; - break; - - case MESSAGE_TEST: - LOG_I(SIM, "Received %s\n", ITTI_MSG_NAME(message_p)); - break; - - default: - LOG_E(SIM, "Received unexpected message %s\n", ITTI_MSG_NAME(message_p)); - break; - } - - result = itti_free (ITTI_MSG_ORIGIN_ID(message_p), message_p); - AssertFatal (result == EXIT_SUCCESS, "Failed to free memory (%d)!\n", result); - } while(!oai_exit); - - return NULL; -} -#endif - extern int16_t dlsch_demod_shift; static void get_options(void) { From e329ba787c3b13935ebc6d3f102ec6e7df5c5634 Mon Sep 17 00:00:00 2001 From: frtabu Date: Thu, 17 Jan 2019 18:27:13 +0100 Subject: [PATCH 109/125] fix command line parsing for config_getlist, also improve help processing and fix probe (opt) parameters processing --- common/config/config_cmdline.c | 55 +++-- common/config/config_load_configmodule.c | 7 +- common/config/config_load_configmodule.h | 3 +- common/config/config_userapi.c | 47 ++-- common/config/config_userapi.h | 2 +- common/utils/LOG/log.c | 3 +- common/utils/LOG/log.h | 2 + common/utils/T/T.c | 158 +++++++----- openair2/UTIL/OPT/opt.h | 65 +++-- openair2/UTIL/OPT/probe.c | 302 +++++++++++------------ targets/RT/USER/lte-softmodem-common.c | 75 +++--- targets/RT/USER/lte-softmodem.c | 38 +-- targets/RT/USER/lte-softmodem.h | 230 ++++++++--------- targets/RT/USER/lte-uesoftmodem.c | 22 +- 14 files changed, 500 insertions(+), 509 deletions(-) diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c index 635287afb4..71384462ff 100644 --- a/common/config/config_cmdline.c +++ b/common/config/config_cmdline.c @@ -37,7 +37,7 @@ #include #include #include "config_userapi.h" - +#include "../utils/LOG/log.h" int parse_stringlist(paramdef_t *cfgoptions, char *val) { char *atoken; @@ -74,15 +74,15 @@ int processoption(paramdef_t *cfgoptions, char *value) { if ( value == NULL) { if( (cfgoptions->paramflags &PARAMFLAG_BOOL) == 0 ) { /* not a boolean, argument required */ - fprintf(stderr,"[CONFIG] command line, option %s requires an argument\n",cfgoptions->optname); - exit_fun("[CONFIG] command line parsing fatal error"); - return 0; + CONFIG_PRINTF_ERROR("[CONFIG] command line, option %s requires an argument\n",cfgoptions->optname); } else { /* boolean value option without argument, set value to true*/ tmpval = defbool; } } switch(cfgoptions->type) { + char *charptr; + case TYPE_STRING: if (cfgoptions->numelt == 0 ) { config_check_valptr(cfgoptions, cfgoptions->strptr, strlen(tmpval)+1); @@ -106,14 +106,24 @@ int processoption(paramdef_t *cfgoptions, char *value) { case TYPE_UINT8: case TYPE_INT8: config_check_valptr(cfgoptions, (char **)&(cfgoptions->iptr),sizeof(int32_t)); - config_assign_int(cfgoptions,cfgoptions->optname,(int32_t)strtol(tmpval,NULL,0)); + config_assign_int(cfgoptions,cfgoptions->optname,(int32_t)strtol(tmpval,&charptr,0)); + + if( *charptr != 0) { + CONFIG_PRINTF_ERROR("[CONFIG] command line, option %s requires an integer argument\n",cfgoptions->optname); + } + optisset=1; break; case TYPE_UINT64: case TYPE_INT64: config_check_valptr(cfgoptions, (char **)&(cfgoptions->i64ptr),sizeof(uint64_t)); - *(cfgoptions->i64ptr)=strtoll(tmpval,NULL,0); + *(cfgoptions->i64ptr)=strtoll(tmpval,&charptr,0); + + if( *charptr != 0) { + CONFIG_PRINTF_ERROR("[CONFIG] command line, option %s requires an integer argument\n",cfgoptions->optname); + } + printf_cmdl("[CONFIG] %s set to %lli from command line\n", cfgoptions->optname, (long long)*(cfgoptions->i64ptr)); optisset=1; break; @@ -124,7 +134,12 @@ int processoption(paramdef_t *cfgoptions, char *value) { case TYPE_DOUBLE: config_check_valptr(cfgoptions, (char **)&(cfgoptions->dblptr),sizeof(double)); - *(cfgoptions->dblptr) = strtof(tmpval,NULL); + *(cfgoptions->dblptr) = strtof(tmpval,&charptr); + + if( *charptr != 0) { + CONFIG_PRINTF_ERROR("[CONFIG] command line, option %s requires a double argument\n",cfgoptions->optname); + } + printf_cmdl("[CONFIG] %s set to %lf from command line\n", cfgoptions->optname, *(cfgoptions->dblptr)); optisset=1; break; @@ -133,7 +148,7 @@ int processoption(paramdef_t *cfgoptions, char *value) { break; default: - fprintf(stderr,"[CONFIG] command line, %s type %i not supported\n",cfgoptions->optname, cfgoptions->type); + CONFIG_PRINTF_ERROR("[CONFIG] command line, %s type %i not supported\n",cfgoptions->optname, cfgoptions->type); break; } /* switch on param type */ @@ -176,8 +191,11 @@ int config_check_unknown_cmdlineopt(char *prefix) { } } - printf_cmdl("[CONFIG] %i unknown option(s) in command line starting with %s (section %s)\n", - unknowndetected,testprefix,((prefix==NULL)?"":prefix)); + if (unknowndetected > 0) { + CONFIG_PRINTF_ERROR("[CONFIG] %i unknown option(s) in command line starting with %s (section %s)\n", + unknowndetected,testprefix,((prefix==NULL)?"":prefix)); + } + return unknowndetected; } /* config_check_unknown_cmdlineopt */ @@ -200,7 +218,7 @@ int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix) if (pp == NULL || strcasecmp(pp,config_get_if()->argv[i] ) == 0 ) { if( prefix == NULL) { - config_printhelp(cfgoptions,numoptions); + config_printhelp(cfgoptions,numoptions,"(root section)"); if ( ! ( CONFIG_ISFLAGSET(CONFIG_NOEXITONHELP))) exit_fun("[CONFIG] Exiting after displaying help\n"); @@ -209,8 +227,7 @@ int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix) pp=strtok_r(NULL, " ",&tokctx); if ( prefix != NULL && pp != NULL && strncasecmp(prefix,pp,strlen(pp)) == 0 ) { - printf ("Help for %s section:\n",prefix); - config_printhelp(cfgoptions,numoptions); + config_printhelp(cfgoptions,numoptions,prefix); if ( ! (CONFIG_ISFLAGSET(CONFIG_NOEXITONHELP))) { fprintf(stderr,"[CONFIG] %s %i section %s:", __FILE__, __LINE__, prefix); @@ -273,16 +290,4 @@ int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix) } /* fin du while */ printf_cmdl("[CONFIG] %s %i options set from command line\n",((prefix == NULL) ? "(root)":prefix),j); - - if ( !(CONFIG_ISFLAGSET( CONFIG_NOCHECKUNKOPT )) ) { - i=config_check_unknown_cmdlineopt(prefix); - - if (i > 0) { - fprintf(stderr,"[CONFIG] %i unknown options for section %s detected in command line\n", - i,((prefix==NULL)?"\"root section\"":prefix)); - exit_fun(" Exiting after detecting errors in command line \n"); - } - } - - return j; } /* parse_cmdline*/ diff --git a/common/config/config_load_configmodule.c b/common/config/config_load_configmodule.c index e20672aa02..b3cf7c02c5 100644 --- a/common/config/config_load_configmodule.c +++ b/common/config/config_load_configmodule.c @@ -36,12 +36,15 @@ #include #include #include +#include #define CONFIG_LOADCONFIG_MAIN #include "config_load_configmodule.h" #include "config_userapi.h" +#include "../utils/LOG/log.h" #define CONFIG_SHAREDLIBFORMAT "libparams_%s.so" + int load_config_sharedlib(configmodule_interface_t *cfgptr) { void *lib_handle; char fname[128]; @@ -198,7 +201,7 @@ configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t init } if ( strstr(argv[i], "help_config") != NULL ) { - config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params)); + config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params),CONFIG_SECTIONNAME); exit(0); } @@ -304,7 +307,7 @@ configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t init if (cfgmode != NULL) free(cfgmode); if (CONFIG_ISFLAGSET(CONFIG_ABORT)) { - config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params)); + config_printhelp(Config_Params,CONFIG_PARAMLENGTH(Config_Params),CONFIG_SECTIONNAME ); // exit(-1); } diff --git a/common/config/config_load_configmodule.h b/common/config/config_load_configmodule.h index 2f5c055a00..d0309c62c3 100644 --- a/common/config/config_load_configmodule.h +++ b/common/config/config_load_configmodule.h @@ -51,7 +51,6 @@ #define CONFIG_PRINTPARAMS 1 // print parameters values while processing #define CONFIG_DEBUGPTR (1<<1) // print memory allocation/free debug messages #define CONFIG_DEBUGCMDLINE (1<<2) // print command line processing messages -#define CONFIG_NOCHECKUNKOPT (1<<3) // disable check unprocessed (so invalid) command line options #define CONFIG_NOABORTONCHKF (1<<4) // disable abort execution when parameter checking function fails #define CONFIG_NOEXITONHELP (1<<19) // do not exit after printing help #define CONFIG_HELP (1<<20) // print help message @@ -109,5 +108,7 @@ extern configmodule_interface_t *cfgptr; #define CONFIG_ENABLECMDLINEONLY (1<<1) extern configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t initflags); extern void end_configmodule(void); +#define CONFIG_PRINTF_ERROR(f, x... ) if (isLogInitDone ()) { LOG_E(ENB_APP,f,x);} else {printf(f,x);}; if ( !CONFIG_ISFLAGSET(CONFIG_NOABORTONCHKF) ) exit_fun("exit because configuration failed\n"); + #endif /* INCLUDE_CONFIG_LOADCONFIGMODULE_H */ diff --git a/common/config/config_userapi.c b/common/config/config_userapi.c index b149bfd636..b378c4ee93 100644 --- a/common/config/config_userapi.c +++ b/common/config/config_userapi.c @@ -39,15 +39,13 @@ #include #include #include - #include #include "config_userapi.h" - +#include "../utils/LOG/log.h" configmodule_interface_t *config_get_if(void) { if (cfgptr == NULL) { - fprintf(stderr,"[CONFIG] %s %d config module not initialized\n",__FILE__, __LINE__); - exit(-1); + CONFIG_PRINTF_ERROR("[CONFIG] %s %d config module not initialized\n",__FILE__,__LINE__); } return cfgptr; @@ -66,9 +64,8 @@ char *config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) { config_get_if()->numptrs++; } } else { - fprintf(stderr, "[CONFIG] %s %d option %s, cannot allocate pointer: %s \n", - __FILE__, __LINE__, cfgoptions->optname, strerror(errno)); - exit(-1); + CONFIG_PRINTF_ERROR("[CONFIG] %s %d option %s, cannot allocate pointer: %s \n", + __FILE__, __LINE__, cfgoptions->optname, strerror(errno)); } } @@ -78,9 +75,8 @@ char *config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) { if (*ptr != NULL) { return *ptr; } else { - fprintf(stderr,"[CONFIG] %s %d option %s, definition error: value pointer is NULL, declared as %i bytes allocated\n", - __FILE__, __LINE__,cfgoptions->optname, cfgoptions->numelt); - exit(-1); + CONFIG_PRINTF_ERROR("[CONFIG] %s %d option %s, definition error: value pointer is NULL, declared as %i bytes allocated\n", + __FILE__, __LINE__,cfgoptions->optname, cfgoptions->numelt); } } @@ -95,8 +91,7 @@ char *config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) { config_get_if()->numptrs++; } } else { - fprintf (stderr,"[CONFIG] %s %d malloc error\n",__FILE__, __LINE__); - exit(-1); + CONFIG_PRINTF_ERROR("[CONFIG] %s %d malloc error\n",__FILE__, __LINE__); } } @@ -157,8 +152,7 @@ void config_assign_processedint(paramdef_t *cfgoption, int val) { if ( cfgoption->processedvalue != NULL) { *(cfgoption->processedvalue) = val; } else { - fprintf (stderr,"[CONFIG] %s %d malloc error\n",__FILE__, __LINE__); - exit(-1); + CONFIG_PRINTF_ERROR("[CONFIG] %s %d malloc error\n",__FILE__, __LINE__); } } @@ -177,15 +171,17 @@ int config_get_processedint(paramdef_t *cfgoption) { return ret; } -void config_printhelp(paramdef_t *params,int numparams) { +void config_printhelp(paramdef_t *params,int numparams, char *prefix) { + printf("\n-----Help for section %-26s: %03i entries------\n",(prefix==NULL)?"(root section)":prefix ,numparams); + for (int i=0 ; inumelt; ++i) { // TODO config_process_cmdline? sprintf(cfgpath, "%s.[%i]", newprefix, i); + config_process_cmdline(ParamList->paramarray[i],numparams,cfgpath); config_execcheck(ParamList->paramarray[i], numparams, cfgpath); } diff --git a/common/config/config_userapi.h b/common/config/config_userapi.h index d0508ffbeb..cc07b1af5f 100644 --- a/common/config/config_userapi.h +++ b/common/config/config_userapi.h @@ -49,7 +49,7 @@ extern "C" /* utility functions, to be used by configuration module and/or configuration libraries */ extern configmodule_interface_t *config_get_if(void); extern char *config_check_valptr(paramdef_t *cfgoptions, char **ptr, int length) ; -extern void config_printhelp(paramdef_t *,int numparams); +extern void config_printhelp(paramdef_t *,int numparams, char *prefix); extern int config_process_cmdline(paramdef_t *params,int numparams, char *prefix); extern void config_assign_processedint(paramdef_t *cfgoption, int val); extern void config_assign_int(paramdef_t *cfgoptions, char *fullname, int val); diff --git a/common/utils/LOG/log.c b/common/utils/LOG/log.c index e2dbac43ef..7a2f2b99f4 100644 --- a/common/utils/LOG/log.c +++ b/common/utils/LOG/log.c @@ -219,7 +219,6 @@ void log_getconfig(log_t *g_log) { paramdef_t logparams_logfile[MAX_LOG_PREDEF_COMPONENTS]; paramdef_t logparams_debug[sizeof(log_maskmap)/sizeof(mapping)]; paramdef_t logparams_dump[sizeof(log_maskmap)/sizeof(mapping)]; - CONFIG_SETRTFLAG(CONFIG_NOCHECKUNKOPT); int ret = config_get( logparams_defaults,sizeof(logparams_defaults)/sizeof(paramdef_t),CONFIG_STRING_LOG_PREFIX); if (ret <0) { @@ -305,8 +304,8 @@ void log_getconfig(log_t *g_log) { } config_get( logparams_debug,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX); - CONFIG_CLEARRTFLAG(CONFIG_NOCHECKUNKOPT); config_get( logparams_dump,(sizeof(log_maskmap)/sizeof(mapping)) - 1 ,CONFIG_STRING_LOG_PREFIX); + config_check_unknown_cmdlineopt(CONFIG_STRING_LOG_PREFIX); /* set the debug mask according to the debug parameters values */ for (int i=0; log_maskmap[i].name != NULL ; i++) { diff --git a/common/utils/LOG/log.h b/common/utils/LOG/log.h index d0aa4a47c8..cd2c3235e7 100644 --- a/common/utils/LOG/log.h +++ b/common/utils/LOG/log.h @@ -345,6 +345,8 @@ int32_t write_file_matlab(const char *fname, const char *vname, void *data, int } #define LOG_OPTIONS_IDX 2 + + /*----------------------------------------------------------------------------------*/ /** @defgroup _debugging debugging macros * @ingroup _macro diff --git a/common/utils/T/T.c b/common/utils/T/T.c index 140da30688..8a84cba1f8 100644 --- a/common/utils/T/T.c +++ b/common/utils/T/T.c @@ -12,15 +12,17 @@ #include "common/config/config_userapi.h" #define QUIT(x) do { \ - printf("T tracer: QUIT: %s\n", x); \ - exit(1); \ -} while (0) + printf("T tracer: QUIT: %s\n", x); \ + exit(1); \ + } while (0) /* array used to activate/disactivate a log */ static int T_IDs[T_NUMBER_OF_IDS]; int *T_active = T_IDs; + int T_stdout = 1; + static int T_socket; /* T_cache @@ -32,125 +34,159 @@ volatile int *T_freelist_head = &_T_freelist_head; T_cache_t *T_cache; #if BASIC_SIMULATOR -/* global variables used by T_GET_SLOT, see in T.h */ -volatile uint64_t T_next_id; -volatile uint64_t T_active_id; + /* global variables used by T_GET_SLOT, see in T.h */ + volatile uint64_t T_next_id; + volatile uint64_t T_active_id; #endif -static void get_message(int s) -{ +static void get_message(int s) { char t; int l; int id; int is_on; if (read(s, &t, 1) != 1) QUIT("get_message fails"); -printf("T tracer: got mess %d\n", t); + + printf("T tracer: got mess %d\n", t); + switch (t) { - case 0: - /* toggle all those IDs */ - /* optimze? (too much syscalls) */ - if (read(s, &l, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); - while (l) { - if (read(s, &id, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); - T_IDs[id] = 1 - T_IDs[id]; - l--; - } - break; - case 1: - /* set IDs as given */ - /* optimize? */ - if (read(s, &l, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); - id = 0; - while (l) { - if (read(s, &is_on, sizeof(int)) != sizeof(int)) - QUIT("get_message fails"); - T_IDs[id] = is_on; - id++; - l--; - } - break; - case 2: break; /* do nothing, this message is to wait for local tracer */ + case 0: + + /* toggle all those IDs */ + /* optimze? (too much syscalls) */ + if (read(s, &l, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); + + while (l) { + if (read(s, &id, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); + + T_IDs[id] = 1 - T_IDs[id]; + l--; + } + + break; + + case 1: + + /* set IDs as given */ + /* optimize? */ + if (read(s, &l, sizeof(int)) != sizeof(int)) QUIT("get_message fails"); + + id = 0; + + while (l) { + if (read(s, &is_on, sizeof(int)) != sizeof(int)) + QUIT("get_message fails"); + + T_IDs[id] = is_on; + id++; + l--; + } + + break; + + case 2: + break; /* do nothing, this message is to wait for local tracer */ } } -static void *T_receive_thread(void *_) -{ +static void *T_receive_thread(void *_) { while (1) get_message(T_socket); + return NULL; } -static void new_thread(void *(*f)(void *), void *data) -{ +static void new_thread(void *(*f)(void *), void *data) { pthread_t t; pthread_attr_t att; - if (pthread_attr_init(&att)) - { fprintf(stderr, "pthread_attr_init err\n"); exit(1); } - if (pthread_attr_setdetachstate(&att, PTHREAD_CREATE_DETACHED)) - { fprintf(stderr, "pthread_attr_setdetachstate err\n"); exit(1); } - if (pthread_create(&t, &att, f, data)) - { fprintf(stderr, "pthread_create err\n"); exit(1); } - if (pthread_attr_destroy(&att)) - { fprintf(stderr, "pthread_attr_destroy err\n"); exit(1); } + if (pthread_attr_init(&att)) { + fprintf(stderr, "pthread_attr_init err\n"); + exit(1); + } + + if (pthread_attr_setdetachstate(&att, PTHREAD_CREATE_DETACHED)) { + fprintf(stderr, "pthread_attr_setdetachstate err\n"); + exit(1); + } + + if (pthread_create(&t, &att, f, data)) { + fprintf(stderr, "pthread_create err\n"); + exit(1); + } + + if (pthread_attr_destroy(&att)) { + fprintf(stderr, "pthread_attr_destroy err\n"); + exit(1); + } } /* defined in local_tracer.c */ void T_local_tracer_main(int remote_port, int wait_for_tracer, - int local_socket, void *shm_array); + int local_socket, void *shm_array); /* We monitor the tracee and the local tracer processes. * When one dies we forcefully kill the other. */ #include #include -static void monitor_and_kill(int child1, int child2) -{ +static void monitor_and_kill(int child1, int child2) { int child; int status; - child = wait(&status); + if (child == -1) perror("wait"); + kill(child1, SIGKILL); kill(child2, SIGKILL); exit(0); } -void T_init(int remote_port, int wait_for_tracer, int dont_fork) -{ +void T_init(int remote_port, int wait_for_tracer, int dont_fork) { int socket_pair[2]; int s; int child1, child2; int i; - if (socketpair(AF_UNIX, SOCK_STREAM, 0, socket_pair)) - { perror("socketpair"); abort(); } + if (socketpair(AF_UNIX, SOCK_STREAM, 0, socket_pair)) { + perror("socketpair"); + abort(); + } /* setup shared memory */ T_cache = mmap(NULL, T_CACHE_SIZE * sizeof(T_cache_t), PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); - if (T_cache == MAP_FAILED) - { perror("mmap"); abort(); } + + if (T_cache == MAP_FAILED) { + perror("mmap"); + abort(); + } /* let's garbage the memory to catch some potential problems * (think multiprocessor sync issues, barriers, etc.) */ memset(T_cache, 0x55, T_CACHE_SIZE * sizeof(T_cache_t)); + for (i = 0; i < T_CACHE_SIZE; i++) T_cache[i].busy = 0; /* child1 runs the local tracer and child2 (or main) runs the tracee */ + child1 = fork(); + + if (child1 == -1) abort(); - child1 = fork(); if (child1 == -1) abort(); if (child1 == 0) { close(socket_pair[1]); T_local_tracer_main(remote_port, wait_for_tracer, socket_pair[0], T_cache); exit(0); } + close(socket_pair[0]); if (dont_fork == 0) { - child2 = fork(); if (child2 == -1) abort(); + child2 = fork(); + + if (child2 == -1) abort(); + if (child2 != 0) { close(socket_pair[1]); munmap(T_cache, T_CACHE_SIZE * sizeof(T_cache_t)); @@ -161,27 +197,21 @@ void T_init(int remote_port, int wait_for_tracer, int dont_fork) s = socket_pair[1]; /* wait for first message - initial list of active T events */ get_message(s); - T_socket = s; - new_thread(T_receive_thread, NULL); } -void T_Config_Init(void) -{ +void T_Config_Init(void) { int T_port; /* by default we wait for the tracer */ int T_nowait; /* default port to listen to to wait for the tracer */ int T_dont_fork; /* default is to fork, see 'T_init' to understand */ - paramdef_t ttraceparams[] = CMDLINE_TTRACEPARAMS_DESC; - /* for a cleaner config file, TTracer params should be defined in a * specific section... */ config_get(ttraceparams, sizeof(ttraceparams) / sizeof(paramdef_t), TTRACER_CONFIG_PREFIX); - /* compatibility: look for TTracer command line options in root section */ config_process_cmdline(ttraceparams, sizeof(ttraceparams) / sizeof(paramdef_t), diff --git a/openair2/UTIL/OPT/opt.h b/openair2/UTIL/OPT/opt.h index b4ff3b5006..5ae19f9b55 100644 --- a/openair2/UTIL/OPT/opt.h +++ b/openair2/UTIL/OPT/opt.h @@ -33,26 +33,23 @@ This header file must be included */ #define OPT_H_ #ifndef sys_include -#define sys_include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include + #define sys_include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include + #include #endif #ifndef project_include -#define project_include -#include "common/utils/LOG/log_if.h" -// #include "UTIL/LOG/log_extern.h" -//#include "PHY/defs.h" -//#include "PHY/extern.h" -#include "PHY/impl_defs_lte.h" + #define project_include + #include "common/utils/LOG/log_if.h" + #include "PHY/impl_defs_lte.h" #endif #define PACKET_MAC_LTE_DEFAULT_UDP_PORT (9999) @@ -65,6 +62,32 @@ typedef guint8 gboolean; #include "packet-mac-lte.h" #include "mac_pcap.h" +/* OPT parameters definitions */ +#define OPT_CONFIGPREFIX "opt" + +#define CONFIG_HLP_TYPEMON "Type of L2 monitoring messages: none,pcap,wireshark \n" +#define CONFIG_HLP_L2MONIP "ip address for wireshark messages \n" +#define CONFIG_HLP_L2MONPATH "file path for pcap messages on localhost \n" +/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* command line parameters for LOG utility */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*-----------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ +#define OPT_PARAMS_DESC { \ + {"type" , CONFIG_HLP_TYPEMON, 0, strptr:&in_type, defstrval:"none", TYPE_STRING, 0}, \ + {"ip" , CONFIG_HLP_L2MONIP, 0, strptr:&in_ip, defstrval:"127.0.0.1", TYPE_STRING, 0}, \ + {"path" , CONFIG_HLP_L2MONPATH, 0, strptr:&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, 0}, \ + } + +#define OPTTYPE_IDX 0 +/* check function for opt parameters */ +#define OPTTYPE_OKSTRINGS {"none","pcap","wireshark"} +#define OPTTYPE_VALUES {OPT_NONE,OPT_PCAP,OPT_WIRESHARK} +#define OPTPARAMS_CHECK_DESC { \ + { .s3a= { config_checkstr_assign_integer, OPTTYPE_OKSTRINGS,OPTTYPE_VALUES ,3}} ,\ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + } + #ifdef OCP_FRAMEWORK #include #else @@ -82,9 +105,7 @@ typedef enum radio_type_e { RADIO_TYPE_MAX } radio_type_t; -extern trace_mode_t opt_type; -extern char in_ip[40]; -extern char in_path[FILENAME_MAX]; + /** * function def @@ -94,7 +115,7 @@ void trace_pdu(int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size, int ueid, int rntiType, int rnti, uint16_t sysFrame, uint8_t subframe, int oob_event, int oob_event_value); -int init_opt(char *path, char *ip); +int init_opt(void); void terminate_opt(void); diff --git a/openair2/UTIL/OPT/probe.c b/openair2/UTIL/OPT/probe.c index a1e5367168..b032784028 100644 --- a/openair2/UTIL/OPT/probe.c +++ b/openair2/UTIL/OPT/probe.c @@ -90,7 +90,7 @@ what about the implementation #include #include - +#include "common/config/config_userapi.h" #include "opt.h" int opt_enabled=0; @@ -98,8 +98,8 @@ int opt_enabled=0; //static unsigned char g_PDUBuffer[1600]; //static unsigned int g_PDUOffset; -char in_ip[40]; -char in_path[FILENAME_MAX]; +static char *in_ip; +static char *in_path; FILE *file_fd = NULL; pcap_hdr_t file_header = { 0xa1b2c3d4, /* magic number */ @@ -133,17 +133,15 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context, const unsigned char *PDU, unsigned int length); -static void *opt_listener_thread(void *arg) -{ +static void *opt_listener_thread(void *arg) { ssize_t ret; struct sockaddr_in from_address; socklen_t socklen = sizeof(from_address); - memset(&from_address, 0, sizeof(from_address)); while(1) { /* Simply drop packets */ - ret = recvfrom(opt_listener.sd, NULL, 0, 0, (struct sockaddr*)&from_address, + ret = recvfrom(opt_listener.sd, NULL, 0, 0, (struct sockaddr *)&from_address, &socklen); if (ret == 0) { @@ -165,17 +163,13 @@ static void *opt_listener_thread(void *arg) } static -int opt_create_listener_socket(char *ip_address, uint16_t port) -{ +int opt_create_listener_socket(char *ip_address, uint16_t port) { /* Create an UDP socket and listen on it. * Silently discard PDU received. */ - int sd = -1; int ret = -1; - memset(&opt_listener, 0, sizeof(opt_listener_t)); - sd = socket(AF_INET, SOCK_DGRAM, 0); if (sd < 0) { @@ -190,8 +184,7 @@ int opt_create_listener_socket(char *ip_address, uint16_t port) /* Listening only on provided IP address */ opt_listener.address.sin_addr.s_addr = inet_addr(ip_address); opt_listener.address.sin_port = htons(port); - - ret = bind(opt_listener.sd, (struct sockaddr*) &opt_listener.address, sizeof(opt_listener.address)); + ret = bind(opt_listener.sd, (struct sockaddr *) &opt_listener.address, sizeof(opt_listener.address)); if (ret != 0) { LOG_E(OPT, "Failed to bind socket to (%s:%u): %s\n", @@ -231,49 +224,39 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, guint16 rnti, guint16 ueid, guint16 sfnSf, guint8 isPredefinedData, guint8 retx, guint8 crcStatus, guint8 oob_event, guint8 oob_event_value, - uint8_t *pdu_buffer, unsigned int pdu_buffer_size) -{ + uint8_t *pdu_buffer, unsigned int pdu_buffer_size) { unsigned char frameBuffer[9000]; unsigned int frameOffset; - ssize_t bytesSent; frameOffset = 0; uint16_t tmp16; - memcpy(frameBuffer+frameOffset, MAC_LTE_START_STRING, strlen(MAC_LTE_START_STRING)); frameOffset += strlen(MAC_LTE_START_STRING); - /******************************************************************************/ /* Now write out fixed fields (the mandatory elements of struct mac_lte_info) */ frameBuffer[frameOffset++] = radioType; frameBuffer[frameOffset++] = direction; frameBuffer[frameOffset++] = rntiType; - /*************************************/ /* Now optional fields */ - /* RNTI */ frameBuffer[frameOffset++] = MAC_LTE_RNTI_TAG; tmp16 = htons(rnti); memcpy(frameBuffer+frameOffset, &tmp16, 2); frameOffset += 2; - /* UEId */ frameBuffer[frameOffset++] = MAC_LTE_UEID_TAG; tmp16 = htons(ueid); memcpy(frameBuffer+frameOffset, &tmp16, 2); frameOffset += 2; - /* Subframe number */ frameBuffer[frameOffset++] = MAC_LTE_FRAME_SUBFRAME_TAG; tmp16 = htons(sfnSf); // frame counter : this will give an expert info as wireshark expects SF and not F memcpy(frameBuffer+frameOffset, &tmp16, 2); frameOffset += 2; - frameBuffer[frameOffset++] = MAC_LTE_CRC_STATUS_TAG; frameBuffer[frameOffset++] = crcStatus; - #ifdef WIRESHARK_DEV frameOffset += 2; tmp16 = htons(sfnSf); // subframe @@ -293,55 +276,55 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, frameBuffer[frameOffset++] = retx; } -//#ifdef WIRESHARK_DEV + //#ifdef WIRESHARK_DEV /* Relating to out-of-band events */ /* N.B. dissector will only look to these fields if length is 0... */ if (pdu_buffer_size==0) { switch (oob_event) { - case ltemac_send_preamble : - LOG_D(OPT,"ltemac_send_preamble event %02x." - //"%02x." - "%02x.%02x\n", - MAC_LTE_SEND_PREAMBLE_TAG, - //ltemac_send_preamble, - rnti, - oob_event_value); - //frameBuffer[frameOffset++]=0; - //frameBuffer[frameOffset++]=0; - //frameBuffer[frameOffset++]=0; - frameBuffer[frameOffset++] = MAC_LTE_SEND_PREAMBLE_TAG; - //frameBuffer[frameOffset++]=ltemac_send_preamble; - frameBuffer[frameOffset++]=rnti; // is the preamble - frameBuffer[frameOffset++]=oob_event_value; - break; + case ltemac_send_preamble : + LOG_D(OPT,"ltemac_send_preamble event %02x." + //"%02x." + "%02x.%02x\n", + MAC_LTE_SEND_PREAMBLE_TAG, + //ltemac_send_preamble, + rnti, + oob_event_value); + //frameBuffer[frameOffset++]=0; + //frameBuffer[frameOffset++]=0; + //frameBuffer[frameOffset++]=0; + frameBuffer[frameOffset++] = MAC_LTE_SEND_PREAMBLE_TAG; + //frameBuffer[frameOffset++]=ltemac_send_preamble; + frameBuffer[frameOffset++]=rnti; // is the preamble + frameBuffer[frameOffset++]=oob_event_value; + break; - case ltemac_send_sr: - frameBuffer[frameOffset++]=MAC_LTE_SR_TAG ; - frameOffset+=2; - frameBuffer[frameOffset++]=rnti; - frameOffset++; - frameBuffer[frameOffset++]=oob_event_value; - frameOffset++; - break; + case ltemac_send_sr: + frameBuffer[frameOffset++]=MAC_LTE_SR_TAG ; + frameOffset+=2; + frameBuffer[frameOffset++]=rnti; + frameOffset++; + frameBuffer[frameOffset++]=oob_event_value; + frameOffset++; + break; - case ltemac_sr_failure: - default: - LOG_W(OPT,"not implemeneted yet\n"); - break; + case ltemac_sr_failure: + default: + LOG_W(OPT,"not implemeneted yet\n"); + break; } } -//#endif + //#endif /***************************************/ /* Now write the MAC PDU */ frameBuffer[frameOffset++] = MAC_LTE_PAYLOAD_TAG; - + /* Append actual PDU */ //memcpy(frameBuffer+frameOffset, g_PDUBuffer, g_PDUOffset); //frameOffset += g_PDUOffset; if (pdu_buffer != NULL) { - memcpy(frameBuffer+frameOffset, (void*)pdu_buffer, pdu_buffer_size); + memcpy(frameBuffer+frameOffset, (void *)pdu_buffer, pdu_buffer_size); frameOffset += pdu_buffer_size; } @@ -358,44 +341,36 @@ static void SendFrame(guint8 radioType, guint8 direction, guint8 rntiType, /* Write an individual PDU (PCAP packet header + mac-context + mac-pdu) */ static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context, - const uint8_t *PDU, unsigned int length) -{ + const uint8_t *PDU, unsigned int length) { pcaprec_hdr_t packet_header; uint8_t context_header[256]; int offset = 0; unsigned short tmp16; - /*****************************************************************/ /* Context information (same as written by UDP heuristic clients */ context_header[offset++] = context->radioType; context_header[offset++] = context->direction; context_header[offset++] = context->rntiType; - /* RNTI */ context_header[offset++] = MAC_LTE_RNTI_TAG; tmp16 = htons(context->rnti); memcpy(context_header+offset, &tmp16, 2); offset += 2; - /* UEId */ context_header[offset++] = MAC_LTE_UEID_TAG; tmp16 = htons(context->ueid); memcpy(context_header+offset, &tmp16, 2); offset += 2; - /* Subframe number */ context_header[offset++] = MAC_LTE_FRAME_SUBFRAME_TAG; tmp16 = htons(context->subFrameNumber); memcpy(context_header+offset, &tmp16, 2); offset += 2; - /* CRC Status */ context_header[offset++] = MAC_LTE_CRC_STATUS_TAG; context_header[offset++] = context->crcStatusOK; - /* Data tag immediately preceding PDU */ context_header[offset++] = MAC_LTE_PAYLOAD_TAG; - /****************************************************************/ /* PCAP Header */ /* TODO: Timestamp might want to be relative to a more sensible @@ -404,13 +379,11 @@ static int MAC_LTE_PCAP_WritePDU(MAC_Context_Info_t *context, packet_header.ts_usec = (context->subframesSinceCaptureStart % 1000) * 1000; packet_header.incl_len = offset + length; packet_header.orig_len = offset + length; - /***************************************************************/ /* Now write everything to the file */ fwrite(&packet_header, sizeof(pcaprec_hdr_t), 1, file_fd); fwrite(context_header, 1, offset, file_fd); fwrite(PDU, 1, length, file_fd); - return 1; } #include @@ -419,117 +392,129 @@ extern RAN_CONTEXT_t RC; /* Remote serveraddress (where Wireshark is running) */ void trace_pdu(int direction, uint8_t *pdu_buffer, unsigned int pdu_buffer_size, int ueid, int rntiType, int rnti, uint16_t sysFrameNumber, uint8_t subFrameNumber, int oob_event, - int oob_event_value) -{ + int oob_event_value) { MAC_Context_Info_t pdu_context; int radioType=FDD_RADIO; + if (RC.eNB[0][0]!=NULL) radioType=RC.eNB[0][0]->frame_parms.frame_type== FDD ? FDD_RADIO:TDD_RADIO; + if (PHY_vars_UE_g[0][0] != NULL) radioType=PHY_vars_UE_g[0][0]->frame_parms.frame_type== FDD ? FDD_RADIO:TDD_RADIO; + switch (opt_type) { - case OPT_WIRESHARK : - if (g_socksd == -1) { - return; - } + case OPT_WIRESHARK : + if (g_socksd == -1) { + return; + } - SendFrame( radioType, - (direction == DIRECTION_DOWNLINK) ? DIRECTION_DOWNLINK : DIRECTION_UPLINK, - rntiType, rnti, ueid, (sysFrameNumber<<4) + subFrameNumber, - 1, 0, 1, //guint8 isPredefinedData, guint8 retx, guint8 crcStatus - oob_event,oob_event_value, - pdu_buffer, pdu_buffer_size); - break; + SendFrame( radioType, + (direction == DIRECTION_DOWNLINK) ? DIRECTION_DOWNLINK : DIRECTION_UPLINK, + rntiType, rnti, ueid, (sysFrameNumber<<4) + subFrameNumber, + 1, 0, 1, //guint8 isPredefinedData, guint8 retx, guint8 crcStatus + oob_event,oob_event_value, + pdu_buffer, pdu_buffer_size); + break; - case OPT_PCAP: - if (file_fd == NULL) { - return; - } + case OPT_PCAP: + if (file_fd == NULL) { + return; + } - pdu_context.radioType = radioType; - pdu_context.direction = (direction == DIRECTION_DOWNLINK) ? DIRECTION_DOWNLINK - : DIRECTION_UPLINK; - pdu_context.rntiType = rntiType; - pdu_context.rnti = rnti; - pdu_context.ueid = ueid; - pdu_context.isRetx = 0; - pdu_context.crcStatusOK =1; - pdu_context.sysFrameNumber = sysFrameNumber; - pdu_context.subFrameNumber = subFrameNumber; - pdu_context.subframesSinceCaptureStart = subframesSinceCaptureStart++; - MAC_LTE_PCAP_WritePDU( &pdu_context, pdu_buffer, pdu_buffer_size); - break; + pdu_context.radioType = radioType; + pdu_context.direction = (direction == DIRECTION_DOWNLINK) ? DIRECTION_DOWNLINK + : DIRECTION_UPLINK; + pdu_context.rntiType = rntiType; + pdu_context.rnti = rnti; + pdu_context.ueid = ueid; + pdu_context.isRetx = 0; + pdu_context.crcStatusOK =1; + pdu_context.sysFrameNumber = sysFrameNumber; + pdu_context.subFrameNumber = subFrameNumber; + pdu_context.subframesSinceCaptureStart = subframesSinceCaptureStart++; + MAC_LTE_PCAP_WritePDU( &pdu_context, pdu_buffer, pdu_buffer_size); + break; - case OPT_TSHARK: - default: - break; + case OPT_TSHARK: + default: + break; } } /*---------------------------------------------------*/ -int init_opt(char *path, char *ip) -{ +int init_opt(void) { + char *in_type=NULL; + paramdef_t opt_params[] = OPT_PARAMS_DESC ; + checkedparam_t opt_checkParams[] = OPTPARAMS_CHECK_DESC; uint16_t in_port; + config_set_checkfunctions(opt_params, opt_checkParams, + sizeof(opt_params)/sizeof(paramdef_t)); + config_get( opt_params,sizeof(opt_params)/sizeof(paramdef_t),OPT_CONFIGPREFIX); subframesSinceCaptureStart = 0; + int tmptype = config_get_processedint( &(opt_params[OPTTYPE_IDX])); - if (path != NULL) { - strncpy( in_path, path, sizeof(in_path) ); - in_path[sizeof(in_path) - 1] = 0; // terminate string + if (tmptype == OPT_NONE) { + opt_enabled=0; + LOG_I(OPT,"OPT disabled\n"); + return 0; + } else if (tmptype == OPT_PCAP && strlen(in_path) > 0) { + opt_type = OPT_PCAP; + opt_enabled=1; + LOG_I(OPT,"Enabling OPT for PCAP with the following file %s \n",in_path); + } else if (tmptype == OPT_WIRESHARK && strlen(in_ip) > 0) { + opt_enabled=1; + opt_type = OPT_WIRESHARK; + LOG_I(OPT,"Enabling OPT for wireshark for local interface %s\n",in_ip); } else { - strcpy( in_path, "/tmp/opt.pcap" ); - } - - if (ip != NULL) { - strncpy( in_ip, ip, sizeof(in_ip) ); - in_ip[sizeof(in_ip) - 1] = 0; // terminate string - } else { - strcpy( in_ip, "127.0.0.1" ); + LOG_E(OPT,"Invalid OPT configuration\n"); + config_printhelp(opt_params,sizeof(opt_params)/sizeof(paramdef_t),OPT_CONFIGPREFIX); } in_port = PACKET_MAC_LTE_DEFAULT_UDP_PORT; // trace_mode switch (opt_type) { - case OPT_WIRESHARK: + case OPT_WIRESHARK: - /* Create local server socket only if using localhost address */ - if (strcmp(in_ip, "127.0.0.1") == 0) { - opt_create_listener_socket(in_ip, in_port); - } + /* Create local server socket only if using localhost address */ + if (strcmp(in_ip, "127.0.0.1") == 0) { + opt_create_listener_socket(in_ip, in_port); + } - g_socksd = socket(AF_INET, SOCK_DGRAM, 0); + g_socksd = socket(AF_INET, SOCK_DGRAM, 0); - if (g_socksd == -1) { - LOG_E(OPT, "Error trying to create socket (errno=%d)\n", errno); - LOG_E(OPT, "CREATING SOCKET FAILED\n"); - return (-1); - } + if (g_socksd == -1) { + LOG_E(OPT, "Error trying to create socket (errno=%d)\n", errno); + LOG_E(OPT, "CREATING SOCKET FAILED\n"); + return (-1); + } - /* Get remote IP address from the function argument */ - g_serv_addr.sin_family = AF_INET; - g_serv_addr.sin_port = htons(in_port); - g_serv_addr.sin_addr.s_addr = inet_addr(in_ip); - break; + /* Get remote IP address from the function argument */ + g_serv_addr.sin_family = AF_INET; + g_serv_addr.sin_port = htons(in_port); + g_serv_addr.sin_addr.s_addr = inet_addr(in_ip); + break; - case OPT_PCAP: - file_fd = fopen(in_path, "w"); + case OPT_PCAP: + file_fd = fopen(in_path, "w"); - if (file_fd == NULL) { - LOG_D(OPT, "Failed to open file \"%s\" for writing\n", in_path); - return (-1); - } - /* Write the file header */ - fwrite(&file_header, sizeof(pcap_hdr_t), 1, file_fd); - break; + if (file_fd == NULL) { + LOG_D(OPT, "Failed to open file \"%s\" for writing\n", in_path); + return (-1); + } - case OPT_TSHARK: - LOG_W(OPT, "Tshark is currently not supported\n"); - opt_type = OPT_NONE; - break; + /* Write the file header */ + fwrite(&file_header, sizeof(pcap_hdr_t), 1, file_fd); + break; - default: - opt_type = OPT_NONE; - LOG_W(OPT, "supported Option\n"); - break; + case OPT_TSHARK: + LOG_W(OPT, "Tshark is currently not supported\n"); + opt_type = OPT_NONE; + break; + + default: + opt_type = OPT_NONE; + LOG_W(OPT, "supported Option\n"); + break; } if ( opt_type == OPT_WIRESHARK ) @@ -543,8 +528,7 @@ int init_opt(char *path, char *ip) // memset(mac_info, 0, sizeof(mac_lte_info)+pdu_buffer_size + 8); return (1); } -void terminate_opt(void) -{ +void terminate_opt(void) { /* Close local socket */ // free(mac_info); if (opt_type != OPT_NONE) { @@ -552,18 +536,18 @@ void terminate_opt(void) } switch (opt_type) { - case OPT_WIRESHARK: - close(g_socksd); - g_socksd = -1; - break; + case OPT_WIRESHARK: + close(g_socksd); + g_socksd = -1; + break; - case OPT_PCAP: - fclose (file_fd); - file_fd = NULL; - break; + case OPT_PCAP: + fclose (file_fd); + file_fd = NULL; + break; - default: - break; + default: + break; } } diff --git a/targets/RT/USER/lte-softmodem-common.c b/targets/RT/USER/lte-softmodem-common.c index 7e1235b310..814800ccfc 100644 --- a/targets/RT/USER/lte-softmodem-common.c +++ b/targets/RT/USER/lte-softmodem-common.c @@ -39,67 +39,58 @@ char *parallel_config=NULL; char *worker_config=NULL; uint64_t get_softmodem_optmask(void) { - return softmodem_params.optmask; + return softmodem_params.optmask; } uint64_t set_softmodem_optmask(uint64_t bitmask) { - softmodem_params.optmask = softmodem_params.optmask | bitmask; - return softmodem_params.optmask; + softmodem_params.optmask = softmodem_params.optmask | bitmask; + return softmodem_params.optmask; } -softmodem_params_t* get_softmodem_params(void) { - return &softmodem_params; +softmodem_params_t *get_softmodem_params(void) { + return &softmodem_params; } -void get_common_options(void) -{ - - -uint32_t online_log_messages; -uint32_t glog_level ; -uint32_t start_telnetsrv; -uint32_t noS1; -uint32_t nokrnmod; -uint32_t nonbiot; -paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ; -paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ; - - - - config_process_cmdline( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); - - if (strlen(in_path) > 0) { - opt_type = OPT_PCAP; - opt_enabled=1; - printf("Enabling OPT for PCAP with the following file %s \n",in_path); - } - if (strlen(in_ip) > 0) { - opt_enabled=1; - opt_type = OPT_WIRESHARK; - printf("Enabling OPT for wireshark for local interface"); - } - - config_process_cmdline( cmdline_logparams,sizeof(cmdline_logparams)/sizeof(paramdef_t),NULL); +void get_common_options(void) { + uint32_t online_log_messages; + uint32_t glog_level ; + uint32_t start_telnetsrv; + uint32_t noS1; + uint32_t nokrnmod; + uint32_t nonbiot; + paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ; + paramdef_t cmdline_logparams[] =CMDLINE_LOGPARAMS_DESC ; + checkedparam_t cmdline_log_CheckParams[] = CMDLINE_LOGPARAMS_CHECK_DESC; + config_get( cmdline_params,sizeof(cmdline_params)/sizeof(paramdef_t),NULL); + config_set_checkfunctions(cmdline_logparams, cmdline_log_CheckParams, + sizeof(cmdline_logparams)/sizeof(paramdef_t)); + config_get( cmdline_logparams,sizeof(cmdline_logparams)/sizeof(paramdef_t),NULL); if(config_isparamset(cmdline_logparams,CMDLINE_ONLINELOG_IDX)) { - set_glog_onlinelog(online_log_messages); + set_glog_onlinelog(online_log_messages); } + if(config_isparamset(cmdline_logparams,CMDLINE_GLOGLEVEL_IDX)) { - set_glog(glog_level); + set_glog(glog_level); } + if (start_telnetsrv) { - load_module_shlib("telnetsrv",NULL,0,NULL); + load_module_shlib("telnetsrv",NULL,0,NULL); } if (noS1) { - set_softmodem_optmask(SOFTMODEM_NOS1_BIT); + set_softmodem_optmask(SOFTMODEM_NOS1_BIT); } + if (nokrnmod) { - set_softmodem_optmask(SOFTMODEM_NOKRNMOD_BIT); - } + set_softmodem_optmask(SOFTMODEM_NOKRNMOD_BIT); + } + if (nonbiot) { - set_softmodem_optmask(SOFTMODEM_NONBIOT_BIT); - } + set_softmodem_optmask(SOFTMODEM_NONBIOT_BIT); + } + if(parallel_config != NULL) set_parallel_conf(parallel_config); + if(worker_config != NULL) set_worker_conf(worker_config); } diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c index 872340e28c..27869b800e 100644 --- a/targets/RT/USER/lte-softmodem.c +++ b/targets/RT/USER/lte-softmodem.c @@ -305,9 +305,6 @@ void exit_function(const char *file, const char *function, const int line, const } sleep(1); //allow lte-softmodem threads to exit first -#if defined(ENABLE_ITTI) - itti_terminate_tasks (TASK_UNKNOWN); -#endif exit(1); } @@ -449,7 +446,7 @@ static void get_options(void) { NB_eNB_INST = RC.nb_inst; printf("Configuration: nb_rrc_inst %d, nb_L1_inst %d, nb_ru %d\n",NB_eNB_INST,RC.nb_L1_inst,RC.nb_RU); - if (!SOFTMODEM_NONBIOT) { + if (!IS_SOFTMODEM_NONBIOT) { load_NB_IoT(); printf(" nb_nbiot_rrc_inst %d, nb_nbiot_L1_inst %d, nb_nbiot_macrlc_inst %d\n", RC.nb_nb_iot_rrc_inst, RC.nb_nb_iot_L1_inst, RC.nb_nb_iot_macrlc_inst); @@ -505,7 +502,8 @@ void set_default_frame_parms(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs]) { } void wait_RUs(void) { - LOG_I(PHY,"Waiting for RUs to be configured ... RC.ru_mask:%02lx\n", RC.ru_mask); + /* do not modify the following LOG_UI message, which is used by CI */ + LOG_UI(ENB_APP,"Waiting for RUs to be configured ... RC.ru_mask:%02lx\n", RC.ru_mask); // wait for all RUs to be configured over fronthaul pthread_mutex_lock(&RC.ru_mutex); @@ -678,7 +676,6 @@ int main( int argc, char **argv ) { set_latency_target(); logInit(); printf("Reading in command-line options\n"); - CONFIG_SETRTFLAG(CONFIG_NOCHECKUNKOPT); get_options (); if (CONFIG_ISFLAGSET(CONFIG_ABORT) ) { @@ -689,14 +686,6 @@ int main( int argc, char **argv ) { #if T_TRACER T_Config_Init(); #endif - ret=config_check_unknown_cmdlineopt(NULL); - - if (ret != 0) { - LOG_E(ENB_APP, "%i unknown options in command line\n",ret); - exit_fun(""); - } - - CONFIG_CLEARRTFLAG(CONFIG_NOCHECKUNKOPT); //randominit (0); set_taus_seed (0); printf("configuring for RAU/RRU\n"); @@ -717,12 +706,7 @@ int main( int argc, char **argv ) { MSC_INIT(MSC_E_UTRAN, THREAD_MAX+TASK_MAX); #endif - - if (opt_type != OPT_NONE) { - if (init_opt(in_path, in_ip) == -1) - LOG_E(OPT,"failed to run OPT \n"); - } - + init_opt(); #ifdef PDCP_USE_NETLINK printf("PDCP netlink\n"); netlink_init(); @@ -947,13 +931,7 @@ if (nfapi_mode==2) {// VNF sync_var=0; pthread_cond_broadcast(&sync_cond); pthread_mutex_unlock(&sync_mutex); - ret=config_check_unknown_cmdlineopt(CONFIG_CHECKALLSECTIONS); - - if (ret != 0) { - LOG_E(ENB_APP, "%i unknown options in command line (invalid section name)\n",ret); - exit_fun(""); - } - + config_check_unknown_cmdlineopt(CONFIG_CHECKALLSECTIONS); // wait for end of program printf("TYPE TO TERMINATE\n"); //getchar(); @@ -1008,9 +986,7 @@ if (nfapi_mode==2) {// VNF } free_lte_top(); - printf("About to call end_configmodule() from %s() %s:%d\n", __FUNCTION__, __FILE__, __LINE__); end_configmodule(); - printf("Called end_configmodule() from %s() %s:%d\n", __FUNCTION__, __FILE__, __LINE__); pthread_cond_destroy(&sync_cond); pthread_mutex_destroy(&sync_mutex); pthread_cond_destroy(&nfapi_sync_cond); @@ -1029,9 +1005,7 @@ if (nfapi_mode==2) {// VNF } } - if (opt_enabled == 1) - terminate_opt(); - + terminate_opt(); logClean(); printf("Bye.\n"); return 0; diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index 81f84e133b..3cca57c4e9 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -35,12 +35,12 @@ #include "flexran_agent.h" #if defined(ENABLE_ITTI) -#if defined(ENABLE_USE_MME) -#include "s1ap_eNB.h" -#ifdef PDCP_USE_NETLINK -#include "SIMULATION/ETH_TRANSPORT/proto.h" -#endif -#endif + #if defined(ENABLE_USE_MME) + #include "s1ap_eNB.h" + #ifdef PDCP_USE_NETLINK + #include "SIMULATION/ETH_TRANSPORT/proto.h" + #endif + #endif #endif /* help strings definition for command line options, used in CMDLINE_XXX_DESC macros and printed when -h option is used */ @@ -60,14 +60,14 @@ #define CONFIG_HLP_UENANTR "set UE number of rx antennas\n" #define CONFIG_HLP_UENANTT "set UE number of tx antennas\n" #define CONFIG_HLP_UESCAN "set UE to scan around carrier\n" -#define CONFIG_HLP_DUMPFRAME "dump UE received frame to rxsig_frame0.dat and exit\n" +#define CONFIG_HLP_DUMPFRAME "dump UE received frame to rxsig_frame0.dat and exit\n" #define CONFIG_HLP_DLSHIFT "dynamic shift for LLR compuation for TM3/4 (default 0)\n" #define CONFIG_HLP_UELOOP "get softmodem (UE) to loop through memory instead of acquiring from HW\n" #define CONFIG_HLP_PHYTST "test UE phy layer, mac disabled\n" -#define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n" +#define CONFIG_HLP_DMAMAP "sets flag for improved EXMIMO UE performance\n" #define CONFIG_HLP_CLK "tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo)\n" -#define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n" -#define CONFIG_HLP_NOSNGLT "Disables single-thread mode in lte-softmodem\n" +#define CONFIG_HLP_USIM "use XOR autentication algo in case of test usim mode\n" +#define CONFIG_HLP_NOSNGLT "Disables single-thread mode in lte-softmodem\n" #define CONFIG_HLP_TADV "Set timing_advance\n" #define CONFIG_HLP_DLF "Set the downlink frequency for all component carriers\n" #define CONFIG_HLP_CHOFF "Channel id offset\n" @@ -76,16 +76,14 @@ #define CONFIG_HLP_ITTIL "Generate ITTI analyzser logs (similar to wireshark logs but with more details)\n" #define CONFIG_HLP_DLMCS "Set the maximum downlink MCS\n" #define CONFIG_HLP_STMON "Enable processing timing measurement of lte softmodem on per subframe basis \n" -#define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n" +#define CONFIG_HLP_PRB "Set the PRB, valid values: 6, 25, 50, 100 \n" #define CONFIG_HLP_EMULIFACE "Set the interface name for the multicast transport for emulation mode (e.g. eth0, lo, etc.) \n" -//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation" -#define CONFIG_HLP_MSLOTS "Skip the missed slots/subframes \n" +//#define CONFIG_HLP_NUMUES "Set the number of UEs for the emulation" +#define CONFIG_HLP_MSLOTS "Skip the missed slots/subframes \n" #define CONFIG_HLP_ULMCS "Set the maximum uplink MCS\n" #define CONFIG_HLP_TDD "Set hardware to TDD mode (default: FDD). Used only with -U (otherwise set in config file).\n" #define CONFIG_HLP_SNR "Set average SNR in dB (for --siml1 option)\n" #define CONFIG_HLP_UE "Set the lte softmodem as a UE\n" -#define CONFIG_HLP_L2MONW "Enable L2 wireshark messages on localhost \n" -#define CONFIG_HLP_L2MONP "Enable L2 pcap messages on localhost \n" #define CONFIG_HLP_TQFS "Apply three-quarter of sampling frequency, 23.04 Msps to reduce the data rate on USB/PCIe transfers (only valid for 20 MHz)\n" #define CONFIG_HLP_TPORT "tracer port\n" #define CONFIG_HLP_NOTWAIT "don't wait for tracer, start immediately\n" @@ -103,7 +101,7 @@ #define CONFIG_HLP_USRP_CLK_SRC "USRP clock source: 'internal' or 'external'\n" /***************************************************************************************************************************************/ -/* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument +/* command line options definitions, CMDLINE_XXXX_DESC macros are used to initialize paramdef_t arrays which are then used as argument when calling config_get or config_getlist functions */ @@ -112,15 +110,15 @@ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UEMODEPARAMS_DESC { \ -{"calib-ue-rx", CONFIG_HLP_CALUER, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ -{"calib-ue-rx-med", CONFIG_HLP_CALUERM, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ -{"calib-ue-rx-byp", CONFIG_HLP_CALUERB, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ -{"debug-ue-prach", CONFIG_HLP_DBGUEPR, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ -{"no-L2-connect", CONFIG_HLP_NOL2CN, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ -{"calib-prach-tx", CONFIG_HLP_CALPRACH, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ -{"loop-memory", CONFIG_HLP_UELOOP, 0, strptr:&loopfile, defstrval:"iqs.in", TYPE_STRING,0}, \ -{"ue-dump-frame", CONFIG_HLP_DUMPFRAME, PARAMFLAG_BOOL, iptr:&dumpframe, defintval:0, TYPE_INT, 0}, \ -} + {"calib-ue-rx", CONFIG_HLP_CALUER, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx-med", CONFIG_HLP_CALUERM, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"calib-ue-rx-byp", CONFIG_HLP_CALUERB, 0, iptr:&rx_input_level_dBm, defintval:0, TYPE_INT, 0}, \ + {"debug-ue-prach", CONFIG_HLP_DBGUEPR, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"no-L2-connect", CONFIG_HLP_NOL2CN, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"calib-prach-tx", CONFIG_HLP_CALPRACH, PARAMFLAG_BOOL, uptr:NULL, defuintval:1, TYPE_INT, 0}, \ + {"loop-memory", CONFIG_HLP_UELOOP, 0, strptr:&loopfile, defstrval:"iqs.in", TYPE_STRING,0}, \ + {"ue-dump-frame", CONFIG_HLP_DUMPFRAME, PARAMFLAG_BOOL, iptr:&dumpframe, defintval:0, TYPE_INT, 0}, \ + } #define CMDLINE_CALIBUERX_IDX 0 #define CMDLINE_CALIBUERXMED_IDX 1 #define CMDLINE_CALIBUERXBYP_IDX 2 @@ -138,42 +136,42 @@ /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UEPARAMS_DESC { \ -{"siml1", CONFIG_HLP_SIML1, PARAMFLAG_BOOL, iptr:&simL1flag, defintval:0, TYPE_INT, 0}, \ -{"U", CONFIG_HLP_NUMUE, 0, u8ptr:&NB_UE_INST, defuintval:1, TYPE_UINT, 0}, \ -{"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:130, TYPE_DOUBLE, 0}, \ -{"ue-rxgain-off", CONFIG_HLP_UERXGOFF, 0, dblptr:&rx_gain_off, defdblval:0, TYPE_DOUBLE, 0}, \ -{"ue-txgain", CONFIG_HLP_UETXG, 0, dblptr:&(tx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ -{"ue-nb-ant-rx", CONFIG_HLP_UENANTR, 0, u8ptr:&nb_antenna_rx, defuintval:1, TYPE_UINT8, 0}, \ -{"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \ -{"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \ -{"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:23, TYPE_INT, 0}, \ -{"emul-iface", CONFIG_HLP_EMULIFACE, 0, strptr:&emul_iface, defstrval:"lo", TYPE_STRING, 100}, \ -{"L2-emul", NULL, 0, u8ptr:&nfapi_mode, defuintval:3, TYPE_UINT8, 0}, \ -{"num-ues", NULL, 0, u8ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT8, 0}, \ -{"nums_ue_thread", NULL, 0, u16ptr:&(NB_THREAD_INST), defuintval:1, TYPE_UINT16, 0}, \ -{"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \ -{"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \ -{"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200",TYPE_STRING, 0}, \ -{"usrp-clksrc", CONFIG_HLP_USRP_CLK_SRC,0, strptr:(char **)&usrp_clksrc, defstrval:"internal", TYPE_STRING, 0}, \ -{"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \ -{"clock", CONFIG_HLP_CLK, 0, uptr:&clock_source, defintval:0, TYPE_UINT, 0}, \ -{"s" , CONFIG_HLP_SNR, 0, iptr:&snr_dB, defintval:25, TYPE_INT, 0}, \ -{"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \ -{"A", CONFIG_HLP_TADV, 0, iptr:&(timingadv), defintval:0, TYPE_INT, 0} \ -} + {"siml1", CONFIG_HLP_SIML1, PARAMFLAG_BOOL, iptr:&simL1flag, defintval:0, TYPE_INT, 0}, \ + {"U", CONFIG_HLP_NUMUE, 0, u8ptr:&NB_UE_INST, defuintval:1, TYPE_UINT, 0}, \ + {"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:130, TYPE_DOUBLE, 0}, \ + {"ue-rxgain-off", CONFIG_HLP_UERXGOFF, 0, dblptr:&rx_gain_off, defdblval:0, TYPE_DOUBLE, 0}, \ + {"ue-txgain", CONFIG_HLP_UETXG, 0, dblptr:&(tx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ + {"ue-nb-ant-rx", CONFIG_HLP_UENANTR, 0, u8ptr:&nb_antenna_rx, defuintval:1, TYPE_UINT8, 0}, \ + {"ue-nb-ant-tx", CONFIG_HLP_UENANTT, 0, u8ptr:&nb_antenna_tx, defuintval:1, TYPE_UINT8, 0}, \ + {"ue-scan-carrier", CONFIG_HLP_UESCAN, PARAMFLAG_BOOL, iptr:&UE_scan_carrier, defintval:0, TYPE_INT, 0}, \ + {"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:23, TYPE_INT, 0}, \ + {"emul-iface", CONFIG_HLP_EMULIFACE, 0, strptr:&emul_iface, defstrval:"lo", TYPE_STRING, 100}, \ + {"L2-emul", NULL, 0, u8ptr:&nfapi_mode, defuintval:3, TYPE_UINT8, 0}, \ + {"num-ues", NULL, 0, u8ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT8, 0}, \ + {"nums_ue_thread", NULL, 0, u16ptr:&(NB_THREAD_INST), defuintval:1, TYPE_UINT16, 0}, \ + {"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \ + {"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \ + {"usrp-args", CONFIG_HLP_USRP_ARGS, 0, strptr:(char **)&usrp_args, defstrval:"type=b200",TYPE_STRING, 0}, \ + {"usrp-clksrc", CONFIG_HLP_USRP_CLK_SRC,0, strptr:(char **)&usrp_clksrc, defstrval:"internal", TYPE_STRING, 0}, \ + {"mmapped-dma", CONFIG_HLP_DMAMAP, PARAMFLAG_BOOL, uptr:&mmapped_dma, defintval:0, TYPE_INT, 0}, \ + {"clock", CONFIG_HLP_CLK, 0, uptr:&clock_source, defintval:0, TYPE_UINT, 0}, \ + {"s" , CONFIG_HLP_SNR, 0, iptr:&snr_dB, defintval:25, TYPE_INT, 0}, \ + {"T" , CONFIG_HLP_TDD, PARAMFLAG_BOOL, iptr:&tddflag, defintval:0, TYPE_INT, 0}, \ + {"A", CONFIG_HLP_TADV, 0, iptr:&(timingadv), defintval:0, TYPE_INT, 0} \ + } /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ /* command line parameters specific to UE threads */ /* optname helpstr paramflags XXXptr defXXXval type numelt */ /*-------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define CMDLINE_UETHREADSPARAMS_DESC { \ -{"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \ -{"threadOneSubframe", NULL, 0, iptr:&(threads.one), defintval:1, TYPE_INT, 0}, \ -{"threadTwoSubframe", NULL, 0, iptr:&(threads.two), defintval:1, TYPE_INT, 0}, \ -{"threadThreeSubframe", NULL, 0, iptr:&(threads.three), defintval:1, TYPE_INT, 0}, \ -{"threadSlot1ProcOne", NULL, 0, iptr:&(threads.slot1_proc_one), defintval:1, TYPE_INT, 0}, \ -{"threadSlot1ProcTwo", NULL, 0, iptr:&(threads.slot1_proc_two), defintval:1, TYPE_INT, 0}, \ -} + {"threadIQ", NULL, 0, iptr:&(threads.iq), defintval:1, TYPE_INT, 0}, \ + {"threadOneSubframe", NULL, 0, iptr:&(threads.one), defintval:1, TYPE_INT, 0}, \ + {"threadTwoSubframe", NULL, 0, iptr:&(threads.two), defintval:1, TYPE_INT, 0}, \ + {"threadThreeSubframe", NULL, 0, iptr:&(threads.three), defintval:1, TYPE_INT, 0}, \ + {"threadSlot1ProcOne", NULL, 0, iptr:&(threads.slot1_proc_one), defintval:1, TYPE_INT, 0}, \ + {"threadSlot1ProcTwo", NULL, 0, iptr:&(threads.slot1_proc_two), defintval:1, TYPE_INT, 0}, \ + } #define DEFAULT_DLF 2680000000 @@ -192,28 +190,28 @@ #define CLOCK_SOURCE softmodem_params.clock_source #define USIM_TEST softmodem_params.usim_test #define CMDLINE_PARAMS_DESC { \ -{"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&RF_CONFIG_FILE, defstrval:NULL, TYPE_STRING, sizeof(RF_CONFIG_FILE)}, \ -{"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \ -{"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&PHY_TEST, defintval:0, TYPE_INT, 0}, \ -{"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \ -{"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&EMULATE_RF, defintval:0, TYPE_INT, 0}, \ -{"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \ -{"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \ -{"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \ -{"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \ -{"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \ -{"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&DO_FORMS, defintval:0, TYPE_INT8, 0}, \ -{"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ -{"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ -{"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ -{"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ -{"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ -{"parallel-config", CONFIG_HLP_PARALLEL_CMD,0, strptr:(char **)¶llel_config, defstrval:NULL, TYPE_STRING, 0}, \ -{"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \ -{"noS1", CONFIG_HLP_NOS1, PARAMFLAG_BOOL, uptr:&noS1, defintval:0, TYPE_INT, 0}, \ -{"nokrnmod", CONFIG_HLP_NOKRNMOD, PARAMFLAG_BOOL, uptr:&nokrnmod, defintval:0, TYPE_INT, 0}, \ -{"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, uptr:&nonbiot, defuintval:0, TYPE_INT, 0}, \ -} + {"rf-config-file", CONFIG_HLP_RFCFGF, 0, strptr:(char **)&RF_CONFIG_FILE, defstrval:NULL, TYPE_STRING, sizeof(RF_CONFIG_FILE)}, \ + {"ulsch-max-errors", CONFIG_HLP_ULMAXE, 0, uptr:&ULSCH_max_consecutive_errors, defuintval:0, TYPE_UINT, 0}, \ + {"phy-test", CONFIG_HLP_PHYTST, PARAMFLAG_BOOL, iptr:&PHY_TEST, defintval:0, TYPE_INT, 0}, \ + {"usim-test", CONFIG_HLP_USIM, PARAMFLAG_BOOL, u8ptr:&USIM_TEST, defintval:0, TYPE_UINT8, 0}, \ + {"emulate-rf" , CONFIG_HLP_EMULATE_RF, PARAMFLAG_BOOL, iptr:&EMULATE_RF, defintval:0, TYPE_INT, 0}, \ + {"clock", CONFIG_HLP_CLK, 0, uptr:&CLOCK_SOURCE, defintval:0, TYPE_UINT, 0}, \ + {"wait-for-sync", NULL, PARAMFLAG_BOOL, iptr:&WAIT_FOR_SYNC, defintval:0, TYPE_INT, 0}, \ + {"single-thread-enable", CONFIG_HLP_NOSNGLT, PARAMFLAG_BOOL, iptr:&SINGLE_THREAD_FLAG, defintval:0, TYPE_INT, 0}, \ + {"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \ + {"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \ + {"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&DO_FORMS, defintval:0, TYPE_INT8, 0}, \ + {"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ + {"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ + {"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ + {"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ + {"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ + {"parallel-config", CONFIG_HLP_PARALLEL_CMD,0, strptr:(char **)¶llel_config, defstrval:NULL, TYPE_STRING, 0}, \ + {"worker-config", CONFIG_HLP_WORKER_CMD, 0, strptr:(char **)&worker_config, defstrval:NULL, TYPE_STRING, 0}, \ + {"noS1", CONFIG_HLP_NOS1, PARAMFLAG_BOOL, uptr:&noS1, defintval:0, TYPE_INT, 0}, \ + {"nokrnmod", CONFIG_HLP_NOKRNMOD, PARAMFLAG_BOOL, uptr:&nokrnmod, defintval:0, TYPE_INT, 0}, \ + {"nbiot-disable", CONFIG_HLP_DISABLNBIOT, PARAMFLAG_BOOL, uptr:&nonbiot, defuintval:0, TYPE_INT, 0}, \ + } #define CONFIG_HLP_FLOG "Enable online log \n" #define CONFIG_HLP_LOGL "Set the global log level, valide options: (4:trace, 3:debug, 2:info, 1:warn, (0:error))\n" @@ -225,17 +223,23 @@ /*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ #define START_MSC softmodem_params.start_msc #define CMDLINE_LOGPARAMS_DESC { \ -{"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ -{"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ -{"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ -{"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ -} -#define CMDLINE_ONLINELOG_IDX 0 + {"R" , CONFIG_HLP_FLOG, 0, uptr:&online_log_messages, defintval:1, TYPE_INT, 0}, \ + {"g" , CONFIG_HLP_LOGL, 0, uptr:&glog_level, defintval:0, TYPE_UINT, 0}, \ + {"telnetsrv", CONFIG_HLP_TELN, PARAMFLAG_BOOL, uptr:&start_telnetsrv, defintval:0, TYPE_UINT, 0}, \ + {"msc", CONFIG_HLP_MSC, PARAMFLAG_BOOL, uptr:&START_MSC, defintval:0, TYPE_UINT, 0}, \ + } +#define CMDLINE_ONLINELOG_IDX 0 #define CMDLINE_GLOGLEVEL_IDX 1 #define CMDLINE_STARTTELN_IDX 2 - -/***************************************************************************************************************************************/ +/* check function for global log level */ +#define CMDLINE_LOGPARAMS_CHECK_DESC { \ + { .s5= {NULL }} , \ + { .s2= { config_check_intrange, {0,4}}}, \ + { .s5= {NULL }} , \ + { .s5= {NULL }} , \ + } +/***************************************************************************************************************************************/ /* */ #include "threads_t.h" @@ -243,30 +247,29 @@ #define SOFTMODEM_NOKRNMOD_BIT (1<<1) #define SOFTMODEM_NONBIOT_BIT (1<<2) typedef struct { - uint64_t optmask; - THREAD_STRUCT thread_struct; - char rf_config_file[1024]; - int phy_test; - uint8_t usim_test; - int emulate_rf; - int wait_for_sync; //eNodeB only - int single_thread_flag; //eNodeB only - int chain_offset; - uint32_t do_forms; - int numerology; - unsigned int start_msc; - int nonbiotflag; - uint32_t clock_source; - int hw_timing_advance; + uint64_t optmask; + THREAD_STRUCT thread_struct; + char rf_config_file[1024]; + int phy_test; + uint8_t usim_test; + int emulate_rf; + int wait_for_sync; //eNodeB only + int single_thread_flag; //eNodeB only + int chain_offset; + uint32_t do_forms; + int numerology; + unsigned int start_msc; + uint32_t clock_source; + int hw_timing_advance; } softmodem_params_t; -#define SOFTMODEM_NOS1 ( get_softmodem_optmask() & SOFTMODEM_NOS1_BIT) -#define SOFTMODEM_NOKRNMOD ( get_softmodem_optmask() & SOFTMODEM_NOKRNMOD_BIT) -#define SOFTMODEM_NONBIOT ( get_softmodem_optmask() & SOFTMODEM_NONBIOT_BIT) +#define IS_SOFTMODEM_NOS1 ( get_softmodem_optmask() & SOFTMODEM_NOS1_BIT) +#define IS_SOFTMODEM_NOKRNMOD ( get_softmodem_optmask() & SOFTMODEM_NOKRNMOD_BIT) +#define IS_SOFTMODEM_NONBIOT ( get_softmodem_optmask() & SOFTMODEM_NONBIOT_BIT) extern uint64_t get_softmodem_optmask(void); extern uint64_t set_softmodem_optmask(uint64_t bitmask); extern void get_common_options(void); -extern softmodem_params_t* get_softmodem_params(void); +extern softmodem_params_t *get_softmodem_params(void); uint64_t get_pdcp_optmask(void); extern pthread_cond_t sync_cond; @@ -292,8 +295,8 @@ extern int transmission_mode; extern double cpuf; #if defined(ENABLE_ITTI) -extern volatile int start_eNB; -extern volatile int start_UE; + extern volatile int start_eNB; + extern volatile int start_UE; #endif @@ -305,7 +308,7 @@ extern void stop_eNB(int); extern void kill_eNB_proc(int inst); // In lte-ru.c -extern void init_RU(char*); +extern void init_RU(char *); extern void stop_ru(RU_t *ru); extern void init_ru_vnf(void); extern void init_RU_proc(RU_t *ru); @@ -317,8 +320,9 @@ extern void set_function_spec_param(RU_t *ru); extern int setup_ue_buffers(PHY_VARS_UE **phy_vars_ue, openair0_config_t *openair0_cfg); extern void fill_ue_band_info(void); -extern void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax, LTE_DL_FRAME_PARMS *fp); -extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char * name); +extern void init_UE(int nb_inst,int eMBMS_active, int uecap_xer_in, int timing_correction, int phy_test, int UE_scan, int UE_scan_carrier, runmode_t mode,int rxgain,int txpowermax, + LTE_DL_FRAME_PARMS *fp); +extern void init_thread(int sched_runtime, int sched_deadline, int sched_fifo, cpu_set_t *cpuset, char *name); extern void reset_opp_meas(void); extern void print_opp_meas(void); @@ -333,7 +337,7 @@ extern void RCConfig_sim(void); extern void init_ocm(double,double); extern void init_ue_devices(PHY_VARS_UE *); -PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, +PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, uint8_t UE_id, uint8_t abstraction_flag); void init_eNB_afterRU(void); @@ -348,8 +352,8 @@ extern int restart_L1L2(module_id_t enb_id); extern void init_UE_stub_single_thread(int nb_inst,int eMBMS_active, int uecap_xer_in, char *emul_iface); -extern PHY_VARS_UE* init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, - uint8_t UE_id, - uint8_t abstraction_flag); +extern PHY_VARS_UE *init_ue_vars(LTE_DL_FRAME_PARMS *frame_parms, + uint8_t UE_id, + uint8_t abstraction_flag); #endif diff --git a/targets/RT/USER/lte-uesoftmodem.c b/targets/RT/USER/lte-uesoftmodem.c index 4583b6ac97..e10c10c668 100644 --- a/targets/RT/USER/lte-uesoftmodem.c +++ b/targets/RT/USER/lte-uesoftmodem.c @@ -456,7 +456,6 @@ static void get_options(void) { CONFIG_SETRTFLAG(CONFIG_NOEXITONHELP); /* unknown parameters on command line will be checked in main after all init have been performed */ - CONFIG_SETRTFLAG(CONFIG_NOCHECKUNKOPT); get_common_options(); get_uethreads_params(); paramdef_t cmdline_uemodeparams[] =CMDLINE_UEMODEPARAMS_DESC; @@ -754,7 +753,6 @@ int main( int argc, char **argv ) { for (int i=0; irfdevice.trx_end_func) PHY_vars_UE_g[0][0]->rfdevice.trx_end_func(&PHY_vars_UE_g[0][0]->rfdevice); - if (opt_enabled == 1) - terminate_opt(); - + terminate_opt(); logClean(); printf("Bye.\n"); return 0; From 974167b51c922d3e23630f43d76f8a26a5638766 Mon Sep 17 00:00:00 2001 From: frtabu Date: Thu, 17 Jan 2019 19:56:04 +0100 Subject: [PATCH 110/125] update documentation and improve help text display --- common/config/DOC/config.md | 2 +- common/config/DOC/config/devusage/api.md | 5 +- common/config/DOC/config/rtusage.md | 57 ++ common/config/config_cmdline.c | 1 + common/config/config_userapi.c | 2 +- common/utils/telnetsrv/telnetsrv.c | 1163 +++++++++++----------- 6 files changed, 630 insertions(+), 600 deletions(-) diff --git a/common/config/DOC/config.md b/common/config/DOC/config.md index 580ac5476f..1c2ef25594 100644 --- a/common/config/DOC/config.md +++ b/common/config/DOC/config.md @@ -1,6 +1,6 @@ # OAI configuration module -The configuration module provides an api that other oai components can use to get parameters at init time. It defines a parameter structure, used to describe parameters attributes (for example name and type). The same structure includes a pointer to the variable where the configuration module writes the parameter value, at run time, when calling config_get or config_getlist functions. For each parameter a function to check the value can be specified and pre-defined functions are provided for some common parameter validations (integer in a range or in a list, string in a list). The module also include a mechanism to check that no unknown options have been entered on the command line +The configuration module provides an api that other oai components can use to get parameters at init time. It defines a parameter structure, used to describe parameters attributes (for example name and type). The same structure includes a pointer to the variable where the configuration module writes the parameter value, at run time, when calling config_get or config_getlist functions. For each parameter a function to check the value can be specified and pre-defined functions are provided for some common parameter validations (integer in a range or in a list, string in a list). The module also include an api to check that no unknown options have been entered on the command line and a a mechanism to display a help text for suppoted parameters. ## Documentation diff --git a/common/config/DOC/config/devusage/api.md b/common/config/DOC/config/devusage/api.md index 56b444a447..050abc5315 100644 --- a/common/config/DOC/config/devusage/api.md +++ b/common/config/DOC/config/devusage/api.md @@ -1,11 +1,12 @@ ```c -configmodule_interface_t *load_configmodule(int argc, char **argv) +configmodule_interface_t *load_configmodule(int argc, char **argv, uint32_t initflags) ``` * Parses the command line options, looking for the –O argument * Loads the `libparams_.so` (today `libparams_libconfig.so`) shared library * Looks for `config__init` symbol and calls it , passing it an array of string corresponding to the « : » separated strings used in the –O option * Looks for `config__get`, `config__getlist` and `config__end` symbols which are the three functions a configuration library should implement. Get and getlist are mandatory, end is optional. -* Stores all the necessary information in a `configmodule_interface_t structure`, which is of no use for caller as long as we only use one configuration source. +* Stores all the necessary information in a `configmodule_interface_t structure`, which is of no use for caller as long as we only use one configuration source. +* if the bit CONFIG_ENABLECMDLINEONLY is set in `initflags` then the module allows parameters to be set only via the command line. This is used for the oai UE. ```c void End_configmodule(void) diff --git a/common/config/DOC/config/rtusage.md b/common/config/DOC/config/rtusage.md index 19519ef058..109ba84bba 100644 --- a/common/config/DOC/config/rtusage.md +++ b/common/config/DOC/config/rtusage.md @@ -27,6 +27,63 @@ $ ./lte-softmodem -O libconfig::dbgl1 ```bash $ ./lte-uesoftmodem -O cmdlineonly:dbgl1 ``` +To get help on supported parameters you can use specific options: +* ---help: print help for command line only parameters and for parameters not defined in a specific section + * ---help_< prefix > : print help for parameters defined under the section < prefix > + +``` +./lte-softmodem -O libconfig:/usr/local/oai/conf/enb.nbiot.band7.tm1.50PRB.usrpb210.conf --help +[CONFIG] get parameters from libconfig /usr/local/oai/conf/enb.nbiot.band7.tm1.50PRB.usrpb210.conf , debug flags: 0x00000000 +............................................. +[LIBCONFIG] (root): 19/19 parameters successfully set, (16 to default value) + +-----Help for section (root section) : 019 entries------ + --rf-config-file: Configuration file for front-end (e.g. LMS7002M) + --ulsch-max-errors: set the eNodeB max ULSCH erros + --phy-test: test UE phy layer, mac disabled + --usim-test: use XOR autentication algo in case of test usim mode + --emulate-rf: Emulated RF enabled(disable by defult) + --clock: tells hardware to use a clock reference (0:internal, 1:external, 2:gpsdo) + --wait-for-sync: Help string not specified + --single-thread-enable: Disables single-thread mode in lte-softmodem + -C: Set the downlink frequency for all component carriers + -a: Channel id offset + -d: Enable soft scope and L1 and L2 stats (Xforms) + -q: Enable processing timing measurement of lte softmodem on per subframe basis + -S: Skip the missed slots/subframes + --numerology: adding numerology for 5G + --parallel-config: three config for level of parallelism 'PARALLEL_SINGLE_THREAD', 'PARALLEL_RU_L1_SPLIT', or 'PARALLEL_RU_L1_TRX_SPLIT' + --worker-config: two option for worker 'WORKER_DISABLE' or 'WORKER_ENABLE' + --nbiot-disable: disable nb-iot, even if defined in config + --noS1: Disable s1 interface + --nokrnmod: (noS1 only): Use tun instead of namesh module +-------------------------------------------------------------------- + +[LIBCONFIG] (root): 4/4 parameters successfully set, (4 to default value) + +-----Help for section (root section) : 004 entries------ + -R: Enable online log + -g: Set the global log level, valide options: (4:trace, 3:debug, 2:info, 1:warn, (0:error)) + --telnetsrv: Start embedded telnet server + --msc: Enable the MSC tracing utility +-------------------------------------------------------------------- + +[LIBCONFIG] loader: 2/2 parameters successfully set, (2 to default value) +[LIBCONFIG] loader.telnetsrv: 2/2 parameters successfully set, (1 to default value) +[LOADER] library libtelnetsrv.so is not loaded: libtelnetsrv.so: cannot open shared object file: No such file or directory +Getting ENBSParams +[LIBCONFIG] (root): 3/3 parameters successfully set, (1 to default value) + +-----Help for section (root section) : 003 entries------ + --Asn1_verbosity: Help string not specified + --Active_eNBs: Help string not specified + --noS1: Help string not specified +-------------------------------------------------------------------- + +/usr/local/oai/issue390_configmodule_cmdlinebug/openairinterface5g/common/config/config_cmdline.c:224 config_process_cmdline() Exiting OAI softmodem: [CONFIG] Exiting after displaying help + +``` + For the lte-softmodem (the eNodeB) The config source parameter defaults to libconfig, preserving the initial -O option format. In this case you cannot specify the debug level. ```bash diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c index 71384462ff..9be860aaf4 100644 --- a/common/config/config_cmdline.c +++ b/common/config/config_cmdline.c @@ -290,4 +290,5 @@ int config_process_cmdline(paramdef_t *cfgoptions,int numoptions, char *prefix) } /* fin du while */ printf_cmdl("[CONFIG] %s %i options set from command line\n",((prefix == NULL) ? "(root)":prefix),j); + return j; } /* parse_cmdline*/ diff --git a/common/config/config_userapi.c b/common/config/config_userapi.c index b378c4ee93..66d3078d33 100644 --- a/common/config/config_userapi.c +++ b/common/config/config_userapi.c @@ -178,7 +178,7 @@ void config_printhelp(paramdef_t *params,int numparams, char *prefix) { printf(" %s%s: %s", (strlen(params[i].optname) <= 1) ? "-" : "--", params[i].optname, - (params[i].helpstr != NULL)?params[i].helpstr:"Help string not specified"); + (params[i].helpstr != NULL)?params[i].helpstr:"Help string not specified\n"); } /* for on params entries */ printf("--------------------------------------------------------------------\n\n"); diff --git a/common/utils/telnetsrv/telnetsrv.c b/common/utils/telnetsrv/telnetsrv.c index a49311d099..4e8e2c7c7f 100644 --- a/common/utils/telnetsrv/telnetsrv.c +++ b/common/utils/telnetsrv/telnetsrv.c @@ -51,14 +51,14 @@ #include #include #include -#include "common/utils/load_module_shlib.h" +#include "common/utils/load_module_shlib.h" #include "common/config/config_userapi.h" #include #include "telnetsrv_phycmd.h" -#include "telnetsrv_proccmd.h" -static char* telnet_defstatmod[] = {"softmodem","phy","loader"}; +#include "telnetsrv_proccmd.h" +static char *telnet_defstatmod[] = {"softmodem","phy","loader"}; static telnetsrv_params_t telnetparams; #define TELNETSRV_LISTENADDR 0 #define TELNETSRV_LISTENPORT 1 @@ -66,179 +66,169 @@ static telnetsrv_params_t telnetparams; #define TELNETSRV_DEBUG 3 #define TELNETSRV_LOOPC 4 #define TELNETSRV_LOOPD 5 -#define TELNETSRV_HISFILE 6 -#define TELNETSRV_HISSIZE 7 -#define TELNETSRV_PHYBSIZE 8 +#define TELNETSRV_HISFILE 6 +#define TELNETSRV_HISSIZE 7 +#define TELNETSRV_PHYBSIZE 8 #define TELNETSRV_STATICMOD 9 #define TELNETSRV_SHRMOD 10 paramdef_t telnetoptions[] = { -/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ -/* configuration parameters for telnet utility */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ - {"listenaddr", "", 0, uptr:&telnetparams.listenaddr, defstrval:"0.0.0.0", TYPE_IPV4ADDR, 0 }, - {"listenport", "", 0, uptr:&(telnetparams.listenport), defuintval:9090, TYPE_UINT, 0 }, - {"priority", "", 0, uptr:NULL, defuintval:0, TYPE_UINT, 0 }, - {"loopcount", "", 0, uptr:&(telnetparams.loopcount), defuintval:10, TYPE_UINT, 0 }, - {"loopdelay", "", 0, uptr:&(telnetparams.loopdelay), defuintval:5000, TYPE_UINT, 0 }, - {"histfile", "", PARAMFLAG_NOFREE, strptr:&(telnetparams.histfile), defstrval:"oaitelnet.history", TYPE_STRING, 0 }, - {"histsize", "", 0, iptr:&(telnetparams.histsize), defuintval:50, TYPE_INT, 0 }, - {"phypbsize", "",0, uptr:&(telnetparams.phyprntbuff_size),defuintval:65000, TYPE_UINT, 0 }, - {"staticmod", "", 0, strlistptr:NULL, defstrlistval:telnet_defstatmod,TYPE_STRINGLIST,(sizeof(telnet_defstatmod)/sizeof(char *))}, - {"shrmod", "", 0, strlistptr:NULL, defstrlistval:NULL,TYPE_STRINGLIST,0 } + /*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ + /* configuration parameters for telnet utility */ + /* optname helpstr paramflags XXXptr defXXXval type numelt */ + /*--------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ + {"listenaddr", "\n", 0, uptr:&telnetparams.listenaddr, defstrval:"0.0.0.0", TYPE_IPV4ADDR, 0 }, + {"listenport", "\n", 0, uptr:&(telnetparams.listenport), defuintval:9090, TYPE_UINT, 0 }, + {"priority", "\n", 0, uptr:NULL, defuintval:0, TYPE_UINT, 0 }, + {"loopcount", "\n", 0, uptr:&(telnetparams.loopcount), defuintval:10, TYPE_UINT, 0 }, + {"loopdelay", "\n", 0, uptr:&(telnetparams.loopdelay), defuintval:5000, TYPE_UINT, 0 }, + {"histfile", "\n", PARAMFLAG_NOFREE, strptr:&(telnetparams.histfile), defstrval:"oaitelnet.history", TYPE_STRING, 0 }, + {"histsize", "\n", 0, iptr:&(telnetparams.histsize), defuintval:50, TYPE_INT, 0 }, + {"phypbsize", "\n",0, uptr:&(telnetparams.phyprntbuff_size),defuintval:65000, TYPE_UINT, 0 }, + {"staticmod", "\n", 0, strlistptr:NULL, defstrlistval:telnet_defstatmod,TYPE_STRINGLIST,(sizeof(telnet_defstatmod)/sizeof(char *))}, + {"shrmod", "\n", 0, strlistptr:NULL, defstrlistval:NULL,TYPE_STRINGLIST,0 } }; -int get_phybsize(void) {return telnetparams.phyprntbuff_size; }; +int get_phybsize(void) { + return telnetparams.phyprntbuff_size; +}; int add_telnetcmd(char *modulename,telnetshell_vardef_t *var, telnetshell_cmddef_t *cmd ); int setoutput(char *buff, int debug, telnet_printfunc_t prnt); int setparam(char *buff, int debug, telnet_printfunc_t prnt); int history_cmd(char *buff, int debug, telnet_printfunc_t prnt); telnetshell_vardef_t telnet_vardef[] = { -{"debug",TELNET_VARTYPE_INT32,&telnetparams.telnetdbg}, -{"prio",TELNET_VARTYPE_INT32,&telnetparams.priority}, -{"loopc",TELNET_VARTYPE_INT32,&telnetparams.loopcount}, -{"loopd",TELNET_VARTYPE_INT32,&telnetparams.loopdelay}, -{"phypb",TELNET_VARTYPE_INT32,&telnetparams.phyprntbuff_size}, -{"hsize",TELNET_VARTYPE_INT32,&telnetparams.histsize}, -{"hfile",TELNET_VARTYPE_STRING,&telnetparams.histfile}, -{"",0,NULL} + {"debug",TELNET_VARTYPE_INT32,&telnetparams.telnetdbg}, + {"prio",TELNET_VARTYPE_INT32,&telnetparams.priority}, + {"loopc",TELNET_VARTYPE_INT32,&telnetparams.loopcount}, + {"loopd",TELNET_VARTYPE_INT32,&telnetparams.loopdelay}, + {"phypb",TELNET_VARTYPE_INT32,&telnetparams.phyprntbuff_size}, + {"hsize",TELNET_VARTYPE_INT32,&telnetparams.histsize}, + {"hfile",TELNET_VARTYPE_STRING,&telnetparams.histfile}, + {"",0,NULL} }; telnetshell_cmddef_t telnet_cmdarray[] = { - {"redirlog","[here,file,off]",setoutput}, - {"param","[prio]",setparam}, - {"history","[list,reset]",history_cmd}, - {"","",NULL}, + {"redirlog","[here,file,off]",setoutput}, + {"param","[prio]",setparam}, + {"history","[list,reset]",history_cmd}, + {"","",NULL}, }; -void client_printf(const char *message, ...) -{ - va_list va_args; - - va_start(va_args, message); - if (telnetparams.new_socket > 0) - { - vsnprintf(telnetparams.msgbuff,sizeof(telnetparams.msgbuff)-1,message, va_args); - send(telnetparams.new_socket,telnetparams.msgbuff , strlen(telnetparams.msgbuff), MSG_NOSIGNAL); - } - else - { - vprintf(message, va_args); - } - va_end(va_args); - return ; +void client_printf(const char *message, ...) { + va_list va_args; + va_start(va_args, message); + + if (telnetparams.new_socket > 0) { + vsnprintf(telnetparams.msgbuff,sizeof(telnetparams.msgbuff)-1,message, va_args); + send(telnetparams.new_socket,telnetparams.msgbuff , strlen(telnetparams.msgbuff), MSG_NOSIGNAL); + } else { + vprintf(message, va_args); + } + + va_end(va_args); + return ; } #define NICE_MAX 19 #define NICE_MIN -20 -void set_sched(pthread_t tid, int pid, int priority) -{ -int rt; -struct sched_param schedp; -int policy; -char strpolicy[10]; +void set_sched(pthread_t tid, int pid, int priority) { + int rt; + struct sched_param schedp; + int policy; + char strpolicy[10]; + //sched_get_priority_max(SCHED_FIFO) + if (priority < NICE_MIN) { + policy=SCHED_FIFO; + sprintf(strpolicy,"%s","fifo"); + schedp.sched_priority= NICE_MIN - priority ; -//sched_get_priority_max(SCHED_FIFO) -if (priority < NICE_MIN) { - policy=SCHED_FIFO; - sprintf(strpolicy,"%s","fifo"); - schedp.sched_priority= NICE_MIN - priority ; - if ( (schedp.sched_priority < sched_get_priority_min(SCHED_FIFO)) || - (schedp.sched_priority > sched_get_priority_max(SCHED_FIFO)) ) { - client_printf("Error: %i invalid prio, should be %i to %i, \n", - priority, NICE_MIN -sched_get_priority_min(SCHED_FIFO), - NICE_MIN - sched_get_priority_max(SCHED_FIFO) ); - } -} else if (priority > NICE_MAX) { - policy=SCHED_IDLE; - sprintf(strpolicy,"%s","idle"); - schedp.sched_priority=0; -} else { - policy=SCHED_OTHER; - sprintf(strpolicy,"%s","other"); - schedp.sched_priority=0; -} - -if( tid != 0) { - rt = pthread_setschedparam(tid, policy, &schedp); -} else if(pid > 0) { - rt = sched_setscheduler( pid, policy,&schedp); -} else { - rt= -1; - client_printf("Error: no pid or tid specified\n"); -} - -if (rt != 0) { - client_printf("Error %i: %s modifying sched param to %s:%i, \n", - errno,strerror(errno),strpolicy,schedp.sched_priority); -} else { - client_printf("policy set to %s, priority %i\n",strpolicy,schedp.sched_priority); - if ( policy==SCHED_OTHER) { - rt = getpriority(PRIO_PROCESS,tid); - if (rt != -1) { - rt = setpriority(PRIO_PROCESS,tid,priority); - if (rt < 0) { - client_printf("Error %i: %s trying to set nice value of thread %u to %i\n", - errno,strerror(errno),tid,priority); - } - } else { - client_printf("Error %i: %s trying to get nice value of thread %u \n", - errno,strerror(errno),tid); - } + if ( (schedp.sched_priority < sched_get_priority_min(SCHED_FIFO)) || + (schedp.sched_priority > sched_get_priority_max(SCHED_FIFO)) ) { + client_printf("Error: %i invalid prio, should be %i to %i, \n", + priority, NICE_MIN -sched_get_priority_min(SCHED_FIFO), + NICE_MIN - sched_get_priority_max(SCHED_FIFO) ); } -} + } else if (priority > NICE_MAX) { + policy=SCHED_IDLE; + sprintf(strpolicy,"%s","idle"); + schedp.sched_priority=0; + } else { + policy=SCHED_OTHER; + sprintf(strpolicy,"%s","other"); + schedp.sched_priority=0; + } + if( tid != 0) { + rt = pthread_setschedparam(tid, policy, &schedp); + } else if(pid > 0) { + rt = sched_setscheduler( pid, policy,&schedp); + } else { + rt= -1; + client_printf("Error: no pid or tid specified\n"); + } + if (rt != 0) { + client_printf("Error %i: %s modifying sched param to %s:%i, \n", + errno,strerror(errno),strpolicy,schedp.sched_priority); + } else { + client_printf("policy set to %s, priority %i\n",strpolicy,schedp.sched_priority); -if ( policy == SCHED_OTHER) - { - if ( tid > 0 && tid != pthread_self()) - { - client_printf("setting nice value using a thread id not implemented....\n"); - } - else if (pid > 0) - { - errno=0; - rt = setpriority(PRIO_PROCESS,pid,priority); - if (rt != 0) - { - client_printf("Error %i: %s calling setpriority, \n",errno,strerror(errno)); + if ( policy==SCHED_OTHER) { + rt = getpriority(PRIO_PROCESS,tid); + + if (rt != -1) { + rt = setpriority(PRIO_PROCESS,tid,priority); + + if (rt < 0) { + client_printf("Error %i: %s trying to set nice value of thread %u to %i\n", + errno,strerror(errno),tid,priority); } - else - { + } else { + client_printf("Error %i: %s trying to get nice value of thread %u \n", + errno,strerror(errno),tid); + } + } + } + + if ( policy == SCHED_OTHER) { + if ( tid > 0 && tid != pthread_self()) { + client_printf("setting nice value using a thread id not implemented....\n"); + } else if (pid > 0) { + errno=0; + rt = setpriority(PRIO_PROCESS,pid,priority); + + if (rt != 0) { + client_printf("Error %i: %s calling setpriority, \n",errno,strerror(errno)); + } else { client_printf("nice value set to %i\n",priority); - } - } - } + } + } + } } -void set_affinity(pthread_t tid, int pid, int coreid) -{ -cpu_set_t cpuset; -int rt; - +void set_affinity(pthread_t tid, int pid, int coreid) { + cpu_set_t cpuset; + int rt; CPU_ZERO(&cpuset); CPU_SET(coreid, &cpuset); + if (tid > 0) { - rt = pthread_setaffinity_np((pthread_t)tid, sizeof(cpu_set_t), &cpuset); - } else if (pid > 0){ - rt = sched_setaffinity((pid_t)pid, sizeof(cpu_set_t), &cpuset); + rt = pthread_setaffinity_np((pthread_t)tid, sizeof(cpu_set_t), &cpuset); + } else if (pid > 0) { + rt = sched_setaffinity((pid_t)pid, sizeof(cpu_set_t), &cpuset); } else { - rt= -1; + rt= -1; + } + + if (rt != 0) { + client_printf("Error %i: %s calling , xxx_setaffinity...\n",errno,strerror(errno)); + } else { + client_printf("thread %i affinity set to %i\n",(pid==0)?(int)tid:pid,coreid); } - if (rt != 0) - { - client_printf("Error %i: %s calling , xxx_setaffinity...\n",errno,strerror(errno)); - } - else - { - client_printf("thread %i affinity set to %i\n",(pid==0)?(int)tid:pid,coreid); - } } /*------------------------------------------------------------------------------------*/ /* @@ -246,551 +236,532 @@ function implementing telnet server specific commands, parameters of the telnet_cmdarray table */ -void redirstd(char *newfname,telnet_printfunc_t prnt ) -{ -FILE *fd; - fd=freopen(newfname, "w", stdout); - if (fd == NULL) - { - prnt("ERROR: stdout redir to %s error %s",strerror(errno)); - } - fd=freopen(newfname, "w", stderr); - if (fd == NULL) - { - prnt("ERROR: stderr redir to %s error %s",strerror(errno)); - } +void redirstd(char *newfname,telnet_printfunc_t prnt ) { + FILE *fd; + fd=freopen(newfname, "w", stdout); + + if (fd == NULL) { + prnt("ERROR: stdout redir to %s error %s",strerror(errno)); + } + + fd=freopen(newfname, "w", stderr); + + if (fd == NULL) { + prnt("ERROR: stderr redir to %s error %s",strerror(errno)); + } } -int setoutput(char *buff, int debug, telnet_printfunc_t prnt) -{ - -char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE]; -char *logfname; -char stdout_str[64]; - - +int setoutput(char *buff, int debug, telnet_printfunc_t prnt) { + char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE]; + char *logfname; + char stdout_str[64]; #define LOGFILE "logfile.log" -memset(cmds,0,sizeof(cmds)); -sscanf(buff,"%9s %32s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] ); -if (strncasecmp(cmds[0],"here",4) == 0) - { - fflush(stdout); - sprintf(stdout_str,"/proc/%i/fd/%i",getpid(),telnetparams.new_socket); - dup2(telnetparams.new_socket,fileno(stdout)); -// freopen(stdout_str, "w", stdout); -// freopen(stdout_str, "w", stderr); - dup2(telnetparams.new_socket,fileno(stderr)); - prnt("Log output redirected to this terminal (%s)\n",stdout_str); - } -if (strncasecmp(cmds[0],"file",4) == 0) - { - if (cmds[1][0] == 0) + memset(cmds,0,sizeof(cmds)); + sscanf(buff,"%9s %32s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] ); + + if (strncasecmp(cmds[0],"here",4) == 0) { + fflush(stdout); + sprintf(stdout_str,"/proc/%i/fd/%i",getpid(),telnetparams.new_socket); + dup2(telnetparams.new_socket,fileno(stdout)); + // freopen(stdout_str, "w", stdout); + // freopen(stdout_str, "w", stderr); + dup2(telnetparams.new_socket,fileno(stderr)); + prnt("Log output redirected to this terminal (%s)\n",stdout_str); + } + + if (strncasecmp(cmds[0],"file",4) == 0) { + if (cmds[1][0] == 0) logfname=LOGFILE; - else - logfname=cmds[1]; - fflush(stdout); - redirstd(logfname,prnt); + else + logfname=cmds[1]; - } -if (strncasecmp(cmds[0],"off",3) == 0) - { - fflush(stdout); - redirstd("/dev/tty",prnt); - } + fflush(stdout); + redirstd(logfname,prnt); + } -return CMDSTATUS_FOUND; + if (strncasecmp(cmds[0],"off",3) == 0) { + fflush(stdout); + redirstd("/dev/tty",prnt); + } + + return CMDSTATUS_FOUND; } /* setoutput */ -int setparam(char *buff, int debug, telnet_printfunc_t prnt) -{ -char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE]; +int setparam(char *buff, int debug, telnet_printfunc_t prnt) { + char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE]; + memset(cmds,0,sizeof(cmds)); + sscanf(buff,"%9s %9s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] ); + if (strncasecmp(cmds[0],"prio",4) == 0) { + int prio; + prio=(int)strtol(cmds[1],NULL,0); -memset(cmds,0,sizeof(cmds)); -sscanf(buff,"%9s %9s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] ); -if (strncasecmp(cmds[0],"prio",4) == 0) - { - int prio; - prio=(int)strtol(cmds[1],NULL,0); - if (errno == ERANGE) - return CMDSTATUS_VARNOTFOUND; - telnetparams.priority = prio; - set_sched(pthread_self(),0,prio); - return CMDSTATUS_FOUND; - } -if (strncasecmp(cmds[0],"aff",3) == 0) - { - int aff; - aff=(int)strtol(cmds[1],NULL,0); - if (errno == ERANGE) - return CMDSTATUS_VARNOTFOUND; - set_affinity(pthread_self(),0,aff); - return CMDSTATUS_FOUND; - } + if (errno == ERANGE) + return CMDSTATUS_VARNOTFOUND; -return CMDSTATUS_NOTFOUND; + telnetparams.priority = prio; + set_sched(pthread_self(),0,prio); + return CMDSTATUS_FOUND; + } + + if (strncasecmp(cmds[0],"aff",3) == 0) { + int aff; + aff=(int)strtol(cmds[1],NULL,0); + + if (errno == ERANGE) + return CMDSTATUS_VARNOTFOUND; + + set_affinity(pthread_self(),0,aff); + return CMDSTATUS_FOUND; + } + + return CMDSTATUS_NOTFOUND; } /* setparam */ -int history_cmd(char *buff, int debug, telnet_printfunc_t prnt) -{ -char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE]; +int history_cmd(char *buff, int debug, telnet_printfunc_t prnt) { + char cmds[TELNET_MAX_MSGLENGTH/TELNET_CMD_MAXSIZE][TELNET_CMD_MAXSIZE]; + memset(cmds,0,sizeof(cmds)); + sscanf(buff,"%9s %9s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] ); - -memset(cmds,0,sizeof(cmds)); -sscanf(buff,"%9s %9s %9s %9s %9s", cmds[0],cmds[1],cmds[2],cmds[3],cmds[4] ); -if (cmds[0] == NULL) + if (cmds[0] == NULL) return CMDSTATUS_VARNOTFOUND; -if (strncasecmp(cmds[0],"list",4) == 0) - { - HIST_ENTRY **hist = history_list(); - if (hist) { - for (int i = 0; hist[i]; i++) { - prnt ("%d: %s\n", i + history_base, hist[i]->line); - } - } - return CMDSTATUS_FOUND; - } -if (strncasecmp(cmds[0],"reset",5) == 0) - { - clear_history(); - write_history(telnetparams.histfile); - return CMDSTATUS_FOUND; - } -return CMDSTATUS_NOTFOUND; + if (strncasecmp(cmds[0],"list",4) == 0) { + HIST_ENTRY **hist = history_list(); + + if (hist) { + for (int i = 0; hist[i]; i++) { + prnt ("%d: %s\n", i + history_base, hist[i]->line); + } + } + + return CMDSTATUS_FOUND; + } + + if (strncasecmp(cmds[0],"reset",5) == 0) { + clear_history(); + write_history(telnetparams.histfile); + return CMDSTATUS_FOUND; + } + + return CMDSTATUS_NOTFOUND; } /* history_cmd */ /*-------------------------------------------------------------------------------------------------------*/ /* generic commands available for all modules loaded by the server */ -int setgetvar(int moduleindex,char getorset,char *params) -{ -int n,i; -char varname[TELNET_CMD_MAXSIZE]; -char *varval=NULL; +int setgetvar(int moduleindex,char getorset,char *params) { + int n,i; + char varname[TELNET_CMD_MAXSIZE]; + char *varval=NULL; + memset(varname,0,sizeof(varname)); + n = sscanf(params,"%s %ms",varname,&varval); - memset(varname,0,sizeof(varname)); + for ( i=0 ; telnetparams.CmdParsers[moduleindex].var[i].varvalptr != NULL ; i++) { + if ( strncasecmp(telnetparams.CmdParsers[moduleindex].var[i].varname,varname,strlen(telnetparams.CmdParsers[moduleindex].var[i].varname)) == 0) { + if (n > 0 && (getorset == 'g' || getorset == 'G')) { + client_printf("%s, %s = ", telnetparams.CmdParsers[moduleindex].module, + telnetparams.CmdParsers[moduleindex].var[i].varname ); - n = sscanf(params,"%s %ms",varname,&varval); - for ( i=0 ; telnetparams.CmdParsers[moduleindex].var[i].varvalptr != NULL ; i++) - { - if ( strncasecmp(telnetparams.CmdParsers[moduleindex].var[i].varname,varname,strlen(telnetparams.CmdParsers[moduleindex].var[i].varname)) == 0) - { - if (n > 0 && (getorset == 'g' || getorset == 'G')) - { - client_printf("%s, %s = ", telnetparams.CmdParsers[moduleindex].module, - telnetparams.CmdParsers[moduleindex].var[i].varname ); - switch(telnetparams.CmdParsers[moduleindex].var[i].vartype) - { - case TELNET_VARTYPE_INT32: - client_printf("%i\n",*(int32_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_INT64: - client_printf("%lli\n",*(int64_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_INT16: - client_printf("%hi\n",*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_DOUBLE: - client_printf("%g\n",*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_STRING: - client_printf("\"%s\"\n",*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - default: - client_printf("unknown type\n"); - break; - } - } - if (n > 1 && (getorset == 's' || getorset == 'S')) - { - client_printf("%s, %s set to \n", telnetparams.CmdParsers[moduleindex].module, - telnetparams.CmdParsers[moduleindex].var[i].varname); - - switch(telnetparams.CmdParsers[moduleindex].var[i].vartype) - { - case TELNET_VARTYPE_INT32: - *(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (int)strtol(varval,NULL,0); - client_printf("%i\n",*(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_INT16: - *(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (short)strtol(varval,NULL,0); - client_printf("%hi\n",*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_DOUBLE: - *(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = strtod(varval,NULL); - client_printf("%g\n",*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - case TELNET_VARTYPE_STRING: - sprintf(*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr),"%s", varval); - client_printf("\"%s\"\n",*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); - break; - default: - client_printf("unknown type\n"); - break; - } - } - } - } -if (n>1 && varval != NULL) { - free(varval); -} -return CMDSTATUS_VARNOTFOUND; + switch(telnetparams.CmdParsers[moduleindex].var[i].vartype) { + case TELNET_VARTYPE_INT32: + client_printf("%i\n",*(int32_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_INT64: + client_printf("%lli\n",*(int64_t *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_INT16: + client_printf("%hi\n",*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_DOUBLE: + client_printf("%g\n",*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_STRING: + client_printf("\"%s\"\n",*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + default: + client_printf("unknown type\n"); + break; + } + } + + if (n > 1 && (getorset == 's' || getorset == 'S')) { + client_printf("%s, %s set to \n", telnetparams.CmdParsers[moduleindex].module, + telnetparams.CmdParsers[moduleindex].var[i].varname); + + switch(telnetparams.CmdParsers[moduleindex].var[i].vartype) { + case TELNET_VARTYPE_INT32: + *(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (int)strtol(varval,NULL,0); + client_printf("%i\n",*(int *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_INT16: + *(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = (short)strtol(varval,NULL,0); + client_printf("%hi\n",*(short *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_DOUBLE: + *(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr) = strtod(varval,NULL); + client_printf("%g\n",*(double *)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + case TELNET_VARTYPE_STRING: + sprintf(*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr),"%s", varval); + client_printf("\"%s\"\n",*(char **)(telnetparams.CmdParsers[moduleindex].var[i].varvalptr)); + break; + + default: + client_printf("unknown type\n"); + break; + } + } + } + } + + if (n>1 && varval != NULL) { + free(varval); + } + + return CMDSTATUS_VARNOTFOUND; } /*----------------------------------------------------------------------------------------------------*/ -char *get_time(char *buff,int bufflen) -{ - -struct tm tmstruct; -time_t now = time (0); -strftime (buff, bufflen, "%Y-%m-%d %H:%M:%S.000", localtime_r(&now,&tmstruct)); -return buff; +char *get_time(char *buff,int bufflen) { + struct tm tmstruct; + time_t now = time (0); + strftime (buff, bufflen, "%Y-%m-%d %H:%M:%S.000", localtime_r(&now,&tmstruct)); + return buff; } -int process_command(char *buf) -{ -int i,j,k; -char modulename[TELNET_CMD_MAXSIZE]; -char cmd[TELNET_CMD_MAXSIZE]; -char cmdb[TELNET_MAX_MSGLENGTH]; -char *bufbck; -int rt; +int process_command(char *buf) { + int i,j,k; + char modulename[TELNET_CMD_MAXSIZE]; + char cmd[TELNET_CMD_MAXSIZE]; + char cmdb[TELNET_MAX_MSGLENGTH]; + char *bufbck; + int rt; + memset(modulename,0,sizeof(modulename)); + memset(cmd,0,sizeof(cmd)); + memset(cmdb,0,sizeof(cmdb)); -memset(modulename,0,sizeof(modulename)); -memset(cmd,0,sizeof(cmd)); -memset(cmdb,0,sizeof(cmdb)); -if (strncasecmp(buf,"ex",2) == 0) - return CMDSTATUS_EXIT; + if (strncasecmp(buf,"ex",2) == 0) + return CMDSTATUS_EXIT; -if (strncasecmp(buf,"help",4) == 0) - { - for (i=0; telnetparams.CmdParsers[i].var != NULL && telnetparams.CmdParsers[i].cmd != NULL; i++) - { - client_printf(" module %i = %s:\n",i,telnetparams.CmdParsers[i].module); - for(j=0; telnetparams.CmdParsers[i].var[j].varvalptr != NULL ; j++) - { - client_printf(" %s [get set] %s \n", - telnetparams.CmdParsers[i].module, telnetparams.CmdParsers[i].var[j].varname); - } - for(j=0; telnetparams.CmdParsers[i].cmd[j].cmdfunc != NULL ; j++) - { - client_printf(" %s %s %s\n", - telnetparams.CmdParsers[i].module,telnetparams.CmdParsers[i].cmd[j].cmdname, - telnetparams.CmdParsers[i].cmd[j].helpstr); - } + if (strncasecmp(buf,"help",4) == 0) { + for (i=0; telnetparams.CmdParsers[i].var != NULL && telnetparams.CmdParsers[i].cmd != NULL; i++) { + client_printf(" module %i = %s:\n",i,telnetparams.CmdParsers[i].module); + + for(j=0; telnetparams.CmdParsers[i].var[j].varvalptr != NULL ; j++) { + client_printf(" %s [get set] %s \n", + telnetparams.CmdParsers[i].module, telnetparams.CmdParsers[i].var[j].varname); + } + + for(j=0; telnetparams.CmdParsers[i].cmd[j].cmdfunc != NULL ; j++) { + client_printf(" %s %s %s\n", + telnetparams.CmdParsers[i].module,telnetparams.CmdParsers[i].cmd[j].cmdname, + telnetparams.CmdParsers[i].cmd[j].helpstr); + } } - return CMDSTATUS_FOUND; - } -memset(modulename,0,sizeof(modulename)); -memset(cmd,0,sizeof(cmd)); -memset(cmdb,0,sizeof(cmdb)); -bufbck=strdup(buf); -rt=CMDSTATUS_NOTFOUND; -j = sscanf(buf,"%9s %9s %[^\t\n]",modulename,cmd,cmdb); -if (telnetparams.telnetdbg > 0) - printf("process_command: %i words, module=%s cmd=%s, parameters= %s\n",j,modulename,cmd,cmdb); -for (i=0; j>=2 && telnetparams.CmdParsers[i].var != NULL && telnetparams.CmdParsers[i].cmd != NULL; i++) - { - if ( (strncasecmp(telnetparams.CmdParsers[i].module,modulename,strlen(telnetparams.CmdParsers[i].module)) == 0)) - { - if (strncasecmp(cmd,"getall",7) == 0 ) - { - for(j=0; telnetparams.CmdParsers[i].var[j].varvalptr != NULL ; j++) - { - setgetvar(i,'g',telnetparams.CmdParsers[i].var[j].varname); - } - rt= CMDSTATUS_FOUND; - } - else if (strncasecmp(cmd,"get",3) == 0 || strncasecmp(cmd,"set",3) == 0) - { - rt= setgetvar(i,cmd[0],cmdb); - } - else - { - for (k=0 ; telnetparams.CmdParsers[i].cmd[k].cmdfunc != NULL ; k++) - { - if (strncasecmp(cmd, telnetparams.CmdParsers[i].cmd[k].cmdname,sizeof(telnetparams.CmdParsers[i].cmd[k].cmdname)) == 0) - { - telnetparams.CmdParsers[i].cmd[k].cmdfunc(cmdb, telnetparams.telnetdbg, client_printf); - rt= CMDSTATUS_FOUND; - } - } /* for k */ - }/* else */ - }/* strncmp: module name test */ - else if (strncasecmp(modulename,"loop",4) == 0 ) - { - int lc; - int f = fcntl(telnetparams.new_socket,F_GETFL); - fcntl (telnetparams.new_socket, F_SETFL, O_NONBLOCK | f); - for(lc=0; lc 0 ) - { - break; - } - } - fcntl (telnetparams.new_socket, F_SETFL, f); - rt= CMDSTATUS_FOUND; - } /* loop */ - } /* for i */ -free(bufbck); -return rt; + return CMDSTATUS_FOUND; + } + + memset(modulename,0,sizeof(modulename)); + memset(cmd,0,sizeof(cmd)); + memset(cmdb,0,sizeof(cmdb)); + bufbck=strdup(buf); + rt=CMDSTATUS_NOTFOUND; + j = sscanf(buf,"%9s %9s %[^\t\n]",modulename,cmd,cmdb); + + if (telnetparams.telnetdbg > 0) + printf("process_command: %i words, module=%s cmd=%s, parameters= %s\n",j,modulename,cmd,cmdb); + + for (i=0; j>=2 && telnetparams.CmdParsers[i].var != NULL && telnetparams.CmdParsers[i].cmd != NULL; i++) { + if ( (strncasecmp(telnetparams.CmdParsers[i].module,modulename,strlen(telnetparams.CmdParsers[i].module)) == 0)) { + if (strncasecmp(cmd,"getall",7) == 0 ) { + for(j=0; telnetparams.CmdParsers[i].var[j].varvalptr != NULL ; j++) { + setgetvar(i,'g',telnetparams.CmdParsers[i].var[j].varname); + } + + rt= CMDSTATUS_FOUND; + } else if (strncasecmp(cmd,"get",3) == 0 || strncasecmp(cmd,"set",3) == 0) { + rt= setgetvar(i,cmd[0],cmdb); + } else { + for (k=0 ; telnetparams.CmdParsers[i].cmd[k].cmdfunc != NULL ; k++) { + if (strncasecmp(cmd, telnetparams.CmdParsers[i].cmd[k].cmdname,sizeof(telnetparams.CmdParsers[i].cmd[k].cmdname)) == 0) { + telnetparams.CmdParsers[i].cmd[k].cmdfunc(cmdb, telnetparams.telnetdbg, client_printf); + rt= CMDSTATUS_FOUND; + } + } /* for k */ + }/* else */ + }/* strncmp: module name test */ + else if (strncasecmp(modulename,"loop",4) == 0 ) { + int lc; + int f = fcntl(telnetparams.new_socket,F_GETFL); + fcntl (telnetparams.new_socket, F_SETFL, O_NONBLOCK | f); + + for(lc=0; lc 0 ) { + break; + } + } + + fcntl (telnetparams.new_socket, F_SETFL, f); + rt= CMDSTATUS_FOUND; + } /* loop */ + } /* for i */ + + free(bufbck); + return rt; } -void run_telnetsrv(void) -{ -int sock; -struct sockaddr_in name; -char buf[TELNET_MAX_MSGLENGTH]; -struct sockaddr cli_addr; -unsigned int cli_len = sizeof(cli_addr); -int readc , filled; +void run_telnetsrv(void) { + int sock; + struct sockaddr_in name; + char buf[TELNET_MAX_MSGLENGTH]; + struct sockaddr cli_addr; + unsigned int cli_len = sizeof(cli_addr); + int readc , filled; + int status; + int optval = 1; + pthread_setname_np(pthread_self(), "telnet"); + set_sched(pthread_self(),0,telnetparams.priority); + sock = socket(AF_INET, SOCK_STREAM, 0); -int status; -int optval = 1; - -pthread_setname_np(pthread_self(), "telnet"); -set_sched(pthread_self(),0,telnetparams.priority); -sock = socket(AF_INET, SOCK_STREAM, 0); -if (sock < 0) + if (sock < 0) fprintf(stderr,"[TELNETSRV] Error %s on socket call\n",strerror(errno)); -setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval); -name.sin_family = AF_INET; -if (telnetparams.listenaddr == 0) + setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof optval); + name.sin_family = AF_INET; + + if (telnetparams.listenaddr == 0) name.sin_addr.s_addr = INADDR_ANY; -else + else name.sin_addr.s_addr = telnetparams.listenaddr; -name.sin_port = htons((unsigned short)(telnetparams.listenport)); -if(bind(sock, (void*) &name, sizeof(name))) - fprintf(stderr,"[TELNETSRV] Error %s on bind call\n",strerror(errno)); -if(listen(sock, 1) == -1) - fprintf(stderr,"[TELNETSRV] Error %s on listen call\n",strerror(errno)); + name.sin_port = htons((unsigned short)(telnetparams.listenport)); + if(bind(sock, (void *) &name, sizeof(name))) + fprintf(stderr,"[TELNETSRV] Error %s on bind call\n",strerror(errno)); -using_history(); + if(listen(sock, 1) == -1) + fprintf(stderr,"[TELNETSRV] Error %s on listen call\n",strerror(errno)); -printf("\nInitializing telnet server...\n"); -while( (telnetparams.new_socket = accept(sock, &cli_addr, &cli_len)) ) - { - printf("[TELNETSRV] Telnet client connected....\n"); + using_history(); + printf("\nInitializing telnet server...\n"); + + while( (telnetparams.new_socket = accept(sock, &cli_addr, &cli_len)) ) { + printf("[TELNETSRV] Telnet client connected....\n"); read_history(telnetparams.histfile); stifle_history(telnetparams.histsize); - if(telnetparams.new_socket < 0) - fprintf(stderr,"[TELNETSRV] Error %s on accept call\n",strerror(errno)); - while(telnetparams.new_socket>0) - { - filled = 0; - memset(buf,0,sizeof(buf)); - while(filled < ( TELNET_MAX_MSGLENGTH-1)) - { - readc = recv(telnetparams.new_socket, buf+filled, TELNET_MAX_MSGLENGTH-filled-1, 0); - if(!readc) - break; - filled += readc; - if(buf[filled-1] == '\n') - { - buf[filled-1] = 0; - - break; - } - } - if(!readc) - { - printf ("[TELNETSRV] Telnet Client disconnected.\n"); - break; - } - if (telnetparams.telnetdbg > 0) - printf("[TELNETSRV] Command received: readc %i filled %i \"%s\"\n", readc, filled ,buf); - if (buf[0] == '!') { - if (buf[1] == '!') { - sprintf(buf,"%s","telnet history list"); - } else { - HIST_ENTRY *hisentry = history_get(strtol(buf+1,NULL,0)); - if (hisentry) { - char msg[TELNET_MAX_MSGLENGTH + sizeof(TELNET_PROMPT) +10]; - sprintf(buf,"%s",hisentry->line); - sprintf(msg,"%s %s\n",TELNET_PROMPT, hisentry->line); - send(telnetparams.new_socket, msg, strlen(msg), MSG_NOSIGNAL); - } - } - } - if (strlen(buf) > 2 ) - { - status=process_command(buf); - } - else - status=CMDSTATUS_NOCMD; - - if (status != CMDSTATUS_EXIT) { - if (status == CMDSTATUS_NOTFOUND) { - char msg[TELNET_MAX_MSGLENGTH + 50]; - sprintf(msg,"Error: \n %s\n is not a softmodem command\n",buf); - send(telnetparams.new_socket, msg, strlen(msg), MSG_NOSIGNAL); - } else if (status == CMDSTATUS_FOUND) { - add_history(buf); - } - send(telnetparams.new_socket, TELNET_PROMPT, sizeof(TELNET_PROMPT), MSG_NOSIGNAL); - } else { - printf ("[TELNETSRV] Closing telnet connection...\n"); - break; - } + if(telnetparams.new_socket < 0) + fprintf(stderr,"[TELNETSRV] Error %s on accept call\n",strerror(errno)); + + while(telnetparams.new_socket>0) { + filled = 0; + memset(buf,0,sizeof(buf)); + + while(filled < ( TELNET_MAX_MSGLENGTH-1)) { + readc = recv(telnetparams.new_socket, buf+filled, TELNET_MAX_MSGLENGTH-filled-1, 0); + + if(!readc) + break; + + filled += readc; + + if(buf[filled-1] == '\n') { + buf[filled-1] = 0; + break; + } + } + + if(!readc) { + printf ("[TELNETSRV] Telnet Client disconnected.\n"); + break; + } + + if (telnetparams.telnetdbg > 0) + printf("[TELNETSRV] Command received: readc %i filled %i \"%s\"\n", readc, filled ,buf); + + if (buf[0] == '!') { + if (buf[1] == '!') { + sprintf(buf,"%s","telnet history list"); + } else { + HIST_ENTRY *hisentry = history_get(strtol(buf+1,NULL,0)); + + if (hisentry) { + char msg[TELNET_MAX_MSGLENGTH + sizeof(TELNET_PROMPT) +10]; + sprintf(buf,"%s",hisentry->line); + sprintf(msg,"%s %s\n",TELNET_PROMPT, hisentry->line); + send(telnetparams.new_socket, msg, strlen(msg), MSG_NOSIGNAL); + } + } + } + + if (strlen(buf) > 2 ) { + status=process_command(buf); + } else + status=CMDSTATUS_NOCMD; + + if (status != CMDSTATUS_EXIT) { + if (status == CMDSTATUS_NOTFOUND) { + char msg[TELNET_MAX_MSGLENGTH + 50]; + sprintf(msg,"Error: \n %s\n is not a softmodem command\n",buf); + send(telnetparams.new_socket, msg, strlen(msg), MSG_NOSIGNAL); + } else if (status == CMDSTATUS_FOUND) { + add_history(buf); + } + + send(telnetparams.new_socket, TELNET_PROMPT, sizeof(TELNET_PROMPT), MSG_NOSIGNAL); + } else { + printf ("[TELNETSRV] Closing telnet connection...\n"); + break; + } } + write_history(telnetparams.histfile); clear_history(); close(telnetparams.new_socket); printf ("[TELNETSRV] Telnet server waitting for connection...\n"); - } -close(sock); -return; + } + + close(sock); + return; } /*------------------------------------------------------------------------------------------------*/ /* set_telnetmodule loads the commands delivered with the telnet server * * - * + * */ -void exec_moduleinit(char *modname) -{ -void (*fptr)(void); -char initfunc[TELNET_CMD_MAXSIZE+9]; +void exec_moduleinit(char *modname) { + void (*fptr)(void); + char initfunc[TELNET_CMD_MAXSIZE+9]; - if (strlen(modname) > TELNET_CMD_MAXSIZE) - { - fprintf(stderr,"[TELNETSRV] module %s not loaded, name exceeds the %i size limit\n", - modname, TELNET_CMD_MAXSIZE); - return; - } - sprintf(initfunc,"add_%s_cmds",modname); - fptr = dlsym(RTLD_DEFAULT,initfunc); - if ( fptr != NULL) - { - fptr(); - } - else - { - fprintf(stderr,"[TELNETSRV] couldn't find %s for module %s \n",initfunc,modname); - } + if (strlen(modname) > TELNET_CMD_MAXSIZE) { + fprintf(stderr,"[TELNETSRV] module %s not loaded, name exceeds the %i size limit\n", + modname, TELNET_CMD_MAXSIZE); + return; + } + + sprintf(initfunc,"add_%s_cmds",modname); + fptr = dlsym(RTLD_DEFAULT,initfunc); + + if ( fptr != NULL) { + fptr(); + } else { + fprintf(stderr,"[TELNETSRV] couldn't find %s for module %s \n",initfunc,modname); + } } -int add_embeddedmodules(void) -{ -int ret=0; +int add_embeddedmodules(void) { + int ret=0; + for(int i=0; i Date: Tue, 22 Jan 2019 18:10:11 +0100 Subject: [PATCH 111/125] fix some cppcheck errors and warnings in config module and T Tracer --- common/config/config_cmdline.c | 2 +- common/config/config_load_configmodule.c | 2 +- common/utils/T/T.c | 6 +- common/utils/T/T.h | 81 ++--- common/utils/msc/msc.c | 419 ++++++++++++++++------- 5 files changed, 346 insertions(+), 164 deletions(-) diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c index 9be860aaf4..95e9805cab 100644 --- a/common/config/config_cmdline.c +++ b/common/config/config_cmdline.c @@ -171,7 +171,7 @@ int config_check_unknown_cmdlineopt(char *prefix) { if (strcmp(prefix,CONFIG_CHECKALLSECTIONS) == 0) finalcheck = 1; else if (strlen(prefix) > 0) { - sprintf(testprefix,"--%s.",prefix); + sprintf(testprefix,"--%.*s.",CONFIG_MAXOPTLENGTH-1,prefix); } } diff --git a/common/config/config_load_configmodule.c b/common/config/config_load_configmodule.c index b3cf7c02c5..a6316d6c3f 100644 --- a/common/config/config_load_configmodule.c +++ b/common/config/config_load_configmodule.c @@ -345,7 +345,7 @@ void free_configmodule(void) { if( cfgptr->cfgmode != NULL) free(cfgptr->cfgmode); - printf ("[CONFIG] free %u config parameter pointers\n",cfgptr->num_cfgP); + printf ("[CONFIG] free %i config parameter pointers\n",cfgptr->num_cfgP); for (int i=0; inum_cfgP; i++) { if ( cfgptr->cfgP[i] != NULL) free(cfgptr->cfgP[i]); diff --git a/common/utils/T/T.c b/common/utils/T/T.c index 8a84cba1f8..8ee359b77f 100644 --- a/common/utils/T/T.c +++ b/common/utils/T/T.c @@ -202,9 +202,9 @@ void T_init(int remote_port, int wait_for_tracer, int dont_fork) { } void T_Config_Init(void) { - int T_port; /* by default we wait for the tracer */ - int T_nowait; /* default port to listen to to wait for the tracer */ - int T_dont_fork; /* default is to fork, see 'T_init' to understand */ + int T_port=TTRACER_DEFAULT_PORTNUM; /* by default we wait for the tracer */ + int T_nowait=0; /* default port to listen to to wait for the tracer */ + int T_dont_fork=0; /* default is to fork, see 'T_init' to understand */ paramdef_t ttraceparams[] = CMDLINE_TTRACEPARAMS_DESC; /* for a cleaner config file, TTracer params should be defined in a * specific section... diff --git a/common/utils/T/T.h b/common/utils/T/T.h index 18e4a590d9..626dbafd25 100644 --- a/common/utils/T/T.h +++ b/common/utils/T/T.h @@ -8,7 +8,7 @@ #include "T_defs.h" #ifdef T_SEND_TIME -#include + #include #endif /* T message IDs */ @@ -76,13 +76,13 @@ T_BUFFER_MAX - T_LOCAL_size, T_PUT_printf_deref x); \ if (T_PUT_len < 0) { \ printf("%s:%d:%s: you can't read this, or can you?", \ - __FILE__, __LINE__, __FUNCTION__); \ + __FILE__, __LINE__, __FUNCTION__); \ abort(); \ } \ if (T_PUT_len >= T_BUFFER_MAX - T_LOCAL_size) { \ printf("%s:%d:%s: cannot put argument %d in T macro, not enough space" \ - ", consider increasing T_BUFFER_MAX (%d)\n", \ - __FILE__, __LINE__, __FUNCTION__, argnum, T_BUFFER_MAX); \ + ", consider increasing T_BUFFER_MAX (%d)\n", \ + __FILE__, __LINE__, __FUNCTION__, argnum, T_BUFFER_MAX); \ abort(); \ } \ T_LOCAL_size += T_PUT_len + 1; \ @@ -97,9 +97,9 @@ struct T_header; /* T macro tricks */ extern int T_stdout; #define TN(...) TN_N(__VA_ARGS__,33,32,31,30,29,28,27,26,25,24,23,22,21,\ - 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)(__VA_ARGS__) + 20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)(__VA_ARGS__) #define TN_N(n0,n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12,n13,n14,n15,n16,n17,\ - n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n,...) T##n + n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n,...) T##n #define T(...) do { if (T_stdout == 0) TN(__VA_ARGS__); } while (0) /* type used to send arbitrary buffer data */ @@ -119,30 +119,30 @@ extern int *T_active; */ #if BASIC_SIMULATOR # define T_GET_SLOT \ - do { \ - extern volatile uint64_t T_next_id; \ - extern volatile uint64_t T_active_id; \ - uint64_t id; \ - /* get a ticket */ \ - id = __sync_fetch_and_add(&T_next_id, 1); \ - /* wait for our turn */ \ - while (id != __sync_fetch_and_add(&T_active_id, 0)) /* busy wait */; \ - /* this is our turn, try to acquire the slot until it's free */ \ - do { \ - T_LOCAL_busy = __sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x01); \ - if (T_LOCAL_busy & 0x01) usleep(100); \ - } while (T_LOCAL_busy & 0x01); \ - /* check that there are still some tickets */ \ - if (__sync_fetch_and_add(&T_active_id, 0) == 0xffffffffffffffff) { \ - printf("T: reached the end of times, bye...\n"); \ - abort(); \ - } \ - /* free our ticket, which signals the next waiter that it's its turn */ \ - (void)__sync_fetch_and_add(&T_active_id, 1); \ - } while (0) + do { \ + extern volatile uint64_t T_next_id; \ + extern volatile uint64_t T_active_id; \ + uint64_t id; \ + /* get a ticket */ \ + id = __sync_fetch_and_add(&T_next_id, 1); \ + /* wait for our turn */ \ + while (id != __sync_fetch_and_add(&T_active_id, 0)) /* busy wait */; \ + /* this is our turn, try to acquire the slot until it's free */ \ + do { \ + T_LOCAL_busy = __sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x01); \ + if (T_LOCAL_busy & 0x01) usleep(100); \ + } while (T_LOCAL_busy & 0x01); \ + /* check that there are still some tickets */ \ + if (__sync_fetch_and_add(&T_active_id, 0) == 0xffffffffffffffff) { \ + printf("T: reached the end of times, bye...\n"); \ + abort(); \ + } \ + /* free our ticket, which signals the next waiter that it's its turn */ \ + (void)__sync_fetch_and_add(&T_active_id, 1); \ + } while (0) #else # define T_GET_SLOT \ - T_LOCAL_busy = __sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x01); + T_LOCAL_busy = __sync_fetch_and_or(&T_cache[T_LOCAL_slot].busy, 0x01); #endif /* used at header of Tn, allocates buffer */ @@ -172,8 +172,8 @@ extern int *T_active; #define T_CHECK_SIZE(len, argnum) \ if (T_LOCAL_size + (len) > T_BUFFER_MAX) { \ printf("%s:%d:%s: cannot put argument %d in T macro, not enough space" \ - ", consider increasing T_BUFFER_MAX (%d)\n", \ - __FILE__, __LINE__, __FUNCTION__, argnum, T_BUFFER_MAX); \ + ", consider increasing T_BUFFER_MAX (%d)\n", \ + __FILE__, __LINE__, __FUNCTION__, argnum, T_BUFFER_MAX); \ abort(); \ } @@ -598,20 +598,21 @@ extern int *T_active; #define TTRACER_CONFIG_PREFIX "TTracer" -/*------------------------------------------------------------------------------------------------------------------------------------------*/ -/* configuration parameters for TTRACE utility */ -/* optname helpstr paramflags XXXptr defXXXval type numelt */ -/*------------------------------------------------------------------------------------------------------------------------------------------*/ +/*-------------------------------------------------------------------------------------------------------------------------------------------------*/ +/* configuration parameters for TTRACE utility */ +/* optname helpstr paramflags XXXptr defXXXval type numelt */ +/*-------------------------------------------------------------------------------------------------------------------------------------------------*/ +#define TTRACER_DEFAULT_PORTNUM 2021 #define CMDLINE_TTRACEPARAMS_DESC { \ -{"T_port", CONFIG_HLP_TPORT, 0, iptr:&T_port, defintval:2021, TYPE_INT, 0}, \ -{"T_nowait", CONFIG_HLP_NOTWAIT, PARAMFLAG_BOOL, iptr:&T_nowait, defintval:0, TYPE_INT, 0}, \ -{"T_dont_fork", CONFIG_HLP_TNOFORK, PARAMFLAG_BOOL, iptr:&T_dont_fork, defintval:0, TYPE_INT, 0}, \ -{"T_stdout", CONFIG_HLP_STDOUT, PARAMFLAG_BOOL, iptr:&T_stdout, defintval:1, TYPE_INT, 0}, \ -} + {"T_port", CONFIG_HLP_TPORT, 0, iptr:&T_port, defintval:TTRACER_DEFAULT_PORTNUM, TYPE_INT, 0},\ + {"T_nowait", CONFIG_HLP_NOTWAIT, PARAMFLAG_BOOL, iptr:&T_nowait, defintval:0, TYPE_INT, 0},\ + {"T_dont_fork", CONFIG_HLP_TNOFORK, PARAMFLAG_BOOL, iptr:&T_dont_fork, defintval:0, TYPE_INT, 0},\ + {"T_stdout", CONFIG_HLP_STDOUT, PARAMFLAG_BOOL, iptr:&T_stdout, defintval:1, TYPE_INT, 0},\ + } - /* log on stdout */ +/* log on stdout */ void T_init(int remote_port, int wait_for_tracer, int dont_fork); void T_Config_Init(void); #else /* T_TRACER */ diff --git a/common/utils/msc/msc.c b/common/utils/msc/msc.c index 4c9e3827b0..7cb6da21b5 100644 --- a/common/utils/msc/msc.c +++ b/common/utils/msc/msc.c @@ -49,7 +49,7 @@ //------------------------------- -FILE* g_msc_fd; +FILE *g_msc_fd; char g_msc_proto2str[MAX_MSC_PROTOS][MSC_MAX_PROTO_NAME_LENGTH]; @@ -70,15 +70,11 @@ void *msc_task(void *args_p) //------------------------------------------------------------------------------ { MessageDef *received_message_p = NULL; -// const char *msg_name = NULL; -// instance_t instance = 0; + // const char *msg_name = NULL; + // instance_t instance = 0; long timer_id; - itti_mark_task_ready(TASK_MSC); - msc_start_use(); - - timer_setup(0, // seconds 50000, // usec TASK_MSC, @@ -91,20 +87,18 @@ void *msc_task(void *args_p) itti_receive_msg(TASK_MSC, &received_message_p); if (received_message_p != NULL) { -// msg_name = ITTI_MSG_NAME (received_message_p); -// instance = ITTI_MSG_INSTANCE (received_message_p); - + // msg_name = ITTI_MSG_NAME (received_message_p); + // instance = ITTI_MSG_INSTANCE (received_message_p); switch (ITTI_MSG_ID(received_message_p)) { - case TIMER_HAS_EXPIRED: { - msc_flush_messages(); + msc_flush_messages(); } break; case TERMINATE_MESSAGE: { fprintf(stderr, " *** Exiting MSC thread\n"); timer_remove(timer_id); - msc_end(); + msc_end(); itti_exit_task(); } break; @@ -119,6 +113,7 @@ void *msc_task(void *args_p) } } } + fprintf(stderr, "Task MSC exiting\n"); return NULL; } @@ -132,15 +127,16 @@ int msc_init(const msc_env_t envP, const int max_threadsP) void *pointer_p; char msc_filename[256]; fprintf(stderr, "Initializing MSC logs\n"); + rv = snprintf(msc_filename, 256, "/tmp/openair.msc.%i.log", envP); // TODO NAME - rv = snprintf(msc_filename, 256, "/tmp/openair.msc.%u.log", envP); // TODO NAME - if ((0 >= rv) || (256 < rv)){ + if ((0 >= rv) || (256 < rv)) { fprintf(stderr, "Error in MSC log file name"); } + g_msc_fd = fopen(msc_filename,"w"); AssertFatal(g_msc_fd != NULL, "Could not open MSC log file %s : %s", msc_filename, strerror(errno)); - rv = lfds611_stack_new(&g_msc_memory_stack_p, (lfds611_atom_t)max_threadsP + 2); + if (0 >= rv) { AssertFatal (0, "lfds611_stack_new failed!\n"); } @@ -153,7 +149,7 @@ int msc_init(const msc_env_t envP, const int max_threadsP) for (i=0; i < max_threadsP * 30; i++) { pointer_p = malloc(MSC_MAX_MESSAGE_LENGTH); AssertFatal (pointer_p, "malloc failed!\n"); - rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, pointer_p ); + rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, pointer_p ); AssertFatal (rv, "lfds611_stack_guaranteed_push failed for item %u\n", i); } @@ -161,182 +157,335 @@ int msc_init(const msc_env_t envP, const int max_threadsP) switch (i) { case MSC_IP_UE: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "IP_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_IP_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "IP_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if (envP == MSC_E_UTRAN_LIPA) { msc_log_declare_proto(i); } + break; + case MSC_NAS_UE: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "NAS_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_RRC_UE: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "RRC_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_PDCP_UE: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "PDCP_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_RLC_UE: - rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "RLC_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} - if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { + rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "RLC_UE"); + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_MAC_UE: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "MAC_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} - if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { - msc_log_declare_proto(i); + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; } + + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { + msc_log_declare_proto(i); + } + break; + case MSC_PHY_UE: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "PHY_UE"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_PHY_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "PHY_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_MAC_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "MAC_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_RLC_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "RLC_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_PDCP_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "PDCP_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_RRC_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "RRC_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_S1AP_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "S1AP_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_MME_GW) || (envP == MSC_MME)) { msc_log_declare_proto(i); } + break; + case MSC_GTPU_ENB: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "GTPU_ENB"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_GTPU_SGW: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "GTPU_SGW"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_S1AP_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "S1AP_MME"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_MME) || (envP == MSC_E_UTRAN) || (envP == MSC_E_UTRAN_LIPA)) { msc_log_declare_proto(i); } + break; + case MSC_MMEAPP_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "MME_APP"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_MME)) { msc_log_declare_proto(i); } + break; + case MSC_NAS_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "NAS_MME"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + msc_log_declare_proto(i); break; + case MSC_NAS_EMM_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "NAS_EMM"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_MME)) { msc_log_declare_proto(i); } + break; + case MSC_NAS_ESM_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "NAS_ESM"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_MME)) { msc_log_declare_proto(i); } + break; + case MSC_SP_GWAPP_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "SP_GW_MME"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if (envP == MSC_MME_GW) { msc_log_declare_proto(i); } + break; + case MSC_S11_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "S11_MME"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if (envP == MSC_MME) { msc_log_declare_proto(i); } + break; + case MSC_S6A_MME: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "S6A"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_MME)) { msc_log_declare_proto(i); } + break; + case MSC_HSS: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "HSS"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } + if ((envP == MSC_MME_GW) || (envP == MSC_MME)) { msc_log_declare_proto(i); } + break; + default: rv = snprintf(&g_msc_proto2str[i][0], MSC_MAX_PROTO_NAME_LENGTH, "UNKNOWN"); - if (rv >= MSC_MAX_PROTO_NAME_LENGTH) {g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0;} + + if (rv >= MSC_MAX_PROTO_NAME_LENGTH) { + g_msc_proto2str[i][MSC_MAX_PROTO_NAME_LENGTH-1] = 0; + } } } + rv = itti_create_task (TASK_MSC, msc_task, NULL); AssertFatal (rv == 0, "Create task for MSC failed!\n"); fprintf(stderr, "Initializing MSC logs Done\n"); @@ -359,15 +508,17 @@ void msc_flush_messages(void) int rv; msc_queue_item_t *item_p = NULL; - while ((rv = lfds611_queue_dequeue( g_msc_message_queue_p, (void**)&item_p )) == 1) { - if (NULL != item_p->message_str) { - fputs(item_p->message_str, g_msc_fd); - // TODO BIN DATA - rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, item_p->message_str ); - } - // TODO FREE BIN DATA - free(item_p); + while ((rv = lfds611_queue_dequeue( g_msc_message_queue_p, (void **)&item_p )) == 1) { + if (NULL != item_p->message_str) { + fputs(item_p->message_str, g_msc_fd); + // TODO BIN DATA + rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, item_p->message_str ); + } + + // TODO FREE BIN DATA + free(item_p); } + fflush(g_msc_fd); } @@ -377,23 +528,27 @@ void msc_end(void) //------------------------------------------------------------------------------ { int rv; + if (NULL != g_msc_fd ) { - msc_flush_messages(); + msc_flush_messages(); rv = fflush(g_msc_fd); - if (rv != 0) { - fprintf(stderr, "Error while flushing stream of MSC log file: %s", strerror(errno)); - } - rv = fclose(g_msc_fd); + if (rv != 0) { - fprintf(stderr, "Error while closing MSC log file: %s", strerror(errno)); + fprintf(stderr, "Error while flushing stream of MSC log file: %s", strerror(errno)); + } + + rv = fclose(g_msc_fd); + + if (rv != 0) { + fprintf(stderr, "Error while closing MSC log file: %s", strerror(errno)); } } } //------------------------------------------------------------------------------ void msc_log_declare_proto( - const msc_proto_t protoP - ) + const msc_proto_t protoP +) //------------------------------------------------------------------------------ { int rv = 0; @@ -401,47 +556,55 @@ void msc_log_declare_proto( char *char_message_p = NULL; if ((MIN_MSC_PROTOS <= protoP) && (MAX_MSC_PROTOS > protoP)) { - // may be build a memory pool for that also ? - new_item_p = malloc(sizeof(msc_queue_item_t)); - if (NULL != new_item_p) { + // may be build a memory pool for that also ? + new_item_p = malloc(sizeof(msc_queue_item_t)); - rv = lfds611_stack_pop(g_msc_memory_stack_p, (void**)&char_message_p); - if (0 == rv) { - msc_flush_messages(); - rv = lfds611_stack_pop(g_msc_memory_stack_p, (void**)&char_message_p); - } - if (1 == rv) { + if (NULL != new_item_p) { + rv = lfds611_stack_pop(g_msc_memory_stack_p, (void **)&char_message_p); + + if (0 == rv) { + msc_flush_messages(); + rv = lfds611_stack_pop(g_msc_memory_stack_p, (void **)&char_message_p); + } + + if (1 == rv) { rv = snprintf(char_message_p, MSC_MAX_MESSAGE_LENGTH, "%"PRIu64" [PROTO] %d %s\n", __sync_fetch_and_add (&g_message_number, 1), protoP, &g_msc_proto2str[protoP][0]); + if (0 > rv) { fprintf(stderr, "Error while declaring new protocol in MSC: %s", strerror(errno)); } + new_item_p->message_str = char_message_p; new_item_p->message_str_size = rv; new_item_p->message_bin = NULL; new_item_p->message_bin_size = 0; rv = lfds611_queue_enqueue( g_msc_message_queue_p, new_item_p ); - if (0 == rv) { - rv = lfds611_queue_guaranteed_enqueue(g_msc_message_queue_p, new_item_p ); - if (0 == rv) { + + if (0 == rv) { + rv = lfds611_queue_guaranteed_enqueue(g_msc_message_queue_p, new_item_p ); + + if (0 == rv) { fprintf(stderr, "Error while lfds611_queue_guaranteed_enqueue message %s in MSC", char_message_p); - rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); - free(new_item_p); - } - } - return; - } else { - fprintf(stderr, "Error while lfds611_stack_pop()\n"); - } + rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); + free(new_item_p); + } + } + + return; + } else { + fprintf(stderr, "Error while lfds611_stack_pop()\n"); + } + free(new_item_p); - } else { + } else { fprintf(stderr, "Error while malloc in MSC"); - } + } } } //------------------------------------------------------------------------------ void msc_log_event( - const msc_proto_t protoP, - char *format, ...) + const msc_proto_t protoP, + char *format, ...) //------------------------------------------------------------------------------ { va_list args; @@ -450,52 +613,62 @@ void msc_log_event( msc_queue_item_t *new_item_p = NULL; char *char_message_p = NULL; - if ((MIN_MSC_PROTOS > protoP) || (MAX_MSC_PROTOS <= protoP)) { - return; + return; } - new_item_p = malloc(sizeof(msc_queue_item_t)); - if (NULL != new_item_p) { - rv = lfds611_stack_pop(g_msc_memory_stack_p, (void**)&char_message_p); + new_item_p = malloc(sizeof(msc_queue_item_t)); + + if (NULL != new_item_p) { + rv = lfds611_stack_pop(g_msc_memory_stack_p, (void **)&char_message_p); + if (0 == rv) { msc_flush_messages(); - rv = lfds611_stack_pop(g_msc_memory_stack_p, (void**)&char_message_p); + rv = lfds611_stack_pop(g_msc_memory_stack_p, (void **)&char_message_p); } + if (1 == rv) { rv = snprintf(char_message_p, MSC_MAX_MESSAGE_LENGTH, "%"PRIu64" [EVENT] %d ", __sync_fetch_and_add (&g_message_number, 1), protoP); + if ((0 > rv) || (MSC_MAX_MESSAGE_LENGTH < rv)) { fprintf(stderr, "Error while logging MSC event : %s", &g_msc_proto2str[protoP][0]); goto error_event; } + va_start(args, format); rv2 = vsnprintf(&char_message_p[rv],MSC_MAX_MESSAGE_LENGTH - rv, format, args); va_end(args); + if ((0 > rv2) || ((MSC_MAX_MESSAGE_LENGTH - rv) < rv2)) { fprintf(stderr, "Error while logging MSC event : %s", &g_msc_proto2str[protoP][0]); goto error_event; } + rv += rv2; rv2 = snprintf(&char_message_p[rv],MSC_MAX_MESSAGE_LENGTH - rv, "\n"); + if ((0 > rv2) || ((MSC_MAX_MESSAGE_LENGTH - rv) < rv2)) { fprintf(stderr, "Error while logging MSC event : %s", &g_msc_proto2str[protoP][0]); goto error_event; } + rv += rv2; new_item_p->message_str = char_message_p; new_item_p->message_str_size = rv; new_item_p->message_bin = NULL; new_item_p->message_bin_size = 0; rv = lfds611_queue_enqueue( g_msc_message_queue_p, new_item_p ); - if (0 == rv) { + + if (0 == rv) { fprintf(stderr, "Error while lfds611_queue_guaranteed_enqueue message %s in MSC", char_message_p); - rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); - free(new_item_p); - } + rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); + free(new_item_p); + } } else { fprintf(stderr, "Error while lfds611_stack_pop()\n"); - } + } } + return; error_event: rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); @@ -503,12 +676,12 @@ error_event: } //------------------------------------------------------------------------------ void msc_log_message( - const char * const message_operationP, - const msc_proto_t proto1P, - const msc_proto_t proto2P, - const uint8_t * const bytesP, - const unsigned int num_bytes, - char *format, ...) + const char *const message_operationP, + const msc_proto_t proto1P, + const msc_proto_t proto2P, + const uint8_t *const bytesP, + const unsigned int num_bytes, + char *format, ...) //------------------------------------------------------------------------------ { va_list args; @@ -518,56 +691,65 @@ void msc_log_message( msc_queue_item_t *new_item_p = NULL; char *char_message_p = NULL; - if ((MIN_MSC_PROTOS > proto1P) || (MAX_MSC_PROTOS <= proto1P) || - (MIN_MSC_PROTOS > proto2P) || (MAX_MSC_PROTOS <= proto2P) ) { + (MIN_MSC_PROTOS > proto2P) || (MAX_MSC_PROTOS <= proto2P) ) { return; } new_item_p = malloc(sizeof(msc_queue_item_t)); - if (NULL != new_item_p) { - rv = lfds611_stack_pop(g_msc_memory_stack_p, (void**)&char_message_p); + if (NULL != new_item_p) { + rv = lfds611_stack_pop(g_msc_memory_stack_p, (void **)&char_message_p); + if (0 == rv) { msc_flush_messages(); - rv = lfds611_stack_pop(g_msc_memory_stack_p, (void**)&char_message_p); - } + rv = lfds611_stack_pop(g_msc_memory_stack_p, (void **)&char_message_p); + } + if (1 == rv) { rv = snprintf(char_message_p, MSC_MAX_MESSAGE_LENGTH, "%"PRIu64" [MESSAGE] %d %s %d %"PRIu64" ", - __sync_fetch_and_add (&g_message_number, 1), proto1P, message_operationP, proto2P, mac); + __sync_fetch_and_add (&g_message_number, 1), proto1P, message_operationP, proto2P, mac); + if ((0 > rv) || (MSC_MAX_MESSAGE_LENGTH < rv)) { fprintf(stderr, "Error while logging MSC message : %s/%s", &g_msc_proto2str[proto1P][0], &g_msc_proto2str[proto2P][0]); goto error_event; } + va_start(args, format); rv2 = vsnprintf(&char_message_p[rv],MSC_MAX_MESSAGE_LENGTH - rv, format, args); va_end(args); + if ((0 > rv2) || ((MSC_MAX_MESSAGE_LENGTH - rv) < rv2)) { fprintf(stderr, "Error while logging MSC message : %s/%s", &g_msc_proto2str[proto1P][0], &g_msc_proto2str[proto2P][0]); goto error_event; } + rv += rv2; rv2 = snprintf(&char_message_p[rv],MSC_MAX_MESSAGE_LENGTH - rv, "\n"); + if ((0 > rv2) || ((MSC_MAX_MESSAGE_LENGTH - rv) < rv2)) { fprintf(stderr, "Error while logging MSC message : %s/%s", &g_msc_proto2str[proto1P][0], &g_msc_proto2str[proto2P][0]); goto error_event; } + rv += rv2; new_item_p->message_str = char_message_p; new_item_p->message_str_size = rv; new_item_p->message_bin = NULL; // TO DO new_item_p->message_bin_size = 0; // TO DO rv = lfds611_queue_enqueue( g_msc_message_queue_p, new_item_p ); - if (0 == rv) { + + if (0 == rv) { fprintf(stderr, "Error while lfds611_queue_guaranteed_enqueue message %s in MSC", char_message_p); - rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); - free(new_item_p); - } + rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); + free(new_item_p); + } } else { fprintf(stderr, "Error while lfds611_stack_pop()\n"); msc_flush_messages(); - } + } } + return; error_event: rv = lfds611_stack_guaranteed_push( g_msc_memory_stack_p, char_message_p ); @@ -578,8 +760,7 @@ error_event: // function called when oai loader loads the msc shared lib int msc_autoinit(msc_interface_t *msc_interface) //------------------------------------------------------------------------------ - { - +{ msc_interface->msc_init = msc_init; msc_interface->msc_start_use = msc_start_use; msc_interface->msc_end = msc_end; @@ -587,4 +768,4 @@ int msc_autoinit(msc_interface_t *msc_interface) msc_interface->msc_log_message = msc_log_message; msc_interface->msc_loaded = 1; return 0; - } +} From 1cb484f1b62bd61f6fdf77f25f2e56f192f0552f Mon Sep 17 00:00:00 2001 From: frtabu Date: Tue, 22 Jan 2019 22:07:40 +0100 Subject: [PATCH 112/125] fix more trivial cppcheck errors and warnings --- common/config/config_cmdline.c | 3 +- nfapi/oai_integration/nfapi_vnf.c | 6 +- openair1/PHY/CODING/3gpplte_sse.c | 298 +++---- .../PHY/CODING/3gpplte_turbo_decoder_sse.c | 523 ++++-------- .../CODING/3gpplte_turbo_decoder_sse_16bit.c | 757 +++++++---------- .../CODING/3gpplte_turbo_decoder_sse_8bit.c | 575 ++++++------- openair1/PHY/CODING/ccoding_byte.c | 135 ++- openair1/PHY/CODING/ccoding_byte_lte.c | 47 +- openair1/PHY/CODING/lte_rate_matching.c | 111 +-- openair1/PHY/CODING/lte_segmentation.c | 40 +- .../lte_dl_channel_estimation.c | 529 +++++------- openair1/PHY/LTE_TRANSPORT/prach.c | 796 +++++++++--------- 12 files changed, 1538 insertions(+), 2282 deletions(-) diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c index 95e9805cab..aebf7824a4 100644 --- a/common/config/config_cmdline.c +++ b/common/config/config_cmdline.c @@ -164,9 +164,10 @@ int processoption(paramdef_t *cfgoptions, char *value) { */ int config_check_unknown_cmdlineopt(char *prefix) { int unknowndetected=0; - char testprefix[CONFIG_MAXOPTLENGTH]=""; + char testprefix[CONFIG_MAXOPTLENGTH]; int finalcheck = 0; + memset(testpref,0,sizeof(testprefix)); if (prefix != NULL) { if (strcmp(prefix,CONFIG_CHECKALLSECTIONS) == 0) finalcheck = 1; diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c index 25463a3289..7dea74b9b8 100644 --- a/nfapi/oai_integration/nfapi_vnf.c +++ b/nfapi/oai_integration/nfapi_vnf.c @@ -270,6 +270,7 @@ int pnf_param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_param_re for(int i = 0; i < resp->pnf_phy.number_of_phys; ++i) { phy_info phy; + memset(phy,0,sizeof(phy)); phy.index = resp->pnf_phy.phy[i].phy_config_index; printf("[VNF] (PHY:%d) phy_config_idx:%d\n", i, resp->pnf_phy.phy[i].phy_config_index); @@ -287,6 +288,7 @@ int pnf_param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_param_re for(int i = 0; i < resp->pnf_rf.number_of_rfs; ++i) { rf_info rf; + memset(rf,0,sizeof(rf)); rf.index = resp->pnf_rf.rf[i].rf_config_index; printf("[VNF] (RF:%d) rf_config_idx:%d\n", i, resp->pnf_rf.rf[i].rf_config_index); @@ -897,7 +899,7 @@ int param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_param_response_t // for now just 1 - printf("[VNF] %d.%d pnf p7 %s:%d timing %d %d %d %d\n", p5_idx, phy->id, phy->remote_addr, phy->remote_port, p7_vnf->timing_window, p7_vnf->periodic_timing_period, p7_vnf->aperiodic_timing_enabled, p7_vnf->periodic_timing_period); + printf("[VNF] %d.%d pnf p7 %s:%d timing %u %u %u %u\n", p5_idx, phy->id, phy->remote_addr, phy->remote_port, p7_vnf->timing_window, p7_vnf->periodic_timing_period, p7_vnf->aperiodic_timing_enabled, p7_vnf->periodic_timing_period); req->header.message_id = NFAPI_CONFIG_REQUEST; req->header.phy_id = phy->id; @@ -919,7 +921,7 @@ int param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_param_response_t req->nfapi_config.timing_window.tl.tag = NFAPI_NFAPI_TIMING_WINDOW_TAG; req->nfapi_config.timing_window.value = p7_vnf->timing_window; - printf("[VNF] Timing window:%d\n", p7_vnf->timing_window); + printf("[VNF] Timing window:%u\n", p7_vnf->timing_window); req->num_tlv++; if(p7_vnf->periodic_timing_enabled || p7_vnf->aperiodic_timing_enabled) { diff --git a/openair1/PHY/CODING/3gpplte_sse.c b/openair1/PHY/CODING/3gpplte_sse.c index 96dbcc3717..2a7b789650 100644 --- a/openair1/PHY/CODING/3gpplte_sse.c +++ b/openair1/PHY/CODING/3gpplte_sse.c @@ -26,9 +26,9 @@ date: 09.2012 */ #ifndef TC_MAIN -#include "coding_defs.h" + #include "coding_defs.h" #else -#include + #include #endif #include #include @@ -66,11 +66,11 @@ struct treillis { union { uint8x8_t systematic_andp1_64[3]; char systematic_andp1_8[24]; - }__attribute__((aligned(64))); + } __attribute__((aligned(64))); union { uint8x8_t parity2_64[3]; char parity2_8[24]; - }__attribute__((aligned(64))); + } __attribute__((aligned(64))); int exit_state; }; #endif @@ -79,23 +79,20 @@ struct treillis all_treillis[8][256]; int all_treillis_initialized=0; -static inline unsigned char threegpplte_rsc(unsigned char input,unsigned char *state) -{ +static inline unsigned char threegpplte_rsc(unsigned char input,unsigned char *state) { unsigned char output; output = (input ^ (*state>>2) ^ (*state>>1))&1; *state = (((input<<2)^(*state>>1))^((*state>>1)<<2)^((*state)<<2))&7; return(output); } -static inline void threegpplte_rsc_termination(unsigned char *x,unsigned char *z,unsigned char *state) -{ +static inline void threegpplte_rsc_termination(unsigned char *x,unsigned char *z,unsigned char *state) { *z = ((*state>>2) ^ (*state)) &1; *x = ((*state) ^ (*state>>1)) &1; *state = (*state)>>1; } -static void treillis_table_init(void) -{ +static void treillis_table_init(void) { //struct treillis t[][]=all_treillis; //t=memalign(16,sizeof(struct treillis)*8*256); int i, j,b; @@ -114,8 +111,8 @@ static void treillis_table_init(void) all_treillis[i][j].systematic_andp1_8[b*3]= (j&(1<<(7-b)))>>(7-b); v=threegpplte_rsc( all_treillis[i][j].systematic_andp1_8[b*3] , ¤t_state); - all_treillis[i][j].systematic_andp1_8[b*3+1]=v; // for the yparity1 - // all_treillis[i][j].parity1_8[b*3+1]=v; // for the yparity1 + all_treillis[i][j].systematic_andp1_8[b*3+1]=v; // for the yparity1 + // all_treillis[i][j].parity1_8[b*3+1]=v; // for the yparity1 all_treillis[i][j].parity2_8[b*3+2]=v; // for the yparity2 } @@ -128,14 +125,12 @@ static void treillis_table_init(void) } -char interleave_compact_byte(short * base_interleaver,unsigned char * input, unsigned char * output, int n) -{ - +char interleave_compact_byte(short *base_interleaver,unsigned char *input, unsigned char *output, int n) { char expandInput[768*8] __attribute__((aligned(32))); int i,loop=n>>4; #if defined(__x86_64__) || defined(__i386__) #ifndef __AVX2__ - __m128i *i_128=(__m128i *)input, *o_128=(__m128i*)expandInput; + __m128i *i_128=(__m128i *)input, *o_128=(__m128i *)expandInput; __m128i tmp1, tmp2, tmp3, tmp4; __m128i BIT_MASK = _mm_set_epi8( 0b00000001, 0b00000010, @@ -153,42 +148,41 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns 0b00100000, 0b01000000, 0b10000000); - #else - __m256i *i_256=(__m256i *)input, *o_256=(__m256i*)expandInput; + __m256i *i_256=(__m256i *)input, *o_256=(__m256i *)expandInput; __m256i tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; __m256i BIT_MASK = _mm256_set_epi8( 0b00000001, - 0b00000010, - 0b00000100, - 0b00001000, - 0b00010000, - 0b00100000, - 0b01000000, - 0b10000000, - 0b00000001, - 0b00000010, - 0b00000100, - 0b00001000, - 0b00010000, - 0b00100000, - 0b01000000, - 0b10000000, - 0b00000001, - 0b00000010, - 0b00000100, - 0b00001000, - 0b00010000, - 0b00100000, - 0b01000000, - 0b10000000, - 0b00000001, - 0b00000010, - 0b00000100, - 0b00001000, - 0b00010000, - 0b00100000, - 0b01000000, - 0b10000000); + 0b00000010, + 0b00000100, + 0b00001000, + 0b00010000, + 0b00100000, + 0b01000000, + 0b10000000, + 0b00000001, + 0b00000010, + 0b00000100, + 0b00001000, + 0b00010000, + 0b00100000, + 0b01000000, + 0b10000000, + 0b00000001, + 0b00000010, + 0b00000100, + 0b00001000, + 0b00010000, + 0b00100000, + 0b01000000, + 0b10000000, + 0b00000001, + 0b00000010, + 0b00000100, + 0b00001000, + 0b00010000, + 0b00100000, + 0b01000000, + 0b10000000); #endif #elif defined(__arm__) uint8x16_t *i_128=(uint8x16_t *)input, *o_128=(uint8x16_t *)expandInput; @@ -196,40 +190,41 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns uint16x8_t tmp3; uint32x4_t tmp4; uint8x16_t and_tmp; - uint8x16_t BIT_MASK = { 0b10000000, - 0b01000000, - 0b00100000, - 0b00010000, - 0b00001000, - 0b00000100, - 0b00000010, - 0b00000001, - 0b10000000, - 0b01000000, - 0b00100000, - 0b00010000, - 0b00001000, - 0b00000100, - 0b00000010, - 0b00000001}; + uint8x16_t BIT_MASK = { 0b10000000, + 0b01000000, + 0b00100000, + 0b00010000, + 0b00001000, + 0b00000100, + 0b00000010, + 0b00000001, + 0b10000000, + 0b01000000, + 0b00100000, + 0b00010000, + 0b00001000, + 0b00000100, + 0b00000010, + 0b00000001 + }; #endif - - #ifndef __AVX2__ + if ((n&15) > 0) loop++; + #else loop=n>>5; + if ((n&31) > 0) loop++; + #endif - for (i=0; i>(7-b); - + // int cur_byte=i<<3; + // for (b=0;b<8;b++) + // expandInput[cur_byte+b] = (input[i]&(1<<(7-b)))>>(7-b); #if defined(__x86_64__) || defined(__i386__) #ifndef __AVX2__ tmp1=_mm_load_si128(i_128++); // tmp1 = B0,B1,...,B15 @@ -237,29 +232,22 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns tmp3=_mm_unpacklo_epi16(tmp2,tmp2); // tmp3 = B0,B0,B0,B0,B1,B1,B1,B1,B2,B2,B2,B2,B3,B3,B3,B3 tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 - B0,B0,B0,B0,B0,B0,B0,B0,B1,B1,B1,B1,B1,B1,B1,B1 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK); - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 - B2,B2,B2,B2,B2,B2,B2,B2,B3,B3,B3,B3,B3,B3,B3,B3 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp3=_mm_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7 tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp2=_mm_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8,B8,B9,B9,...,B15,B15 tmp3=_mm_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B8,B8,B8,B9,B9,B9,B9,B10,B10,B10,B10,B11,B11,B11,B11 tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 = B8,B8,B8,B8,B8,B8,B8,B8,B9,B9,B9,B9,B9,B9,B9,B9 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 = B10,B10,B10,B10,B10,B10,B10,B10,B11,B11,B11,B11,B11,B11,B11,B11 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp3=_mm_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12,B12,B12,B12,B13,B13,B13,B13,B14,B14,B14,B14,B15,B15,B15,B15 tmp4=_mm_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12,B12,B12,B12,B12,B12,B12,B12,B13,B13,B13,B13,B13,B13,B13,B13 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; - tmp4=_mm_unpackhi_epi32(tmp3,tmp3); // tmp4 = B14,B14,B14,B14,B14,B14,B14,B14,B15,B15,B15,B15,B15,B15,B15,B15 *o_128++=_mm_cmpeq_epi8(_mm_and_si128(tmp4,BIT_MASK),BIT_MASK);; #else @@ -281,7 +269,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns //print_bytes2("out",(uint8_t*)o_256); o_256[4]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+4)); - tmp3=_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B4,B4,B4,B4,B5,B5,B5,B5,B6,B6,B6,B6,B7,B7,B7,B7,B20,B20,B20,B20,...,B23,B23,B23,B23 tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B4,B4,B4,B4,B4,B4,B4,B4,B5,B5,B5,B5,B5,B5,B5,B5,B20,B20...,B21..,B21 tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 - B6,B6,B6,B6,B6,B6,B6,B6,B7,B7,B7,B7,B7,B7,B7,B7,B22...,B22,B23,...,B23 @@ -297,7 +284,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns //print_bytes2("out",(uint8_t*)(o_256+1)); o_256[5]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+4)); - tmp2=_mm256_unpackhi_epi8(tmp1,tmp1); // tmp2 = B8 B9 B10 B11 B12 B13 B14 B15 B25 B26 B27 B28 B29 B30 B31 tmp3=_mm256_unpacklo_epi16(tmp2,tmp2); // tmp3 = B8,B9,B10,B11,B26,B27,B28,B29 tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 - B8,B9,B26,B27 @@ -314,11 +300,10 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns //print_bytes2("out",(uint8_t*)(o_256+2)); o_256[6]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+4)); - tmp3=_mm256_unpackhi_epi16(tmp2,tmp2); // tmp3 = B12 B13 B14 B15 B28 B29 B30 B31 tmp4=_mm256_unpacklo_epi32(tmp3,tmp3); // tmp4 = B12 B13 B28 B29 - tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 = B14 B15 B30 B31 - tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B12 B13 B14 B15 + tmp5=_mm256_unpackhi_epi32(tmp3,tmp3); // tmp5 = B14 B15 B30 B31 + tmp6=_mm256_insertf128_si256(tmp4,_mm256_extracti128_si256(tmp5,0),1); // tmp6 = B12 B13 B14 B15 tmp7=_mm256_insertf128_si256(tmp5,_mm256_extracti128_si256(tmp4,1),0); // tmp7 = B28 B29 B30 B31 //print_bytes2("tmp2",(uint8_t*)&tmp2); //print_bytes2("tmp3",(uint8_t*)&tmp3); @@ -330,48 +315,35 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns //print_bytes2("out",(uint8_t*)(o_256+3)); o_256[7]=_mm256_cmpeq_epi8(_mm256_and_si256(tmp7,BIT_MASK),BIT_MASK);; //print_bytes2("out",(uint8_t*)(o_256+7)); - o_256+=8; #endif #elif defined(__arm__) - tmp1=vld1q_u8((uint8_t*)i_128); + tmp1=vld1q_u8((uint8_t *)i_128); //print_bytes("tmp1:",(uint8_t*)&tmp1); - uint8x16x2_t temp1 = vzipq_u8(tmp1,tmp1); tmp2 = temp1.val[0]; - uint16x8x2_t temp2 = vzipq_u16((uint16x8_t)tmp2,(uint16x8_t)tmp2); tmp3 = temp2.val[0]; - uint32x4x2_t temp3 = vzipq_u32((uint32x4_t)tmp3,(uint32x4_t)tmp3); tmp4 = temp3.val[0]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //1 //print_bytes("o:",(uint8_t*)(o_128-1)); - tmp4 = temp3.val[1]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //2 //print_bytes("o:",(uint8_t*)(o_128-1)); - tmp3 = temp2.val[1]; temp3 = vzipq_u32((uint32x4_t)tmp3,(uint32x4_t)tmp3); tmp4 = temp3.val[0]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //3 //print_bytes("o:",(uint8_t*)(o_128-1)); - tmp4 = temp3.val[1]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //4 - //and_tmp = vandq_u8((uint8x16_t)tmp4,BIT_MASK); print_bytes("and:",and_tmp); + //and_tmp = vandq_u8((uint8x16_t)tmp4,BIT_MASK); print_bytes("and:",and_tmp); //print_bytes("o:",(uint8_t*)(o_128-1)); - - temp1 = vzipq_u8(tmp1,tmp1); tmp2 = temp1.val[1]; temp2 = vzipq_u16((uint16x8_t)tmp2,(uint16x8_t)tmp2); @@ -379,52 +351,41 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns temp3 = vzipq_u32((uint32x4_t)tmp3,(uint32x4_t)tmp3); tmp4 = temp3.val[0]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //5 //print_bytes("o:",(uint8_t*)(o_128-1)); - tmp4 = temp3.val[1]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //6 //print_bytes("o:",(uint8_t*)(o_128-1)); - - temp2 = vzipq_u16((uint16x8_t)tmp2,(uint16x8_t)tmp2); tmp3 = temp2.val[1]; temp3 = vzipq_u32((uint32x4_t)tmp3,(uint32x4_t)tmp3); tmp4 = temp3.val[0]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //7 //print_bytes("o:",(uint8_t*)(o_128-1)); - tmp4 = temp3.val[1]; //print_bytes("tmp4:",(uint8_t*)&tmp4); - *o_128++=vceqq_u8(vandq_u8((uint8x16_t)tmp4,BIT_MASK),BIT_MASK); //7 //print_bytes("o:",(uint8_t*)(o_128-1)); - i_128++; #endif } - - short * ptr_intl=base_interleaver; + short *ptr_intl=base_interleaver; #if defined(__x86_64) || defined(__i386__) #ifndef __AVX2__ __m128i tmp; - uint16_t *systematic2_ptr=(uint16_t *) output; + uint16_t *systematic2_ptr=(uint16_t *) output; #else __m256i tmp; - uint32_t *systematic2_ptr=(uint32_t *) output; + uint32_t *systematic2_ptr=(uint32_t *) output; #endif #elif defined(__arm__) uint8x16_t tmp; - const uint8_t __attribute__ ((aligned (16))) _Powers[16]= - { 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 }; - -// Set the powers of 2 (do it once for all, if applicable) + const uint8_t __attribute__ ((aligned (16))) _Powers[16]= + { 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 }; + // Set the powers of 2 (do it once for all, if applicable) uint8x16_t Powers= vld1q_u8(_Powers); uint8_t *systematic2_ptr=(uint8_t *) output; #endif @@ -435,8 +396,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns #endif for ( i=0; i< input_length_words ; i ++ ) { - - #if defined(__x86_64__) || defined(__i386__) #ifndef __AVX2__ tmp=_mm_insert_epi8(tmp,expandInput[*ptr_intl++],7); @@ -465,7 +424,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],2); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],1); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],0); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+7); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+6); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+5); @@ -474,7 +432,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+2); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+1); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],8+0); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+7); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+6); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+5); @@ -483,7 +440,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+2); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+1); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],16+0); - tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+7); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+6); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+5); @@ -492,7 +448,6 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+2); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+1); tmp=_mm256_insert_epi8(tmp,expandInput[*ptr_intl++],24+0); - *systematic2_ptr++=(unsigned int)_mm256_movemask_epi8(tmp); #endif #elif defined(__arm__) @@ -512,11 +467,10 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,8+2); tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,8+1); tmp=vsetq_lane_u8(expandInput[*ptr_intl++],tmp,8+0); -// Compute the mask from the input + // Compute the mask from the input uint64x2_t Mask= vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(vandq_u8(tmp, Powers)))); vst1q_lane_u8(systematic2_ptr++, (uint8x16_t)Mask, 0); vst1q_lane_u8(systematic2_ptr++, (uint8x16_t)Mask, 8); - #endif } @@ -537,14 +491,12 @@ char interleave_compact_byte(short * base_interleaver,unsigned char * input, uns void threegpplte_turbo_encoder_sse(unsigned char *input, unsigned short input_length_bytes, unsigned char *output, - unsigned char F) -{ - + unsigned char F) { int i; unsigned char *x; unsigned char state0=0,state1=0; unsigned short input_length_bits = input_length_bytes<<3; - short * base_interleaver; + short *base_interleaver; if ( all_treillis_initialized == 0 ) { treillis_table_init(); @@ -560,15 +512,12 @@ void threegpplte_turbo_encoder_sse(unsigned char *input, base_interleaver=il_tb+f1f2mat[i].beg_index; } - unsigned char systematic2[768] __attribute__((aligned(32))); - interleave_compact_byte(base_interleaver,input,systematic2,input_length_bytes); - #if defined(__x86_64__) || defined(__i386__) - __m64 *ptr_output=(__m64*) output; + __m64 *ptr_output=(__m64 *) output; #elif defined(__arm__) - uint8x8_t *ptr_output=(uint8x8_t*)output; + uint8x8_t *ptr_output=(uint8x8_t *)output; #endif unsigned char cur_s1, cur_s2; int code_rate; @@ -582,54 +531,45 @@ void threegpplte_turbo_encoder_sse(unsigned char *input, /* *ptr_output++ = _mm_add_pi8(all_treillis[state0][cur_s1].systematic_64[code_rate], _mm_add_pi8(all_treillis[state0][cur_s1].parity1_64[code_rate], - all_treillis[state1][cur_s2].parity2_64[code_rate])); - */ - + all_treillis[state1][cur_s2].parity2_64[code_rate])); + */ *ptr_output++ = _mm_add_pi8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate], - all_treillis[state1][cur_s2].parity2_64[code_rate]); - - + all_treillis[state1][cur_s2].parity2_64[code_rate]); #elif defined(__arm__) - *ptr_output++ = vadd_u8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate], - all_treillis[state0][cur_s1].parity2_64[code_rate]); + *ptr_output++ = vadd_u8(all_treillis[state0][cur_s1].systematic_andp1_64[code_rate], + all_treillis[state0][cur_s1].parity2_64[code_rate]); #endif - } - - state0=all_treillis[state0][cur_s1].exit_state; - state1=all_treillis[state1][cur_s2].exit_state; + } + + state0=all_treillis[state0][cur_s1].exit_state; + state1=all_treillis[state1][cur_s2].exit_state; } x=output+(input_length_bits*3); - // Trellis termination threegpplte_rsc_termination(&x[0],&x[1],&state0); #ifdef DEBUG_TURBO_ENCODER - printf("term: x0 %d, x1 %d, state0 %d\n",x[0],x[1],state0); + printf("term: x0 %u, x1 %u, state0 %d\n",x[0],x[1],state0); #endif //DEBUG_TURBO_ENCODER - threegpplte_rsc_termination(&x[2],&x[3],&state0); #ifdef DEBUG_TURBO_ENCODER - printf("term: x0 %d, x1 %d, state0 %d\n",x[2],x[3],state0); + printf("term: x0 %u, x1 %u, state0 %d\n",x[2],x[3],state0); #endif //DEBUG_TURBO_ENCODER - threegpplte_rsc_termination(&x[4],&x[5],&state0); #ifdef DEBUG_TURBO_ENCODER - printf("term: x0 %d, x1 %d, state0 %d\n",x[4],x[5],state0); + printf("term: x0 %u, x1 %u, state0 %d\n",x[4],x[5],state0); #endif //DEBUG_TURBO_ENCODER - threegpplte_rsc_termination(&x[6],&x[7],&state1); - #ifdef DEBUG_TURBO_ENCODER - printf("term: x0 %d, x1 %d, state1 %d\n",x[6],x[7],state1); + printf("term: x0 %u, x1 %u, state1 %d\n",x[6],x[7],state1); #endif //DEBUG_TURBO_ENCODER threegpplte_rsc_termination(&x[8],&x[9],&state1); #ifdef DEBUG_TURBO_ENCODER - printf("term: x0 %d, x1 %d, state1 %d\n",x[8],x[9],state1); + printf("term: x0 %u, x1 %u, state1 %d\n",x[8],x[9],state1); #endif //DEBUG_TURBO_ENCODER threegpplte_rsc_termination(&x[10],&x[11],&state1); - #ifdef DEBUG_TURBO_ENCODER - printf("term: x0 %d, x1 %d, state1 %d\n",x[10],x[11],state1); + printf("term: x0 %u, x1 %u, state1 %d\n",x[10],x[11],state1); #endif //DEBUG_TURBO_ENCODER #if defined(__x86_64__) || defined(__i386__) _mm_empty(); @@ -638,32 +578,31 @@ void threegpplte_turbo_encoder_sse(unsigned char *input, } void init_encoder_sse (void) { - treillis_table_init(); + treillis_table_init(); } /* function which will be called by the shared lib loader, to check shared lib version against main exec version. version mismatch no considered as fatal (interfaces not supposed to change) -*/ -int coding_checkbuildver(char * mainexec_buildversion, char ** shlib_buildversion) -{ +*/ +int coding_checkbuildver(char *mainexec_buildversion, char **shlib_buildversion) { #ifndef PACKAGE_VERSION #define PACKAGE_VERSION "standalone built: " __DATE__ __TIME__ #endif - *shlib_buildversion = PACKAGE_VERSION; - if (strcmp(mainexec_buildversion, *shlib_buildversion) != 0) { - fprintf(stderr,"[CODING] shared lib version %s, doesn't match main version %s, compatibility should be checked\n", - mainexec_buildversion,*shlib_buildversion); - } - return 0; + *shlib_buildversion = PACKAGE_VERSION; + + if (strcmp(mainexec_buildversion, *shlib_buildversion) != 0) { + fprintf(stderr,"[CODING] shared lib version %s, doesn't match main version %s, compatibility should be checked\n", + mainexec_buildversion,*shlib_buildversion); + } + + return 0; } #ifdef TC_MAIN -#define INPUT_LENGTH 20 +#define INPUT_LENGTH 20 #define F1 21 #define F2 120 -int main(int argc,char **argv) -{ - +int main(int argc,char **argv) { unsigned char input[INPUT_LENGTH+32],state,state2; unsigned char output[12+(3*(INPUT_LENGTH<<3))],x,z; int i; @@ -680,28 +619,27 @@ int main(int argc,char **argv) printf("\n"); for (state=0; state<8; state++) { - state2=state; threegpplte_rsc_termination(&x,&z,&state2); printf("Termination: (%d->%d) : (%d,%d)\n",state,state2,x,z); } - memset((void*)input,0,INPUT_LENGTH+16); + memset((void *)input,0,INPUT_LENGTH+16); + for (i=0; i -#include -#include + #include "defs.h" + #include + #include + #include #endif #define SHUFFLE16(a,b,c,d,e,f,g,h) _mm_set_epi8(h==-1?-1:h*2+1, \ - h==-1?-1:h*2, \ - g==-1?-1:g*2+1, \ - g==-1?-1:g*2, \ - f==-1?-1:f*2+1, \ - f==-1?-1:f*2, \ - e==-1?-1:e*2+1, \ - e==-1?-1:e*2, \ - d==-1?-1:d*2+1, \ - d==-1?-1:d*2, \ - c==-1?-1:c*2+1, \ - c==-1?-1:c*2, \ - b==-1?-1:b*2+1, \ - b==-1?-1:b*2, \ - a==-1?-1:a*2+1, \ - a==-1?-1:a*2); + h==-1?-1:h*2, \ + g==-1?-1:g*2+1, \ + g==-1?-1:g*2, \ + f==-1?-1:f*2+1, \ + f==-1?-1:f*2, \ + e==-1?-1:e*2+1, \ + e==-1?-1:e*2, \ + d==-1?-1:d*2+1, \ + d==-1?-1:d*2, \ + c==-1?-1:c*2+1, \ + c==-1?-1:c*2, \ + b==-1?-1:b*2+1, \ + b==-1?-1:b*2, \ + a==-1?-1:a*2+1, \ + a==-1?-1:a*2); @@ -75,44 +75,40 @@ #ifdef LLR8 -typedef int8_t llr_t; // internal decoder LLR data is 8-bit fixed -typedef int8_t channel_t; -#define MAX 64 + typedef int8_t llr_t; // internal decoder LLR data is 8-bit fixed + typedef int8_t channel_t; + #define MAX 64 #else -typedef int16_t llr_t; // internal decoder LLR data is 16-bit fixed -typedef int16_t channel_t; -#define MAX 256 + typedef int16_t llr_t; // internal decoder LLR data is 16-bit fixed + typedef int16_t channel_t; + #define MAX 256 #endif -void log_map (llr_t* systematic,channel_t* y_parity, llr_t* m11, llr_t* m10, llr_t *alpha, llr_t *beta, llr_t* ext,unsigned short frame_length,unsigned char term_flag,unsigned char F,int offset8_flag, +void log_map (llr_t *systematic,channel_t *y_parity, llr_t *m11, llr_t *m10, llr_t *alpha, llr_t *beta, llr_t *ext,unsigned short frame_length,unsigned char term_flag,unsigned char F,int offset8_flag, time_stats_t *alpha_stats,time_stats_t *beta_stats,time_stats_t *gamma_stats,time_stats_t *ext_stats); -void compute_gamma(llr_t* m11,llr_t* m10,llr_t* systematic, channel_t* y_parity, unsigned short frame_length,unsigned char term_flag); -void compute_alpha(llr_t*alpha,llr_t *beta, llr_t* m11,llr_t* m10, unsigned short frame_length,unsigned char F); -void compute_beta(llr_t*alpha, llr_t* beta,llr_t* m11,llr_t* m10, unsigned short frame_length,unsigned char F,int offset8_flag); -void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m11,llr_t* m10,llr_t* extrinsic, llr_t* ap, unsigned short frame_length); +void compute_gamma(llr_t *m11,llr_t *m10,llr_t *systematic, channel_t *y_parity, unsigned short frame_length,unsigned char term_flag); +void compute_alpha(llr_t *alpha,llr_t *beta, llr_t *m11,llr_t *m10, unsigned short frame_length,unsigned char F); +void compute_beta(llr_t *alpha, llr_t *beta,llr_t *m11,llr_t *m10, unsigned short frame_length,unsigned char F,int offset8_flag); +void compute_ext(llr_t *alpha,llr_t *beta,llr_t *m11,llr_t *m10,llr_t *extrinsic, llr_t *ap, unsigned short frame_length); -void print_bytes(char *s, __m128i *x) -{ - +void print_bytes(char *s, __m128i *x) { int8_t *tempb = (int8_t *)x; - printf("%s : %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s, tempb[0],tempb[1],tempb[2],tempb[3],tempb[4],tempb[5],tempb[6],tempb[7], tempb[8],tempb[9],tempb[10],tempb[11],tempb[12],tempb[13],tempb[14],tempb[15]); - } -void log_map(llr_t* systematic, - channel_t* y_parity, - llr_t* m11, - llr_t* m10, +void log_map(llr_t *systematic, + channel_t *y_parity, + llr_t *m11, + llr_t *m10, llr_t *alpha, llr_t *beta, - llr_t* ext, + llr_t *ext, unsigned short frame_length, unsigned char term_flag, unsigned char F, @@ -120,13 +116,10 @@ void log_map(llr_t* systematic, time_stats_t *alpha_stats, time_stats_t *beta_stats, time_stats_t *gamma_stats, - time_stats_t *ext_stats) -{ - + time_stats_t *ext_stats) { #ifdef DEBUG_LOGMAP msg("log_map, frame_length %d\n",frame_length); #endif - start_meas(gamma_stats) ; compute_gamma(m11,m10,systematic,y_parity,frame_length,term_flag) ; stop_meas(gamma_stats); @@ -139,19 +132,15 @@ void log_map(llr_t* systematic, start_meas(ext_stats) ; compute_ext(alpha,beta,m11,m10,ext,systematic,frame_length) ; stop_meas(ext_stats); - - } -void compute_gamma(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, - unsigned short frame_length,unsigned char term_flag) -{ +void compute_gamma(llr_t *m11,llr_t *m10,llr_t *systematic,channel_t *y_parity, + unsigned short frame_length,unsigned char term_flag) { int k,K1; __m128i *systematic128 = (__m128i *)systematic; __m128i *y_parity128 = (__m128i *)y_parity; __m128i *m10_128 = (__m128i *)m10; __m128i *m11_128 = (__m128i *)m11; - #ifdef DEBUG_LOGMAP msg("compute_gamma, %p,%p,%p,%p,framelength %d\n",m11,m10,systematic,y_parity,frame_length); #endif @@ -159,7 +148,6 @@ void compute_gamma(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, K1=frame_length>>3; for (k=0; k>3; K1 = (frame_length>>3); @@ -439,19 +419,16 @@ void compute_alpha(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned sho } alpha_ptr = &alpha128[0]; - - m11p = (__m128i*)m_11; - m10p = (__m128i*)m_10; + m11p = (__m128i *)m_11; + m10p = (__m128i *)m_10; for (k=0; kbeta1_16) ? beta0_16 : beta1_16; beta_m = (beta_m>beta2_16) ? beta_m : beta2_16; beta_m = (beta_m>beta3_16) ? beta_m : beta3_16; @@ -1173,8 +1117,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_m = (beta_m>beta5_16) ? beta_m : beta5_16; beta_m = (beta_m>beta6_16) ? beta_m : beta6_16; beta_m = (beta_m>beta7_16) ? beta_m : beta7_16; - - beta0_16=beta0_16-beta_m; beta1_16=beta1_16-beta_m; beta2_16=beta2_16-beta_m; @@ -1183,7 +1125,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta5_16=beta5_16-beta_m; beta6_16=beta6_16-beta_m; beta7_16=beta7_16-beta_m; - #ifdef LLR8 beta_16 = _mm_set_epi16(beta7_16,beta6_16,beta5_16,beta4_16,beta3_16,beta2_16,beta1_16,beta0_16); beta_16 = _mm_packs_epi16(beta_16,beta_16); @@ -1199,8 +1140,8 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor #endif for (rerun_flag=0;; rerun_flag=1) { - beta_ptr = (__m128i*)&beta[frame_length<<3]; - alpha128 = (__m128i*)&alpha[0]; + beta_ptr = (__m128i *)&beta[frame_length<<3]; + alpha128 = (__m128i *)&alpha[0]; if (rerun_flag == 0) { #ifndef LLR8 @@ -1223,9 +1164,8 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[7] = alpha128[7+(frame_length>>1)]; #endif } else { - beta128 = (__m128i*)&beta[0]; + beta128 = (__m128i *)&beta[0]; #ifndef LLR8 - beta_ptr[0] = _mm_srli_si128(beta128[0],2); beta_ptr[1] = _mm_srli_si128(beta128[1],2); beta_ptr[2] = _mm_srli_si128(beta128[2],2); @@ -1255,7 +1195,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[5] = _mm_insert_epi16(beta_ptr[5],beta5_16,7); beta_ptr[6] = _mm_insert_epi16(beta_ptr[6],beta6_16,7); beta_ptr[7] = _mm_insert_epi16(beta_ptr[7],beta7_16,7); - /* beta[7+(frame_length<<3)] = beta0_16; beta[15+(frame_length<<3)] = beta1_16; @@ -1277,18 +1216,15 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[6] = _mm_insert_epi8(beta_ptr[6],beta6,15); beta_ptr[7] = _mm_insert_epi8(beta_ptr[7],beta7,15); } else { - } #endif - #ifndef LLR8 int loopval=((rerun_flag==0)?0:((frame_length-L)>>3)); for (k=(frame_length>>3)-1; k>=loopval; k--) { - m11_128=((__m128i*)m_11)[k]; - m10_128=((__m128i*)m_10)[k]; - + m11_128=((__m128i *)m_11)[k]; + m10_128=((__m128i *)m_10)[k]; m_b0 = _mm_adds_epi16(beta_ptr[4],m11_128); //m11 m_b1 = _mm_subs_epi16(beta_ptr[4],m11_128); //m00 m_b2 = _mm_subs_epi16(beta_ptr[5],m10_128); //m01 @@ -1297,7 +1233,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor m_b5 = _mm_subs_epi16(beta_ptr[6],m10_128); //m01 m_b6 = _mm_subs_epi16(beta_ptr[7],m11_128); //m00 m_b7 = _mm_adds_epi16(beta_ptr[7],m11_128); //m11 - new0 = _mm_subs_epi16(beta_ptr[0],m11_128); //m00 new1 = _mm_adds_epi16(beta_ptr[0],m11_128); //m11 new2 = _mm_adds_epi16(beta_ptr[1],m10_128); //m10 @@ -1306,9 +1241,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor new5 = _mm_adds_epi16(beta_ptr[2],m10_128); //m10 new6 = _mm_adds_epi16(beta_ptr[3],m11_128); //m11 new7 = _mm_subs_epi16(beta_ptr[3],m11_128); //m00 - beta_ptr-=8; - beta_ptr[0] = _mm_max_epi16(m_b0,new0); beta_ptr[1] = _mm_max_epi16(m_b1,new1); beta_ptr[2] = _mm_max_epi16(m_b2,new2); @@ -1317,7 +1250,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[5] = _mm_max_epi16(m_b5,new5); beta_ptr[6] = _mm_max_epi16(m_b6,new6); beta_ptr[7] = _mm_max_epi16(m_b7,new7); - beta_max = _mm_max_epi16(beta_ptr[0],beta_ptr[1]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[2]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[3]); @@ -1325,7 +1257,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_max = _mm_max_epi16(beta_max ,beta_ptr[5]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[6]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[7]); - beta_ptr[0] = _mm_subs_epi16(beta_ptr[0],beta_max); beta_ptr[1] = _mm_subs_epi16(beta_ptr[1],beta_max); beta_ptr[2] = _mm_subs_epi16(beta_ptr[2],beta_max); @@ -1334,14 +1265,11 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[5] = _mm_subs_epi16(beta_ptr[5],beta_max); beta_ptr[6] = _mm_subs_epi16(beta_ptr[6],beta_max); beta_ptr[7] = _mm_subs_epi16(beta_ptr[7],beta_max); - - - } #else #ifdef DEBUG_LOGMAP - printf("beta0 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta0 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[0],0), _mm_extract_epi8(beta_ptr[0],1), @@ -1359,7 +1287,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[0],13), _mm_extract_epi8(beta_ptr[0],14), _mm_extract_epi8(beta_ptr[0],15)); - printf("beta1 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta1 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[1],0), _mm_extract_epi8(beta_ptr[1],1), @@ -1377,7 +1305,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[1],13), _mm_extract_epi8(beta_ptr[1],14), _mm_extract_epi8(beta_ptr[1],15)); - printf("beta2 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta2 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[2],0), _mm_extract_epi8(beta_ptr[2],1), @@ -1395,7 +1323,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[2],13), _mm_extract_epi8(beta_ptr[2],14), _mm_extract_epi8(beta_ptr[2],15)); - printf("beta3 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta3 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[3],0), _mm_extract_epi8(beta_ptr[3],1), @@ -1413,7 +1341,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[3],13), _mm_extract_epi8(beta_ptr[3],14), _mm_extract_epi8(beta_ptr[3],15)); - printf("beta4 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta4 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[4],0), _mm_extract_epi8(beta_ptr[4],1), @@ -1431,7 +1359,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[4],13), _mm_extract_epi8(beta_ptr[4],14), _mm_extract_epi8(beta_ptr[4],15)); - printf("beta5 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta5 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[5],0), _mm_extract_epi8(beta_ptr[5],1), @@ -1449,7 +1377,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[5],13), _mm_extract_epi8(beta_ptr[5],14), _mm_extract_epi8(beta_ptr[5],15)); - printf("beta6 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta6 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[6],0), _mm_extract_epi8(beta_ptr[6],1), @@ -1467,7 +1395,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[6],13), _mm_extract_epi8(beta_ptr[6],14), _mm_extract_epi8(beta_ptr[6],15)); - printf("beta7 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", + printf("beta7 %u: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", (frame_length>>4), _mm_extract_epi8(beta_ptr[7],0), _mm_extract_epi8(beta_ptr[7],1), @@ -1491,9 +1419,8 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor __m128i zeros=_mm_set1_epi8(0); for (k=(frame_length>>4)-1; k>=loopval; k--) { - - m11_128=((__m128i*)m_11)[k]; - m10_128=((__m128i*)m_10)[k]; + m11_128=((__m128i *)m_11)[k]; + m10_128=((__m128i *)m_10)[k]; /* if ((offset8_flag==1) && (k==((frame_length>>4)-9))) { beta_ptr[0] = _mm_insert_epi8(beta_ptr[0],beta0,15); @@ -1506,9 +1433,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[7] = _mm_insert_epi8(beta_ptr[7],beta7,15); }*/ // print_bytes("m11:",&m11_128); - - - m_b0 = _mm_adds_epi8(beta_ptr[4],m11_128); //m11 m_b1 = _mm_subs_epi8(beta_ptr[4],m11_128); //m00 m_b2 = _mm_subs_epi8(beta_ptr[5],m10_128); //m01 @@ -1517,7 +1441,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor m_b5 = _mm_subs_epi8(beta_ptr[6],m10_128); //m01 m_b6 = _mm_subs_epi8(beta_ptr[7],m11_128); //m00 m_b7 = _mm_adds_epi8(beta_ptr[7],m11_128); //m11 - new0 = _mm_subs_epi8(beta_ptr[0],m11_128); //m00 new1 = _mm_adds_epi8(beta_ptr[0],m11_128); //m11 new2 = _mm_adds_epi8(beta_ptr[1],m10_128); //m10 @@ -1526,9 +1449,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor new5 = _mm_adds_epi8(beta_ptr[2],m10_128); //m10 new6 = _mm_adds_epi8(beta_ptr[3],m11_128); //m11 new7 = _mm_subs_epi8(beta_ptr[3],m11_128); //m00 - beta_ptr-=8; - beta_ptr[0] = _mm_max_epi8(m_b0,new0); beta_ptr[1] = _mm_max_epi8(m_b1,new1); beta_ptr[2] = _mm_max_epi8(m_b2,new2); @@ -1537,7 +1458,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[5] = _mm_max_epi8(m_b5,new5); beta_ptr[6] = _mm_max_epi8(m_b6,new6); beta_ptr[7] = _mm_max_epi8(m_b7,new7); - beta_max = _mm_max_epi8(beta_ptr[0],beta_ptr[1]); beta_max = _mm_max_epi8(beta_max ,beta_ptr[2]); beta_max = _mm_max_epi8(beta_max ,beta_ptr[3]); @@ -1553,7 +1473,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor beta_ptr[5] = _mm_subs_epi8(beta_ptr[5],beta_max); beta_ptr[6] = _mm_subs_epi8(beta_ptr[6],beta_max); beta_ptr[7] = _mm_subs_epi8(beta_ptr[7],beta_max); - /* printf("beta0 %d: %03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d,%03d\n", k, @@ -1700,7 +1619,6 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _mm_extract_epi8(beta_ptr[7],14), _mm_extract_epi8(beta_ptr[7],15)); */ - } #endif @@ -1713,8 +1631,7 @@ void compute_beta(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned shor _m_empty(); } -void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, llr_t* systematic,unsigned short frame_length) -{ +void compute_ext(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,llr_t *ext, llr_t *systematic,unsigned short frame_length) { __m128i *alpha128=(__m128i *)alpha; __m128i *beta128=(__m128i *)beta; __m128i *m11_128,*m10_128,*ext_128; @@ -1724,26 +1641,20 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll __m128i m10_1,m10_2,m10_3,m10_4; __m128i m11_1,m11_2,m11_3,m11_4; int k; - // // LLR computation, 8 consequtive bits per loop // - #ifdef DEBUG_LOGMAP msg("compute_ext, %p, %p, %p, %p, %p, %p ,framelength %d\n",alpha,beta,m_11,m_10,ext,systematic,frame_length); #endif - alpha_ptr = alpha128; beta_ptr = &beta128[8]; - - #ifndef LLR8 for (k=0; k<(frame_length>>3); k++) { - - m11_128 = (__m128i*)&m_11[k<<3]; - m10_128 = (__m128i*)&m_10[k<<3]; - ext_128 = (__m128i*)&ext[k<<3]; + m11_128 = (__m128i *)&m_11[k<<3]; + m10_128 = (__m128i *)&m_10[k<<3]; + ext_128 = (__m128i *)&ext[k<<3]; /* printf("EXT %03d\n",k); print_shorts("a0:",&alpha_ptr[0]); @@ -1809,23 +1720,18 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll m11_1 = _mm_max_epi16(m11_1,m11_2); m11_1 = _mm_max_epi16(m11_1,m11_3); m11_1 = _mm_max_epi16(m11_1,m11_4); - // print_shorts("m11_1:",&m11_1); - m01_1 = _mm_subs_epi16(m01_1,*m10_128); m00_1 = _mm_subs_epi16(m00_1,*m11_128); m10_1 = _mm_adds_epi16(m10_1,*m10_128); m11_1 = _mm_adds_epi16(m11_1,*m11_128); - // print_shorts("m10_1:",&m10_1); // print_shorts("m11_1:",&m11_1); m01_1 = _mm_max_epi16(m01_1,m00_1); m10_1 = _mm_max_epi16(m10_1,m11_1); // print_shorts("m01_1:",&m01_1); // print_shorts("m10_1:",&m10_1); - *ext_128 = _mm_subs_epi16(m10_1,m01_1); - /* print_shorts("ext:",ext_128); print_shorts("m11:",m11_128); @@ -1834,7 +1740,6 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll print_shorts("m01_1:",&m01_1); print_shorts("syst:",systematic_128); */ - alpha_ptr+=8; beta_ptr+=8; } @@ -1842,11 +1747,9 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll #else for (k=0; k<(frame_length>>4); k++) { - - m11_128 = (__m128i*)&m_11[k<<4]; - m10_128 = (__m128i*)&m_10[k<<4]; - ext_128 = (__m128i*)&ext[k<<4]; - + m11_128 = (__m128i *)&m_11[k<<4]; + m10_128 = (__m128i *)&m_10[k<<4]; + ext_128 = (__m128i *)&ext[k<<4]; m00_4 = _mm_adds_epi8(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; m11_4 = _mm_adds_epi8(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; m00_3 = _mm_adds_epi8(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; @@ -1863,7 +1766,6 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll m10_2 = _mm_adds_epi8(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; m10_1 = _mm_adds_epi8(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; m01_1 = _mm_adds_epi8(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; - m01_1 = _mm_max_epi8(m01_1,m01_2); m01_1 = _mm_max_epi8(m01_1,m01_3); m01_1 = _mm_max_epi8(m01_1,m01_4); @@ -1876,29 +1778,20 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll m11_1 = _mm_max_epi8(m11_1,m11_2); m11_1 = _mm_max_epi8(m11_1,m11_3); m11_1 = _mm_max_epi8(m11_1,m11_4); - - m01_1 = _mm_subs_epi8(m01_1,*m10_128); m00_1 = _mm_subs_epi8(m00_1,*m11_128); m10_1 = _mm_adds_epi8(m10_1,*m10_128); m11_1 = _mm_adds_epi8(m11_1,*m11_128); - - m01_1 = _mm_max_epi8(m01_1,m00_1); m10_1 = _mm_max_epi8(m10_1,m11_1); - - *ext_128 = _mm_subs_epi8(m10_1,m01_1); - alpha_ptr+=8; beta_ptr+=8; } #endif - _mm_empty(); _m_empty(); - } @@ -1906,8 +1799,7 @@ void compute_ext(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, ll //int pi2[n],pi3[n+8],pi5[n+8],pi4[n+8],pi6[n+8], int *pi2tab[188],*pi5tab[188],*pi4tab[188],*pi6tab[188]; -void free_td() -{ +void free_td() { int ind; for (ind = 0; ind < 188; ind++) { @@ -1918,21 +1810,17 @@ void free_td() } } -void init_td() -{ - +void init_td() { int ind,i,i2,i3,j,n,n2,pi,pi3; - short * base_interleaver; + short *base_interleaver; for (ind=0; ind<188; ind++) { - n = f1f2mat[ind].nb_bits; base_interleaver=il_tb+f1f2mat[ind].beg_index; pi2tab[ind] = malloc((n+8)*sizeof(int)); pi5tab[ind] = malloc((n+8)*sizeof(int)); pi4tab[ind] = malloc((n+8)*sizeof(int)); pi6tab[ind] = malloc((n+8)*sizeof(int)); - #ifdef LLR8 if ((n&15)>0) { @@ -1941,7 +1829,6 @@ void init_td() n2 = n; for (j=0,i=0; i=n2) j-=(n2-1); @@ -1956,10 +1843,8 @@ void init_td() j=i2; for (i3=0; i3<(n>>3); i3++,i++,j+=8) { - // if (j>=n) // j-=(n-1); - pi2tab[ind][i] = j; // printf("pi2[%d] = %d\n",i,j); } @@ -1967,7 +1852,6 @@ void init_td() #endif - for (i=0; i>3]; - __m128i tmp, zeros=_mm_setzero_si128(); #ifdef LLR8 __m128i MAX128=_mm_set1_epi16(MAX/2); #endif - register __m128i tmpe; int offset8_flag=0; @@ -2040,9 +1913,7 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, return 255; } - start_meas(init_stats); - #ifdef LLR8 if ((n&15)>0) { @@ -2063,21 +1934,21 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, } switch (crc_type) { - case CRC24_A: - case CRC24_B: - crc_len=3; - break; + case CRC24_A: + case CRC24_B: + crc_len=3; + break; - case CRC16: - crc_len=2; - break; + case CRC16: + crc_len=2; + break; - case CRC8: - crc_len=1; - break; + case CRC8: + crc_len=1; + break; - default: - crc_len=3; + default: + crc_len=3; } #ifdef LLR8 @@ -2087,199 +1958,154 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, //((__m128i *)y8)[i] = _mm_packs_epi16(((__m128i *)y)[j],((__m128i *)y)[j+1]); } - yp128 = (__m128i*)y8; + yp128 = (__m128i *)y8; #else - yp128 = (__m128i*)y; + yp128 = (__m128i *)y; #endif - - - s = systematic0; s1 = systematic1; s2 = systematic2; yp1 = yparity1; yp2 = yparity2; - - #ifndef LLR8 for (i=0; in) { @@ -2290,7 +2116,7 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, s1[n+4]=0;s1[n+5]=0;s1[n+6]=0;s1[n+7]=0; s2[n]=0;s2[n+1]=0;s2[n+2]=0;s2[n+3]=0; s2[n+4]=0;s2[n+5]=0;s2[n+6]=0;s2[n+7]=0;*/ - yp=(llr_t*)(y8+n); + yp=(llr_t *)(y8+n); } #endif @@ -2341,68 +2167,55 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, #ifdef DEBUG_LOGMAP msg("\n"); #endif //DEBUG_LOGMAP - stop_meas(init_stats); - // do log_map from first parity bit - log_map(systematic0,yparity1,m11,m10,alpha,beta,ext,n2,0,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); while (iteration_cnt++ < max_iterations) { - #ifdef DEBUG_LOGMAP printf("\n*******************ITERATION %d (n %d), ext %p\n\n",iteration_cnt,n,ext); #endif //DEBUG_LOGMAP - start_meas(intl1_stats); #ifndef LLR8 - pi4_p=pi4tab[iind]; for (i=0; i<(n2>>3); i++) { // steady-state portion - - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],0); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],1); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],2); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],3); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],4); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],5); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],6); - ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t*)ext)[*pi4_p++],7); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],0); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],1); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],2); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],3); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],4); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],5); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],6); + ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],((llr_t *)ext)[*pi4_p++],7); } #else - pi4_p=pi4tab[iind]; for (i=0; i<(n2>>4); i++) { // steady-state portion - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],0); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],1); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],2); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],3); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],4); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],5); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],6); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],7); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],8); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],9); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],10); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],11); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],12); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],13); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],14); - ((__m128i *)systematic2)[i]=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],15); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],0); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],1); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],2); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],3); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],4); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],5); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],6); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],7); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],8); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],9); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],10); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],11); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],12); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],13); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],14); + ((__m128i *)systematic2)[i]=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],15); } #endif - stop_meas(intl1_stats); - // do log_map from second parity bit - log_map(systematic2,yparity2,m11,m10,alpha,beta,ext2,n2,1,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); - - #ifndef LLR8 pi5_p=pi5tab[iind]; @@ -2415,7 +2228,7 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],5); tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],6); tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],7); - ((__m128i *)systematic1)[i] = _mm_adds_epi16(_mm_subs_epi16(tmp,((__m128i*)ext)[i]),((__m128i *)systematic0)[i]); + ((__m128i *)systematic1)[i] = _mm_adds_epi16(_mm_subs_epi16(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); } if (iteration_cnt>1) { @@ -2423,17 +2236,16 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, pi6_p=pi6tab[iind]; for (i=0; i<(n2>>3); i++) { - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],7); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],6); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],5); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],4); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],3); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],2); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],1); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],0); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],7); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],6); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],5); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],4); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],3); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],2); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],1); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],0); tmp=_mm_cmpgt_epi8(_mm_packs_epi16(tmp,zeros),zeros); decoded_bytes[i]=(unsigned char)_mm_movemask_epi8(tmp); - } } @@ -2460,8 +2272,7 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],15); //decoded_bytes_interl[i]=(uint16_t) _mm_movemask_epi8(_mm_cmpgt_epi8(tmp,zeros)); tmp128[i] = _mm_adds_epi8(((__m128i *)ext2)[i],((__m128i *)systematic2)[i]); - - ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i*)ext)[i]),((__m128i *)systematic0)[i]); + ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); } /* LT modification, something wrong here @@ -2526,41 +2337,40 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, oldcrc= *((unsigned int *)(&decoded_bytes[(n>>3)-crc_len])); switch (crc_type) { + case CRC24_A: + oldcrc&=0x00ffffff; + crc = crc24a(&decoded_bytes[F>>3], + n-24-F)>>8; + temp=((uint8_t *)&crc)[2]; + ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; + ((uint8_t *)&crc)[0] = temp; + break; - case CRC24_A: - oldcrc&=0x00ffffff; - crc = crc24a(&decoded_bytes[F>>3], - n-24-F)>>8; - temp=((uint8_t *)&crc)[2]; - ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; - ((uint8_t *)&crc)[0] = temp; - break; + case CRC24_B: + oldcrc&=0x00ffffff; + crc = crc24b(decoded_bytes, + n-24)>>8; + temp=((uint8_t *)&crc)[2]; + ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; + ((uint8_t *)&crc)[0] = temp; + break; - case CRC24_B: - oldcrc&=0x00ffffff; - crc = crc24b(decoded_bytes, - n-24)>>8; - temp=((uint8_t *)&crc)[2]; - ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; - ((uint8_t *)&crc)[0] = temp; - break; + case CRC16: + oldcrc&=0x0000ffff; + crc = crc16(decoded_bytes, + n-16)>>16; + break; - case CRC16: - oldcrc&=0x0000ffff; - crc = crc16(decoded_bytes, - n-16)>>16; - break; + case CRC8: + oldcrc&=0x000000ff; + crc = crc8(decoded_bytes, + n-8)>>24; + break; - case CRC8: - oldcrc&=0x000000ff; - crc = crc8(decoded_bytes, - n-8)>>24; - break; - - default: - printf("FATAL: 3gpplte_turbo_decoder_sse.c: Unknown CRC\n"); - return(255); - break; + default: + printf("FATAL: 3gpplte_turbo_decoder_sse.c: Unknown CRC\n"); + return(255); + break; } stop_meas(intl2_stats); @@ -2573,9 +2383,9 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, // do log_map from first parity bit if (iteration_cnt < max_iterations) { log_map(systematic1,yparity1,m11,m10,alpha,beta,ext,n2,0,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); - __m128i* ext_128=(__m128i*) ext; - __m128i* s1_128=(__m128i*) systematic1; - __m128i* s0_128=(__m128i*) systematic0; + __m128i *ext_128=(__m128i *) ext; + __m128i *s1_128=(__m128i *) systematic1; + __m128i *s0_128=(__m128i *) systematic0; #ifndef LLR8 int myloop=n2>>3; @@ -2601,27 +2411,21 @@ unsigned char phy_threegpplte_turbo_decoder(short *y, #ifdef TEST_DEBUG -int test_logmap8() -{ +int test_logmap8() { unsigned char test[8]; //_declspec(align(16)) char channel_output[512]; //_declspec(align(16)) unsigned char output[512],decoded_output[16], *inPtr, *outPtr; - short channel_output[512]; unsigned char output[512],decoded_output[16]; unsigned int i,crc,ret; - test[0] = 7; test[1] = 0xa5; test[2] = 0x11; test[3] = 0x92; test[4] = 0xfe; - crc = crc24a(test, 40)>>8; - - *(unsigned int*)(&test[5]) = crc; - + *(unsigned int *)(&test[5]) = crc; printf("crc24 = %x\n",crc); threegpplte_turbo_encoder(test, //input 8, //input length bytes @@ -2646,20 +2450,15 @@ int test_logmap8() 0, // filler bits 0); // decoder instance - for (i=0; i<8; i++) - printf("output %d => %x (input %x)\n",i,decoded_output[i],test[i]); + printf("output %u => %x (input %x)\n",i,decoded_output[i],test[i]); } -int main() -{ - - +int main() { test_logmap8(); - return(0); } diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c index a25ba46ff8..50fae438b7 100644 --- a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c +++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_16bit.c @@ -41,53 +41,53 @@ #include "PHY/sse_intrin.h" #ifndef TEST_DEBUG -#include "PHY/impl_defs_top.h" -#include "PHY/defs_common.h" -#include "PHY/CODING/coding_defs.h" -#include "PHY/CODING/lte_interleaver_inline.h" + #include "PHY/impl_defs_top.h" + #include "PHY/defs_common.h" + #include "PHY/CODING/coding_defs.h" + #include "PHY/CODING/lte_interleaver_inline.h" #else -#include "defs.h" -#include -#include -#include + #include "defs.h" + #include + #include + #include #endif #ifdef MEX -#include "mex.h" + #include "mex.h" #endif //#define DEBUG_LOGMAP #ifdef DEBUG_LOGMAP -#define print_shorts(s,x) fprintf(fdsse4,"%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7]) + #define print_shorts(s,x) fprintf(fdsse4,"%s %d,%d,%d,%d,%d,%d,%d,%d\n",s,(x)[0],(x)[1],(x)[2],(x)[3],(x)[4],(x)[5],(x)[6],(x)[7]) #endif #undef __AVX2__ #ifdef DEBUG_LOGMAP -FILE *fdsse4; + FILE *fdsse4; #endif typedef int16_t llr_t; // internal decoder LLR data is 16-bit fixed typedef int16_t channel_t; #define MAX 256 -void log_map16(llr_t* systematic,channel_t* y_parity, llr_t* m11, llr_t* m10, llr_t *alpha, llr_t *beta, llr_t* ext,unsigned short frame_length,unsigned char term_flag,unsigned char F, +void log_map16(llr_t *systematic,channel_t *y_parity, llr_t *m11, llr_t *m10, llr_t *alpha, llr_t *beta, llr_t *ext,unsigned short frame_length,unsigned char term_flag,unsigned char F, int offset8_flag,time_stats_t *alpha_stats,time_stats_t *beta_stats,time_stats_t *gamma_stats,time_stats_t *ext_stats); -void compute_gamma16(llr_t* m11,llr_t* m10,llr_t* systematic, channel_t* y_parity, unsigned short frame_length,unsigned char term_flag); -void compute_alpha16(llr_t*alpha,llr_t *beta, llr_t* m11,llr_t* m10, unsigned short frame_length,unsigned char F); -void compute_beta16(llr_t*alpha, llr_t* beta,llr_t* m11,llr_t* m10, unsigned short frame_length,unsigned char F,int offset8_flag); -void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m11,llr_t* m10,llr_t* extrinsic, llr_t* ap, unsigned short frame_length); +void compute_gamma16(llr_t *m11,llr_t *m10,llr_t *systematic, channel_t *y_parity, unsigned short frame_length,unsigned char term_flag); +void compute_alpha16(llr_t *alpha,llr_t *beta, llr_t *m11,llr_t *m10, unsigned short frame_length,unsigned char F); +void compute_beta16(llr_t *alpha, llr_t *beta,llr_t *m11,llr_t *m10, unsigned short frame_length,unsigned char F,int offset8_flag); +void compute_ext16(llr_t *alpha,llr_t *beta,llr_t *m11,llr_t *m10,llr_t *extrinsic, llr_t *ap, unsigned short frame_length); -void log_map16(llr_t* systematic, - channel_t* y_parity, - llr_t* m11, - llr_t* m10, +void log_map16(llr_t *systematic, + channel_t *y_parity, + llr_t *m11, + llr_t *m10, llr_t *alpha, llr_t *beta, - llr_t* ext, + llr_t *ext, unsigned short frame_length, unsigned char term_flag, unsigned char F, @@ -95,13 +95,10 @@ void log_map16(llr_t* systematic, time_stats_t *alpha_stats, time_stats_t *beta_stats, time_stats_t *gamma_stats, - time_stats_t *ext_stats) -{ - + time_stats_t *ext_stats) { #ifdef DEBUG_LOGMAP fprintf(fdsse4,"log_map, frame_length %d\n",frame_length); #endif - start_meas(gamma_stats) ; compute_gamma16(m11,m10,systematic,y_parity,frame_length,term_flag) ; stop_meas(gamma_stats); @@ -114,13 +111,10 @@ void log_map16(llr_t* systematic, start_meas(ext_stats) ; compute_ext16(alpha,beta,m11,m10,ext,systematic,frame_length) ; stop_meas(ext_stats); - - } -void compute_gamma16(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, - unsigned short frame_length,unsigned char term_flag) -{ +void compute_gamma16(llr_t *m11,llr_t *m10,llr_t *systematic,channel_t *y_parity, + unsigned short frame_length,unsigned char term_flag) { int k,K1; #if defined(__x86_64__)||defined(__i386__) __m128i *systematic128 = (__m128i *)systematic; @@ -133,18 +127,18 @@ void compute_gamma16(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity int16x8_t *m10_128 = (int16x8_t *)m10; int16x8_t *m11_128 = (int16x8_t *)m11; #endif - #ifdef DEBUG_LOGMAP fprintf(fdsse4,"compute_gamma (sse_16bit), %p,%p,%p,%p,framelength %d\n",m11,m10,systematic,y_parity,frame_length); #endif - #ifndef __AVX2__ K1=frame_length>>3; #else + if ((frame_length&15) > 0) K1=(frame_length+1)>>4; else K1=frame_length>>4; + #endif for (k=0; kbeta1_16) ? beta0_16 : beta1_16; beta_m = (beta_m>beta2_16) ? beta_m : beta2_16; beta_m = (beta_m>beta3_16) ? beta_m : beta3_16; @@ -606,8 +567,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_m = (beta_m>beta5_16) ? beta_m : beta5_16; beta_m = (beta_m>beta6_16) ? beta_m : beta6_16; beta_m = (beta_m>beta7_16) ? beta_m : beta7_16; - - beta0_16=beta0_16-beta_m; beta1_16=beta1_16-beta_m; beta2_16=beta2_16-beta_m; @@ -619,12 +578,13 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh for (rerun_flag=0;; rerun_flag=1) { #if defined(__x86_64__) || defined(__i386__) - beta_ptr = (__m128i*)&beta[frame_length<<3]; - alpha128 = (__m128i*)&alpha[0]; + beta_ptr = (__m128i *)&beta[frame_length<<3]; + alpha128 = (__m128i *)&alpha[0]; #elif defined(__arm__) - beta_ptr = (int16x8_t*)&beta[frame_length<<3]; - alpha128 = (int16x8_t*)&alpha[0]; + beta_ptr = (int16x8_t *)&beta[frame_length<<3]; + alpha128 = (int16x8_t *)&alpha[0]; #endif + if (rerun_flag == 0) { beta_ptr[0] = alpha128[(frame_length)]; beta_ptr[1] = alpha128[1+(frame_length)]; @@ -636,18 +596,18 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_ptr[7] = alpha128[7+(frame_length)]; #ifdef DEBUG_LOGMAP fprintf(fdsse4,"beta init \n"); - print_shorts("b0",(int16_t*)&beta_ptr[0]); - print_shorts("b1",(int16_t*)&beta_ptr[1]); - print_shorts("b2",(int16_t*)&beta_ptr[2]); - print_shorts("b3",(int16_t*)&beta_ptr[3]); - print_shorts("b4",(int16_t*)&beta_ptr[4]); - print_shorts("b5",(int16_t*)&beta_ptr[5]); - print_shorts("b6",(int16_t*)&beta_ptr[6]); - print_shorts("b7",(int16_t*)&beta_ptr[7]); + print_shorts("b0",(int16_t *)&beta_ptr[0]); + print_shorts("b1",(int16_t *)&beta_ptr[1]); + print_shorts("b2",(int16_t *)&beta_ptr[2]); + print_shorts("b3",(int16_t *)&beta_ptr[3]); + print_shorts("b4",(int16_t *)&beta_ptr[4]); + print_shorts("b5",(int16_t *)&beta_ptr[5]); + print_shorts("b6",(int16_t *)&beta_ptr[6]); + print_shorts("b7",(int16_t *)&beta_ptr[7]); #endif } else { #if defined(__x86_64__) || defined(__i386__) - beta128 = (__m128i*)&beta[0]; + beta128 = (__m128i *)&beta[0]; beta_ptr[0] = _mm_srli_si128(beta128[0],2); beta_ptr[1] = _mm_srli_si128(beta128[1],2); beta_ptr[2] = _mm_srli_si128(beta128[2],2); @@ -657,31 +617,38 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_ptr[6] = _mm_srli_si128(beta128[6],2); beta_ptr[7] = _mm_srli_si128(beta128[7],2); #elif defined(__arm__) - beta128 = (int16x8_t*)&beta[0]; - beta_ptr = (int16x8_t*)&beta[frame_length<<3]; - beta_ptr[0] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[0],16); beta_ptr[0] = vsetq_lane_s16(beta[3],beta_ptr[0],4); - beta_ptr[1] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[1],16); beta_ptr[1] = vsetq_lane_s16(beta[11],beta_ptr[1],4); - beta_ptr[2] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[2],16); beta_ptr[2] = vsetq_lane_s16(beta[19],beta_ptr[2],4); - beta_ptr[3] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[3],16); beta_ptr[3] = vsetq_lane_s16(beta[27],beta_ptr[3],4); - beta_ptr[4] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[4],16); beta_ptr[4] = vsetq_lane_s16(beta[35],beta_ptr[4],4); - beta_ptr[5] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[5],16); beta_ptr[5] = vsetq_lane_s16(beta[43],beta_ptr[5],4); - beta_ptr[6] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[6],16); beta_ptr[6] = vsetq_lane_s16(beta[51],beta_ptr[6],4); - beta_ptr[7] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[7],16); beta_ptr[7] = vsetq_lane_s16(beta[59],beta_ptr[7],4); + beta128 = (int16x8_t *)&beta[0]; + beta_ptr = (int16x8_t *)&beta[frame_length<<3]; + beta_ptr[0] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[0],16); + beta_ptr[0] = vsetq_lane_s16(beta[3],beta_ptr[0],4); + beta_ptr[1] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[1],16); + beta_ptr[1] = vsetq_lane_s16(beta[11],beta_ptr[1],4); + beta_ptr[2] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[2],16); + beta_ptr[2] = vsetq_lane_s16(beta[19],beta_ptr[2],4); + beta_ptr[3] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[3],16); + beta_ptr[3] = vsetq_lane_s16(beta[27],beta_ptr[3],4); + beta_ptr[4] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[4],16); + beta_ptr[4] = vsetq_lane_s16(beta[35],beta_ptr[4],4); + beta_ptr[5] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[5],16); + beta_ptr[5] = vsetq_lane_s16(beta[43],beta_ptr[5],4); + beta_ptr[6] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[6],16); + beta_ptr[6] = vsetq_lane_s16(beta[51],beta_ptr[6],4); + beta_ptr[7] = (int16x8_t)vshrq_n_s64((int64x2_t)beta128[7],16); + beta_ptr[7] = vsetq_lane_s16(beta[59],beta_ptr[7],4); #endif #ifdef DEBUG_LOGMAP fprintf(fdsse4,"beta init (second run) \n"); - print_shorts("b0",(int16_t*)&beta_ptr[0]); - print_shorts("b1",(int16_t*)&beta_ptr[1]); - print_shorts("b2",(int16_t*)&beta_ptr[2]); - print_shorts("b3",(int16_t*)&beta_ptr[3]); - print_shorts("b4",(int16_t*)&beta_ptr[4]); - print_shorts("b5",(int16_t*)&beta_ptr[5]); - print_shorts("b6",(int16_t*)&beta_ptr[6]); - print_shorts("b7",(int16_t*)&beta_ptr[7]); + print_shorts("b0",(int16_t *)&beta_ptr[0]); + print_shorts("b1",(int16_t *)&beta_ptr[1]); + print_shorts("b2",(int16_t *)&beta_ptr[2]); + print_shorts("b3",(int16_t *)&beta_ptr[3]); + print_shorts("b4",(int16_t *)&beta_ptr[4]); + print_shorts("b5",(int16_t *)&beta_ptr[5]); + print_shorts("b6",(int16_t *)&beta_ptr[6]); + print_shorts("b7",(int16_t *)&beta_ptr[7]); #endif } - #if defined(__x86_64__) || defined(__i386__) beta_ptr[0] = _mm_insert_epi16(beta_ptr[0],beta0_16,7); beta_ptr[1] = _mm_insert_epi16(beta_ptr[1],beta1_16,7); @@ -701,26 +668,23 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_ptr[6] = vsetq_lane_s16(beta6_16,beta_ptr[6],7); beta_ptr[7] = vsetq_lane_s16(beta7_16,beta_ptr[7],7); #endif - #ifdef DEBUG_LOGMAP - fprintf(fdsse4,"beta init (after insert) \n"); - print_shorts("b0",(int16_t*)&beta_ptr[0]); - print_shorts("b1",(int16_t*)&beta_ptr[1]); - print_shorts("b2",(int16_t*)&beta_ptr[2]); - print_shorts("b3",(int16_t*)&beta_ptr[3]); - print_shorts("b4",(int16_t*)&beta_ptr[4]); - print_shorts("b5",(int16_t*)&beta_ptr[5]); - print_shorts("b6",(int16_t*)&beta_ptr[6]); - print_shorts("b7",(int16_t*)&beta_ptr[7]); + fprintf(fdsse4,"beta init (after insert) \n"); + print_shorts("b0",(int16_t *)&beta_ptr[0]); + print_shorts("b1",(int16_t *)&beta_ptr[1]); + print_shorts("b2",(int16_t *)&beta_ptr[2]); + print_shorts("b3",(int16_t *)&beta_ptr[3]); + print_shorts("b4",(int16_t *)&beta_ptr[4]); + print_shorts("b5",(int16_t *)&beta_ptr[5]); + print_shorts("b6",(int16_t *)&beta_ptr[6]); + print_shorts("b7",(int16_t *)&beta_ptr[7]); #endif int loopval=((rerun_flag==0)?0:((frame_length-L)>>3)); for (k=(frame_length>>3)-1; k>=loopval; k--) { #if defined(__x86_64__) || defined(__i386__) - m11_128=((__m128i*)m_11)[k]; - m10_128=((__m128i*)m_10)[k]; - - + m11_128=((__m128i *)m_11)[k]; + m10_128=((__m128i *)m_10)[k]; //#ifndef __AVX2__ #if 1 m_b0 = _mm_adds_epi16(beta_ptr[4],m11_128); //m11 @@ -731,8 +695,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh m_b5 = _mm_subs_epi16(beta_ptr[6],m10_128); //m01 m_b6 = _mm_subs_epi16(beta_ptr[7],m11_128); //m00 m_b7 = _mm_adds_epi16(beta_ptr[7],m11_128); //m11 - - new0 = _mm_subs_epi16(beta_ptr[0],m11_128); //m00 new1 = _mm_adds_epi16(beta_ptr[0],m11_128); //m11 new2 = _mm_adds_epi16(beta_ptr[1],m10_128); //m10 @@ -741,16 +703,13 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh new5 = _mm_adds_epi16(beta_ptr[2],m10_128); //m10 new6 = _mm_adds_epi16(beta_ptr[3],m11_128); //m11 new7 = _mm_subs_epi16(beta_ptr[3],m11_128); //m00 - #else - b01=_mm256_load_si256(&((_m256i*)beta_ptr)[0]); - b23=_mm256_load_si256(&((_m256i*)beta_ptr)[1]); - b45=_mm256_load_si256(&((_m256i*)beta_ptr)[2]); - b67=_mm256_load_si256(&((_m256i*)beta_ptr)[3]); + b01=_mm256_load_si256(&((_m256i *)beta_ptr)[0]); + b23=_mm256_load_si256(&((_m256i *)beta_ptr)[1]); + b45=_mm256_load_si256(&((_m256i *)beta_ptr)[2]); + b67=_mm256_load_si256(&((_m256i *)beta_ptr)[3]); m11m10_256 = _mm256_insertf128_si256(m11m10_256,m11_128,0); m11m10_256 = _mm256_insertf128_si256(m11m10_256,m10_128,1); - - m_b02 = _mm256_adds_epi16(b45,m11m10_256); //negative m10 m_b13 = _mm256_subs_epi16(b45,m11m10_256); //negative m10 m_b64 = _mm256_subs_epi16(b67,m11m10_256); //negative m10 @@ -760,9 +719,7 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh new64 = _mm256_adds_epi16(b23,m11m10_256); //negative m10 new75 = _mm256_subs_epi16(b24,m11m10_256); //negative m10 #endif - beta_ptr-=8; - //#ifndef __AVX2__ #if 1 beta_ptr[0] = _mm_max_epi16(m_b0,new0); @@ -773,7 +730,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_ptr[5] = _mm_max_epi16(m_b5,new5); beta_ptr[6] = _mm_max_epi16(m_b6,new6); beta_ptr[7] = _mm_max_epi16(m_b7,new7); - beta_max = _mm_max_epi16(beta_ptr[0],beta_ptr[1]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[2]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[3]); @@ -781,7 +737,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_max = _mm_max_epi16(beta_max ,beta_ptr[5]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[6]); beta_max = _mm_max_epi16(beta_max ,beta_ptr[7]); - beta_ptr[0] = _mm_subs_epi16(beta_ptr[0],beta_max); beta_ptr[1] = _mm_subs_epi16(beta_ptr[1],beta_max); beta_ptr[2] = _mm_subs_epi16(beta_ptr[2],beta_max); @@ -795,26 +750,22 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh b13 = _mm256_max_epi16(m_b13,new13); b64 = _mm256_max_epi16(m_b64,new64); b75 = _mm256_max_epi16(m_b75,new75); - beta_max = _mm256_max_epi16(b02,b13); beta_max = _mm256_max_epi16(beta_max,b64); beta_max = _mm256_max_epi16(beta_max,b75); beta_max = _mm256_max_epi16(beta_max,_mm256_permutevar8x32_epi32(betaa_max,_mm256_set_epi32(3,2,1,0,7,6,5,4))); - b02 = _mm256_subs_epi16(b02,beta_max); b13 = _mm256_subs_epi16(b13,beta_max); b64 = _mm256_subs_epi16(b64,beta_max); b75 = _mm256_subs_epi16(b75,beta_max); - - ((_m256i*)beta_ptr)[0]) = _mm256_permute2x128_si256(b02,b13,0x02); //b01 - ((_m256i*)beta_ptr)[1]) = _mm256_permute2x128_si256(b02,b13,0x31); //b23 - ((_m256i*)beta_ptr)[2]) = _mm256_permute2x128_si256(b64,b75,0x13); //b45 - ((_m256i*)beta_ptr)[3]) = _mm256_permute2x128_si256(b64,b75,0x20); //b67 + ((_m256i *)beta_ptr)[0]) = _mm256_permute2x128_si256(b02,b13,0x02); //b01 + ((_m256i *)beta_ptr)[1]) = _mm256_permute2x128_si256(b02,b13,0x31); //b23 + ((_m256i *)beta_ptr)[2]) = _mm256_permute2x128_si256(b64,b75,0x13); //b45 + ((_m256i *)beta_ptr)[3]) = _mm256_permute2x128_si256(b64,b75,0x20); //b67 #endif - #elif defined(__arm__) - m11_128=((int16x8_t*)m_11)[k]; - m10_128=((int16x8_t*)m_10)[k]; + m11_128=((int16x8_t *)m_11)[k]; + m10_128=((int16x8_t *)m_10)[k]; m_b0 = vqaddq_s16(beta_ptr[4],m11_128); //m11 m_b1 = vqsubq_s16(beta_ptr[4],m11_128); //m00 m_b2 = vqsubq_s16(beta_ptr[5],m10_128); //m01 @@ -823,7 +774,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh m_b5 = vqsubq_s16(beta_ptr[6],m10_128); //m01 m_b6 = vqsubq_s16(beta_ptr[7],m11_128); //m00 m_b7 = vqaddq_s16(beta_ptr[7],m11_128); //m11 - new0 = vqsubq_s16(beta_ptr[0],m11_128); //m00 new1 = vqaddq_s16(beta_ptr[0],m11_128); //m11 new2 = vqaddq_s16(beta_ptr[1],m10_128); //m10 @@ -832,9 +782,7 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh new5 = vqaddq_s16(beta_ptr[2],m10_128); //m10 new6 = vqaddq_s16(beta_ptr[3],m11_128); //m11 new7 = vqsubq_s16(beta_ptr[3],m11_128); //m00 - beta_ptr-=8; - beta_ptr[0] = vmaxq_s16(m_b0,new0); beta_ptr[1] = vmaxq_s16(m_b1,new1); beta_ptr[2] = vmaxq_s16(m_b2,new2); @@ -843,7 +791,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_ptr[5] = vmaxq_s16(m_b5,new5); beta_ptr[6] = vmaxq_s16(m_b6,new6); beta_ptr[7] = vmaxq_s16(m_b7,new7); - beta_max = vmaxq_s16(beta_ptr[0],beta_ptr[1]); beta_max = vmaxq_s16(beta_max ,beta_ptr[2]); beta_max = vmaxq_s16(beta_max ,beta_ptr[3]); @@ -851,7 +798,6 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_max = vmaxq_s16(beta_max ,beta_ptr[5]); beta_max = vmaxq_s16(beta_max ,beta_ptr[6]); beta_max = vmaxq_s16(beta_max ,beta_ptr[7]); - beta_ptr[0] = vqsubq_s16(beta_ptr[0],beta_max); beta_ptr[1] = vqsubq_s16(beta_ptr[1],beta_max); beta_ptr[2] = vqsubq_s16(beta_ptr[2],beta_max); @@ -861,20 +807,18 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh beta_ptr[6] = vqsubq_s16(beta_ptr[6],beta_max); beta_ptr[7] = vqsubq_s16(beta_ptr[7],beta_max); #endif - #ifdef DEBUG_LOGMAP fprintf(fdsse4,"Loop index %d, mb\n",k); fprintf(fdsse4,"beta init (after max)\n"); - print_shorts("b0",(int16_t*)&beta_ptr[0]); - print_shorts("b1",(int16_t*)&beta_ptr[1]); - print_shorts("b2",(int16_t*)&beta_ptr[2]); - print_shorts("b3",(int16_t*)&beta_ptr[3]); - print_shorts("b4",(int16_t*)&beta_ptr[4]); - print_shorts("b5",(int16_t*)&beta_ptr[5]); - print_shorts("b6",(int16_t*)&beta_ptr[6]); - print_shorts("b7",(int16_t*)&beta_ptr[7]); + print_shorts("b0",(int16_t *)&beta_ptr[0]); + print_shorts("b1",(int16_t *)&beta_ptr[1]); + print_shorts("b2",(int16_t *)&beta_ptr[2]); + print_shorts("b3",(int16_t *)&beta_ptr[3]); + print_shorts("b4",(int16_t *)&beta_ptr[4]); + print_shorts("b5",(int16_t *)&beta_ptr[5]); + print_shorts("b6",(int16_t *)&beta_ptr[6]); + print_shorts("b7",(int16_t *)&beta_ptr[7]); #endif - } if (rerun_flag==1) @@ -882,8 +826,7 @@ void compute_beta16(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sh } } -void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, llr_t* systematic,unsigned short frame_length) -{ +void compute_ext16(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,llr_t *ext, llr_t *systematic,unsigned short frame_length) { #if defined(__x86_64__) || defined(__i386__) __m128i *alpha128=(__m128i *)alpha; __m128i *beta128=(__m128i *)beta; @@ -903,28 +846,21 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, int16x8_t m10_1,m10_2,m10_3,m10_4; int16x8_t m11_1,m11_2,m11_3,m11_4; #endif - int k; - // // LLR computation, 8 consequtive bits per loop // - #ifdef DEBUG_LOGMAP fprintf(fdsse4,"compute_ext (sse_16bit), %p, %p, %p, %p, %p, %p ,framelength %d\n",alpha,beta,m_11,m_10,ext,systematic,frame_length); #endif - alpha_ptr = alpha128; beta_ptr = &beta128[8]; - for (k=0; k<(frame_length>>3); k++) { - #if defined(__x86_64__) || defined(__i386__) - m11_128 = (__m128i*)&m_11[k<<3]; - m10_128 = (__m128i*)&m_10[k<<3]; - ext_128 = (__m128i*)&ext[k<<3]; - + m11_128 = (__m128i *)&m_11[k<<3]; + m10_128 = (__m128i *)&m_10[k<<3]; + ext_128 = (__m128i *)&ext[k<<3]; /* fprintf(fdsse4,"EXT %03d\n",k); print_shorts("a0:",&alpha_ptr[0]); @@ -944,7 +880,6 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, print_shorts("b6:",&beta_ptr[6]); print_shorts("b7:",&beta_ptr[7]); */ - //#ifndef __AVX2__ #if 1 m00_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; @@ -964,31 +899,23 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, m10_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; m01_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; #else - - m00_1 = _mm_adds_epi16(alpha_ptr[0],beta_ptr[0]); //ALPHA_BETA_1m00; m10_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; m11_1 = _mm_adds_epi16(alpha_ptr[0],beta_ptr[4]); //ALPHA_BETA_1m11; m01_1 = _mm_adds_epi16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; - m11_2 = _mm_adds_epi16(alpha_ptr[1],beta_ptr[0]); //ALPHA_BETA_2m11; m01_2 = _mm_adds_epi16(alpha_ptr[3],beta_ptr[1]); //ALPHA_BETA_2m01; m00_2 = _mm_adds_epi16(alpha_ptr[1],beta_ptr[4]); //ALPHA_BETA_2m00; m10_2 = _mm_adds_epi16(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; - m11_3 = _mm_adds_epi16(alpha_ptr[6],beta_ptr[3]); //ALPHA_BETA_3m11; m01_3 = _mm_adds_epi16(alpha_ptr[4],beta_ptr[2]); //ALPHA_BETA_3m01; m00_3 = _mm_adds_epi16(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; m10_3 = _mm_adds_epi16(alpha_ptr[4],beta_ptr[6]); //ALPHA_BETA_3m10; - m00_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; m10_4 = _mm_adds_epi16(alpha_ptr[5],beta_ptr[2]); //ALPHA_BETA_4m10; m11_4 = _mm_adds_epi16(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; m01_4 = _mm_adds_epi16(alpha_ptr[5],beta_ptr[6]); //ALPHA_BETA_4m01; - - #endif - /* print_shorts("m11_1:",&m11_1); print_shorts("m11_2:",&m11_2); @@ -1019,36 +946,30 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, m11_1 = _mm_max_epi16(m11_1,m11_2); m11_1 = _mm_max_epi16(m11_1,m11_3); m11_1 = _mm_max_epi16(m11_1,m11_4); - // print_shorts("m11_1:",&m11_1); - m01_1 = _mm_subs_epi16(m01_1,*m10_128); m00_1 = _mm_subs_epi16(m00_1,*m11_128); m10_1 = _mm_adds_epi16(m10_1,*m10_128); m11_1 = _mm_adds_epi16(m11_1,*m11_128); - // print_shorts("m10_1:",&m10_1); // print_shorts("m11_1:",&m11_1); m01_1 = _mm_max_epi16(m01_1,m00_1); m10_1 = _mm_max_epi16(m10_1,m11_1); // print_shorts("m01_1:",&m01_1); // print_shorts("m10_1:",&m10_1); - *ext_128 = _mm_subs_epi16(m10_1,m01_1); #ifdef DEBUG_LOGMAP fprintf(fdsse4,"ext %p\n",ext_128); - print_shorts("ext:",(int16_t*)ext_128); - print_shorts("m11:",(int16_t*)m11_128); - print_shorts("m10:",(int16_t*)m10_128); - print_shorts("m10_1:",(int16_t*)&m10_1); - print_shorts("m01_1:",(int16_t*)&m01_1); + print_shorts("ext:",(int16_t *)ext_128); + print_shorts("m11:",(int16_t *)m11_128); + print_shorts("m10:",(int16_t *)m10_128); + print_shorts("m10_1:",(int16_t *)&m10_1); + print_shorts("m01_1:",(int16_t *)&m01_1); #endif - #elif defined(__arm__) - m11_128 = (int16x8_t*)&m_11[k<<3]; - m10_128 = (int16x8_t*)&m_10[k<<3]; - ext_128 = (int16x8_t*)&ext[k<<3]; - + m11_128 = (int16x8_t *)&m_11[k<<3]; + m10_128 = (int16x8_t *)&m_10[k<<3]; + ext_128 = (int16x8_t *)&ext[k<<3]; m00_4 = vqaddq_s16(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; m11_4 = vqaddq_s16(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; m00_3 = vqaddq_s16(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; @@ -1065,7 +986,6 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, m10_2 = vqaddq_s16(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; m10_1 = vqaddq_s16(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; m01_1 = vqaddq_s16(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; - m01_1 = vmaxq_s16(m01_1,m01_2); m01_1 = vmaxq_s16(m01_1,m01_3); m01_1 = vmaxq_s16(m01_1,m01_4); @@ -1078,18 +998,12 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, m11_1 = vmaxq_s16(m11_1,m11_2); m11_1 = vmaxq_s16(m11_1,m11_3); m11_1 = vmaxq_s16(m11_1,m11_4); - - m01_1 = vqsubq_s16(m01_1,*m10_128); m00_1 = vqsubq_s16(m00_1,*m11_128); m10_1 = vqaddq_s16(m10_1,*m10_128); m11_1 = vqaddq_s16(m11_1,*m11_128); - - m01_1 = vmaxq_s16(m01_1,m00_1); m10_1 = vmaxq_s16(m10_1,m11_1); - - *ext_128 = vqsubq_s16(m10_1,m01_1); #endif alpha_ptr+=8; @@ -1102,8 +1016,7 @@ void compute_ext16(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, //int pi2[n],pi3[n+8],pi5[n+8],pi4[n+8],pi6[n+8], int *pi2tab16[188],*pi5tab16[188],*pi4tab16[188],*pi6tab16[188]; -void free_td16(void) -{ +void free_td16(void) { int ind; for (ind=0; ind<188; ind++) { @@ -1114,14 +1027,11 @@ void free_td16(void) } } -void init_td16(void) -{ - +void init_td16(void) { int ind,i,i2,i3,j,n,pi,pi3; - short * base_interleaver; + short *base_interleaver; for (ind=0; ind<188; ind++) { - n = f1f2mat[ind].nb_bits; base_interleaver=il_tb+f1f2mat[ind].beg_index; #ifdef MEX @@ -1141,10 +1051,8 @@ void init_td16(void) j=i2; for (i3=0; i3<(n>>3); i3++,i++,j+=8) { - // if (j>=n) // j-=(n-1); - pi2tab16[ind][i] = j; // fprintf(fdsse4,"pi2[%d] = %d\n",i,j); } @@ -1157,71 +1065,59 @@ void init_td16(void) pi5tab16[ind][pi3] = pi2tab16[ind][i]; pi6tab16[ind][pi] = pi2tab16[ind][i]; } - } } uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, - int16_t *y2, - uint8_t *decoded_bytes, - uint8_t *decoded_bytes2, - uint16_t n, - uint8_t max_iterations, - uint8_t crc_type, - uint8_t F, - time_stats_t *init_stats, - time_stats_t *alpha_stats, - time_stats_t *beta_stats, - time_stats_t *gamma_stats, - time_stats_t *ext_stats, - time_stats_t *intl1_stats, - time_stats_t *intl2_stats) { - + int16_t *y2, + uint8_t *decoded_bytes, + uint8_t *decoded_bytes2, + uint16_t n, + uint8_t max_iterations, + uint8_t crc_type, + uint8_t F, + time_stats_t *init_stats, + time_stats_t *alpha_stats, + time_stats_t *beta_stats, + time_stats_t *gamma_stats, + time_stats_t *ext_stats, + time_stats_t *intl1_stats, + time_stats_t *intl2_stats) { /* y is a pointer to the input decoded_bytes is a pointer to the decoded output n is the size in bits of the coded block, with the tail */ - - llr_t systematic0[n+16] __attribute__ ((aligned(32))); llr_t systematic1[n+16] __attribute__ ((aligned(32))); llr_t systematic2[n+16] __attribute__ ((aligned(32))); llr_t yparity1[n+16] __attribute__ ((aligned(32))); llr_t yparity2[n+16] __attribute__ ((aligned(32))); - llr_t ext[n+128] __attribute__((aligned(32))); llr_t ext2[n+128] __attribute__((aligned(32))); - llr_t alpha[(n+16)*8] __attribute__ ((aligned(32))); llr_t beta[(n+16)*8] __attribute__ ((aligned(32))); llr_t m11[n+32] __attribute__ ((aligned(32))); llr_t m10[n+32] __attribute__ ((aligned(32))); - - int *pi2_p,*pi4_p,*pi5_p,*pi6_p; llr_t *s,*s1,*s2,*yp1,*yp2,*yp; unsigned int i,j,iind;//,pi; unsigned char iteration_cnt=0; unsigned int crc,oldcrc,crc_len; uint8_t temp; - #if defined(__x86_64__) || defined(__i386__) __m128i *yp128; __m128i tmp, zeros=_mm_setzero_si128(); __m128i tmpe; #elif defined(__arm__) int16x8_t *yp128; -// int16x8_t tmp128[(n+8)>>3]; + // int16x8_t tmp128[(n+8)>>3]; int16x8_t tmp, zeros=vdupq_n_s16(0); - const uint16_t __attribute__ ((aligned (16))) _Powers[8]= - { 1, 2, 4, 8, 16, 32, 64, 128}; + const uint16_t __attribute__ ((aligned (16))) _Powers[8]= + { 1, 2, 4, 8, 16, 32, 64, 128}; uint16x8_t Powers= vld1q_u16(_Powers); #endif int offset8_flag=0; - #ifdef DEBUG_LOGMAP fdsse4 = fopen("dump_sse4.txt","w"); - - printf("tc sse4_16 (y) %p\n",y); #endif @@ -1230,12 +1126,8 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, return 255; } - - start_meas(init_stats); - - for (iind=0; iind < 188 && f1f2mat[iind].nb_bits != n; iind++); if ( iind == 188 ) { @@ -1244,50 +1136,41 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, } switch (crc_type) { - case CRC24_A: - case CRC24_B: - crc_len=3; - break; + case CRC24_A: + case CRC24_B: + crc_len=3; + break; - case CRC16: - crc_len=2; - break; + case CRC16: + crc_len=2; + break; - case CRC8: - crc_len=1; - break; + case CRC8: + crc_len=1; + break; - default: - crc_len=3; + default: + crc_len=3; } #if defined(__x86_64__) || defined(__i386__) - yp128 = (__m128i*)y; + yp128 = (__m128i *)y; #elif defined(__arm__) - yp128 = (int16x8_t*)y; + yp128 = (int16x8_t *)y; #endif - - - - s = systematic0; s1 = systematic1; s2 = systematic2; yp1 = yparity1; yp2 = yparity2; - - for (i=0; i>3); i++) { // steady-state portion - #if defined(__x86_64__) || defined(__i386__) ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],0); ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],1); @@ -1457,30 +1315,24 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],5); ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],6); ((__m128i *)systematic2)[i]=_mm_insert_epi16(((__m128i *)systematic2)[i],ext[*pi4_p++],7); - #elif defined(__arm__) - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],0); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],1); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],2); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],3); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],4); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],5); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],6); - ((int16x8_t*)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t*)systematic2)[i],7); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],0); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],1); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],2); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],3); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],4); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],5); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],6); + ((int16x8_t *)systematic2)[i]=vsetq_lane_s16(ext[*pi4_p++],((int16x8_t *)systematic2)[i],7); #endif #ifdef DEBUG_LOGMAP - print_shorts("syst2",(int16_t*)&((__m128i *)systematic2)[i]); + print_shorts("syst2",(int16_t *)&((__m128i *)systematic2)[i]); #endif } stop_meas(intl1_stats); - // do log_map from second parity bit - log_map16(systematic2,yparity2,m11,m10,alpha,beta,ext2,n,1,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); - - - pi5_p=pi5tab16[iind]; for (i=0; i<(n>>3); i++) { @@ -1493,20 +1345,20 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],5); tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],6); tmp=_mm_insert_epi16(tmp,ext2[*pi5_p++],7); - ((__m128i *)systematic1)[i] = _mm_adds_epi16(_mm_subs_epi16(tmp,((__m128i*)ext)[i]),((__m128i *)systematic0)[i]); + ((__m128i *)systematic1)[i] = _mm_adds_epi16(_mm_subs_epi16(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); #elif defined(__arm__) - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,0); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,1); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,2); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,3); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,4); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,5); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,6); - tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,7); - ((int16x8_t *)systematic1)[i] = vqaddq_s16(vqsubq_s16(tmp,((int16x8_t*)ext)[i]),((int16x8_t *)systematic0)[i]); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,0); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,1); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,2); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,3); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,4); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,5); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,6); + tmp=vsetq_lane_s16(ext2[*pi5_p++],tmp,7); + ((int16x8_t *)systematic1)[i] = vqaddq_s16(vqsubq_s16(tmp,((int16x8_t *)ext)[i]),((int16x8_t *)systematic0)[i]); #endif #ifdef DEBUG_LOGMAP - print_shorts("syst1",(int16_t*)&((__m128i *)systematic1)[i]); + print_shorts("syst1",(int16_t *)&((__m128i *)systematic1)[i]); #endif } @@ -1516,16 +1368,16 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, for (i=0; i<(n>>3); i++) { #if defined(__x86_64__) || defined(__i386__) - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],7); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],6); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],5); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],4); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],3); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],2); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],1); - tmp=_mm_insert_epi16(tmp, ((llr_t*)ext2)[*pi6_p++],0); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],7); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],6); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],5); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],4); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],3); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],2); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],1); + tmp=_mm_insert_epi16(tmp, ((llr_t *)ext2)[*pi6_p++],0); #ifdef DEBUG_LOGMAP - print_shorts("tmp",(int16_t*)&tmp); + print_shorts("tmp",(int16_t *)&tmp); #endif tmp=_mm_cmpgt_epi8(_mm_packs_epi16(tmp,zeros),zeros); decoded_bytes[i]=(unsigned char)_mm_movemask_epi8(tmp); @@ -1538,18 +1390,18 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, tmp=vsetq_lane_s16(ext2[*pi6_p++],tmp,2); tmp=vsetq_lane_s16(ext2[*pi6_p++],tmp,1); tmp=vsetq_lane_s16(ext2[*pi6_p++],tmp,0); -// This does: -// [1 2 4 8 16 32 64 128] .* I(ext_i > 0) = 2.^[b0 b1 b2 b3 b4 b5 b6 b7], where bi =I(ext_i > 0) -// [2^b0 + 2^b1 2^b2 + 2^b3 2^b4 + 2^b5 2^b6 + 2^b7] -// [2^b0 + 2^b1 + 2^b2 + 2^b3 2^b4 + 2^b5 + 2^b6 + 2^b7] -// Mask64 = 2^b0 + 2^b1 + 2^b2 + 2^b3 + 2^b4 + 2^b5 + 2^b6 + 2^b7 - uint64x2_t Mask = vpaddlq_u32(vpaddlq_u16(vandq_u16(vcgtq_s16(tmp,zeros), Powers))); + // This does: + // [1 2 4 8 16 32 64 128] .* I(ext_i > 0) = 2.^[b0 b1 b2 b3 b4 b5 b6 b7], where bi =I(ext_i > 0) + // [2^b0 + 2^b1 2^b2 + 2^b3 2^b4 + 2^b5 2^b6 + 2^b7] + // [2^b0 + 2^b1 + 2^b2 + 2^b3 2^b4 + 2^b5 + 2^b6 + 2^b7] + // Mask64 = 2^b0 + 2^b1 + 2^b2 + 2^b3 + 2^b4 + 2^b5 + 2^b6 + 2^b7 + uint64x2_t Mask = vpaddlq_u32(vpaddlq_u16(vandq_u16(vcgtq_s16(tmp,zeros), Powers))); uint64x1_t Mask64 = vget_high_u64(Mask)+vget_low_u64(Mask); decoded_bytes[i] = (uint8_t)Mask64; #endif #ifdef DEBUG_LOGMAP - print_shorts("tmp",(int16_t*)&tmp); - fprintf(fdsse4,"decoded_bytes[%d] %x\n",i,decoded_bytes[i]); + print_shorts("tmp",(int16_t *)&tmp); + fprintf(fdsse4,"decoded_bytes[%u] %x\n",i,decoded_bytes[i]); #endif } } @@ -1559,41 +1411,40 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, oldcrc= *((unsigned int *)(&decoded_bytes[(n>>3)-crc_len])); switch (crc_type) { + case CRC24_A: + oldcrc&=0x00ffffff; + crc = crc24a(&decoded_bytes[F>>3], + n-24-F)>>8; + temp=((uint8_t *)&crc)[2]; + ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; + ((uint8_t *)&crc)[0] = temp; + break; - case CRC24_A: - oldcrc&=0x00ffffff; - crc = crc24a(&decoded_bytes[F>>3], - n-24-F)>>8; - temp=((uint8_t *)&crc)[2]; - ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; - ((uint8_t *)&crc)[0] = temp; - break; + case CRC24_B: + oldcrc&=0x00ffffff; + crc = crc24b(decoded_bytes, + n-24)>>8; + temp=((uint8_t *)&crc)[2]; + ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; + ((uint8_t *)&crc)[0] = temp; + break; - case CRC24_B: - oldcrc&=0x00ffffff; - crc = crc24b(decoded_bytes, - n-24)>>8; - temp=((uint8_t *)&crc)[2]; - ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; - ((uint8_t *)&crc)[0] = temp; - break; + case CRC16: + oldcrc&=0x0000ffff; + crc = crc16(decoded_bytes, + n-16)>>16; + break; - case CRC16: - oldcrc&=0x0000ffff; - crc = crc16(decoded_bytes, - n-16)>>16; - break; + case CRC8: + oldcrc&=0x000000ff; + crc = crc8(decoded_bytes, + n-8)>>24; + break; - case CRC8: - oldcrc&=0x000000ff; - crc = crc8(decoded_bytes, - n-8)>>24; - break; - - default: - printf("FATAL: 3gpplte_turbo_decoder_sse.c: Unknown CRC\n"); - return(255); - break; + default: + printf("FATAL: 3gpplte_turbo_decoder_sse.c: Unknown CRC\n"); + return(255); + break; } stop_meas(intl2_stats); @@ -1610,13 +1461,13 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, if (iteration_cnt < max_iterations) { log_map16(systematic1,yparity1,m11,m10,alpha,beta,ext,n,0,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); #if defined(__x86_64__) || defined(__i386__) - __m128i* ext_128=(__m128i*) ext; - __m128i* s1_128=(__m128i*) systematic1; - __m128i* s0_128=(__m128i*) systematic0; + __m128i *ext_128=(__m128i *) ext; + __m128i *s1_128=(__m128i *) systematic1; + __m128i *s0_128=(__m128i *) systematic0; #elif defined(__arm__) - int16x8_t* ext_128=(int16x8_t*) ext; - int16x8_t* s1_128=(int16x8_t*) systematic1; - int16x8_t* s0_128=(int16x8_t*) systematic0; + int16x8_t *ext_128=(int16x8_t *) ext; + int16x8_t *s1_128=(int16x8_t *) systematic1; + int16x8_t *s0_128=(int16x8_t *) systematic0; #endif int myloop=n>>3; @@ -1630,13 +1481,11 @@ uint8_t phy_threegpplte_turbo_decoder16(int16_t *y, } } } - + // fprintf(fdsse4,"crc %x, oldcrc %x\n",crc,oldcrc); - #ifdef DEBUG_LOGMAP - fclose(fdsse4); + fclose(fdsse4); #endif - #if defined(__x86_64__) || defined(__i386__) _mm_empty(); _m_empty(); diff --git a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c index 476e79cacb..e1ca906b55 100644 --- a/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c +++ b/openair1/PHY/CODING/3gpplte_turbo_decoder_sse_8bit.c @@ -39,39 +39,39 @@ #include "PHY/sse_intrin.h" #ifndef TEST_DEBUG -#include "PHY/defs_common.h" -#include "PHY/CODING/coding_defs.h" -#include "PHY/CODING/lte_interleaver_inline.h" + #include "PHY/defs_common.h" + #include "PHY/CODING/coding_defs.h" + #include "PHY/CODING/lte_interleaver_inline.h" #else -#include "defs.h" -#include -#include -#include + #include "defs.h" + #include + #include + #include #endif #ifdef MEX -#include "mex.h" + #include "mex.h" #endif #include "common/ran_context.h" #define SHUFFLE16(a,b,c,d,e,f,g,h) _mm_set_epi8(h==-1?-1:h*2+1, \ - h==-1?-1:h*2, \ - g==-1?-1:g*2+1, \ - g==-1?-1:g*2, \ - f==-1?-1:f*2+1, \ - f==-1?-1:f*2, \ - e==-1?-1:e*2+1, \ - e==-1?-1:e*2, \ - d==-1?-1:d*2+1, \ - d==-1?-1:d*2, \ - c==-1?-1:c*2+1, \ - c==-1?-1:c*2, \ - b==-1?-1:b*2+1, \ - b==-1?-1:b*2, \ - a==-1?-1:a*2+1, \ - a==-1?-1:a*2); + h==-1?-1:h*2, \ + g==-1?-1:g*2+1, \ + g==-1?-1:g*2, \ + f==-1?-1:f*2+1, \ + f==-1?-1:f*2, \ + e==-1?-1:e*2+1, \ + e==-1?-1:e*2, \ + d==-1?-1:d*2+1, \ + d==-1?-1:d*2, \ + c==-1?-1:c*2+1, \ + c==-1?-1:c*2, \ + b==-1?-1:b*2+1, \ + b==-1?-1:b*2, \ + a==-1?-1:a*2+1, \ + a==-1?-1:a*2); @@ -86,32 +86,28 @@ typedef int8_t channel_t; #define MAX8 127 -void log_map8(llr_t* systematic,channel_t* y_parity, llr_t* m11, llr_t* m10, llr_t *alpha, llr_t *beta, llr_t* ext,unsigned short frame_length,unsigned char term_flag,unsigned char F,int offset8_flag, +void log_map8(llr_t *systematic,channel_t *y_parity, llr_t *m11, llr_t *m10, llr_t *alpha, llr_t *beta, llr_t *ext,unsigned short frame_length,unsigned char term_flag,unsigned char F,int offset8_flag, time_stats_t *alpha_stats,time_stats_t *beta_stats,time_stats_t *gamma_stats,time_stats_t *ext_stats); -void compute_gamma8(llr_t* m11,llr_t* m10,llr_t* systematic, channel_t* y_parity, unsigned short frame_length,unsigned char term_flag); -void compute_alpha8(llr_t*alpha,llr_t *beta, llr_t* m11,llr_t* m10, unsigned short frame_length,unsigned char F); -void compute_beta8(llr_t*alpha, llr_t* beta,llr_t* m11,llr_t* m10, unsigned short frame_length,unsigned char F,int offset8_flag); -void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m11,llr_t* m10,llr_t* extrinsic, llr_t* ap, unsigned short frame_length); - - -void print_bytes(char *s, int8_t *x) -{ +void compute_gamma8(llr_t *m11,llr_t *m10,llr_t *systematic, channel_t *y_parity, unsigned short frame_length,unsigned char term_flag); +void compute_alpha8(llr_t *alpha,llr_t *beta, llr_t *m11,llr_t *m10, unsigned short frame_length,unsigned char F); +void compute_beta8(llr_t *alpha, llr_t *beta,llr_t *m11,llr_t *m10, unsigned short frame_length,unsigned char F,int offset8_flag); +void compute_ext8(llr_t *alpha,llr_t *beta,llr_t *m11,llr_t *m10,llr_t *extrinsic, llr_t *ap, unsigned short frame_length); +void print_bytes(char *s, int8_t *x) { printf("%s : %d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d\n",s, x[0],x[1],x[2],x[3],x[4],x[5],x[6],x[7], x[8],x[9],x[10],x[11],x[12],x[13],x[14],x[15]); - } -void log_map8(llr_t* systematic, - channel_t* y_parity, - llr_t* m11, - llr_t* m10, +void log_map8(llr_t *systematic, + channel_t *y_parity, + llr_t *m11, + llr_t *m10, llr_t *alpha, llr_t *beta, - llr_t* ext, + llr_t *ext, unsigned short frame_length, unsigned char term_flag, unsigned char F, @@ -119,32 +115,38 @@ void log_map8(llr_t* systematic, time_stats_t *alpha_stats, time_stats_t *beta_stats, time_stats_t *gamma_stats, - time_stats_t *ext_stats) -{ - + time_stats_t *ext_stats) { #ifdef DEBUG_LOGMAP printf("log_map, frame_length %d\n",frame_length); #endif if (gamma_stats) start_meas(gamma_stats) ; + compute_gamma8(m11,m10,systematic,y_parity,frame_length,term_flag) ; + if (gamma_stats) stop_meas(gamma_stats); + if (alpha_stats) start_meas(alpha_stats) ; + compute_alpha8(alpha,beta,m11,m10,frame_length,F) ; + if (alpha_stats) stop_meas(alpha_stats); + if (beta_stats) start_meas(beta_stats) ; + compute_beta8(alpha,beta,m11,m10,frame_length,F,offset8_flag) ; + if (beta_stats) stop_meas(beta_stats); + if (ext_stats) start_meas(ext_stats) ; + compute_ext8(alpha,beta,m11,m10,ext,systematic,frame_length) ; + if (ext_stats) stop_meas(ext_stats); - - } -void compute_gamma8(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, - unsigned short frame_length,unsigned char term_flag) -{ +void compute_gamma8(llr_t *m11,llr_t *m10,llr_t *systematic,channel_t *y_parity, + unsigned short frame_length,unsigned char term_flag) { int k,K1; #if defined(__x86_64__)||defined(__i386__) __m128i *systematic128 = (__m128i *)systematic; @@ -157,11 +159,9 @@ void compute_gamma8(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, int8x16_t *m10_128 = (int8x16_t *)m10; int8x16_t *m11_128 = (int8x16_t *)m11; #endif - #ifdef DEBUG_LOGMAP printf("compute_gamma, %p,%p,%p,%p,framelength %d\n",m11,m10,systematic,y_parity,frame_length); #endif - #if defined(__x86_64__) || defined(__i386__) register __m128i sl,sh,ypl,yph; //K128=_mm_set1_epi8(-128); #endif @@ -181,11 +181,9 @@ void compute_gamma8(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, m11_128[k] = vhaddq_s8(systematic128[k],y_parity128[k]); m10_128[k] = vhsubq_s8(systematic128[k],y_parity128[k]); #endif - } // Termination - #if defined(__x86_64__) || defined(__i386__) sl = _mm_cvtepi8_epi16(systematic128[k+term_flag]); sh = _mm_cvtepi8_epi16(_mm_srli_si128(systematic128[k],8)); @@ -199,15 +197,12 @@ void compute_gamma8(llr_t* m11,llr_t* m10,llr_t* systematic,channel_t* y_parity, m11_128[k] = vhaddq_s8(systematic128[k+term_flag],y_parity128[k]); m10_128[k] = vhsubq_s8(systematic128[k+term_flag],y_parity128[k]); #endif - } #define L 16 -void compute_alpha8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned short frame_length,unsigned char F) -{ +void compute_alpha8(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned short frame_length,unsigned char F) { int k,loopval,rerun_flag; - #if defined(__x86_64__) || defined(__i386__) __m128i *alpha128=(__m128i *)alpha,*alpha_ptr; __m128i *m11p,*m10p; @@ -223,7 +218,6 @@ void compute_alpha8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned sh #endif // Set initial state: first colum is known // the other columns are unknown, so all states are set to same value - #if defined(__x86_64__) || defined(__i386__) alpha128[0] = _mm_set_epi8(-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,0); alpha128[1] = _mm_set_epi8(-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2); @@ -233,12 +227,11 @@ void compute_alpha8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned sh alpha128[5] = _mm_set_epi8(-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2); alpha128[6] = _mm_set_epi8(-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2); alpha128[7] = _mm_set_epi8(-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2,-MAX8/2); + for (loopval=frame_length>>4, rerun_flag=0; rerun_flag<2; loopval=L, rerun_flag++) { - alpha_ptr = &alpha128[0]; - - m11p = (__m128i*)m_11; - m10p = (__m128i*)m_10; + m11p = (__m128i *)m_11; + m10p = (__m128i *)m_10; for (k=0; k>4, rerun_flag=0; rerun_flag<2; loopval=L, rerun_flag++) { - alpha_ptr = &alpha128[0]; - - m11p = (int8x16_t*)m_11; - m10p = (int8x16_t*)m_10; + m11p = (int8x16_t *)m_11; + m10p = (int8x16_t *)m_10; for (k=0; k>1; - alpha128[0] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[K1],8); alpha128[0] = vsetq_lane_s8(alpha[8],alpha128[0],7); - alpha128[1] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[1+K1],8); alpha128[1] = vsetq_lane_s8(alpha[24],alpha128[0],7); - alpha128[2] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[2+K1],8); alpha128[2] = vsetq_lane_s8(alpha[40],alpha128[0],7); - alpha128[3] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[3+K1],8); alpha128[3] = vsetq_lane_s8(alpha[56],alpha128[0],7); - alpha128[4] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[4+K1],8); alpha128[4] = vsetq_lane_s8(alpha[72],alpha128[0],7); - alpha128[5] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[5+K1],8); alpha128[5] = vsetq_lane_s8(alpha[88],alpha128[0],7); - alpha128[6] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[6+K1],8); alpha128[6] = vsetq_lane_s8(alpha[104],alpha128[0],7); - alpha128[7] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[7+K1],8); alpha128[7] = vsetq_lane_s8(alpha[120],alpha128[0],7); + alpha128[0] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[K1],8); + alpha128[0] = vsetq_lane_s8(alpha[8],alpha128[0],7); + alpha128[1] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[1+K1],8); + alpha128[1] = vsetq_lane_s8(alpha[24],alpha128[0],7); + alpha128[2] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[2+K1],8); + alpha128[2] = vsetq_lane_s8(alpha[40],alpha128[0],7); + alpha128[3] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[3+K1],8); + alpha128[3] = vsetq_lane_s8(alpha[56],alpha128[0],7); + alpha128[4] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[4+K1],8); + alpha128[4] = vsetq_lane_s8(alpha[72],alpha128[0],7); + alpha128[5] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[5+K1],8); + alpha128[5] = vsetq_lane_s8(alpha[88],alpha128[0],7); + alpha128[6] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[6+K1],8); + alpha128[6] = vsetq_lane_s8(alpha[104],alpha128[0],7); + alpha128[7] = (int8x16_t)vshlq_n_s64((int64x2_t)alpha128[7+K1],8); + alpha128[7] = vsetq_lane_s8(alpha[120],alpha128[0],7); alpha[16] = -MAX8/2; alpha[32] = -MAX8/2; alpha[48] = -MAX8/2; @@ -395,35 +387,28 @@ void compute_alpha8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,unsigned sh alpha[80] = -MAX8/2; alpha[96] = -MAX8/2; alpha[112] = -MAX8/2; - } + #endif - - } -void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned short frame_length,unsigned char F,int offset8_flag) -{ - +void compute_beta8(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,unsigned short frame_length,unsigned char F,int offset8_flag) { int k,rerun_flag, loopval; #if defined(__x86_64__) || defined(__i386__) __m128i m11_128,m10_128; __m128i m_b0,m_b1,m_b2,m_b3,m_b4,m_b5,m_b6,m_b7; __m128i new0,new1,new2,new3,new4,new5,new6,new7; - __m128i *beta128,*alpha128,*beta_ptr; __m128i beta_max; #elif defined(__arm__) int8x16_t m11_128,m10_128; int8x16_t m_b0,m_b1,m_b2,m_b3,m_b4,m_b5,m_b6,m_b7; int8x16_t new0,new1,new2,new3,new4,new5,new6,new7; - int8x16_t *beta128,*alpha128,*beta_ptr; int8x16_t beta_max; #endif llr_t beta0,beta1; - llr_t beta2,beta3,beta4,beta5,beta6,beta7; if (frame_length > 6144) { @@ -433,13 +418,12 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho // we are supposed to run compute_alpha just before compute_beta // so the initial states of backward computation can be set from last value of alpha states (forward computation) - #if defined(__x86_64__) || defined(__i386__) - beta_ptr = (__m128i*)&beta[frame_length<<3]; - alpha128 = (__m128i*)&alpha[0]; + beta_ptr = (__m128i *)&beta[frame_length<<3]; + alpha128 = (__m128i *)&alpha[0]; #elif defined(__arm__) - beta_ptr = (int8x16_t*)&beta[frame_length<<3]; - alpha128 = (int8x16_t*)&alpha[0]; + beta_ptr = (int8x16_t *)&beta[frame_length<<3]; + alpha128 = (int8x16_t *)&alpha[0]; #endif beta_ptr[0] = alpha128[(frame_length>>1)]; beta_ptr[1] = alpha128[1+(frame_length>>1)]; @@ -449,18 +433,15 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_ptr[5] = alpha128[5+(frame_length>>1)]; beta_ptr[6] = alpha128[6+(frame_length>>1)]; beta_ptr[7] = alpha128[7+(frame_length>>1)]; - int overlap = (frame_length>>4)> L ? (frame_length>>4)-L : 0 ; for (rerun_flag=0, loopval=0; rerun_flag<2 ; loopval=overlap,rerun_flag++) { - if (offset8_flag==0) { // FIXME! beta0-beta7 are used uninitialized. FIXME! // workaround: init with 0 beta0 = beta1 = beta2 = beta3 = beta4 = beta5 = beta6 = beta7 = 0; - #if defined(__x86_64__) || defined(__i386__) beta_ptr[0] = _mm_insert_epi8(beta_ptr[0],beta0,15); beta_ptr[1] = _mm_insert_epi8(beta_ptr[1],beta1,15); @@ -483,16 +464,17 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho } #if defined(__x86_64__) || defined(__i386__) - beta_ptr = (__m128i*)&beta[frame_length<<3]; + beta_ptr = (__m128i *)&beta[frame_length<<3]; #elif defined(__arm__) - beta_ptr = (int8x16_t*)&beta[frame_length<<3]; + beta_ptr = (int8x16_t *)&beta[frame_length<<3]; #endif + for (k=(frame_length>>4)-1; k>=loopval; k--) { #if defined(__x86_64__) || defined(__i386__) - m11_128=((__m128i*)m_11)[k]; - m10_128=((__m128i*)m_10)[k]; + m11_128=((__m128i *)m_11)[k]; + m10_128=((__m128i *)m_10)[k]; m_b0 = _mm_adds_epi8(beta_ptr[4],m11_128); //m11 m_b1 = _mm_subs_epi8(beta_ptr[4],m11_128); //m00 m_b2 = _mm_subs_epi8(beta_ptr[5],m10_128); //m01 @@ -501,7 +483,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho m_b5 = _mm_subs_epi8(beta_ptr[6],m10_128); //m01 m_b6 = _mm_subs_epi8(beta_ptr[7],m11_128); //m00 m_b7 = _mm_adds_epi8(beta_ptr[7],m11_128); //m11 - new0 = _mm_subs_epi8(beta_ptr[0],m11_128); //m00 new1 = _mm_adds_epi8(beta_ptr[0],m11_128); //m11 new2 = _mm_adds_epi8(beta_ptr[1],m10_128); //m10 @@ -510,9 +491,7 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho new5 = _mm_adds_epi8(beta_ptr[2],m10_128); //m10 new6 = _mm_adds_epi8(beta_ptr[3],m11_128); //m11 new7 = _mm_subs_epi8(beta_ptr[3],m11_128); //m00 - beta_ptr-=8; - beta_ptr[0] = _mm_max_epi8(m_b0,new0); beta_ptr[1] = _mm_max_epi8(m_b1,new1); beta_ptr[2] = _mm_max_epi8(m_b2,new2); @@ -521,7 +500,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_ptr[5] = _mm_max_epi8(m_b5,new5); beta_ptr[6] = _mm_max_epi8(m_b6,new6); beta_ptr[7] = _mm_max_epi8(m_b7,new7); - beta_max = _mm_max_epi8(beta_ptr[0],beta_ptr[1]); beta_max = _mm_max_epi8(beta_max ,beta_ptr[2]); beta_max = _mm_max_epi8(beta_max ,beta_ptr[3]); @@ -529,7 +507,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_max = _mm_max_epi8(beta_max ,beta_ptr[5]); beta_max = _mm_max_epi8(beta_max ,beta_ptr[6]); beta_max = _mm_max_epi8(beta_max ,beta_ptr[7]); - beta_ptr[0] = _mm_subs_epi8(beta_ptr[0],beta_max); beta_ptr[1] = _mm_subs_epi8(beta_ptr[1],beta_max); beta_ptr[2] = _mm_subs_epi8(beta_ptr[2],beta_max); @@ -539,8 +516,8 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_ptr[6] = _mm_subs_epi8(beta_ptr[6],beta_max); beta_ptr[7] = _mm_subs_epi8(beta_ptr[7],beta_max); #elif defined(__arm__) - m11_128=((int8x16_t*)m_11)[k]; - m10_128=((int8x16_t*)m_10)[k]; + m11_128=((int8x16_t *)m_11)[k]; + m10_128=((int8x16_t *)m_10)[k]; m_b0 = vqaddq_s8(beta_ptr[4],m11_128); //m11 m_b1 = vqsubq_s8(beta_ptr[4],m11_128); //m00 m_b2 = vqsubq_s8(beta_ptr[5],m10_128); //m01 @@ -549,7 +526,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho m_b5 = vqsubq_s8(beta_ptr[6],m10_128); //m01 m_b6 = vqsubq_s8(beta_ptr[7],m11_128); //m00 m_b7 = vqaddq_s8(beta_ptr[7],m11_128); //m11 - new0 = vqsubq_s8(beta_ptr[0],m11_128); //m00 new1 = vqaddq_s8(beta_ptr[0],m11_128); //m11 new2 = vqaddq_s8(beta_ptr[1],m10_128); //m10 @@ -558,9 +534,7 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho new5 = vqaddq_s8(beta_ptr[2],m10_128); //m10 new6 = vqaddq_s8(beta_ptr[3],m11_128); //m11 new7 = vqsubq_s8(beta_ptr[3],m11_128); //m00 - beta_ptr-=8; - beta_ptr[0] = vmaxq_s8(m_b0,new0); beta_ptr[1] = vmaxq_s8(m_b1,new1); beta_ptr[2] = vmaxq_s8(m_b2,new2); @@ -569,7 +543,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_ptr[5] = vmaxq_s8(m_b5,new5); beta_ptr[6] = vmaxq_s8(m_b6,new6); beta_ptr[7] = vmaxq_s8(m_b7,new7); - beta_max = vmaxq_s8(beta_ptr[0],beta_ptr[1]); beta_max = vmaxq_s8(beta_max ,beta_ptr[2]); beta_max = vmaxq_s8(beta_max ,beta_ptr[3]); @@ -577,7 +550,6 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_max = vmaxq_s8(beta_max ,beta_ptr[5]); beta_max = vmaxq_s8(beta_max ,beta_ptr[6]); beta_max = vmaxq_s8(beta_max ,beta_ptr[7]); - beta_ptr[0] = vqsubq_s8(beta_ptr[0],beta_max); beta_ptr[1] = vqsubq_s8(beta_ptr[1],beta_max); beta_ptr[2] = vqsubq_s8(beta_ptr[2],beta_max); @@ -592,10 +564,9 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho // Set intial state for next iteration from the last state // as column last states are the first states of the next column // The initial state of column 0 is coming from tail bits (to be computed) - #if defined(__x86_64__) || defined(__i386__) - beta128 = (__m128i*)&beta[0]; - beta_ptr = (__m128i*)&beta[frame_length<<3]; + beta128 = (__m128i *)&beta[0]; + beta_ptr = (__m128i *)&beta[frame_length<<3]; beta_ptr[0] = _mm_srli_si128(beta128[0],1); beta_ptr[1] = _mm_srli_si128(beta128[1],1); beta_ptr[2] = _mm_srli_si128(beta128[2],1); @@ -605,23 +576,29 @@ void compute_beta8(llr_t* alpha,llr_t* beta,llr_t *m_11,llr_t* m_10,unsigned sho beta_ptr[6] = _mm_srli_si128(beta128[6],1); beta_ptr[7] = _mm_srli_si128(beta128[7],1); #elif defined(__arm__) - beta128 = (int8x16_t*)&beta[0]; - beta_ptr = (int8x16_t*)&beta[frame_length<<3]; - beta_ptr[0] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[0],8); beta_ptr[0] = vsetq_lane_s8(beta[7],beta_ptr[0],8); - beta_ptr[1] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[1],8); beta_ptr[1] = vsetq_lane_s8(beta[23],beta_ptr[1],8); - beta_ptr[2] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[2],8); beta_ptr[2] = vsetq_lane_s8(beta[39],beta_ptr[2],8); - beta_ptr[3] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[3],8); beta_ptr[3] = vsetq_lane_s8(beta[55],beta_ptr[3],8); - beta_ptr[4] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[4],8); beta_ptr[4] = vsetq_lane_s8(beta[71],beta_ptr[4],8); - beta_ptr[5] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[5],8); beta_ptr[5] = vsetq_lane_s8(beta[87],beta_ptr[5],8); - beta_ptr[6] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[6],8); beta_ptr[6] = vsetq_lane_s8(beta[103],beta_ptr[6],8); - beta_ptr[7] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[7],8); beta_ptr[7] = vsetq_lane_s8(beta[119],beta_ptr[7],8); + beta128 = (int8x16_t *)&beta[0]; + beta_ptr = (int8x16_t *)&beta[frame_length<<3]; + beta_ptr[0] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[0],8); + beta_ptr[0] = vsetq_lane_s8(beta[7],beta_ptr[0],8); + beta_ptr[1] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[1],8); + beta_ptr[1] = vsetq_lane_s8(beta[23],beta_ptr[1],8); + beta_ptr[2] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[2],8); + beta_ptr[2] = vsetq_lane_s8(beta[39],beta_ptr[2],8); + beta_ptr[3] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[3],8); + beta_ptr[3] = vsetq_lane_s8(beta[55],beta_ptr[3],8); + beta_ptr[4] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[4],8); + beta_ptr[4] = vsetq_lane_s8(beta[71],beta_ptr[4],8); + beta_ptr[5] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[5],8); + beta_ptr[5] = vsetq_lane_s8(beta[87],beta_ptr[5],8); + beta_ptr[6] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[6],8); + beta_ptr[6] = vsetq_lane_s8(beta[103],beta_ptr[6],8); + beta_ptr[7] = (int8x16_t)vshrq_n_s64((int64x2_t)beta128[7],8); + beta_ptr[7] = vsetq_lane_s8(beta[119],beta_ptr[7],8); #endif } } -void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, llr_t* systematic,unsigned short frame_length) -{ - +void compute_ext8(llr_t *alpha,llr_t *beta,llr_t *m_11,llr_t *m_10,llr_t *ext, llr_t *systematic,unsigned short frame_length) { #if defined(__x86_64__) || defined(__i386__) __m128i *alpha128=(__m128i *)alpha; __m128i *beta128=(__m128i *)beta; @@ -642,27 +619,20 @@ void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, l int8x16_t m11_1,m11_2,m11_3,m11_4; #endif int k; - // // LLR computation, 8 consequtive bits per loop // - #ifdef DEBUG_LOGMAP printf("compute_ext, %p, %p, %p, %p, %p, %p ,framelength %d\n",alpha,beta,m_11,m_10,ext,systematic,frame_length); #endif - alpha_ptr = alpha128; beta_ptr = &beta128[8]; - for (k=0; k<(frame_length>>4); k++) { - #if defined(__x86_64__) || defined(__i386__) - - m11_128 = (__m128i*)&m_11[k<<4]; - m10_128 = (__m128i*)&m_10[k<<4]; - ext_128 = (__m128i*)&ext[k<<4]; - + m11_128 = (__m128i *)&m_11[k<<4]; + m10_128 = (__m128i *)&m_10[k<<4]; + ext_128 = (__m128i *)&ext[k<<4]; m00_4 = _mm_adds_epi8(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; m11_4 = _mm_adds_epi8(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; m00_3 = _mm_adds_epi8(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; @@ -679,7 +649,6 @@ void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, l m10_2 = _mm_adds_epi8(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; m10_1 = _mm_adds_epi8(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; m01_1 = _mm_adds_epi8(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; - m01_1 = _mm_max_epi8(m01_1,m01_2); m01_1 = _mm_max_epi8(m01_1,m01_3); m01_1 = _mm_max_epi8(m01_1,m01_4); @@ -692,28 +661,19 @@ void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, l m11_1 = _mm_max_epi8(m11_1,m11_2); m11_1 = _mm_max_epi8(m11_1,m11_3); m11_1 = _mm_max_epi8(m11_1,m11_4); - - m01_1 = _mm_subs_epi8(m01_1,*m10_128); m00_1 = _mm_subs_epi8(m00_1,*m11_128); m10_1 = _mm_adds_epi8(m10_1,*m10_128); m11_1 = _mm_adds_epi8(m11_1,*m11_128); - - m01_1 = _mm_max_epi8(m01_1,m00_1); m10_1 = _mm_max_epi8(m10_1,m11_1); - - *ext_128 = _mm_subs_epi8(m10_1,m01_1); - alpha_ptr+=8; beta_ptr+=8; #elif defined(__arm__) - - m11_128 = (int8x16_t*)&m_11[k<<4]; - m10_128 = (int8x16_t*)&m_10[k<<4]; - ext_128 = (int8x16_t*)&ext[k<<4]; - + m11_128 = (int8x16_t *)&m_11[k<<4]; + m10_128 = (int8x16_t *)&m_10[k<<4]; + ext_128 = (int8x16_t *)&ext[k<<4]; m00_4 = vqaddq_s8(alpha_ptr[7],beta_ptr[3]); //ALPHA_BETA_4m00; m11_4 = vqaddq_s8(alpha_ptr[7],beta_ptr[7]); //ALPHA_BETA_4m11; m00_3 = vqaddq_s8(alpha_ptr[6],beta_ptr[7]); //ALPHA_BETA_3m00; @@ -730,7 +690,6 @@ void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, l m10_2 = vqaddq_s8(alpha_ptr[3],beta_ptr[5]); //ALPHA_BETA_2m10; m10_1 = vqaddq_s8(alpha_ptr[2],beta_ptr[1]); //ALPHA_BETA_1m10; m01_1 = vqaddq_s8(alpha_ptr[2],beta_ptr[5]); //ALPHA_BETA_1m01; - m01_1 = vmaxq_s8(m01_1,m01_2); m01_1 = vmaxq_s8(m01_1,m01_3); m01_1 = vmaxq_s8(m01_1,m01_4); @@ -743,27 +702,17 @@ void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, l m11_1 = vmaxq_s8(m11_1,m11_2); m11_1 = vmaxq_s8(m11_1,m11_3); m11_1 = vmaxq_s8(m11_1,m11_4); - - m01_1 = vqsubq_s8(m01_1,*m10_128); m00_1 = vqsubq_s8(m00_1,*m11_128); m10_1 = vqaddq_s8(m10_1,*m10_128); m11_1 = vqaddq_s8(m11_1,*m11_128); - - m01_1 = vmaxq_s8(m01_1,m00_1); m10_1 = vmaxq_s8(m10_1,m11_1); - - *ext_128 = vqsubq_s8(m10_1,m01_1); - alpha_ptr+=8; beta_ptr+=8; - #endif } - - } @@ -771,8 +720,7 @@ void compute_ext8(llr_t* alpha,llr_t* beta,llr_t* m_11,llr_t* m_10,llr_t* ext, l //int pi2[n],pi3[n+8],pi5[n+8],pi4[n+8],pi6[n+8], int *pi2tab8[188],*pi5tab8[188],*pi4tab8[188],*pi6tab8[188]; -void free_td8(void) -{ +void free_td8(void) { int ind; for (ind=0; ind<188; ind++) { @@ -787,14 +735,11 @@ void free_td8(void) extern RAN_CONTEXT_t RC; -void init_td8(void) -{ - +void init_td8(void) { int ind,i,j,n,n2,pi,pi3; - short * base_interleaver; + short *base_interleaver; for (ind=0; ind<188; ind++) { - n = f1f2mat[ind].nb_bits; base_interleaver=il_tb+f1f2mat[ind].beg_index; #ifdef MEX @@ -816,68 +761,57 @@ void init_td8(void) n2 = n; for (j=0,i=0; i=n2) j-=(n2-1); pi2tab8[ind][i] = j; // printf("pi2[%d] = %d\n",i,j); } - + for (i=0; i>3]; int8x16_t tmp, zeros=vdupq_n_s8(0); - const uint8_t __attribute__ ((aligned (16))) _Powers[16]= - { 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 }; - + const uint8_t __attribute__ ((aligned (16))) _Powers[16]= + { 1, 2, 4, 8, 16, 32, 64, 128, 1, 2, 4, 8, 16, 32, 64, 128 }; // Set the powers of 2 (do it once for all, if applicable) uint8x16_t Powers= vld1q_u8(_Powers); #endif - int offset8_flag=0; if (crc_type > 3) { @@ -904,17 +836,14 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, return 255; } - if (init_stats) start_meas(init_stats); - if ((n&15)>0) { n2 = n+8; offset8_flag=1; } else n2 = n; - for (iind=0; iind < 188 && f1f2mat[iind].nb_bits != n; iind++); if ( iind == 188 ) { @@ -923,31 +852,30 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, } switch (crc_type) { - case CRC24_A: - case CRC24_B: - crc_len=3; - break; + case CRC24_A: + case CRC24_B: + crc_len=3; + break; - case CRC16: - crc_len=2; - break; + case CRC16: + crc_len=2; + break; - case CRC8: - crc_len=1; - break; + case CRC8: + crc_len=1; + break; - default: - crc_len=3; + default: + crc_len=3; } #if defined(__x86_64__) || defined(__i386__) - // note: this makes valgrind freak __m128i avg=_mm_set1_epi32(0); for (i=0; i<(3*(n>>4))+1; i++) { - __m128i tmp=_mm_abs_epi16(_mm_unpackhi_epi16(((__m128i*)y)[i],((__m128i*)y)[i])); - avg=_mm_add_epi32(_mm_cvtepi16_epi32(_mm_abs_epi16(((__m128i*)y)[i])),avg); + __m128i tmp=_mm_abs_epi16(_mm_unpackhi_epi16(((__m128i *)y)[i],((__m128i *)y)[i])); + avg=_mm_add_epi32(_mm_cvtepi16_epi32(_mm_abs_epi16(((__m128i *)y)[i])),avg); avg=_mm_add_epi32(_mm_cvtepi16_epi32(tmp),avg); } @@ -971,15 +899,13 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, for (i=0,j=0; i<(3*(n2>>4))+1; i++,j+=2) ((__m128i *)y8)[i] = _mm_packs_epi16(_mm_srai_epi16(((__m128i *)y)[j],3),_mm_srai_epi16(((__m128i *)y)[j+1],4)); - yp128 = (__m128i*)y8; - + yp128 = (__m128i *)y8; #elif defined(__arm__) - int32x4_t avg=vdupq_n_s32(0); for (i=0; i<(3*(n>>4))+1; i++) { - int16x8_t tmp=vabsq_s16(((int16x8_t*)y)[i]); - avg = vqaddq_s32(avg,vaddl_s16(((int16x4_t*)&tmp)[0],((int16x4_t*)&tmp)[1])); + int16x8_t tmp=vabsq_s16(((int16x8_t *)y)[i]); + avg = vqaddq_s32(avg,vaddl_s16(((int16x4_t *)&tmp)[0],((int16x4_t *)&tmp)[1])); } int32_t round_avg=(vgetq_lane_s32(avg,0)+vgetq_lane_s32(avg,1)+vgetq_lane_s32(avg,2)+vgetq_lane_s32(avg,3))/(n*3); @@ -999,10 +925,8 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, for (i=0,j=0; i<(3*(n2>>3))+1; i++,j+=2) ((int8x8_t *)y8)[i] = vqmovn_s16(vshrq_n_s16(((int16x8_t *)y)[j],3)); - yp128 = (int8x16_t*)y8; - + yp128 = (int8x16_t *)y8; #endif - s = systematic0; s1 = systematic1; s2 = systematic2; @@ -1020,8 +944,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, } #endif - - yp=(llr_t*)yp128; + yp=(llr_t *)yp128; if (n2>n) { /* @@ -1031,7 +954,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, s1[n+4]=0;s1[n+5]=0;s1[n+6]=0;s1[n+7]=0; s2[n]=0;s2[n+1]=0;s2[n+2]=0;s2[n+3]=0; s2[n+4]=0;s2[n+5]=0;s2[n+6]=0;s2[n+7]=0;*/ - yp=(llr_t*)(y8+n); + yp=(llr_t *)(y8+n); } // printf("n=%d,n2=%d\n",n,n2); @@ -1045,7 +968,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, yp1[i] = *yp; yp++; #ifdef DEBUG_LOGMAP - printf("Term 1 (%d): %d %d\n",i,s[i],yp1[i]); + printf("Term 1 (%u): %d %d\n",i,s[i],yp1[i]); #endif //DEBUG_LOGMAP } @@ -1057,7 +980,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, yp2[i-16] = *yp; yp++; #ifdef DEBUG_LOGMAP - printf("Term 2 (%d): %d %d\n",i-16,s[i],yp2[i-16]); + printf("Term 2 (%u): %d %d\n",i-16,s[i],yp2[i-16]); #endif //DEBUG_LOGMAP } @@ -1068,63 +991,59 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, if (init_stats) stop_meas(init_stats); // do log_map from first parity bit - log_map8(systematic0,yparity1,m11,m10,alpha,beta,ext,n2,0,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); - while (iteration_cnt++ < max_iterations) { + while (iteration_cnt++ < max_iterations) { #ifdef DEBUG_LOGMAP printf("\n*******************ITERATION %d (n %d, n2 %d), ext %p\n\n",iteration_cnt,n,n2,ext); #endif //DEBUG_LOGMAP if (intl1_stats) start_meas(intl1_stats); + pi4_p=pi4tab8[iind]; for (i=0; i<(n2>>4); i++) { // steady-state portion #if defined(__x86_64__) || defined(__i386__) - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],0); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],1); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],2); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],3); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],4); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],5); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],6); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],7); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],8); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],9); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],10); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],11); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],12); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],13); - tmp=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],14); - ((__m128i *)systematic2)[i]=_mm_insert_epi8(tmp,((llr_t*)ext)[*pi4_p++],15); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],0); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],1); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],2); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],3); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],4); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],5); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],6); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],7); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],8); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],9); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],10); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],11); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],12); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],13); + tmp=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],14); + ((__m128i *)systematic2)[i]=_mm_insert_epi8(tmp,((llr_t *)ext)[*pi4_p++],15); #elif defined(__arm__) - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,0); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,1); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,2); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,3); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,4); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,5); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,6); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,7); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,8); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,9); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,10); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,11); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,12); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,13); - tmp=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,14); - ((int8x16_t *)systematic2)[i]=vsetq_lane_s8(((llr_t*)ext)[*pi4_p++],tmp,15); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,0); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,1); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,2); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,3); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,4); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,5); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,6); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,7); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,8); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,9); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,10); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,11); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,12); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,13); + tmp=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,14); + ((int8x16_t *)systematic2)[i]=vsetq_lane_s8(((llr_t *)ext)[*pi4_p++],tmp,15); #endif } if (intl1_stats) stop_meas(intl1_stats); // do log_map from second parity bit - log_map8(systematic2,yparity2,m11,m10,alpha,beta,ext2,n2,1,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); - - - pi5_p=pi5tab8[iind]; uint16_t decoded_bytes_interl[6144/16] __attribute__((aligned(16))); @@ -1148,7 +1067,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],14); tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],15); decoded_bytes_interl[i]=(uint16_t) _mm_movemask_epi8(_mm_cmpgt_epi8(tmp,zeros)); - ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i*)ext)[i]),((__m128i *)systematic0)[i]); + ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); #elif defined(__arm__) tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,0); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,1); @@ -1166,13 +1085,12 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,13); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,14); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,15); - uint64x2_t Mask= vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(vandq_u8(vcgtq_s8(tmp,zeros), Powers)))); - vst1q_lane_u8(&((uint8_t*)&decoded_bytes[i])[0], (uint8x16_t)Mask, 0); - vst1q_lane_u8(&((uint8_t*)&decoded_bytes[i])[1], (uint8x16_t)Mask, 8); - ((int8x16_t *)systematic1)[i] = vqaddq_s8(vqsubq_s8(tmp,((int8x16_t*)ext)[i]),((int8x16_t *)systematic0)[i]); + uint64x2_t Mask= vpaddlq_u32(vpaddlq_u16(vpaddlq_u8(vandq_u8(vcgtq_s8(tmp,zeros), Powers)))); + vst1q_lane_u8(&((uint8_t *)&decoded_bytes[i])[0], (uint8x16_t)Mask, 0); + vst1q_lane_u8(&((uint8_t *)&decoded_bytes[i])[1], (uint8x16_t)Mask, 8); + ((int8x16_t *)systematic1)[i] = vqaddq_s8(vqsubq_s8(tmp,((int8x16_t *)ext)[i]),((int8x16_t *)systematic0)[i]); #endif } - } else { for (i=0; i<(n2>>4); i++) { #if defined(__x86_64__) || defined(__i386__) @@ -1193,8 +1111,7 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],14); tmp=_mm_insert_epi8(tmp,ext2[*pi5_p++],15); tmp128[i] = _mm_adds_epi8(((__m128i *)ext2)[i],((__m128i *)systematic2)[i]); - - ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i*)ext)[i]),((__m128i *)systematic0)[i]); + ((__m128i *)systematic1)[i] = _mm_adds_epi8(_mm_subs_epi8(tmp,((__m128i *)ext)[i]),((__m128i *)systematic0)[i]); #elif defined(__arm__) tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,0); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,1); @@ -1213,11 +1130,9 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,14); tmp=vsetq_lane_s8(ext2[*pi5_p++],tmp,15); tmp128[i] = vqaddq_s8(((int8x16_t *)ext2)[i],((int8x16_t *)systematic2)[i]); - - ((int8x16_t *)systematic1)[i] = vqaddq_s8(vqsubq_s8(tmp,((int8x16_t*)ext)[i]),((int8x16_t *)systematic0)[i]); - -#endif - } + ((int8x16_t *)systematic1)[i] = vqaddq_s8(vqsubq_s8(tmp,((int8x16_t *)ext)[i]),((int8x16_t *)systematic0)[i]); +#endif + } } // Check if we decoded the block @@ -1225,11 +1140,10 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, if (intl2_stats) start_meas(intl2_stats); if ((n2&0x7f) == 0) { // n2 is a multiple of 128 bits - // re-order the decoded bits in theregular order // as it is presently ordered as 16 sequential columns #if defined(__x86_64__) || defined(__i386__) - __m128i* dbytes=(__m128i*)decoded_bytes_interl; + __m128i *dbytes=(__m128i *)decoded_bytes_interl; __m128i shuffle=SHUFFLE16(7,6,5,4,3,2,1,0); __m128i mask __attribute__((aligned(16))); int n_128=n2>>7; @@ -1239,10 +1153,9 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, __m128i tmp __attribute__((aligned(16))); tmp=_mm_shuffle_epi8(dbytes[i],shuffle); __m128i tmp2 __attribute__((aligned(16))) ; - tmp2=_mm_and_si128(tmp,mask); tmp2=_mm_cmpeq_epi16(tmp2,mask); - // printf("decoded_bytes %p\n",decoded_bytes); + // printf("decoded_bytes %p\n",decoded_bytes); decoded_bytes[n_128*0+i]=(uint8_t) _mm_movemask_epi8(_mm_packs_epi16(tmp2,zeros)); int j; @@ -1253,22 +1166,22 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, decoded_bytes[n_128*j +i]=(uint8_t) _mm_movemask_epi8(_mm_packs_epi16(tmp2,zeros)); } } + #elif defined(__arm__) - uint8x16_t* dbytes=(uint8x16_t*)decoded_bytes_interl; + uint8x16_t *dbytes=(uint8x16_t *)decoded_bytes_interl; uint16x8_t mask __attribute__((aligned(16))); int n_128=n2>>7; for (i=0; i>3)-crc_len])); switch (crc_type) { + case CRC24_A: + oldcrc&=0x00ffffff; + crc = crc24a(&decoded_bytes[F>>3], + n-24-F)>>8; + temp=((uint8_t *)&crc)[2]; + ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; + ((uint8_t *)&crc)[0] = temp; + break; - case CRC24_A: - oldcrc&=0x00ffffff; - crc = crc24a(&decoded_bytes[F>>3], - n-24-F)>>8; - temp=((uint8_t *)&crc)[2]; - ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; - ((uint8_t *)&crc)[0] = temp; - break; + case CRC24_B: + oldcrc&=0x00ffffff; + crc = crc24b(decoded_bytes, + n-24)>>8; + temp=((uint8_t *)&crc)[2]; + ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; + ((uint8_t *)&crc)[0] = temp; + break; - case CRC24_B: - oldcrc&=0x00ffffff; - crc = crc24b(decoded_bytes, - n-24)>>8; - temp=((uint8_t *)&crc)[2]; - ((uint8_t *)&crc)[2] = ((uint8_t *)&crc)[0]; - ((uint8_t *)&crc)[0] = temp; - break; + case CRC16: + oldcrc&=0x0000ffff; + crc = crc16(decoded_bytes, + n-16)>>16; + break; - case CRC16: - oldcrc&=0x0000ffff; - crc = crc16(decoded_bytes, - n-16)>>16; - break; + case CRC8: + oldcrc&=0x000000ff; + crc = crc8(decoded_bytes, + n-8)>>24; + break; - case CRC8: - oldcrc&=0x000000ff; - crc = crc8(decoded_bytes, - n-8)>>24; - break; - - default: - printf("FATAL: 3gpplte_turbo_decoder_sse.c: Unknown CRC\n"); - return(255); - break; + default: + printf("FATAL: 3gpplte_turbo_decoder_sse.c: Unknown CRC\n"); + return(255); + break; } if (intl2_stats) stop_meas(intl2_stats); @@ -1372,13 +1284,13 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, if (iteration_cnt < max_iterations) { log_map8(systematic1,yparity1,m11,m10,alpha,beta,ext,n2,0,F,offset8_flag,alpha_stats,beta_stats,gamma_stats,ext_stats); #if defined(__x86_64__) || defined(__i386__) - __m128i* ext_128=(__m128i*) ext; - __m128i* s1_128=(__m128i*) systematic1; - __m128i* s0_128=(__m128i*) systematic0; + __m128i *ext_128=(__m128i *) ext; + __m128i *s1_128=(__m128i *) systematic1; + __m128i *s0_128=(__m128i *) systematic0; #elif defined(__arm__) - int8x16_t* ext_128=(int8x16_t*) ext; - int8x16_t* s1_128=(int8x16_t*) systematic1; - int8x16_t* s0_128=(int8x16_t*) systematic0; + int8x16_t *ext_128=(int8x16_t *) ext; + int8x16_t *s1_128=(int8x16_t *) systematic1; + int8x16_t *s0_128=(int8x16_t *) systematic0; #endif int myloop=n2>>4; @@ -1394,5 +1306,4 @@ uint8_t phy_threegpplte_turbo_decoder8(int16_t *y, } return(iteration_cnt); - } diff --git a/openair1/PHY/CODING/ccoding_byte.c b/openair1/PHY/CODING/ccoding_byte.c index db91e68dc8..e4617d1404 100644 --- a/openair1/PHY/CODING/ccoding_byte.c +++ b/openair1/PHY/CODING/ccoding_byte.c @@ -47,27 +47,20 @@ void ccodedot11_encode (unsigned int numbytes, unsigned char *inPtr, unsigned char *outPtr, - unsigned char puncturing) -{ + unsigned char puncturing) { unsigned int state; - unsigned char c, out, shiftbit =0; - // printf("In ccodedot11_encode (%d,%p,%p,%d)\n",numbytes,inPtr,outPtr,puncturing); - #ifdef DEBUG_CCODE unsigned int dummy; #endif //DEBUG_CCODE int bit_index; - /* The input bit is shifted in position 8 of the state. Shiftbit will take values between 1 and 8 */ state = 0; - #ifdef DEBUG_CCODE dummy = 0; #endif //DEBUG_CCODE - /* Do not increment inPtr until we read the next octet */ bit_index=0; @@ -78,85 +71,75 @@ ccodedot11_encode (unsigned int numbytes, #endif //DEBUG_CCODE switch (puncturing) { - case 0: //rate 1/2 - for (shiftbit = 0; shiftbit<8; shiftbit++) { + case 0: //rate 1/2 + for (shiftbit = 0; shiftbit<8; shiftbit++) { + state >>= 1; - state >>= 1; + if ((c&(1<>1)&1; +#ifdef DEBUG_CCODE + printf("%u: %u -> %d (%u)\n",dummy,state,out,ccodedot11_table[state]); + dummy+=2; +#endif //DEBUG_CCODE } - out = ccodedot11_table[state]; + break; - *outPtr++ = out & 1; - *outPtr++ = (out>>1)&1; + case 1: // rate 3/4 + for (shiftbit = 0; shiftbit<8; shiftbit++) { + state >>= 1; + + if ((c&(1<>1)&1; #ifdef DEBUG_CCODE - printf("%d: %d -> %d (%d)\n",dummy,state,out,ccodedot11_table[state]); - dummy+=2; + printf("%u: %u -> %d (%u)\n",dummy,state,out,ccodedot11_table[state]); + dummy+=2; #endif //DEBUG_CCODE - - } - - break; - - case 1: // rate 3/4 - for (shiftbit = 0; shiftbit<8; shiftbit++) { - - state >>= 1; - - if ((c&(1<>= 1; + + if ((c&(1<>1)&1; + if (bit_index==0) + *outPtr++ = (out>>1)&1; #ifdef DEBUG_CCODE - printf("%d: %d -> %d (%d)\n",dummy,state,out,ccodedot11_table[state]); - dummy+=2; + printf("%d: %u -> %d (%u)\n",dummy,state,out,ccodedot11_table[state]); + dummy+=2; #endif //DEBUG_CCODE - - bit_index=(bit_index==2)?0:(bit_index+1); - } - - break; - - case 2: // rate 2/3 - for (shiftbit = 0; shiftbit<8; shiftbit++) { - - state >>= 1; - - if ((c&(1<>1)&1; - -#ifdef DEBUG_CCODE - printf("%d: %d -> %d (%d)\n",dummy,state,out,ccodedot11_table[state]); - dummy+=2; -#endif //DEBUG_CCODE - - bit_index=(bit_index==0)?1:0; - - } - - break; - - default: - break; + default: + break; } } @@ -181,8 +164,6 @@ ccodedot11_encode (unsigned int numbytes, } */ - - } @@ -197,8 +178,7 @@ ccodedot11_encode (unsigned int numbytes, /* Basic code table initialization for constraint length 7 */ /* Input in MSB, followed by state in 6 LSBs */ -void ccodedot11_init(void) -{ +void ccodedot11_init(void) { unsigned int i, j, k, sum; for (i = 0; i < 128; i++) { @@ -219,8 +199,7 @@ void ccodedot11_init(void) } /* Input in LSB, followed by state in 6 MSBs */ -void ccodedot11_init_inv(void) -{ +void ccodedot11_init_inv(void) { unsigned int i, j, k, sum; for (i = 0; i < 128; i++) { @@ -251,21 +230,15 @@ void ccodedot11_init_inv(void) #ifdef DEBUG_CCODE #include -main() -{ +main() { unsigned char test[] = "0Thebigredfox"; unsigned char output[512], *inPtr, *outPtr; unsigned int i; - test[0] = 128; test[1] = 0; - - ccodedot11_init(); - inPtr = test; outPtr = output; - ccodedot11_encode(16, inPtr, outPtr,0); for (i = 0; i < 32; i++) printf("%x ", output[i]); diff --git a/openair1/PHY/CODING/ccoding_byte_lte.c b/openair1/PHY/CODING/ccoding_byte_lte.c index 870e9ba470..f41b073a78 100644 --- a/openair1/PHY/CODING/ccoding_byte_lte.c +++ b/openair1/PHY/CODING/ccoding_byte_lte.c @@ -52,20 +52,16 @@ ccodelte_encode (int32_t numbits, uint8_t add_crc, uint8_t *inPtr, uint8_t *outPtr, - uint16_t rnti) -{ + uint16_t rnti) { uint32_t state; - uint8_t c, out, first_bit; int8_t shiftbit=0; uint16_t c16; uint16_t next_last_byte=0; uint32_t crc=0; - #ifdef DEBUG_CCODE uint32_t dummy=0; #endif //DEBUG_CCODE - /* The input bit is shifted in position 8 of the state. Shiftbit will take values between 1 and 8 */ state = 0; @@ -137,17 +133,12 @@ ccodelte_encode (int32_t numbits, #endif //DEBUG_CCODE /* Do not increment inPtr until we read the next octet */ - - - while (numbits > 0) { - c = *inPtr++; #ifdef DEBUG_CCODE printf("** %x **\n",c); #endif //DEBUG_CCODE - // for (shiftbit = 0; (shiftbit<8) && (numbits>0);shiftbit++,numbits--) { for (shiftbit = 7; (shiftbit>=0) && (numbits>0); shiftbit--,numbits--) { state >>= 1; @@ -157,23 +148,18 @@ ccodelte_encode (int32_t numbits, } out = ccodelte_table[state]; - *outPtr++ = out & 1; *outPtr++ = (out>>1)&1; *outPtr++ = (out>>2)&1; - #ifdef DEBUG_CCODE printf("numbits %d, input %d, outbit %d: %d -> %d (%d%d%d)\n",numbits,state>>6,dummy,state,out,out&1,(out>>1)&1,(out>>2)&1); dummy+=3; #endif //DEBUG_CCODE - } - } // now code 8-bit CRC for UCI if (add_crc == 1) { - c = (uint8_t)(crc>>24); // for (shiftbit = 0; (shiftbit<8);shiftbit++) { @@ -185,22 +171,18 @@ ccodelte_encode (int32_t numbits, } out = ccodelte_table[state]; - *outPtr++ = out & 1; *outPtr++ = (out>>1)&1; *outPtr++ = (out>>2)&1; - #ifdef DEBUG_CCODE - printf("crc bit %d input %d, outbit %d: %d -> %d (%d)\n",shiftbit,state>>6,dummy,state,out,ccodelte_table[state]); + printf("crc bit %d input %d, outbit %d: %d -> %d (%u)\n",shiftbit,state>>6,dummy,state,out,ccodelte_table[state]); dummy+=3; #endif //DEBUG_CCODE - } } // now code 16-bit CRC for DCI if (add_crc == 2) { - c16 = (uint16_t)(crc>>16); // for (shiftbit = 0; (shiftbit<16);shiftbit++) { @@ -212,16 +194,13 @@ ccodelte_encode (int32_t numbits, } out = ccodelte_table[state]; - *outPtr++ = out & 1; *outPtr++ = (out>>1)&1; *outPtr++ = (out>>2)&1; - #ifdef DEBUG_CCODE - printf("crc bit %d input %d, outbit %d: %d -> %d (%d)\n",shiftbit,state>>6,dummy,state,out,ccodelte_table[state]); + printf("crc bit %d input %d, outbit %d: %d -> %d (%u)\n",shiftbit,state>>6,dummy,state,out,ccodelte_table[state]); dummy+=3; #endif //DEBUG_CCODE - } } } @@ -238,8 +217,7 @@ ccodelte_encode (int32_t numbits, /* Basic code table initialization for constraint length 7 */ /* Input in MSB, followed by state in 6 LSBs */ -void ccodelte_init(void) -{ +void ccodelte_init(void) { unsigned int i, j, k, sum; for (i = 0; i < 128; i++) { @@ -260,8 +238,7 @@ void ccodelte_init(void) } /* Input in LSB, followed by state in 6 MSBs */ -void ccodelte_init_inv(void) -{ +void ccodelte_init_inv(void) { unsigned int i, j, k, sum; for (i = 0; i < 128; i++) { @@ -281,8 +258,7 @@ void ccodelte_init_inv(void) } } -void ccodedab_init(void) -{ +void ccodedab_init(void) { unsigned int i, j, k, sum; for (i = 0; i < 128; i++) { @@ -303,8 +279,7 @@ void ccodedab_init(void) } /* Input in LSB, followed by state in 6 MSBs */ -void ccodedab_init_inv(void) -{ +void ccodedab_init_inv(void) { unsigned int i, j, k, sum; for (i = 0; i < 128; i++) { @@ -334,21 +309,15 @@ void ccodedab_init_inv(void) #ifdef CCODE_MAIN #include -main() -{ +main() { unsigned char test[] = "Thebigredfox"; unsigned char output[512], *inPtr, *outPtr; unsigned int i; - test[0] = 128; test[1] = 0; - - ccodelte_init(); - inPtr = test; outPtr = output; - ccodelte_encode(21, inPtr, outPtr); for (i = 0; i < 21*3; i++) printf("%x ", output[i]); diff --git a/openair1/PHY/CODING/lte_rate_matching.c b/openair1/PHY/CODING/lte_rate_matching.c index af5d1a169e..faa763b5d3 100644 --- a/openair1/PHY/CODING/lte_rate_matching.c +++ b/openair1/PHY/CODING/lte_rate_matching.c @@ -25,8 +25,8 @@ date: 21.10.2009 */ #ifdef MAIN -#include -#include + #include + #include #endif #include "PHY/defs_eNB.h" #include "PHY/LTE_TRANSPORT/transport_common.h" @@ -42,9 +42,7 @@ static uint32_t bitrev_cc[32] = {1,17,9,25,5,21,13,29,3,19,11,27,7,23,15,31,0,16 //#define RM_DEBUG2 1 //#define RM_DEBUG_CC 1 -uint32_t sub_block_interleaving_turbo(uint32_t D, uint8_t *d,uint8_t *w) -{ - +uint32_t sub_block_interleaving_turbo(uint32_t D, uint8_t *d,uint8_t *w) { uint32_t RTC = (D>>5), ND, ND3; uint32_t row,col,Kpi; uint32_t index3,k,k2; @@ -64,7 +62,6 @@ uint32_t sub_block_interleaving_turbo(uint32_t D, uint8_t *d,uint8_t *w) printf("RTC = %d, Kpi=%d, ND=%d\n",RTC,Kpi,ND); #endif ND3 = ND*3; - // copy d02 to dD2 (for mod Kpi operation from clause (4), p.16 of 36.212 d[(3*D)+2] = d[2]; k=0; @@ -80,12 +77,9 @@ uint32_t sub_block_interleaving_turbo(uint32_t D, uint8_t *d,uint8_t *w) index3 = bitrev_x3[col];//3*index; for (row=0; row>5), ND, ND3; uint32_t row,col,Kpi,index; uint32_t index3,k; @@ -141,7 +134,6 @@ uint32_t sub_block_interleaving_cc(uint32_t D, uint8_t *d,uint8_t *w) printf("RCC = %d, Kpi=%d, ND=%d\n",RCC,Kpi,ND); #endif ND3 = ND*3; - k=0; for (col=0; col<32; col++) { @@ -180,9 +172,7 @@ uint32_t sub_block_interleaving_cc(uint32_t D, uint8_t *d,uint8_t *w) return(RCC); } -void sub_block_deinterleaving_turbo(uint32_t D,int16_t *d,int16_t *w) -{ - +void sub_block_deinterleaving_turbo(uint32_t D,int16_t *d,int16_t *w) { uint32_t RTC = (D>>5), ND, ND3; uint32_t row,col,Kpi,index; uint32_t index3,k,k2; @@ -199,7 +189,6 @@ void sub_block_deinterleaving_turbo(uint32_t D,int16_t *d,int16_t *w) printf("RTC = %d, Kpi=%d, ND=%d\n",RTC,Kpi,ND); #endif ND3 = ND*3; - // copy d02 to dD2 (for mod Kpi operation from clause (4), p.16 of 36.212 k=0; k2=0; @@ -215,7 +204,6 @@ void sub_block_deinterleaving_turbo(uint32_t D,int16_t *d,int16_t *w) index3 = bitrev_x3[col];//3*index; for (row=0; row0) // d[2] = LTE_NULL;//d[(3*D)+2]; - } -void sub_block_deinterleaving_cc(uint32_t D,int8_t *d,int8_t *w) -{ - +void sub_block_deinterleaving_cc(uint32_t D,int8_t *d,int8_t *w) { //WANG_Hao uint32_t RCC = (D>>5), ND, ND3; uint32_t RCC = (D>>5); ptrdiff_t ND, ND3; @@ -251,10 +236,9 @@ void sub_block_deinterleaving_cc(uint32_t D,int8_t *d,int8_t *w) ND = Kpi - D; #ifdef RM_DEBUG2 printf("sub_block_interleaving_cc : D = %d (%d), d %p, w %p\n",D,D*3,d,w); - printf("RCC = %d, Kpi=%d, ND=%d\n",RCC,Kpi,ND); + printf("RCC = %d, Kpi=%d, ND=%ld\n",RCC,Kpi,ND); #endif ND3 = ND*3; - k=0; for (col=0; col<32; col++) { @@ -265,24 +249,20 @@ void sub_block_deinterleaving_cc(uint32_t D,int8_t *d,int8_t *w) index3 = 3*index; for (row=0; row>5), ND; uint32_t col,Kpi,index; int32_t k,k2; @@ -301,8 +281,6 @@ uint32_t generate_dummy_w(uint32_t D, uint8_t *w,uint8_t F) printf("dummy sub_block_interleaving_turbo : D = %d (%d)\n",D,D*3); printf("RTC = %d, Kpi=%d, ND=%d, F=%d (Nulled %d)\n",RTC,Kpi,ND,F,(2*F + 3*ND)); #endif - - k=0; k2=0; wKpi = &w[Kpi]; @@ -371,9 +349,7 @@ uint32_t generate_dummy_w(uint32_t D, uint8_t *w,uint8_t F) return(RTC); } -uint32_t generate_dummy_w_cc(uint32_t D, uint8_t *w) -{ - +uint32_t generate_dummy_w_cc(uint32_t D, uint8_t *w) { uint32_t RCC = (D>>5), ND; uint32_t col,Kpi,index; int32_t k; @@ -392,7 +368,6 @@ uint32_t generate_dummy_w_cc(uint32_t D, uint8_t *w) printf("RCC = %d, Kpi=%d, ND=%d, (Nulled %d)\n",RCC,Kpi,ND,3*ND); #endif // ND3 = ND*3; - // copy d02 to dD2 (for mod Kpi operation from clause (4), p.16 of 36.212 k=0; @@ -466,8 +441,6 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC, uint8_t nb_rb) // uint8_t m) { - - uint32_t Nir,Ncb,Gp,GpmodC,E,Ncbmod,ind,k; // int cnt=0; uint8_t *e2; @@ -487,11 +460,11 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC, if (Mdlharq>0) { // Downlink Nir = Nsoft/Kmimo/cmin(8,Mdlharq); Ncb = cmin(Nir/C,3*(RTC<<5)); - } - else { // Uplink + } else { // Uplink Nir=0; Ncb = 3*(RTC<<5); // Kw } + #ifdef RM_DEBUG_TX if (rvidx==0 && r==0) { @@ -518,7 +491,6 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC, AssertFatal(Qm>0,"Qm is 0\n"); Gp = G/Nl/Qm; GpmodC = Gp%C; - #ifdef RM_DEBUG printf("lte_rate_matching_turbo: Ncb %d, Kw %d, Nir/C %d, rvidx %d, G %d, Qm %d, Nl%d, r %d\n",Ncb,3*(RTC<<5),Nir/C,rvidx, G, Qm,Nl,r); #endif @@ -529,16 +501,12 @@ uint32_t lte_rate_matching_turbo(uint32_t RTC, E = Nl*Qm * ((GpmodC==0?0:1) + (Gp/C)); Ncbmod = Ncb%(RTC<<3); - ind = RTC * (2+(rvidx*(((Ncbmod==0)?0:1) + (Ncb/(RTC<<3)))*2)); - #ifdef RM_DEBUG_TX printf("lte_rate_matching_turbo: E %d, k0 %d, Ncbmod %d, Ncb/(RTC<<3) %d\n",E,ind,Ncbmod,Ncb/(RTC<<3)); #endif - //e2=e+(r*E); e2 = e; - k=0; for (; (ind0) { // Downlink Nir = Nsoft/Kmimo/cmin(8,Mdlharq); Ncb = cmin(Nir/C,3*(RTC<<5)); - } - else { // Uplink + } else { // Uplink Nir=0; Ncb = 3*(RTC<<5); } @@ -726,17 +680,13 @@ int lte_rate_matching_turbo_rx(uint32_t RTC, Gp = G/Nl/Qm; GpmodC = Gp%C; - - if (r < (C-(GpmodC))) E = Nl*Qm * (Gp/C); else E = Nl*Qm * ((GpmodC==0?0:1) + (Gp/C)); Ncbmod = Ncb%(RTC<<3); - ind = RTC * (2+(rvidx*(((Ncbmod==0)?0:1) + (Ncb/(RTC<<3)))*2)); - #ifdef RM_DEBUG printf("lte_rate_matching_turbo_rx: Clear %d, E %d, Ncb %d, Kw %d, rvidx %d, G %d, Qm %d, Nl%d, r %d\n",clear,E,Ncb,3*(RTC<<5),rvidx, G, Qm,Nl,r); #endif @@ -751,8 +701,8 @@ int lte_rate_matching_turbo_rx(uint32_t RTC, if (dummy_w[ind] != LTE_NULL) { /* if ((w[ind]>0 && soft_input2[k]<0) || - (w[ind]<0 && soft_input2[k]>0)) - printf("ind %d: w %d => soft_in %d\n",ind,w[ind],soft_input2[k]);*/ + (w[ind]<0 && soft_input2[k]>0)) + printf("ind %d: w %d => soft_in %d\n",ind,w[ind],soft_input2[k]);*/ w[ind] += soft_input2[k++]; #ifdef RM_DEBUG printf("RM_RX k%d Ind: %d (%d)\n",k-1,ind,w[ind]); @@ -831,10 +781,8 @@ int lte_rate_matching_turbo_rx(uint32_t RTC, ind=0; } */ - *E_out = E; return(0); - } @@ -842,28 +790,19 @@ void lte_rate_matching_cc_rx(uint32_t RCC, uint16_t E, int8_t *w, uint8_t *dummy_w, - int8_t *soft_input) -{ - - - + int8_t *soft_input) { uint32_t ind=0,k; uint16_t Kw = 3*(RCC<<5); uint32_t acc=1; int16_t w16[Kw]; #ifdef RM_DEBUG_CC uint32_t nulled=0; - printf("lte_rate_matching_cc_rx: Kw %d, E %d, w %p, soft_input %p\n",3*(RCC<<5),E,w,soft_input); #endif - - memset(w,0,Kw); memset(w16,0,Kw*sizeof(int16_t)); for (k=0; kMAX_NUM_DLSCH_SEGMENTS) { - LOG_E(PHY,"lte_segmentation.c: too many segments %d, B %d, L %d, Bprime %d\n",*C,B,L,Bprime); + LOG_E(PHY,"lte_segmentation.c: too many segments %d, B %d, L %d, Bprime %d\n",*C,B,L,Bprime); return(-1); } // Find K+ Bprime_by_C = Bprime/(*C); #ifdef DEBUG_SEGMENTATION - printf("Bprime_by_C %d\n",Bprime_by_C); + printf("Bprime_by_C %u\n",Bprime_by_C); #endif // Bprime = Bprime_by_C>>3; @@ -93,17 +91,16 @@ int lte_segmentation(unsigned char *input_buffer, *Kminus = (*Kplus - 32); } else if (Bprime_by_C <=6144 ) { // increase by 8 bytes til here - *Kplus = (Bprime_by_C>>6)<<6; #ifdef DEBUG_SEGMENTATION - printf("Bprime_by_C_by_C %d , Kplus %d\n",Bprime_by_C,*Kplus); + printf("Bprime_by_C_by_C %u , Kplus %u\n",Bprime_by_C,*Kplus); #endif if (*Kplus < Bprime_by_C) *Kplus = *Kplus + 64; #ifdef DEBUG_SEGMENTATION - printf("Bprime_by_C_by_C %d , Kplus2 %d\n",Bprime_by_C,*Kplus); + printf("Bprime_by_C_by_C %u , Kplus2 %u\n",Bprime_by_C,*Kplus); #endif *Kminus = (*Kplus - 64); } else { @@ -116,25 +113,21 @@ int lte_segmentation(unsigned char *input_buffer, *Kminus = 0; *Cminus = 0; } else { - // printf("More than one segment (%d), exiting \n",*C); // exit(-1); *Cminus = ((*C)*(*Kplus) - (Bprime))/((*Kplus) - (*Kminus)); *Cplus = (*C) - (*Cminus); } - AssertFatal(Bprime <= (*Cplus)*(*Kplus) + (*Cminus)*(*Kminus), - "Bprime %d < (*Cplus %d)*(*Kplus %d) + (*Cminus %d)*(*Kminus %d)\n", - Bprime,*Cplus,*Kplus,*Cminus,*Kminus); - + "Bprime %d < (*Cplus %d)*(*Kplus %d) + (*Cminus %d)*(*Kminus %d)\n", + Bprime,*Cplus,*Kplus,*Cminus,*Kminus); *F = ((*Cplus)*(*Kplus) + (*Cminus)*(*Kminus) - (Bprime)); #ifdef DEBUG_SEGMENTATION - printf("C %d, Cplus %d, Cminus %d, Kplus %d, Kminus %d, Bprime_bytes %d, Bprime %d, F %d\n",*C,*Cplus,*Cminus,*Kplus,*Kminus,Bprime>>3,Bprime,*F); + printf("C %u, Cplus %u, Cminus %u, Kplus %u, Kminus %u, Bprime_bytes %u, Bprime %u, F %u\n",*C,*Cplus,*Cminus,*Kplus,*Kminus,Bprime>>3,Bprime,*F); #endif if ((input_buffer) && (output_buffers)) { - for (k=0; k<*F>>3; k++) { output_buffers[0][k] = 0; } @@ -142,7 +135,6 @@ int lte_segmentation(unsigned char *input_buffer, s=0; for (r=0; r<*C; r++) { - if (r<*Cminus) Kr = *Kminus; else @@ -150,18 +142,18 @@ int lte_segmentation(unsigned char *input_buffer, while (k<((Kr - L)>>3)) { output_buffers[r][k] = input_buffer[s]; - // printf("encoding segment %d : byte %d (%d) => %d\n",r,k,Kr>>3,input_buffer[s]); + // printf("encoding segment %d : byte %d (%d) => %d\n",r,k,Kr>>3,input_buffer[s]); k++; s++; } if (*C > 1) { // add CRC crc = crc24b(output_buffers[r],Kr-24)>>8; - output_buffers[r][(Kr-24)>>3] = ((uint8_t*)&crc)[2]; - output_buffers[r][1+((Kr-24)>>3)] = ((uint8_t*)&crc)[1]; - output_buffers[r][2+((Kr-24)>>3)] = ((uint8_t*)&crc)[0]; + output_buffers[r][(Kr-24)>>3] = ((uint8_t *)&crc)[2]; + output_buffers[r][1+((Kr-24)>>3)] = ((uint8_t *)&crc)[1]; + output_buffers[r][2+((Kr-24)>>3)] = ((uint8_t *)&crc)[0]; #ifdef DEBUG_SEGMENTATION - printf("Segment %d : CRC %x\n",r,crc); + printf("Segment %u : CRC %x\n",r,crc); #endif } @@ -175,9 +167,7 @@ int lte_segmentation(unsigned char *input_buffer, #ifdef MAIN -main() -{ - +main() { unsigned int Kplus,Kminus,C,Cplus,Cminus,F,Bbytes; for (Bbytes=5; Bbytes<2*768; Bbytes++) { diff --git a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c index f7c4a3ead3..e50af7cdd8 100644 --- a/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c +++ b/openair1/PHY/LTE_ESTIMATION/lte_dl_channel_estimation.c @@ -34,8 +34,7 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, unsigned char Ns, unsigned char p, unsigned char l, - unsigned char symbol) -{ + unsigned char symbol) { int pilot[2][200] __attribute__((aligned(16))); unsigned char nu,aarx; unsigned short k; @@ -45,16 +44,14 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, // unsigned int n; // int i; static int interpolateS11S12 = 1; - uint16_t Nid_cell = (eNB_offset == 0) ? ue->frame_parms.Nid_cell : ue->measurements.adj_cell_id[eNB_offset-1]; - uint8_t nushift,pilot0,pilot1,pilot2,pilot3; uint8_t previous_thread_id = ue->current_thread_id[Ns>>1]==0 ? (RX_NB_TH-1):(ue->current_thread_id[Ns>>1]-1); int **dl_ch_estimates =ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset]; int **dl_ch_estimates_previous=ue->common_vars.common_vars_rx_data_per_thread[previous_thread_id].dl_ch_estimates[eNB_offset]; int **rxdataF=ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].rxdataF; - pilot0 = 0; + if (ue->frame_parms.Ncp == 0) { // normal prefix pilot1 = 4; pilot2 = 7; @@ -81,7 +78,6 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, return(-1); } - //ch_offset = (l*(ue->frame_parms.ofdm_symbol_size)); if (ue->high_speed_flag == 0) // use second channel estimate position for temporary storage ch_offset = ue->frame_parms.ofdm_symbol_size ; @@ -89,93 +85,88 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, ch_offset = ue->frame_parms.ofdm_symbol_size*symbol; symbol_offset = ue->frame_parms.ofdm_symbol_size*symbol; - k = (nu + nushift)%6; - #ifdef DEBUG_CH - printf("Channel Estimation : ThreadId %d, eNB_offset %d cell_id %d ch_offset %d, OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d\n",ue->current_thread_id[Ns>>1], eNB_offset,Nid_cell,ch_offset,ue->frame_parms.ofdm_symbol_size, + printf("Channel Estimation : ThreadId %d, eNB_offset %d cell_id %d ch_offset %d, OFDM size %d, Ncp=%d, l=%d, Ns=%d, k=%d\n",ue->current_thread_id[Ns>>1], eNB_offset,Nid_cell,ch_offset, + ue->frame_parms.ofdm_symbol_size, ue->frame_parms.Ncp,l,Ns,k); #endif switch (k) { - case 0 : - f=filt24_0; //for first pilot of RB, first half - f2=filt24_2; //for second pilot of RB, first half - fl=filt24_0; //for first pilot of leftmost RB - f2l2=filt24_2; - // fr=filt24_2r; //for first pilot of rightmost RB - fr=filt24_0r2; //for first pilot of rightmost RB - // f2r2=filt24_0r2; - f2r2=filt24_2r; + case 0 : + f=filt24_0; //for first pilot of RB, first half + f2=filt24_2; //for second pilot of RB, first half + fl=filt24_0; //for first pilot of leftmost RB + f2l2=filt24_2; + // fr=filt24_2r; //for first pilot of rightmost RB + fr=filt24_0r2; //for first pilot of rightmost RB + // f2r2=filt24_0r2; + f2r2=filt24_2r; + f_dc=filt24_0_dcr; + f2_dc=filt24_2_dcl; + break; - f_dc=filt24_0_dcr; - f2_dc=filt24_2_dcl; + case 1 : + f=filt24_1; + f2=filt24_3; + fl=filt24_1l; + f2l2=filt24_3l2; + fr=filt24_1r2; + f2r2=filt24_3r; + f_dc=filt24_1_dcr; //for first pilot of RB, first half + f2_dc=filt24_3_dcl; //for first pilot of RB, first half + break; - break; + case 2 : + f=filt24_2; + f2=filt24_4; + fl=filt24_2l; + f2l2=filt24_4l2; + fr=filt24_2r2; + f2r2=filt24_4r; + f_dc=filt24_2_dcr; //for first pilot of RB, first half + f2_dc=filt24_4_dcl; //for first pilot of RB, first half + break; - case 1 : - f=filt24_1; - f2=filt24_3; - fl=filt24_1l; - f2l2=filt24_3l2; - fr=filt24_1r2; - f2r2=filt24_3r; - f_dc=filt24_1_dcr; //for first pilot of RB, first half - f2_dc=filt24_3_dcl; //for first pilot of RB, first half - break; + case 3 : + f=filt24_3; + f2=filt24_5; + fl=filt24_3l; + f2l2=filt24_5l2; + fr=filt24_3r2; + f2r2=filt24_5r; + f_dc=filt24_3_dcr; //for first pilot of RB, first half + f2_dc=filt24_5_dcl; //for first pilot of RB, first half + break; - case 2 : - f=filt24_2; - f2=filt24_4; - fl=filt24_2l; - f2l2=filt24_4l2; - fr=filt24_2r2; - f2r2=filt24_4r; - f_dc=filt24_2_dcr; //for first pilot of RB, first half - f2_dc=filt24_4_dcl; //for first pilot of RB, first half - break; + case 4 : + f=filt24_4; + f2=filt24_6; + fl=filt24_4l; + f2l2=filt24_6l2; + fr=filt24_4r2; + f2r2=filt24_6r; + f_dc=filt24_4_dcr; //for first pilot of RB, first half + f2_dc=filt24_6_dcl; //for first pilot of RB, first half + break; - case 3 : - f=filt24_3; - f2=filt24_5; - fl=filt24_3l; - f2l2=filt24_5l2; - fr=filt24_3r2; - f2r2=filt24_5r; - f_dc=filt24_3_dcr; //for first pilot of RB, first half - f2_dc=filt24_5_dcl; //for first pilot of RB, first half - break; + case 5 : + f=filt24_5; + f2=filt24_7; + fl=filt24_5l; + f2l2=filt24_7l2; + fr=filt24_5r2; + f2r2=filt24_7r; + f_dc=filt24_5_dcr; //for first pilot of RB, first half + f2_dc=filt24_7_dcl; //for first pilot of RB, first half + break; - case 4 : - f=filt24_4; - f2=filt24_6; - fl=filt24_4l; - f2l2=filt24_6l2; - fr=filt24_4r2; - f2r2=filt24_6r; - f_dc=filt24_4_dcr; //for first pilot of RB, first half - f2_dc=filt24_6_dcl; //for first pilot of RB, first half - break; - - case 5 : - f=filt24_5; - f2=filt24_7; - fl=filt24_5l; - f2l2=filt24_7l2; - fr=filt24_5r2; - f2r2=filt24_7r; - f_dc=filt24_5_dcr; //for first pilot of RB, first half - f2_dc=filt24_7_dcl; //for first pilot of RB, first half - break; - - default: - LOG_E(PHY,"lte_dl_channel_estimation: k=%d -> ERROR\n",k); - return(-1); - break; + default: + LOG_E(PHY,"lte_dl_channel_estimation: k=%d -> ERROR\n",k); + return(-1); + break; } - - // generate pilot lte_dl_cell_spec_rx(ue, eNB_offset, @@ -184,27 +175,25 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, (l==0)?0:1, p); - for (aarx=0; aarxframe_parms.nb_antennas_rx; aarx++) { - pil = (int16_t *)&pilot[p][0]; rxF = (int16_t *)&rxdataF[aarx][((symbol_offset+k+ue->frame_parms.first_carrier_offset))]; dl_ch = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]; - - // if (eNb_id==0) memset(dl_ch,0,4*(ue->frame_parms.ofdm_symbol_size)); + if (ue->high_speed_flag==0) // multiply previous channel estimate by ch_est_alpha multadd_complex_vector_real_scalar(dl_ch-(ue->frame_parms.ofdm_symbol_size<<1), ue->ch_est_alpha,dl_ch-(ue->frame_parms.ofdm_symbol_size<<1), 1,ue->frame_parms.ofdm_symbol_size); + #ifdef DEBUG_CH printf("k %d, first_carrier %d\n",k,ue->frame_parms.first_carrier_offset); #endif + if ((ue->frame_parms.N_RB_DL==6) || (ue->frame_parms.N_RB_DL==50) || (ue->frame_parms.N_RB_DL==100)) { - //First half of pilots // Treat first 2 pilots specially (left edge) ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); @@ -219,7 +208,6 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH @@ -234,28 +222,22 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, dl_ch+=16; for (pilot_cnt=2; pilot_cnt<((ue->frame_parms.N_RB_DL)-1); pilot_cnt+=2) { - - - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); //Re ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); //Im #ifdef DEBUG_CH - printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); + printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(f, ch, dl_ch, 24); - - pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); + printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(f2, ch, @@ -264,29 +246,25 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=16; - } // printf("Second half\n"); // Second half of RBs - k = (nu + nushift)%6; if (k > 6) k -=6; rxF = (int16_t *)&rxdataF[aarx][((symbol_offset+1+k))]; - #ifdef DEBUG_CH printf("second half k %d\n",k); #endif + for (pilot_cnt=0; pilot_cnt<((ue->frame_parms.N_RB_DL)-3); pilot_cnt+=2) { - - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); + printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(f, ch, @@ -295,11 +273,10 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); + printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(f2, ch, @@ -308,13 +285,12 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=16; - } ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); + printf("pilot %u: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(fr, ch, @@ -323,34 +299,25 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); + printf("pilot %u: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); #endif multadd_real_vector_complex_scalar(f2r2, ch, dl_ch, 24); - - - } - - else if (ue->frame_parms.N_RB_DL==25) { + } else if (ue->frame_parms.N_RB_DL==25) { //printf("Channel estimation\n"); - // Treat first 2 pilots specially (left edge) ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - #ifdef DEBUG_CH printf("pilot 0 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - // ch[0] = 1024; // ch[1] = -128; #endif - multadd_real_vector_complex_scalar(fl, ch, dl_ch, @@ -358,17 +325,13 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - #ifdef DEBUG_CH printf("pilot 1 : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - // ch[0] = 1024; // ch[1] = -128; #endif - multadd_real_vector_complex_scalar(f2l2, ch, dl_ch, @@ -378,21 +341,15 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, dl_ch+=16; for (pilot_cnt=2; pilot_cnt<24; pilot_cnt+=2) { - // printf("pilot[%d][%d] (%d,%d)\n",p,rb,pil[0],pil[1]); // printf("rx[%d][%d] -> (%d,%d)\n",p,ue->frame_parms.first_carrier_offset + ue->frame_parms.nushift + 6*rb+(3*p),rxF[0],rxF[1]); - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - #ifdef DEBUG_CH - printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - + printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); // ch[0] = 1024; // ch[1] = -128; #endif - - multadd_real_vector_complex_scalar(f, ch, dl_ch, @@ -400,13 +357,10 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - #ifdef DEBUG_CH - printf("pilot %d : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - + printf("pilot %u : rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",pilot_cnt+1,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); // ch[0] = 1024; // ch[1] = -128; #endif @@ -417,39 +371,31 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=16; - } ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH printf("pilot 24: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - // ch[0] = 1024; // ch[1] = -128; #endif - - multadd_real_vector_complex_scalar(f_dc, ch, dl_ch, 24); pil+=2; // Re Im dl_ch+=8; - // printf("Second half\n"); // Second half of RBs rxF = (int16_t *)&rxdataF[aarx][((symbol_offset+1+k))]; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH printf("pilot 25: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - // ch[0] = 1024; // ch[1] = -128; #endif - multadd_real_vector_complex_scalar(f2_dc, ch, dl_ch, @@ -459,19 +405,15 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, dl_ch+=16; for (pilot_cnt=0; pilot_cnt<22; pilot_cnt+=2) { - // printf("* pilot[%d][%d] (%d,%d)\n",p,rb,pil[0],pil[1]); // printf("rx[%d][%d] -> (%d,%d)\n",p,ue->frame_parms.first_carrier_offset + ue->frame_parms.nushift + 6*rb+(3*p),rxF[0],rxF[1]); - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",26+pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - + printf("pilot %u rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",26+pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); // ch[0] = 1024; // ch[1] = -128; #endif - multadd_real_vector_complex_scalar(f, ch, dl_ch, @@ -479,16 +421,13 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); #ifdef DEBUG_CH - printf("pilot %d : rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",27+pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - + printf("pilot %u : rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",27+pilot_cnt,rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); // ch[0] = 1024; // ch[1] = -128; #endif - multadd_real_vector_complex_scalar(f2, ch, dl_ch, @@ -496,20 +435,15 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=16; - } ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - #ifdef DEBUG_CH printf("pilot 49: rxF -> (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - // ch[0] = 1024; // ch[1] = -128; #endif - - multadd_real_vector_complex_scalar(fr, ch, dl_ch, @@ -517,28 +451,20 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - #ifdef DEBUG_CH - printf("pilot 50: rxF - > (%d,%d) ch -> (%d,%d), pil -> (%d,%d) \n",rxF[0],rxF[1],ch[0],ch[1],pil[0],pil[1]); - // ch[0] = 1024; // ch[1] = -128; #endif - multadd_real_vector_complex_scalar(f2r2, ch, dl_ch, 24); - } else if (ue->frame_parms.N_RB_DL==15) { - //printf("First Half\n"); for (rb=0; rb<28; rb+=4) { - //printf("aarx=%d\n",aarx); //printf("pilot[%d][%d] (%d,%d)\n",p,rb,pil[0],pil[1]); //printf("rx[%d][%d] -> (%d,%d)\n",p, @@ -555,7 +481,6 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; // Re Im rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); //printf("ch -> (%d,%d)\n",ch[0],ch[1]); @@ -566,7 +491,6 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=16; - } ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); @@ -578,13 +502,11 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, 24); pil+=2; // Re Im dl_ch+=8; - //printf("Second half\n"); //Second half of RBs rxF = (int16_t *)&rxdataF[aarx][((symbol_offset+1+nushift + (3*p)))]; ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - multadd_real_vector_complex_scalar(f2, ch, dl_ch, @@ -602,7 +524,6 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, // rxF[1]); ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - multadd_real_vector_complex_scalar(f, ch, dl_ch, @@ -610,10 +531,8 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=8; - ch[0] = (int16_t)(((int32_t)pil[0]*rxF[0] - (int32_t)pil[1]*rxF[1])>>15); ch[1] = (int16_t)(((int32_t)pil[0]*rxF[1] + (int32_t)pil[1]*rxF[0])>>15); - multadd_real_vector_complex_scalar(f2, ch, dl_ch, @@ -621,17 +540,14 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, pil+=2; rxF+=12; dl_ch+=16; - } } else { LOG_E(PHY,"channel estimation not implemented for ue->frame_parms.N_RB_DL = %d\n",ue->frame_parms.N_RB_DL); } - if (ue->perfect_ce == 0) { // Temporal Interpolation // printf("ch_offset %d\n",ch_offset); - dl_ch = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][ch_offset]; if (ue->high_speed_flag == 0) { @@ -639,182 +555,155 @@ int lte_dl_channel_estimation(PHY_VARS_UE *ue, 32767-ue->ch_est_alpha, dl_ch-(ue->frame_parms.ofdm_symbol_size<<1),0,ue->frame_parms.ofdm_symbol_size); } else { // high_speed_flag == 1 - if ((symbol == 0)) { - // printf("Interpolating %d->0\n",4-ue->frame_parms.Ncp); - // dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][(4-ue->frame_parms.Ncp)*(ue->frame_parms.ofdm_symbol_size)]; - if(((Ns>>1)!=0) || ( ((Ns>>1)==0) && interpolateS11S12)) - { - //LOG_I(PHY,"Interpolate s11-->s0 to get s12 and s13 Ns %d \n", Ns); - dl_ch_prev = (int16_t *)&dl_ch_estimates_previous[(p<<1)+aarx][pilot3*(ue->frame_parms.ofdm_symbol_size)]; + if ((symbol == 0)) { + // printf("Interpolating %d->0\n",4-ue->frame_parms.Ncp); + // dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][(4-ue->frame_parms.Ncp)*(ue->frame_parms.ofdm_symbol_size)]; + if(((Ns>>1)!=0) || ( ((Ns>>1)==0) && interpolateS11S12)) { + //LOG_I(PHY,"Interpolate s11-->s0 to get s12 and s13 Ns %d \n", Ns); + dl_ch_prev = (int16_t *)&dl_ch_estimates_previous[(p<<1)+aarx][pilot3*(ue->frame_parms.ofdm_symbol_size)]; + multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + } - multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + interpolateS11S12 = 1; + } // this is 1/3,2/3 combination for pilots spaced by 3 symbols + else if (symbol == pilot1) { + dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][0]; - multadd_complex_vector_real_scalar(dl_ch_prev,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - } + //LOG_I(PHY,"Interpolate s0-->s4 to get s1 s2 and s3 Ns %d \n", Ns); + if (ue->frame_parms.Ncp==0) {// pilot spacing 4 symbols (1/4,1/2,3/4 combination) + uint8_t previous_subframe; - interpolateS11S12 = 1; - } // this is 1/3,2/3 combination for pilots spaced by 3 symbols - else if (symbol == pilot1) { - dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][0]; - - //LOG_I(PHY,"Interpolate s0-->s4 to get s1 s2 and s3 Ns %d \n", Ns); - if (ue->frame_parms.Ncp==0) {// pilot spacing 4 symbols (1/4,1/2,3/4 combination) - - uint8_t previous_subframe; - if(Ns>>1 == 0) - previous_subframe = 9; - else - previous_subframe = ((Ns>>1) - 1 )%9; - - if((subframe_select(&ue->frame_parms,previous_subframe) == SF_UL)) - { - - multadd_complex_vector_real_scalar(dl_ch_prev,328,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,32440,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,328,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,32440,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,8192,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,32440,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - } - else - { - multadd_complex_vector_real_scalar(dl_ch_prev,24576,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,8192,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,8192,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,24576,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - } - } else { - multadd_complex_vector_real_scalar(dl_ch_prev,328,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)<<1),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - } // pilot spacing 3 symbols (1/3,2/3 combination) - } else if (symbol == pilot2) { - dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot1*(ue->frame_parms.ofdm_symbol_size)]; - - multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - } else { // symbol == pilot3 - // printf("Interpolating 0->%d\n",4-ue->frame_parms.Ncp); - dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot2*(ue->frame_parms.ofdm_symbol_size)]; - - if (ue->frame_parms.Ncp==0) {// pilot spacing 4 symbols (1/4,1/2,3/4 combination) - multadd_complex_vector_real_scalar(dl_ch_prev,24576,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,8192,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,8192,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,24576,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - } else { - multadd_complex_vector_real_scalar(dl_ch_prev,10923,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); - - multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)<<1),1,ue->frame_parms.ofdm_symbol_size); - multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); - } // pilot spacing 3 symbols (1/3,2/3 combination) - - if((ue->rx_offset_diff !=0) && ((Ns>>1) == 9)) - { - //LOG_I(PHY,"Extrapolate s7-->s11 to get s12 and s13 Ns %d\n", Ns); - interpolateS11S12 = 0; - //LOG_E(PHY,"Interpolate s7--s11 s12 s13 pilot 3 Ns %d l %d symbol %d \n", Ns, l, symbol); - int16_t *dlChEst_ofdm11 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot3*(ue->frame_parms.ofdm_symbol_size)]; - int16_t *dlChEst_ofdm7 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot2*(ue->frame_parms.ofdm_symbol_size)]; - - // interpolate ofdm s12: 5/4*ofdms11 + -1/4*ofdms7 5/4 q1.15 40960 -1/4 q1.15 8192 - int16_t *dlChEst_ofdm12 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][12*ue->frame_parms.ofdm_symbol_size]; - for(int i=0; i<(2*ue->frame_parms.ofdm_symbol_size); i++) - { - int64_t tmp_mult = 0; - tmp_mult = ((int64_t)dlChEst_ofdm11[i] * 40960 - (int64_t)dlChEst_ofdm7[i] * 8192); - - tmp_mult = tmp_mult >> 15; - dlChEst_ofdm12[i] = tmp_mult; - } - - // interpolate ofdm s13: 3/2*ofdms11 + -1/2*ofdms7 3/2 q1.15 49152 1/2 q1.15 16384 - int16_t *dlChEst_ofdm13 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][13*ue->frame_parms.ofdm_symbol_size]; - for(int i=0; i<(2*ue->frame_parms.ofdm_symbol_size); i++) - { - int64_t tmp_mult = 0; - tmp_mult = ((int64_t)dlChEst_ofdm11[i] * 49152 - (int64_t)dlChEst_ofdm7[i] * 16384); - - tmp_mult = tmp_mult >> 15; - dlChEst_ofdm13[i] = tmp_mult; - } - } + if(Ns>>1 == 0) + previous_subframe = 9; + else + previous_subframe = ((Ns>>1) - 1 )%9; + if((subframe_select(&ue->frame_parms,previous_subframe) == SF_UL)) { + multadd_complex_vector_real_scalar(dl_ch_prev,328,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,32440,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,328,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,32440,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,8192,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,32440,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + } else { + multadd_complex_vector_real_scalar(dl_ch_prev,24576,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,8192,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,8192,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,24576,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); } - } + } else { + multadd_complex_vector_real_scalar(dl_ch_prev,328,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)<<1),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + } // pilot spacing 3 symbols (1/3,2/3 combination) + } else if (symbol == pilot2) { + dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot1*(ue->frame_parms.ofdm_symbol_size)]; + multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + } else { // symbol == pilot3 + // printf("Interpolating 0->%d\n",4-ue->frame_parms.Ncp); + dl_ch_prev = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot2*(ue->frame_parms.ofdm_symbol_size)]; + if (ue->frame_parms.Ncp==0) {// pilot spacing 4 symbols (1/4,1/2,3/4 combination) + multadd_complex_vector_real_scalar(dl_ch_prev,24576,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,8192,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,16384,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,8192,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,24576,dl_ch_prev+(3*2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + } else { + multadd_complex_vector_real_scalar(dl_ch_prev,10923,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)),0,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch_prev,21845,dl_ch_prev+(2*(ue->frame_parms.ofdm_symbol_size)<<1),1,ue->frame_parms.ofdm_symbol_size); + multadd_complex_vector_real_scalar(dl_ch,10923,dl_ch_prev+(2*((ue->frame_parms.ofdm_symbol_size)<<1)),0,ue->frame_parms.ofdm_symbol_size); + } // pilot spacing 3 symbols (1/3,2/3 combination) + + if((ue->rx_offset_diff !=0) && ((Ns>>1) == 9)) { + //LOG_I(PHY,"Extrapolate s7-->s11 to get s12 and s13 Ns %d\n", Ns); + interpolateS11S12 = 0; + //LOG_E(PHY,"Interpolate s7--s11 s12 s13 pilot 3 Ns %d l %d symbol %d \n", Ns, l, symbol); + int16_t *dlChEst_ofdm11 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot3*(ue->frame_parms.ofdm_symbol_size)]; + int16_t *dlChEst_ofdm7 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][pilot2*(ue->frame_parms.ofdm_symbol_size)]; + // interpolate ofdm s12: 5/4*ofdms11 + -1/4*ofdms7 5/4 q1.15 40960 -1/4 q1.15 8192 + int16_t *dlChEst_ofdm12 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][12*ue->frame_parms.ofdm_symbol_size]; + + for(int i=0; i<(2*ue->frame_parms.ofdm_symbol_size); i++) { + int64_t tmp_mult = 0; + tmp_mult = ((int64_t)dlChEst_ofdm11[i] * 40960 - (int64_t)dlChEst_ofdm7[i] * 8192); + tmp_mult = tmp_mult >> 15; + dlChEst_ofdm12[i] = tmp_mult; + } + + // interpolate ofdm s13: 3/2*ofdms11 + -1/2*ofdms7 3/2 q1.15 49152 1/2 q1.15 16384 + int16_t *dlChEst_ofdm13 = (int16_t *)&dl_ch_estimates[(p<<1)+aarx][13*ue->frame_parms.ofdm_symbol_size]; + + for(int i=0; i<(2*ue->frame_parms.ofdm_symbol_size); i++) { + int64_t tmp_mult = 0; + tmp_mult = ((int64_t)dlChEst_ofdm11[i] * 49152 - (int64_t)dlChEst_ofdm7[i] * 16384); + tmp_mult = tmp_mult >> 15; + dlChEst_ofdm13[i] = tmp_mult; + } + } + } + } } } void (*idft)(int16_t *,int16_t *, int); switch (ue->frame_parms.ofdm_symbol_size) { - case 128: - idft = idft128; - break; + case 128: + idft = idft128; + break; - case 256: - idft = idft256; - break; + case 256: + idft = idft256; + break; - case 512: - idft = idft512; - break; + case 512: + idft = idft512; + break; - case 1024: - idft = idft1024; - break; + case 1024: + idft = idft1024; + break; - case 1536: - idft = idft1536; - break; + case 1536: + idft = idft1536; + break; - case 2048: - idft = idft2048; - break; + case 2048: + idft = idft2048; + break; - default: - idft = idft512; - break; + default: + idft = idft512; + break; } - if( ((Ns%2) == 0) && (l == pilot0)) - { - // do ifft of channel estimate - for (aarx=0; aarxframe_parms.nb_antennas_rx; aarx++) - for (p=0; pframe_parms.nb_antenna_ports_eNB; p++) { - if (ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx]) - { - //LOG_I(PHY,"Channel Impulse Computation Slot %d ThreadId %d Symbol %d \n", Ns, ue->current_thread_id[Ns>>1], l); - idft((int16_t*) &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx][8], - (int16_t*) ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][(p<<1)+aarx],1); - } - } + if( ((Ns%2) == 0) && (l == pilot0)) { + // do ifft of channel estimate + for (aarx=0; aarxframe_parms.nb_antennas_rx; aarx++) + for (p=0; pframe_parms.nb_antenna_ports_eNB; p++) { + if (ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx]) { + //LOG_I(PHY,"Channel Impulse Computation Slot %d ThreadId %d Symbol %d \n", Ns, ue->current_thread_id[Ns>>1], l); + idft((int16_t *) &ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates[eNB_offset][(p<<1)+aarx][8], + (int16_t *) ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][(p<<1)+aarx],1); + } + } } T(T_UE_PHY_DL_CHANNEL_ESTIMATE, T_INT(eNB_id), T_INT(ue->proc.proc_rxtx[ue->current_thread_id[Ns>>1]].frame_rx%1024), T_INT(ue->proc.proc_rxtx[ue->current_thread_id[Ns>>1]].subframe_rx), T_INT(0), T_BUFFER(&ue->common_vars.common_vars_rx_data_per_thread[ue->current_thread_id[Ns>>1]].dl_ch_estimates_time[eNB_offset][0][0], 512 * 4)); - return(0); } diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index 42d217130a..405990fb6b 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -39,37 +39,33 @@ #include "prach_extern.h" #if (LTE_RRC_VERSION < MAKE_VERSION(14, 0, 0)) -#define rx_prach0 rx_prach + #define rx_prach0 rx_prach #endif void rx_prach0(PHY_VARS_eNB *eNB, - RU_t *ru, - uint16_t *max_preamble, - uint16_t *max_preamble_energy, - uint16_t *max_preamble_delay, - uint16_t Nf, - uint8_t tdd_mapindex + RU_t *ru, + uint16_t *max_preamble, + uint16_t *max_preamble_energy, + uint16_t *max_preamble_delay, + uint16_t Nf, + uint8_t tdd_mapindex #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - ,uint8_t br_flag, - uint8_t ce_level + ,uint8_t br_flag, + uint8_t ce_level #endif - ) -{ - + ) { int i; - LTE_DL_FRAME_PARMS *fp; lte_frame_type_t frame_type; - uint16_t rootSequenceIndex; - uint8_t prach_ConfigIndex; - uint8_t Ncs_config; - uint8_t restricted_set; + uint16_t rootSequenceIndex; + uint8_t prach_ConfigIndex; + uint8_t Ncs_config; + uint8_t restricted_set; uint8_t n_ra_prb; int subframe; int16_t *prachF=NULL; int16_t **rxsigF=NULL; int nb_rx; - int16_t *prach2; uint8_t preamble_index; uint16_t NCS,NCS2; @@ -93,106 +89,108 @@ void rx_prach0(PHY_VARS_eNB *eNB, int16_t levdB; int fft_size,log2_ifft_size; int16_t prach_ifft_tmp[2048*2] __attribute__((aligned(32))); - int32_t *prach_ifft=(int32_t*)NULL; + int32_t *prach_ifft=(int32_t *)NULL; int32_t **prach_ifftp=(int32_t **)NULL; #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) int prach_ifft_cnt=0; #endif - - if (ru) { + if (ru) { fp = &ru->frame_parms; nb_rx = ru->nb_rx; - } - else if (eNB) { + } else if (eNB) { fp = &eNB->frame_parms; nb_rx = fp->nb_antennas_rx; - } - else AssertFatal(1==0,"rx_prach called without valid RU or eNB descriptor\n"); - - frame_type = fp->frame_type; + } else AssertFatal(1==0,"rx_prach called without valid RU or eNB descriptor\n"); + frame_type = fp->frame_type; #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + if (br_flag == 1) { AssertFatal(fp->prach_emtc_config_common.prach_Config_enabled==1, - "emtc prach_Config is not enabled\n"); + "emtc prach_Config is not enabled\n"); AssertFatal(fp->prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[ce_level]==1, - "ce_level %d is not active\n",ce_level); + "ce_level %d is not active\n",ce_level); rootSequenceIndex = fp->prach_emtc_config_common.rootSequenceIndex; prach_ConfigIndex = fp->prach_emtc_config_common.prach_ConfigInfo.prach_ConfigIndex[ce_level]; Ncs_config = fp->prach_emtc_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig; restricted_set = fp->prach_emtc_config_common.prach_ConfigInfo.highSpeedFlag; n_ra_prb = get_prach_prb_offset(fp,prach_ConfigIndex, - fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], - tdd_mapindex,Nf); + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], + tdd_mapindex,Nf); // update pointers to results for ce_level max_preamble += ce_level; max_preamble_energy += ce_level; max_preamble_delay += ce_level; - } - else + } else #endif - { - rootSequenceIndex = fp->prach_config_common.rootSequenceIndex; - prach_ConfigIndex = fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex; - Ncs_config = fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig; - restricted_set = fp->prach_config_common.prach_ConfigInfo.highSpeedFlag; - n_ra_prb = get_prach_prb_offset(fp,prach_ConfigIndex, - fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset, - tdd_mapindex,Nf); - } + { + rootSequenceIndex = fp->prach_config_common.rootSequenceIndex; + prach_ConfigIndex = fp->prach_config_common.prach_ConfigInfo.prach_ConfigIndex; + Ncs_config = fp->prach_config_common.prach_ConfigInfo.zeroCorrelationZoneConfig; + restricted_set = fp->prach_config_common.prach_ConfigInfo.highSpeedFlag; + n_ra_prb = get_prach_prb_offset(fp,prach_ConfigIndex, + fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset, + tdd_mapindex,Nf); + } int16_t *prach[nb_rx]; uint8_t prach_fmt = get_prach_fmt(prach_ConfigIndex,frame_type); uint16_t N_ZC = (prach_fmt <4)?839:139; - + if (eNB) { #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + if (br_flag == 1) { prach_ifftp = eNB->prach_vars_br.prach_ifft[ce_level]; subframe = eNB->proc.subframe_prach_br; prachF = eNB->prach_vars_br.prachF; rxsigF = eNB->prach_vars_br.rxsigF[ce_level]; - if (LOG_DEBUGFLAG(PRACH)){ - if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", - br_flag,ce_level,ru->proc.frame_prach,subframe, - fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], - prach_ConfigIndex,rootSequenceIndex, - eNB->prach_vars_br.repetition_number[ce_level], - fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]); - } - } else -#endif - { - prach_ifftp = eNB->prach_vars.prach_ifft[0]; - subframe = eNB->proc.subframe_prach; - prachF = eNB->prach_vars.prachF; - rxsigF = eNB->prach_vars.rxsigF[0]; - if (LOG_DEBUGFLAG(PRACH)){ - if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); - } - } - } - else { -#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - if (br_flag == 1) { - subframe = ru->proc.subframe_prach_br; - rxsigF = ru->prach_rxsigF_br[ce_level]; - if (LOG_DEBUGFLAG(PRACH)){ - if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", - br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); - } - } else -#endif - { - subframe = ru->proc.subframe_prach; - rxsigF = ru->prach_rxsigF; - if (LOG_DEBUGFLAG(PRACH)){ - if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", - subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex); - } - } + if (LOG_DEBUGFLAG(PRACH)) { + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY, + "PRACH (eNB) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d, rootSequenceIndex %d, repetition number %d,numRepetitionsPrePreambleAttempt %d\n", + br_flag,ce_level,ru->proc.frame_prach,subframe, + fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level], + prach_ConfigIndex,rootSequenceIndex, + eNB->prach_vars_br.repetition_number[ce_level], + fp->prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level]); + } + } else +#endif + { + prach_ifftp = eNB->prach_vars.prach_ifft[0]; + subframe = eNB->proc.subframe_prach; + prachF = eNB->prach_vars.prachF; + rxsigF = eNB->prach_vars.rxsigF[0]; + + if (LOG_DEBUGFLAG(PRACH)) { + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (eNB) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d , rootSequenceIndex %d\n", subframe, + fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex,rootSequenceIndex); + } + } + } else { +#if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + + if (br_flag == 1) { + subframe = ru->proc.subframe_prach_br; + rxsigF = ru->prach_rxsigF_br[ce_level]; + + if (LOG_DEBUGFLAG(PRACH)) { + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach (br_flag %d, ce_level %d) for frame %d subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", + br_flag,ce_level,ru->proc.frame_prach,subframe,fp->prach_emtc_config_common.prach_ConfigInfo.prach_FreqOffset[ce_level],prach_ConfigIndex); + } + } else +#endif + { + subframe = ru->proc.subframe_prach; + rxsigF = ru->prach_rxsigF; + + if (LOG_DEBUGFLAG(PRACH)) { + if (((ru->proc.frame_prach)&1023) < 20) LOG_I(PHY,"PRACH (RU) : running rx_prach for subframe %d, prach_FreqOffset %d, prach_ConfigIndex %d\n", + subframe,fp->prach_config_common.prach_ConfigInfo.prach_FreqOffset,prach_ConfigIndex); + } + } } AssertFatal(ru!=NULL,"ru is null\n"); @@ -200,25 +198,29 @@ void rx_prach0(PHY_VARS_eNB *eNB, for (aa=0; aaif_south == LOCAL_RF) { // set the time-domain signal if we have to use it in this node // DJP - indexing below in subframe zero takes us off the beginning of the array??? - prach[aa] = (int16_t*)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset]; + prach[aa] = (int16_t *)&ru->common.rxdata[aa][(subframe*fp->samples_per_tti)-ru->N_TA_offset]; + + if (LOG_DUMPFLAG(PRACH)) { + int32_t en0=signal_energy((int32_t *)prach[aa],fp->samples_per_tti); + int8_t dbEn0 = dB_fixed(en0); + int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB; + char buffer[80]; + + if (dbEn0>32 && prach[0]!= NULL) { + static int counter=0; + sprintf(buffer, "%s%d", "/tmp/prach_rx",counter); + LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13); + } - if (LOG_DUMPFLAG(PRACH)){ - int32_t en0=signal_energy((int32_t*)prach[aa],fp->samples_per_tti); - int8_t dbEn0 = dB_fixed(en0); - int8_t rach_dBm = dbEn0 - ru->rx_total_gain_dB; - char buffer[80]; - if (dbEn0>32 && prach[0]!= NULL) { - static int counter=0; - sprintf(buffer, "%s%d", "/tmp/prach_rx",counter); - LOG_M(buffer,"prach_rx",prach[0],fp->samples_per_tti,1,13); - } if (dB_fixed(en0)>32) { sprintf(buffer, "rach_dBm:%d",rach_dBm); + if (prach[0]!= NULL) LOG_M("prach_rx","prach_rx",prach[0],fp->samples_per_tti,1,1); - LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n", - ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti, - prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa], - (subframe*fp->samples_per_tti)-ru->N_TA_offset); + + LOG_I(PHY,"RU %d, br_flag %d ce_level %d frame %d subframe %d per_tti:%d prach:%p (energy %d) TA:%d %s rxdata:%p index:%d\n", + ru->idx,br_flag,ce_level,ru->proc.frame_prach,subframe,fp->samples_per_tti, + prach[aa],dbEn0,ru->N_TA_offset,buffer,ru->common.rxdata[aa], + (subframe*fp->samples_per_tti)-ru->N_TA_offset); } } } @@ -227,19 +229,17 @@ void rx_prach0(PHY_VARS_eNB *eNB, // First compute physical root sequence if (restricted_set == 0) { AssertFatal(Ncs_config<=15, - "Illegal Ncs_config for unrestricted format %d\n",Ncs_config); + "Illegal Ncs_config for unrestricted format %d\n",Ncs_config); NCS = NCS_unrestricted[Ncs_config]; } else { AssertFatal(Ncs_config<=14, - "FATAL, Illegal Ncs_config for restricted format %d\n",Ncs_config); + "FATAL, Illegal Ncs_config for restricted format %d\n",Ncs_config); NCS = NCS_restricted[Ncs_config]; } if (eNB) start_meas(&eNB->rx_prach); - prach_root_sequence_map = (prach_fmt < 4) ? prach_root_sequence_map0_3 : prach_root_sequence_map4; - // PDP is oversampled, e.g. 1024 sample instead of 839 // Adapt the NCS (zero-correlation zones) with oversampling factor e.g. 1024/839 NCS2 = (N_ZC==839) ? ((NCS<<10)/839) : ((NCS<<8)/139); @@ -248,56 +248,56 @@ void rx_prach0(PHY_VARS_eNB *eNB, NCS2 = N_ZC; switch (prach_fmt) { - case 0: - Ncp = 3168; - break; + case 0: + Ncp = 3168; + break; - case 1: - case 3: - Ncp = 21024; - break; + case 1: + case 3: + Ncp = 21024; + break; - case 2: - Ncp = 6240; - break; + case 2: + Ncp = 6240; + break; - case 4: - Ncp = 448; - break; + case 4: + Ncp = 448; + break; - default: - Ncp = 3168; - break; + default: + Ncp = 3168; + break; } // Adjust CP length based on UL bandwidth switch (fp->N_RB_UL) { - case 6: - Ncp>>=4; - break; + case 6: + Ncp>>=4; + break; - case 15: - Ncp>>=3; - break; + case 15: + Ncp>>=3; + break; - case 25: - Ncp>>=2; - break; + case 25: + Ncp>>=2; + break; - case 50: - Ncp>>=1; - break; + case 50: + Ncp>>=1; + break; - case 75: - Ncp=(Ncp*3)>>2; - break; - - case 100: - if (fp->threequarter_fs == 1) + case 75: Ncp=(Ncp*3)>>2; - break; - } + break; + case 100: + if (fp->threequarter_fs == 1) + Ncp=(Ncp*3)>>2; + + break; + } if (((eNB!=NULL) && (ru->function != NGFI_RAU_IF4p5))|| ((eNB==NULL) && (ru->function == NGFI_RRU_IF4p5))) { // compute the DFTs of the PRACH temporal resources @@ -305,192 +305,188 @@ void rx_prach0(PHY_VARS_eNB *eNB, if (LOG_DEBUGFLAG(PRACH)) { LOG_D(PHY,"rx_prach: Doing FFT for N_RB_UL %d nb_rx:%d Ncp:%d\n",fp->N_RB_UL, nb_rx, Ncp); } + for (aa=0; aaN_RB_UL) { - case 6: - if (prach_fmt == 4) { - dft256(prach2,rxsigF[aa],1); - } else { - dft1536(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft1536(prach2+3072,rxsigF[aa]+3072,1); - } - - break; - - case 15: - if (prach_fmt == 4) { - dft256(prach2,rxsigF[aa],1); - } else { - dft3072(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft3072(prach2+6144,rxsigF[aa]+6144,1); - } - - break; - - case 25: - default: - if (prach_fmt == 4) { - dft1024(prach2,rxsigF[aa],1); - fft_size = 1024; - } else { - dft6144(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft6144(prach2+12288,rxsigF[aa]+12288,1); - - fft_size = 6144; - } - - break; - - case 50: - if (prach_fmt == 4) { - dft2048(prach2,rxsigF[aa],1); - } else { - dft12288(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft12288(prach2+24576,rxsigF[aa]+24576,1); - } - - break; - - case 75: - if (prach_fmt == 4) { - dft3072(prach2,rxsigF[aa],1); - } else { - dft18432(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft18432(prach2+36864,rxsigF[aa]+36864,1); - } - - break; - - case 100: - if (fp->threequarter_fs==0) { - if (prach_fmt == 4) { - dft4096(prach2,rxsigF[aa],1); - } else { - dft24576(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft24576(prach2+49152,rxsigF[aa]+49152,1); - } - } else { - if (prach_fmt == 4) { - dft3072(prach2,rxsigF[aa],1); - } else { - dft18432(prach2,rxsigF[aa],1); - - if (prach_fmt>1) - dft18432(prach2+36864,rxsigF[aa]+36864,1); - } - } - - break; + case 6: + if (prach_fmt == 4) { + dft256(prach2,rxsigF[aa],1); + } else { + dft1536(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft1536(prach2+3072,rxsigF[aa]+3072,1); + } + + break; + + case 15: + if (prach_fmt == 4) { + dft256(prach2,rxsigF[aa],1); + } else { + dft3072(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft3072(prach2+6144,rxsigF[aa]+6144,1); + } + + break; + + case 25: + default: + if (prach_fmt == 4) { + dft1024(prach2,rxsigF[aa],1); + fft_size = 1024; + } else { + dft6144(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft6144(prach2+12288,rxsigF[aa]+12288,1); + + fft_size = 6144; + } + + break; + + case 50: + if (prach_fmt == 4) { + dft2048(prach2,rxsigF[aa],1); + } else { + dft12288(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft12288(prach2+24576,rxsigF[aa]+24576,1); + } + + break; + + case 75: + if (prach_fmt == 4) { + dft3072(prach2,rxsigF[aa],1); + } else { + dft18432(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft18432(prach2+36864,rxsigF[aa]+36864,1); + } + + break; + + case 100: + if (fp->threequarter_fs==0) { + if (prach_fmt == 4) { + dft4096(prach2,rxsigF[aa],1); + } else { + dft24576(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft24576(prach2+49152,rxsigF[aa]+49152,1); + } + } else { + if (prach_fmt == 4) { + dft3072(prach2,rxsigF[aa],1); + } else { + dft18432(prach2,rxsigF[aa],1); + + if (prach_fmt>1) + dft18432(prach2+36864,rxsigF[aa]+36864,1); + } + } + + break; } k = (12*n_ra_prb) - 6*fp->N_RB_UL; - + if (k<0) { - k+=(fp->ofdm_symbol_size); + k+=(fp->ofdm_symbol_size); } - + k*=12; - k+=13; + k+=13; k*=2; int dftsize_x2 = fp->ofdm_symbol_size*24; //LOG_D(PHY,"Shifting prach_rxF from %d to 0\n",k); - if ((k+(839*2)) > dftsize_x2) { // PRACH signal is split around DC - memmove((void*)&rxsigF[aa][dftsize_x2-k],(void*)&rxsigF[aa][0],(k+(839*2)-dftsize_x2)*2); - memmove((void*)&rxsigF[aa][0],(void*)(&rxsigF[aa][k]),(dftsize_x2-k)*2); - } - else // PRACH signal is not split around DC - memmove((void*)&rxsigF[aa][0],(void*)(&rxsigF[aa][k]),839*4); - + if ((k+(839*2)) > dftsize_x2) { // PRACH signal is split around DC + memmove((void *)&rxsigF[aa][dftsize_x2-k],(void *)&rxsigF[aa][0],(k+(839*2)-dftsize_x2)*2); + memmove((void *)&rxsigF[aa][0],(void *)(&rxsigF[aa][k]),(dftsize_x2-k)*2); + } else // PRACH signal is not split around DC + memmove((void *)&rxsigF[aa][0],(void *)(&rxsigF[aa][k]),839*4); } - } - if ((eNB==NULL) && (ru!=NULL) && ru->function == NGFI_RRU_IF4p5) { - + if ((eNB==NULL) && ru->function == NGFI_RRU_IF4p5) { /// **** send_IF4 of rxsigF to RAU **** /// #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) - if (br_flag == 1) send_IF4p5(ru, ru->proc.frame_prach, ru->proc.subframe_prach, IF4p5_PRACH+1+ce_level); - + if (br_flag == 1) send_IF4p5(ru, ru->proc.frame_prach, ru->proc.subframe_prach, IF4p5_PRACH+1+ce_level); else #endif send_IF4p5(ru, ru->proc.frame_prach, ru->proc.subframe_prach, IF4p5_PRACH); - + return; } else if (eNB!=NULL) { - if ( LOG_DEBUGFLAG(PRACH)) { - int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840)); + if ((en > 60)&&(br_flag==1)) LOG_I(PHY,"PRACH (br_flag %d,ce_level %d, n_ra_prb %d, k %d): Frame %d, Subframe %d => %d dB\n",br_flag,ce_level,n_ra_prb,k,eNB->proc.frame_rx,eNB->proc.subframe_rx,en); } } - + // in case of RAU and prach received rx_thread wakes up prach - // here onwards is for eNodeB_3GPP or NGFI_RAU_IF4p5 - preamble_offset_old = 99; - uint8_t update_TA = 4; uint8_t update_TA2 = 1; - switch (eNB->frame_parms.N_RB_DL) { - case 6: - update_TA = 16; - break; - - case 25: - update_TA = 4; - break; - - case 50: - update_TA = 2; - break; - - case 75: - update_TA = 3; - update_TA2 = 2; - case 100: - update_TA = 1; - break; - } - - *max_preamble_energy=0; - for (preamble_index=0 ; preamble_index<64 ; preamble_index++) { - if (LOG_DEBUGFLAG(PRACH)){ - int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + switch (eNB->frame_parms.N_RB_DL) { + case 6: + update_TA = 16; + break; + + case 25: + update_TA = 4; + break; + + case 50: + update_TA = 2; + break; + + case 75: + update_TA = 3; + update_TA2 = 2; + break; + + case 100: + update_TA = 1; + break; + } + + *max_preamble_energy=0; + + for (preamble_index=0 ; preamble_index<64 ; preamble_index++) { + if (LOG_DEBUGFLAG(PRACH)) { + int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840)); + if (en>60) LOG_I(PHY,"frame %d, subframe %d : Trying preamble %d (br_flag %d)\n",ru->proc.frame_prach,subframe,preamble_index,br_flag); } + if (restricted_set == 0) { // This is the relative offset in the root sequence table (5.7.2-4 from 36.211) for the given preamble index preamble_offset = ((NCS==0)? preamble_index : (preamble_index/(N_ZC/NCS))); - + if (preamble_offset != preamble_offset_old) { preamble_offset_old = preamble_offset; new_dft = 1; // This is the \nu corresponding to the preamble index preamble_shift = 0; - } - - else { + } else { preamble_shift -= NCS; - + if (preamble_shift < 0) preamble_shift+=N_ZC; } @@ -519,7 +515,6 @@ void rx_prach0(PHY_VARS_eNB *eNB, } u = prach_root_sequence_map[index]; - uint16_t n_group_ra = 0; if ( (du[u]<(N_ZC/3)) && (du[u]>=NCS) ) { @@ -560,177 +555,184 @@ void rx_prach0(PHY_VARS_eNB *eNB, // Compute DFT of RX signal (conjugate input, results in conjugate output) for each new rootSequenceIndex if (LOG_DEBUGFLAG(PRACH)) { - int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840)); + if (en>60) LOG_I(PHY,"frame %d, subframe %d : preamble index %d: offset %d, preamble shift %d (br_flag %d, en %d)\n", - ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); + ru->proc.frame_prach,subframe,preamble_index,preamble_offset,preamble_shift,br_flag,en); } + log2_ifft_size = 10; fft_size = 6144; if (new_dft == 1) { new_dft = 0; - #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + if (br_flag == 1) { - Xu=(int16_t*)eNB->X_u_br[ce_level][preamble_offset-first_nonzero_root_idx]; - prach_ifft = prach_ifftp[prach_ifft_cnt++]; - if (eNB->prach_vars_br.repetition_number[ce_level]==1) memset(prach_ifft,0,((N_ZC==839)?2048:256)*sizeof(int32_t)); - } - else + Xu=(int16_t *)eNB->X_u_br[ce_level][preamble_offset-first_nonzero_root_idx]; + prach_ifft = prach_ifftp[prach_ifft_cnt++]; + + if (eNB->prach_vars_br.repetition_number[ce_level]==1) memset(prach_ifft,0,((N_ZC==839)?2048:256)*sizeof(int32_t)); + } else #endif - { - Xu=(int16_t*)eNB->X_u[preamble_offset-first_nonzero_root_idx]; - prach_ifft = prach_ifftp[0]; - memset(prach_ifft,0,((N_ZC==839) ? 2048 : 256)*sizeof(int32_t)); - } + { + Xu=(int16_t *)eNB->X_u[preamble_offset-first_nonzero_root_idx]; + prach_ifft = prach_ifftp[0]; + memset(prach_ifft,0,((N_ZC==839) ? 2048 : 256)*sizeof(int32_t)); + } memset(prachF, 0, sizeof(int16_t)*2*1024 ); - if (LOG_DUMPFLAG(PRACH)) { + + if (LOG_DUMPFLAG(PRACH)) { if (prach[0]!= NULL) LOG_M("prach_rx0.m","prach_rx0",prach[0],6144+792,1,1); - LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1); - LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1); - LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1); + + LOG_M("prach_rx1.m","prach_rx1",prach[1],6144+792,1,1); + LOG_M("prach_rxF0.m","prach_rxF0",rxsigF[0],24576,1,1); + LOG_M("prach_rxF1.m","prach_rxF1",rxsigF[1],6144,1,1); } - - for (aa=0;aa>15); - prachF[offset+1] = (int16_t)(((int32_t)Xu[offset]*rxsigF[aa][k+1] - (int32_t)Xu[offset+1]*rxsigF[aa][k])>>15); - k+=2; - if (k==(12*2*fp->ofdm_symbol_size)) - k=0; - } - - // Now do IFFT of size 1024 (N_ZC=839) or 256 (N_ZC=139) - if (N_ZC == 839) { - log2_ifft_size = 10; - idft1024(prachF,prach_ifft_tmp,1); - // compute energy and accumulate over receive antennas and repetitions for BR - for (i=0;i<2048;i++) - prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[i<<1] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10; - } else { - idft256(prachF,prach_ifft_tmp,1); - log2_ifft_size = 8; - // compute energy and accumulate over receive antennas and repetitions for BR - for (i=0;i<256;i++) - prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[(i<<1)] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10; - } + for (aa=0; aa>15); + prachF[offset+1] = (int16_t)(((int32_t)Xu[offset]*rxsigF[aa][k+1] - (int32_t)Xu[offset+1]*rxsigF[aa][k])>>15); + k+=2; + + if (k==(12*2*fp->ofdm_symbol_size)) + k=0; + } + + // Now do IFFT of size 1024 (N_ZC=839) or 256 (N_ZC=139) + if (N_ZC == 839) { + log2_ifft_size = 10; + idft1024(prachF,prach_ifft_tmp,1); + + // compute energy and accumulate over receive antennas and repetitions for BR + for (i=0; i<2048; i++) + prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[i<<1] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10; + } else { + idft256(prachF,prach_ifft_tmp,1); + log2_ifft_size = 8; + + // compute energy and accumulate over receive antennas and repetitions for BR + for (i=0; i<256; i++) + prach_ifft[i] += (prach_ifft_tmp[i<<1]*prach_ifft_tmp[(i<<1)] + prach_ifft_tmp[1+(i<<1)]*prach_ifft_tmp[1+(i<<1)])>>10; + } + + if (LOG_DUMPFLAG(PRACH)) { + if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); - if (LOG_DUMPFLAG(PRACH)) { - if (aa==0) LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); if (aa==1) LOG_M("prach_rxF_comp1.m","prach_rxF_comp1",prachF,1024,1,1); } }// antennas_rx } // new dft - - // check energy in nth time shift, for + + // check energy in nth time shift, for #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) + if ((br_flag==0) || - (eNB->prach_vars_br.repetition_number[ce_level]== - eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) + (eNB->prach_vars_br.repetition_number[ce_level]== + eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[ce_level])) #endif - { - if (LOG_DEBUGFLAG(PRACH)){ - int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); - if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",ru->proc.frame_prach,subframe,br_flag,en); - } - preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<*max_preamble_energy) { - *max_preamble_energy = levdB; - *max_preamble_delay = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2; - *max_preamble = preamble_index; - if (LOG_DEBUGFLAG(PRACH)){ - int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); - if ((en>60) && (br_flag==1)) - LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n", - ru->proc.frame_prach,subframe, - *max_preamble_energy,*max_preamble_delay, - *max_preamble,br_flag,ce_level,levdB,lev); - } - } - } + { + if (LOG_DEBUGFLAG(PRACH)) { + int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840)); + if (en>60) LOG_I(PHY,"frame %d, subframe %d: Checking for peak in time-domain (br_flag %d, en %d)\n",ru->proc.frame_prach,subframe,br_flag,en); } + + preamble_shift2 = ((preamble_shift==0) ? 0 : ((preamble_shift<*max_preamble_energy) { + *max_preamble_energy = levdB; + *max_preamble_delay = ((i*fft_size)>>log2_ifft_size)*update_TA/update_TA2; + *max_preamble = preamble_index; + + if (LOG_DEBUGFLAG(PRACH)) { + int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840)); + + if ((en>60) && (br_flag==1)) + LOG_D(PHY,"frame %d, subframe %d : max_preamble_energy %d, max_preamble_delay %d, max_preamble %d (br_flag %d,ce_level %d, levdB %d, lev %d)\n", + ru->proc.frame_prach,subframe, + *max_preamble_energy,*max_preamble_delay, + *max_preamble,br_flag,ce_level,levdB,lev); + } + } + } + } }// preamble_index if (LOG_DUMPFLAG(PRACH)) { - int en = dB_fixed(signal_energy((int32_t*)&rxsigF[0][0],840)); + int en = dB_fixed(signal_energy((int32_t *)&rxsigF[0][0],840)); + if (en>60) { k = (12*n_ra_prb) - 6*fp->N_RB_UL; - + if (k<0) k+=fp->ofdm_symbol_size; - + k*=12; k+=13; k*=2; - - if (br_flag == 0) { - LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); - LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); - LOG_M("Xu.m","xu",Xu,N_ZC,1,1); - LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1); - } - else { - LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb); - LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1); - LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1); - LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1); - LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1); - exit(-1); - } + if (br_flag == 0) { + LOG_M("rxsigF.m","prach_rxF",&rxsigF[0][0],12288,1,1); + LOG_M("prach_rxF_comp0.m","prach_rxF_comp0",prachF,1024,1,1); + LOG_M("Xu.m","xu",Xu,N_ZC,1,1); + LOG_M("prach_ifft0.m","prach_t0",prach_ifft,1024,1,1); + } else { + LOG_E(PHY,"Dumping prach (br_flag %d), k = %d (n_ra_prb %d)\n",br_flag,k,n_ra_prb); + LOG_M("rxsigF_br.m","prach_rxF_br",&rxsigF[0][0],12288,1,1); + LOG_M("prach_rxF_comp0_br.m","prach_rxF_comp0_br",prachF,1024,1,1); + LOG_M("Xu_br.m","xu_br",Xu,N_ZC,1,1); + LOG_M("prach_ifft0_br.m","prach_t0_br",prach_ifft,1024,1,1); + exit(-1); + } } } /* LOG_DUMPFLAG(PRACH) */ - if (eNB) stop_meas(&eNB->rx_prach); + if (eNB) stop_meas(&eNB->rx_prach); } #if (LTE_RRC_VERSION >= MAKE_VERSION(14, 0, 0)) void rx_prach(PHY_VARS_eNB *eNB, - RU_t *ru, - uint16_t *max_preamble, - uint16_t *max_preamble_energy, - uint16_t *max_preamble_delay, - uint16_t Nf, - uint8_t tdd_mapindex, - uint8_t br_flag) { - + RU_t *ru, + uint16_t *max_preamble, + uint16_t *max_preamble_energy, + uint16_t *max_preamble_delay, + uint16_t Nf, + uint8_t tdd_mapindex, + uint8_t br_flag) { int i; int prach_mask=0; - if (br_flag == 0) { + if (br_flag == 0) { rx_prach0(eNB,ru,max_preamble,max_preamble_energy,max_preamble_delay,Nf,tdd_mapindex,0,0); - } - else { // This is procedure for eMTC, basically handling the repetitions + } else { // This is procedure for eMTC, basically handling the repetitions prach_mask = is_prach_subframe(&eNB->frame_parms,eNB->proc.frame_prach_br,eNB->proc.subframe_prach_br); - for (i=0;i<4;i++) { + + for (i=0; i<4; i++) { if ((eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_CElevel_enable[i]==1) && - ((prach_mask&(1<<(i+1))) > 0)) { // check that prach CE level is active now + ((prach_mask&(1<<(i+1))) > 0)) { // check that prach CE level is active now - // if first reception in group of repetitions store frame for later (in RA-RNTI for Msg2) - if (eNB->prach_vars_br.repetition_number[i]==0) eNB->prach_vars_br.first_frame[i]=eNB->proc.frame_prach_br; + // if first reception in group of repetitions store frame for later (in RA-RNTI for Msg2) + if (eNB->prach_vars_br.repetition_number[i]==0) eNB->prach_vars_br.first_frame[i]=eNB->proc.frame_prach_br; - // increment repetition number - eNB->prach_vars_br.repetition_number[i]++; + // increment repetition number + eNB->prach_vars_br.repetition_number[i]++; + // do basic PRACH reception + rx_prach0(eNB,ru,max_preamble,max_preamble_energy,max_preamble_delay,Nf,tdd_mapindex,1,i); - // do basic PRACH reception - rx_prach0(eNB,ru,max_preamble,max_preamble_energy,max_preamble_delay,Nf,tdd_mapindex,1,i); - - // if last repetition, clear counter - if (eNB->prach_vars_br.repetition_number[i] == eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[i]) { - eNB->prach_vars_br.repetition_number[i]=0; - - } + // if last repetition, clear counter + if (eNB->prach_vars_br.repetition_number[i] == eNB->frame_parms.prach_emtc_config_common.prach_ConfigInfo.prach_numRepetitionPerPreambleAttempt[i]) { + eNB->prach_vars_br.repetition_number[i]=0; + } } } } From 1d86c8a95ab110b62060e48d3904de5a64d2bb80 Mon Sep 17 00:00:00 2001 From: frtabu Date: Tue, 22 Jan 2019 22:12:19 +0100 Subject: [PATCH 113/125] fix compilation bugs after cppcheck fixes --- common/config/config_cmdline.c | 2 +- nfapi/oai_integration/nfapi_vnf.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/common/config/config_cmdline.c b/common/config/config_cmdline.c index aebf7824a4..4d32e9726f 100644 --- a/common/config/config_cmdline.c +++ b/common/config/config_cmdline.c @@ -167,7 +167,7 @@ int config_check_unknown_cmdlineopt(char *prefix) { char testprefix[CONFIG_MAXOPTLENGTH]; int finalcheck = 0; - memset(testpref,0,sizeof(testprefix)); + memset(testprefix,0,sizeof(testprefix)); if (prefix != NULL) { if (strcmp(prefix,CONFIG_CHECKALLSECTIONS) == 0) finalcheck = 1; diff --git a/nfapi/oai_integration/nfapi_vnf.c b/nfapi/oai_integration/nfapi_vnf.c index 7dea74b9b8..3da2059ba7 100644 --- a/nfapi/oai_integration/nfapi_vnf.c +++ b/nfapi/oai_integration/nfapi_vnf.c @@ -270,7 +270,7 @@ int pnf_param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_param_re for(int i = 0; i < resp->pnf_phy.number_of_phys; ++i) { phy_info phy; - memset(phy,0,sizeof(phy)); + memset(&phy,0,sizeof(phy)); phy.index = resp->pnf_phy.phy[i].phy_config_index; printf("[VNF] (PHY:%d) phy_config_idx:%d\n", i, resp->pnf_phy.phy[i].phy_config_index); @@ -288,7 +288,7 @@ int pnf_param_resp_cb(nfapi_vnf_config_t* config, int p5_idx, nfapi_pnf_param_re for(int i = 0; i < resp->pnf_rf.number_of_rfs; ++i) { rf_info rf; - memset(rf,0,sizeof(rf)); + memset(&rf,0,sizeof(rf)); rf.index = resp->pnf_rf.rf[i].rf_config_index; printf("[VNF] (RF:%d) rf_config_idx:%d\n", i, resp->pnf_rf.rf[i].rf_config_index); From 5aeb00d33dab5a857b10d67438b984f72200607a Mon Sep 17 00:00:00 2001 From: frtabu Date: Tue, 22 Jan 2019 23:07:51 +0100 Subject: [PATCH 114/125] fix compilation Pb after rebase --- targets/RT/USER/lte-softmodem.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index 3cca57c4e9..65186fa72c 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -201,8 +201,6 @@ {"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \ {"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \ {"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&DO_FORMS, defintval:0, TYPE_INT8, 0}, \ - {"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ - {"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ {"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ {"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ {"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ From 5e35d909747e31698d1e69b00c6bdd1ec35cb127 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Wed, 23 Jan 2019 16:53:52 +0100 Subject: [PATCH 115/125] CI: adding L2-NFAPI simulator test results to HTML report Signed-off-by: Raphael Defosseux --- ci-scripts/Jenkinsfile-gitlab | 8 +-- ci-scripts/reportTestLocally.sh | 124 ++++++++++++++++++++++++++++++++ ci-scripts/runTestOnVM.sh | 86 ++++++++++++++++++++-- nfapi/open-nFAPI/pnf/src/pnf.c | 5 +- 4 files changed, 212 insertions(+), 11 deletions(-) diff --git a/ci-scripts/Jenkinsfile-gitlab b/ci-scripts/Jenkinsfile-gitlab index b050eff60e..fc0290fc44 100644 --- a/ci-scripts/Jenkinsfile-gitlab +++ b/ci-scripts/Jenkinsfile-gitlab @@ -41,7 +41,7 @@ pipeline { disableConcurrentBuilds() timestamps() gitLabConnection('OAI GitLab') - gitlabBuilds(builds: ["Build eNb-USRP", "Build basic-sim", "Build phy-sim", "Build eNb-ethernet", "Build UE-ethernet", "Analysis with cppcheck", "Test phy-sim", "Test basic-sim", "Test-FDD-Band7", "Test-TDD-Band40", "Test-IF4p5-FDD-Band7", "Test-IF4p5-TDD-Band40"]) + gitlabBuilds(builds: ["Build eNb-USRP", "Build basic-sim", "Build phy-sim", "Build eNb-ethernet", "Build UE-ethernet", "Analysis with cppcheck", "Test phy-sim", "Test basic-sim", "Test L2-sim", "Test-FDD-Band7", "Test-TDD-Band40", "Test-IF4p5-FDD-Band7", "Test-IF4p5-TDD-Band40"]) ansiColor('xterm') } @@ -332,11 +332,11 @@ pipeline { } stage ("Test L2 simulator") { steps { - //gitlabCommitStatus(name: "Test basic-sim") { + gitlabCommitStatus(name: "Test L2-sim") { timeout (time: 30, unit: 'MINUTES') { sh "./ci-scripts/oai-ci-vm-tool test --workspace $WORKSPACE --variant l2-sim --job-name ${JOB_NAME} --build-id ${BUILD_ID}" } - //} + } } } stage ("Build Flexran Controller") { @@ -534,7 +534,7 @@ pipeline { always { script { dir ('archives') { - sh "if [ -d basic_sim/test ] || [ -d phy_sim/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi" + sh "if [ -d basic_sim/test ] || [ -d phy_sim/test ] || [ -d l2_sim/test ]; then zip -r -qq vm_tests_logs.zip */test ; fi" } if(fileExists('archives/vm_tests_logs.zip')) { archiveArtifacts artifacts: 'archives/vm_tests_logs.zip' diff --git a/ci-scripts/reportTestLocally.sh b/ci-scripts/reportTestLocally.sh index 60dcb1e421..004e021de1 100755 --- a/ci-scripts/reportTestLocally.sh +++ b/ci-scripts/reportTestLocally.sh @@ -417,6 +417,130 @@ function report_test { echo " " >> ./test_simulator_results.html fi + ARCHIVES_LOC=archives/l2_sim/test + if [ -d $ARCHIVES_LOC ] + then + echo "

L2-NFAPI Simulator Check

" >> ./test_simulator_results.html + + if [ -f $ARCHIVES_LOC/test_final_status.log ] + then + if [ `grep -c TEST_OK $ARCHIVES_LOC/test_final_status.log` -eq 1 ] + then + echo "
" >> ./test_simulator_results.html + echo " TEST was SUCCESSFUL " >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html + else + echo "
" >> ./test_simulator_results.html + echo " TEST was a FAILURE! " >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html + fi + else + echo "
" >> ./test_simulator_results.html + echo " COULD NOT DETERMINE TEST FINAL STATUS! " >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html + fi + + echo " " >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + + TRANS_MODES=("fdd") + BW_CASES=(05) + for TMODE in ${TRANS_MODES[@]} + do + for BW in ${BW_CASES[@]} + do + ENB_LOG=$ARCHIVES_LOC/${TMODE}_${BW}MHz_enb.log + UE_LOG=`echo $ENB_LOG | sed -e "s#enb#ue#"` + if [ -f $ENB_LOG ] && [ -f $UE_LOG ] + then + NAME_ENB=`echo $ENB_LOG | sed -e "s#$ARCHIVES_LOC/##"` + NAME_UE=`echo $UE_LOG | sed -e "s#$ARCHIVES_LOC/##"` + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + NB_ENB_GOT_SYNC=`egrep -c "got sync" $ENB_LOG` + NB_UE_GOT_SYNC=`egrep -c "got sync" $UE_LOG` + NB_ENB_SYNCED_WITH_UE=`egrep -c "Sending NFAPI_START_RESPONSE" $UE_LOG` + if [ $NB_ENB_GOT_SYNC -eq 1 ] && [ $NB_UE_GOT_SYNC -eq 3 ] && [ $NB_ENB_SYNCED_WITH_UE -eq 1 ] + then + echo " " >> ./test_simulator_results.html + else + echo " " >> ./test_simulator_results.html + fi + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + fi + PING_CASE=$ARCHIVES_LOC/${TMODE}_${BW}MHz_ping_epc.txt + if [ -f $PING_CASE ] + then + echo " " >> ./test_simulator_results.html + NAME=`echo $PING_CASE | sed -e "s#$ARCHIVES_LOC/##"` + echo " " >> ./test_simulator_results.html + CMD=`egrep "COMMAND IS" $PING_CASE | sed -e "s#COMMAND IS: ##"` + echo " " >> ./test_simulator_results.html + FILE_COMPLETE=`egrep -c "ping statistics" $PING_CASE` + if [ $FILE_COMPLETE -eq 0 ] + then + echo " " >> ./test_simulator_results.html + echo " " >> ./test_simulator_results.html + else + NB_TR_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s# packets transmitted.*##"` + NB_RC_PACKETS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*packets transmitted, ##" -e "s# received,.*##"` + if [ $NB_TR_PACKETS -eq $NB_RC_PACKETS ] + then + echo " " >> ./test_simulator_results.html + else + echo " " >> ./test_simulator_results.html + fi + echo " " >> ./test_simulator_results.html + fi + echo " " >> ./test_simulator_results.html + fi + + done + done + + echo "
Log File NameCommandStatusStatistics
$NAME_ENB --- $NAME_UEN/AOKKO
" >> ./test_simulator_results.html
+                    if [ $NB_ENB_GOT_SYNC -eq 1 ]
+                    then
+                        echo "- eNB --> got sync" >> ./test_simulator_results.html
+                    else
+                        echo "- eNB NEVER got sync" >> ./test_simulator_results.html
+                    fi
+                    if [ $NB_UE_GOT_SYNC -eq 3 ]
+                    then
+                        echo "- UE --> got sync" >> ./test_simulator_results.html
+                    else
+                        echo "- UE NEVER got sync" >> ./test_simulator_results.html
+                    fi
+                    if [ $NB_ENB_SYNCED_WITH_UE -eq 1 ]
+                    then
+                        echo "- UE attached to eNB" >> ./test_simulator_results.html
+                    else
+                        echo "- UE NEVER attached to eNB" >> ./test_simulator_results.html
+                    fi
+                    echo "        
$NAME$CMDKON/AOKKO" >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html
+                        STATS=`egrep "packets transmitted" $PING_CASE | sed -e "s#^.*received, ##" -e "s#, time.*##" -e "s# packet loss##"`
+                        echo "Packet Loss : $STATS" >> ./test_simulator_results.html
+                        RTTMIN=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[1] " " $5}'`
+                        echo "RTT Minimal : $RTTMIN" >> ./test_simulator_results.html
+                        RTTAVG=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[2] " " $5}'`
+                        echo "RTT Average : $RTTAVG" >> ./test_simulator_results.html
+                        RTTMAX=`egrep "rtt min" $PING_CASE | awk '{split($4,a,"/"); print a[3] " " $5}'`
+                        echo "RTT Maximal : $RTTMAX" >> ./test_simulator_results.html
+                        echo "            
" >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html + echo "
" >> ./test_simulator_results.html + fi + ARCHIVES_LOC=archives/phy_sim/test if [ -d $ARCHIVES_LOC ] then diff --git a/ci-scripts/runTestOnVM.sh b/ci-scripts/runTestOnVM.sh index 4d87ba5791..7ff04e23f8 100755 --- a/ci-scripts/runTestOnVM.sh +++ b/ci-scripts/runTestOnVM.sh @@ -148,6 +148,15 @@ function ping_ue_ip_addr { rm -f $1 } +function ping_epc_ip_addr { + echo "echo \"COMMAND IS: ping -I oip1 -c 20 $3\" > $4" > $1 + echo "rm -f $4" >> $1 + echo "ping -I oip1 -c 20 $3 | tee -a $4" >> $1 + cat $1 + ssh -o StrictHostKeyChecking=no ubuntu@$2 < $1 + rm -f $1 +} + function check_ping_result { local LOC_PING_FILE=$1 local LOC_NB_PINGS=$2 @@ -157,16 +166,19 @@ function check_ping_result { if [ $FILE_COMPLETE -eq 0 ] then PING_STATUS=-1 + echo "ping file incomplete" else local ALL_PACKET_RECEIVED=`egrep -c "$LOC_NB_PINGS received" $LOC_PING_FILE` if [ $ALL_PACKET_RECEIVED -eq 1 ] then echo "got all ping packets" else + echo "got NOT all ping packets" PING_STATUS=-1 fi fi else + echo "ping file not present" PING_STATUS=-1 fi } @@ -533,8 +545,30 @@ function start_l2_sim_enb { echo "sudo -E daemon --inherit --unsafe --name=enb_daemon --chdir=/home/ubuntu/tmp/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1 ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1 - sleep 10 rm $1 + + local i="0" + echo "egrep -c \"Waiting for PHY_config_req\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1 + while [ $i -lt 10 ] + do + sleep 5 + CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1` + if [ $CONNECTED -ne 0 ] + then + i="100" + else + i=$[$i+1] + fi + done + rm $1 + if [ $i -lt 50 ] + then + ENB_SYNC=0 + echo "L2-SIM eNB is NOT sync'ed: process still alive?" + else + ENB_SYNC=1 + echo "L2-SIM eNB is sync'ed: waiting for UE(s) to connect" + fi } function start_l2_sim_ue { @@ -551,8 +585,31 @@ function start_l2_sim_ue { echo "sudo -E daemon --inherit --unsafe --name=ue_daemon --chdir=/home/ubuntu/tmp-ue/cmake_targets/lte_build_oai/build/ -o /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE ./my-lte-softmodem-run.sh" >> $1 ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1 - sleep 10 rm $1 + + local i="0" + echo "egrep -c \"Received NFAPI_START_REQ\" /home/ubuntu/tmp/cmake_targets/log/$LOC_LOG_FILE" > $1 + while [ $i -lt 10 ] + do + sleep 5 + CONNECTED=`ssh -o StrictHostKeyChecking=no ubuntu@$LOC_VM_IP_ADDR < $1` + if [ $CONNECTED -eq 1 ] + then + i="100" + else + i=$[$i+1] + fi + done + rm $1 + if [ $i -lt 50 ] + then + UE_SYNC=0 + echo "L2-SIM UE is NOT sync'ed w/eNB" + else + UE_SYNC=1 + echo "L2-SIM UE is sync'ed w/eNB" + fi + sleep 10 } function run_test_on_vm { @@ -1197,10 +1254,24 @@ function run_test_on_vm { echo "############################################################" CURRENT_UE_LOG_FILE=fdd_05MHz_ue.log start_l2_sim_ue $VM_CMDS $VM_IP_ADDR $CURRENT_UE_LOG_FILE ue.nfapi.conf + if [ $UE_SYNC -eq 0 ] + then + echo "Problem w/ eNB and UE not syncing" + terminate_enb_ue_basic_sim $VM_CMDS $VM_IP_ADDR + scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_ENB_LOG_FILE $ARCHIVES_LOC + scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/tmp/cmake_targets/log/$CURRENT_UE_LOG_FILE $ARCHIVES_LOC + terminate_epc $EPC_VM_CMDS $EPC_VM_IP_ADDR + echo "TEST_KO" > $ARCHIVES_LOC/test_final_status.log + exit -1 + fi - sleep 30 - echo "ping -I oip1 -c 20 $REAL_EPC_IP_ADDR" > $VM_CMDS - ssh -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR < $VM_CMDS + echo "############################################################" + echo "Pinging the EPC from UE" + echo "############################################################" + PING_LOG_FILE=fdd_05MHz_ping_epc.txt + ping_epc_ip_addr $VM_CMDS $VM_IP_ADDR $REAL_EPC_IP_ADDR $PING_LOG_FILE + scp -o StrictHostKeyChecking=no ubuntu@$VM_IP_ADDR:/home/ubuntu/$PING_LOG_FILE $ARCHIVES_LOC + check_ping_result $ARCHIVES_LOC/$PING_LOG_FILE 20 echo "############################################################" echo "Terminate enb/ue simulators" @@ -1226,6 +1297,11 @@ function run_test_on_vm { ssh-keygen -R $EPC_VM_IP_ADDR fi + echo "############################################################" + echo "Checking run status" + echo "############################################################" + + if [ $PING_STATUS -ne 0 ]; then STATUS=-1; fi if [ $STATUS -eq 0 ] then echo "TEST_OK" > $ARCHIVES_LOC/test_final_status.log diff --git a/nfapi/open-nFAPI/pnf/src/pnf.c b/nfapi/open-nFAPI/pnf/src/pnf.c index 0cacf8c66f..eec9ff80c3 100644 --- a/nfapi/open-nFAPI/pnf/src/pnf.c +++ b/nfapi/open-nFAPI/pnf/src/pnf.c @@ -1237,11 +1237,11 @@ int pnf_connect(pnf_t* pnf) } struct addrinfo *p = servinfo; - int i = 0; int connected = 0; while(p != NULL && connected == 0) { +#ifdef NFAPI_TRACE_ENABLED char* family = "Unknown"; char* address = "Unknown"; char _addr[128]; @@ -1260,7 +1260,8 @@ int pnf_connect(pnf_t* pnf) address = inet_ntoa(addr->sin_addr); } - //NFAPI_TRACE(NFAPI_TRACE_NOTE, "Host address info %d Family:%s Address:%s\n", i++, family, address); + NFAPI_TRACE(NFAPI_TRACE_NOTE, "Host address info %d Family:%s Address:%s\n", i++, family, address); +#endif if (pnf->sctp) { From 8e3638147dbabead3a520a32fb39e7a57b9cd9e8 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Thu, 24 Jan 2019 12:27:18 +0100 Subject: [PATCH 116/125] basic simulator: workaround: skip first simulation's frames Due to some unknown bug in the eNB (or UE, or both), the first frames are not correctly generated (or handled), which leads to a bad behavior of the simulator in some cases (seen with 100 RBs: the UE reads a bad MIB and switches to 25 RBs, which results in a deadlock in the tcp_bridge_oai driver). Let's "fix" this problem by skipping (in the driver) some frames at the beginning of the simulation. --- targets/ARCH/tcp_bridge/tcp_bridge_oai.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/targets/ARCH/tcp_bridge/tcp_bridge_oai.c b/targets/ARCH/tcp_bridge/tcp_bridge_oai.c index b0f131de91..a7bb8c00bf 100644 --- a/targets/ARCH/tcp_bridge/tcp_bridge_oai.c +++ b/targets/ARCH/tcp_bridge/tcp_bridge_oai.c @@ -354,6 +354,29 @@ int tcp_bridge_ue_first_read(openair0_device *device, openair0_timestamp *timest abort(); } + /* Due to some unknown bug in the eNB (or UE, or both), the first frames + * are not correctly generated (or handled), which leads to a bad behavior + * of the simulator in some cases (seen with 100 RBs: the UE reads a bad + * MIB and switches to 25 RBs, which results in a deadlock in this driver). + * Let's skip 10 frames to avoid this issue. + */ + for (int i = 0; i < 10 * 10; i++) { + memset(b, 0, t->samples_per_subframe * 4); + n = fullwrite(t->sock, b, t->samples_per_subframe * 4); + + if (n != t->samples_per_subframe * 4) { + printf("tcp_bridge: write error ret %d error %s\n", n, strerror(errno)); + abort(); + } + + n = fullread(t->sock, b, t->samples_per_subframe * 4); + + if (n != t->samples_per_subframe * 4) { + printf("tcp_bridge: read error ret %d error %s\n", n, strerror(errno)); + abort(); + } + } + device->trx_read_func = tcp_bridge_read_ue; return tcp_bridge_read_ue(device, timestamp, buff, nsamps, cc); } From bb4a1f9a75ff3452c01a0e46a409d5ad64f85dac Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Thu, 24 Jan 2019 16:58:14 +0100 Subject: [PATCH 117/125] Manual merge conflict resolution was incorrect. Signed-off-by: Raphael Defosseux --- targets/RT/USER/lte-softmodem.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index eb02b10f37..6b961a7b19 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -201,8 +201,6 @@ {"C" , CONFIG_HLP_DLF, 0, uptr:&(downlink_frequency[0][0]), defuintval:2680000000, TYPE_UINT, 0}, \ {"a" , CONFIG_HLP_CHOFF, 0, iptr:&CHAIN_OFFSET, defintval:0, TYPE_INT, 0}, \ {"d" , CONFIG_HLP_SOFTS, PARAMFLAG_BOOL, uptr:(uint32_t *)&DO_FORMS, defintval:0, TYPE_INT8, 0}, \ - {"W" , CONFIG_HLP_L2MONW, 0, strptr:(char **)&in_ip, defstrval:"127.0.0.1", TYPE_STRING, sizeof(in_ip)}, \ - {"P" , CONFIG_HLP_L2MONP, 0, strptr:(char **)&in_path, defstrval:"/tmp/oai_opt.pcap", TYPE_STRING, sizeof(in_path)}, \ {"q" , CONFIG_HLP_STMON, PARAMFLAG_BOOL, iptr:&opp_enabled, defintval:0, TYPE_INT, 0}, \ {"S" , CONFIG_HLP_MSLOTS, PARAMFLAG_BOOL, u8ptr:&exit_missed_slots, defintval:1, TYPE_UINT8, 0}, \ {"numerology" , CONFIG_HLP_NUMEROLOGY, PARAMFLAG_BOOL, iptr:&NUMEROLOGY, defintval:0, TYPE_INT, 0}, \ From 2d7c9734fd30f9ea96e2c0a5bb15486e4362e168 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Thu, 24 Jan 2019 19:57:49 +0100 Subject: [PATCH 118/125] Fixing a few warnings (flexran) Signed-off-by: Raphael Defosseux --- openair2/ENB_APP/flexran_agent_ran_api.c | 6 +++++- targets/RT/USER/lte-softmodem.h | 4 ++-- targets/RT/USER/lte-ue.c | 15 ++++++++++----- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c index 20ab7cda50..909f45168a 100644 --- a/openair2/ENB_APP/flexran_agent_ran_api.c +++ b/openair2/ENB_APP/flexran_agent_ran_api.c @@ -375,14 +375,16 @@ void flexran_update_TA(mid_t mod_id, mid_t ue_id, uint8_t cc_id) ue_sched_ctl->ta_timer--; ue_sched_ctl->ta_update = 0; // don't trigger a timing advance command } -*/ #warning "Implement flexran_update_TA() in RAN API" +*/ } /* TODO needs to be revised, looks suspicious: why do we need UE stats? */ int flexran_get_MAC_CE_bitmap_TA(mid_t mod_id, mid_t ue_id, uint8_t cc_id) { +/* #warning "Implement flexran_get_MAC_CE_bitmap_TA() in RAN API" +*/ if (!phy_is_present(mod_id, cc_id)) return 0; /* UE_stats can not be null, they are an array in RC @@ -476,7 +478,9 @@ int flexran_get_harq(mid_t mod_id, /* *status = 0; */ /* } */ /*return *round;*/ +/* #warning "Implement flexran_get_harq() in RAN API" +*/ return 0; } diff --git a/targets/RT/USER/lte-softmodem.h b/targets/RT/USER/lte-softmodem.h index 6b961a7b19..85ee4765f0 100644 --- a/targets/RT/USER/lte-softmodem.h +++ b/targets/RT/USER/lte-softmodem.h @@ -137,7 +137,7 @@ #define CMDLINE_UEPARAMS_DESC { \ {"siml1", CONFIG_HLP_SIML1, PARAMFLAG_BOOL, iptr:&simL1flag, defintval:0, TYPE_INT, 0}, \ - {"U", CONFIG_HLP_NUMUE, 0, u8ptr:&NB_UE_INST, defuintval:1, TYPE_UINT, 0}, \ + {"U", CONFIG_HLP_NUMUE, 0, u16ptr:&NB_UE_INST, defuintval:1, TYPE_UINT16, 0}, \ {"ue-rxgain", CONFIG_HLP_UERXG, 0, dblptr:&(rx_gain[0][0]), defdblval:130, TYPE_DOUBLE, 0}, \ {"ue-rxgain-off", CONFIG_HLP_UERXGOFF, 0, dblptr:&rx_gain_off, defdblval:0, TYPE_DOUBLE, 0}, \ {"ue-txgain", CONFIG_HLP_UETXG, 0, dblptr:&(tx_gain[0][0]), defdblval:0, TYPE_DOUBLE, 0}, \ @@ -147,7 +147,7 @@ {"ue-max-power", NULL, 0, iptr:&(tx_max_power[0]), defintval:23, TYPE_INT, 0}, \ {"emul-iface", CONFIG_HLP_EMULIFACE, 0, strptr:&emul_iface, defstrval:"lo", TYPE_STRING, 100}, \ {"L2-emul", NULL, 0, u8ptr:&nfapi_mode, defuintval:3, TYPE_UINT8, 0}, \ - {"num-ues", NULL, 0, u8ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT8, 0}, \ + {"num-ues", NULL, 0, u16ptr:&(NB_UE_INST), defuintval:1, TYPE_UINT16, 0}, \ {"nums_ue_thread", NULL, 0, u16ptr:&(NB_THREAD_INST), defuintval:1, TYPE_UINT16, 0}, \ {"r" , CONFIG_HLP_PRB, 0, u8ptr:&(frame_parms[0]->N_RB_DL), defintval:25, TYPE_UINT8, 0}, \ {"dlsch-demod-shift", CONFIG_HLP_DLSHIFT, 0, iptr:(int32_t *)&dlsch_demod_shift, defintval:0, TYPE_INT, 0}, \ diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 31857026ee..482533c829 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -978,7 +978,7 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { uint16_t ue_index = 0; uint16_t ue_num = NB_UE_INST/NB_THREAD_INST+((NB_UE_INST%NB_THREAD_INST > ue_thread_id) ? 1 :0); module_id_t ue_Mod_id; - PHY_VARS_UE *UE; //= rtd->UE; + PHY_VARS_UE *UE = NULL; int ret; uint8_t end_flag; proc = &PHY_vars_UE_g[0][0]->proc.proc_rxtx[0]; @@ -1038,10 +1038,15 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { proc->frame_tx = proc->frame_rx + (proc->subframe_rx>(9-sf_ahead)?1:0); //oai_subframe_ind(proc->frame_rx, proc->subframe_rx); - if(UE->frame_parms.frame_type == FDD){ - oai_subframe_ind(proc->frame_rx, proc->subframe_rx); - }else{ - oai_subframe_ind(proc->frame_tx,proc->subframe_tx); + if (UE != NULL) { + if (UE->frame_parms.frame_type == FDD) { + oai_subframe_ind(proc->frame_rx, proc->subframe_rx); + } else { + oai_subframe_ind(proc->frame_tx, proc->subframe_tx); + } + } else { + // Default will be FDD + oai_subframe_ind(proc->frame_rx, proc->subframe_rx); } //Guessing that the next 4 lines are not needed for the phy_stub mode. From f031fda986bbaa5f5f2c8bc561058da304a2143b Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Fri, 25 Jan 2019 10:07:50 +0100 Subject: [PATCH 119/125] CI: hotfix on the CentOS build on OSA bench Signed-off-by: Raphael Defosseux --- cmake_targets/tools/build_helper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake_targets/tools/build_helper b/cmake_targets/tools/build_helper index 18f59c8653..acfb75b1a8 100755 --- a/cmake_targets/tools/build_helper +++ b/cmake_targets/tools/build_helper @@ -32,8 +32,8 @@ OS_DISTRO=$(grep "^ID=" /etc/os-release | sed "s/ID=//" | sed "s/\"//g") OS_RELEASE=$(grep "^VERSION_ID=" /etc/os-release | sed "s/VERSION_ID=//" | sed "s/\"//g") case "$OS_DISTRO" in fedora) OS_BASEDISTRO="fedora"; INSTALLER="dnf"; CMAKE="cmake" ;; - rhel) OS_BASEDISTRO="fedora"; INSTALLER="yum"; CMAKE="cmake3" ;; - centos) OS_BASEDISTRO="fedora"; INSTALLER="yum"; CMAKE="cmake3" ;; + rhel) OS_BASEDISTRO="fedora"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;; + centos) OS_BASEDISTRO="fedora"; INSTALLER="yum --skip-broken"; CMAKE="cmake3" ;; debian) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;; ubuntu) OS_BASEDISTRO="debian"; INSTALLER="apt-get"; CMAKE="cmake" ;; esac From 8c388b7c46914ce80de2cd88e8718627f6c21a74 Mon Sep 17 00:00:00 2001 From: Cedric Roux Date: Fri, 25 Jan 2019 10:53:32 +0100 Subject: [PATCH 120/125] documentation: describe UE's NAS --- doc/FEATURE_SET.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/doc/FEATURE_SET.md b/doc/FEATURE_SET.md index 103f132728..4309d50937 100644 --- a/doc/FEATURE_SET.md +++ b/doc/FEATURE_SET.md @@ -169,3 +169,10 @@ The RRC layer is based on **3GPP 36.331** v14.3.0 and implements the following f - System Information decoding - RRC connection establishment + +## LTE UE NAS Layer ## + +The NAS layer is based on **3GPP 24.301** and implements the following functions: + +- EMM attach/detach, authentication, tracking area update, and more +- ESM default/dedicated bearer, PDN connectivity, and more From c1ed6685ea9612160ba144312924b9a5924ab8b1 Mon Sep 17 00:00:00 2001 From: Florian Kaltenberger Date: Fri, 25 Jan 2019 15:01:08 +0100 Subject: [PATCH 121/125] update openair1/README.txt --- openair1/README.TXT | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/openair1/README.TXT b/openair1/README.TXT index 23c86e888e..69912b4ecf 100644 --- a/openair1/README.TXT +++ b/openair1/README.TXT @@ -1,15 +1,20 @@ -This folder contains the software for the device driver of CBMIMO1 and the physical layer signal processing. +This folder contains the software for layer 1 of the OpenAirInterface eNB and UE as well as the unitary simulators |-- PHY // contains all signal processing related to physical layer (used in real-time AND simulation) -General remarks: every directory contains at least defs.h (for declaration of structure and functions), vars.h (for definitions of variables), and extern.h (variables are defined only once in cbmimo1_device.c (for real-time HW operation) or a top-level simulation (in SIMULATION/xxx), if variables are needed in another file, use extern.h) +General remarks: every directory contains at least defs.h (for declaration of structure and functions), vars.h (for definitions of variables), and extern.h (variables are defined only once in xxx-softmodem.c (for real-time HW operation) or a top-level simulation (in SIMULATION/xxx), if variables are needed in another file, use extern.h) | |-- CODING // turbo and convolutional (de-)coders, rate-matching, crc generation (implementation of 36-212) | | `-- TESTBENCH // This contains unitary testbenches for the different channel coders/decoders | |-- INIT // variables defined in vars.h are initialzed here (memory allocation) | |-- LTE_ESTIMATION // estimation for LTE | |-- LTE_REFSIG // reference signals for LTE (sync and pilot sequences) reference signals from 36-211 +| |-- NR_REFSIG // reference signals for NR (sync and pilot sequences) reference signals from 38-211 | |-- LTE_TRANSPORT // these are the top level routines for different transport and physical channels (for example DL-SCH, PSS) implements a subset of 36-211,36-212 +| |-- LTE_UE_TRANSPORT // these are the top level routines for different transport and physical channels (for example DL-SCH, PSS) implements a subset of 36-211,36-212 +| |-- NR_TRANSPORT // these are the top level routines for different transport and physical channels (for example DL-SCH, PSS) implements a subset of 38-211,38-212 +| |-- NR_UE_TRANSPORT // these are the top level routines for different transport and physical channels (for example DL-SCH, PSS) implements a subset of 38-211,38-212 +| |-- NBIoT_TRANSPORT // these are the top level routines for different transport and physical channels for NB-IoT | |-- MODULATION // modulation and demodulation includes FFT/SC-FDMA front-end processing from 36-211 | |-- TOOLS // tools like (I)FFT, vector operations, matrix multiplication, etc. | | `-- FFTTEST // unitary testbench for FFT routines @@ -22,20 +27,25 @@ General remarks: every directory contains at least defs.h (for declaration of st | |-- spec_defs_top.h | |-- types.h | `-- vars.h -|-- SCHED // schedules the different PHY functions according to the nodes role +|-- SCHED // schedules the different LTE eNB functions | |-- defs.h | |-- extern.h -| |-- phy_procedures_emos.c // non-LTE PHY procedures for EMOS -| |-- phy_procedures_emos.h | |-- phy_procedures_lte_eNb.c // LTE PHY procedures for eNB (from 36-213) -| |-- phy_procedures_lte_ue.c // LTE PHY procedures for UE (from 36-213) | |-- phy_procedures_lte_common.c // LTE PHY procedures common for UE and eNB (from 36-213) +| |-- prach_procedures.c //LTE PRACH procedures (from 36-213) +| |-- ru_procedures.c //RU procedures +| |-- fapi_l1.c //L1 side of the FAPI interface | |-- phy_mac_stub.c //MAC stub that generates channels when used in phy-test-mode +| |-- rt_compat.h +| `-- vars.h +|-- SCHED_UE // schedules the different LTE UE functions +| |-- phy_procedures_lte_ue.c // LTE PHY procedures for UE (from 36-213) | |-- pucch_pc.c // power control for PUCCH | |-- pusch_pc.c // power control for PUSCH | |-- srs_pc.c // power control for SRS -| |-- rt_compat.h -| `-- vars.h +|-- SCHED_NB_IOT // same as above for NB-IOT +|-- SCHED_NR // same as above for NR gNB +|-- SCHED_NR_UE // same as above for NR UE |-- SIMULATION // contains simulation routines to test PHY | |-- LTE_PHY // LTE simulation testbenches for unitary simulation of transport/physical channels | | |-- pbchsim.c // PBCH simulation testbench @@ -43,7 +53,7 @@ General remarks: every directory contains at least defs.h (for declaration of st | | |-- dlsim.c // PDSCH simulation testbench | | |-- ulsim.c // PUSCH simulation testbench | | |-- pucchsim.c // PUCCH simulation testbench -| |-- RF +| |-- RF // RF simulation tools | |-- ETH_TRANSPORT | `-- TOOLS From f591427e6e86bb06f59910f60c28f4a27a670d80 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Fri, 25 Jan 2019 16:06:05 +0100 Subject: [PATCH 122/125] Documentation update for master release Signed-off-by: Raphael Defosseux --- README.txt | 37 ++++++++++++++++++++-------- doc/FEATURE_SET.md | 15 ++++++++++- doc/oai_lte_enb_func_split_arch.png | Bin 0 -> 61902 bytes 3 files changed, 41 insertions(+), 11 deletions(-) create mode 100644 doc/oai_lte_enb_func_split_arch.png diff --git a/README.txt b/README.txt index edd233830f..aec938c0d3 100644 --- a/README.txt +++ b/README.txt @@ -9,26 +9,36 @@ Please see NOTICE.txt for third party software that is included in the sources. The OpenAirInterface (OAI) software is composed of the following parts: openairinterface5g -├── cmake_targets: build utilities to compile (simulation, emulation and real-time platforms), and generated build files -├── common : some common OAI utilities, other tools can be found at openair2/UTILS +├── ci-scripts: Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI. +├── cmake_targets: Build utilities to compile (simulation, emulation and real-time platforms), and generated build files +├── common : Some common OAI utilities, other tools can be found at openair2/UTILS +├── doc : Contains an up-to-date feature set list ├── LICENSE -├── maketags : script to generate emacs tags -├── openair1 : 3GPP LTE Rel-10 PHY layer + PHY RF simulation and a subset of Rel 12 Features. -├── openair2 :3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation. +├── maketags : Script to generate emacs tags +├── nfapi : Contains the NFAPI code. A local Readme file provides more details. +├── openair1 : 3GPP LTE Rel-10/12 PHY layer + PHY RF simulation. A local Readme file provides more details. +├── openair2 : 3GPP LTE Rel-10 RLC/MAC/PDCP/RRC/X2AP implementation. + ├── COMMON + ├── DOCS + ├── ENB_APP ├── LAYER2/RLC/ with the following subdirectories: UM_v9.3.0, TM_v9.3.0, and AM_v9.3.0. - ├── LAYER2/PDCP/PDCP_v10.1.0. - ├── RRC/LITE + ├── LAYER2/PDCP/PDCP_v10.1.0. + ├── NETWORK_DRIVER ├── PHY_INTERFACE + ├── RRC/LITE + ├── UTIL ├── X2AP - ├── ENB_APP ├── openair3: 3GPP LTE Rel10 for S1AP, NAS GTPV1-U for both ENB and UE. + ├── COMMON + ├── DOCS ├── GTPV1-U - ├── NAS + ├── NAS ├── S1AP ├── SCTP ├── SECU ├── UDP -└── targets: top level wrapper for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW. + ├── UTILS +└── targets: Top-level wrappers for unitary simulation for PHY channels, system-level emulation (eNB-UE with and without S1), and realtime eNB and UE and RRH GW. RELEASE NOTES: @@ -44,3 +54,10 @@ v0.6 -> RRH functionality, UE greatly improved, better TDD support, a lot of bugs fixed. WARNING: oaisim in PHY abstraction mode does not work, you need to use v0.5.2 for that. v0.6.1 -> Mostly bugfixes. This is the last version without NFAPI. +v1.0.0 -> January 2019. This version first implements the architectural split described in doc/oai_lte_enb_func_split_arch.png picture. + Only FAPI, nFAPI and IF4.5 interfaces are implemented. + Repository tree structure prepares future integrations of features such as LTE-M, nbIOT or 5G-NR. + Preliminary X2 support has been implemented. + S1-flex has been introduced. + New tools: config library, telnet server, ... + A lot of bugfixes and a proper automated Continuous Integration process validates contributions. diff --git a/doc/FEATURE_SET.md b/doc/FEATURE_SET.md index 4309d50937..fef47d9c27 100644 --- a/doc/FEATURE_SET.md +++ b/doc/FEATURE_SET.md @@ -8,7 +8,8 @@ 5. [eNB RRC Layer](#enb-rrc-layer) 6. [eNB X2AP](#enb-x2ap) 7. [eNB Advanced Features](#enb-advanced-features) -2. [OpenAirInterface UE Feature Set](#openairinterface-ue-feature-set) +2. [OpenAirInterface Functional Split](#openairinterface-functional-split) +3. [OpenAirInterface UE Feature Set](#openairinterface-ue-feature-set) 1. [LTE UE PHY Layer](#lte-ue-phy-layer) 2. [LTE UE MAC Layer](#lte-ue-mac-layer) 3. [LTE UE RLC Layer](#lte-ue-rlc-layer) @@ -128,6 +129,18 @@ The X2AP layer is based on **3GPP 36.423** v14.6.0 and implements the following **To be completed** +# OpenAirInterface Functional Split # + +- RCC: Radio-Cloud Center +- RAU: Radio-Access Unit +- RRU: Remote Radio-Unit + +![Functional Split Architecture](./oai_lte_enb_func_split_arch.png) + +- IF4.5 / IF5 : similar to IEEE P1914.1 +- FAPI (IF2) : specified by Small Cell Forum (open-nFAPI implementation) +- IF1 : F1 in 3GPP Release 15 (not implemented yet) + # OpenAirInterface UE Feature Set # ## LTE UE PHY Layer ## diff --git a/doc/oai_lte_enb_func_split_arch.png b/doc/oai_lte_enb_func_split_arch.png new file mode 100644 index 0000000000000000000000000000000000000000..1e8a55924ccd6101319369567479230dad1c8d24 GIT binary patch literal 61902 zcmc$_XIN8P*Df3jMp1%DQy`$AfFPiB5&=W+y;qSMdhbmT5D*lRPUu|$=^YfLO9`O# zUPJGl@GWq=ANTvb?{m&~ew@Q~t;CX1jW0_;Xj!n(7a2 z4sDN087Ji~o>AV+)4HwWh`cQo2h`9Ks(1d?RbW8Be(tt^L0tI##rxAG@Yz^@{S-nd zh<<+twZN?9{{C`z>HqFcCJ~R+zFc|C>0^U=H*eqb#PQQuq+~#+j6^_ZXs}m)xPi-L zPjb;TaE1SIP1_0@w;O6kS}vGZ*e@)X+q+CIn5Un88tERi9gGYiHOxN0VY;y6dK3f& z1uoPFQp0Iw^~KG4H1H=wRmnxO=TDqe9<;`E587bbXw`MfN7@KMpl64lCy7BI4JvE7 zZ>j&!US8>!8nhM90L?|pe-boqP8T$$`{Qb!_3w;qFMTu$O!$2GXY-Oc`&0qUtdNPE zrA^`dhGxS!Qf4R&es(=%X>0me*f;B!3j9fl6JW&iCpLU6{AJ|`>B4F;z-QJ;ZsdZz zRRS$1v!@j5bxq*g>3{Z^Gxc&G#~z+9-93Cr{J9^Y>s~3eub`U!)Zl*Z?LNoD==a zr6r?Cfw8m)SKIxvnF6eu;oN?uh7G_{G^f}1Dia&nJ0+h@+VchH+Nac)+ClV63Nn&p zLN_z>-nR{WgGwa7q|qTHh<}ys*&w>TP@|7r{w^^@C!n}7xzww!qfUXMWlpL5{P;4+ zo8n7B%{5x{PyIn5?bp^HqjEp|-V7F=fVtED-aHl6EpX9)xr6=r{^C4eR)*HjGZ;xS zjP5APh7u8yD2q14?)J{blI6%NRe3mV$A=#hv+q;_A6iV?%2q+@MjEQlZ69vYXF!0wIG~p=TilI zSE2L({R?aW>p__?Hi&}Pu`y~A$nX8rlP0-N`b=?+&fEc3uLl|ciy7K|F;?-@Wo zGJMjw&SJD6khhdRXO}A`>1uC+G8^VYCokq80zOE`O>ch&cK`W-%%GkJ-5p>k&J6iM z-<(4@5XV3hbVggD0g#}>wd~_QYS?tnLn4nskxEDq*hJ^Y#mZ?XV-I z+p}Hqm86BA#?Pk6Im%ZPMHk^uO`|%K1dR9(BP0mkXZQ-ZTiG-#W-q7cC=oFvg&KM# z<2o*kam`J% zrbZ7qs&3T7F)t;(gadY5KKxv>Bzn0E3Ce8J5!bHN7E3j97t-8Yzu|}c;X{|@k>x!^ z$sb=kQpj(b^`)?WGmwV_^v>lX@5uA#IA20zXs#62PF3&N!<9co2-SyYw|{Z-^Dz1{ zbJa>| zZ##a&?mylxz!y@xp~AjQF{kz%-wK`s`uw1~0q=?mXjyDAiJl=u*W^L6O{0CKk+m)Z z^SkSHc>wO+e3o)Dywm{&#WW;xE>8-w5)Oz9O2E}d5NNTZz5ZY?#${bW{UOmUR?ALP zf~(KkC$+_iL8VE9z%J8(J#?N;GEq~IdElpw*(BIQGlu79Uh+7D)55nS12z}B$qFnQ zMx-JVMr`C>mDP&M9-l~WTzPkUn9*3iSxo1!J7uwkn#enn=E$Gu9}ktA>(Cp22pOJ&j&7-od20Pe2Iu+_a-8g=>LZt;7@G-jd%-aN$1_Dy4 zFIR>E%T@SWkk1+Ac*83L-V4O^`rup_k~SdOCg@h^HV0k3$%G<$52MEo`h|qO7(I=e zD)E8lvsCPBqoW=8S)Sgoe??4AQvGfjQ>99YR`T*|_`|{rM~mDSo?nl}16@c-4;N4X z<6L*@m&^I&>wD4LT@VTenS>0K>RDzmWPL%P4$1y$lB4~D;)Q0n{8;OjwlIGtq z!AxBPb=&qeJ_h9y05+VbR7Rwy+kLXAxVSbEdQE55TF(2YM3N{TA8pP>(0woj7vzmM z@XGrqWau*`H@ybS+3#ik_t~ZF~FeYHi%}Mr<4qPJ`Q96+Mwz`AgA9&Nvyj{K|fHgmX*DWZv zg}Ji&;2xp*$`%eM`)Ag`C_MW9<*&^SI;+R0pkk4Wyr%0<wF{qCQbBM~i+mVmw=(EosNkgQ{S@->P(~WZL9bNU!zv@7tvy@Iq_6ve5`C?H zw{JdewZdoHxtcILLE1;R?(MScUJAdK!}|d`d$H2}uMwP0y9Y5z3$jH$D^nN)D_;P; zzXTShj_&gfKHXt}5<#=vTV)7HGW<~`N{Whvy>lp=PT%!B1~L_*loZMQWJ1WvLp)bc zj^K#PlS%Xsb*HQa*n3KquOo+;(v{@8!DpTA>*M9e05ZR3UxWZ(_yXyoAmXn^G*sCqGfOo)Jj%Evz@GtWrXW2SneAgl z#(-;ax#^!tZq(^GK!W-{#q5zXnAkD%78d)jE}u#=a3A7tujGl?sQ7;L73eNTt=8-l z;g(cI^NoF0y9n)zak1NFF;A4pa2*K&N;thH!{?%>f zRYIUR)PUr4i3182j!vjtrC=cA4CeF?9P`-LAgOzu;a-f0?|;{Z_^P(sRYlzoJ41|% zU}3(n){ekytSnD;J)hg<_WT^-)4@y)oeFuWY(>zotx0T?an#){YQe59>;9*g;(>)v z%IxL)DYsjCEW#4?`G~_Lm3YH2pBg-7@OSkRbPq5L~CU+zOBC zo(B;?ePw?&L~pjC-DEi$jwvOeF%c@lO0}1YuH{Ver#{l#wHSsH*GS4oh&nyW@IBid z06r8up6}miqH0l@g_!6*gb`q23n-D^P{I0Jd$lq|SQQ=hvZgdmuwb7Ep56N%1VKit zV5h;s0%EIwnMBW8ZidiWuAIiAV`VymIh%s0l_Hd(2Z4U?xeP9y#jU;s!R;P8$D`*8 z>y$jn#xE4WF^#9LCH8W!oVq{hp|XdQz!3rJL0qoI7!l$hJJjD1J$Ta5WTta+T@bJW zI>{I*ssG53n|?DuWjbj(e_sw9X7Vt&4lZN6PX3r{MyI}7E zuC1`k%F>BPWYu1y1`oB$uEK;p!SBXxw)8;1x<|zDFw>Nq-rYtHDE@|}tIa<%sZKx( z>)=OG8g!PM7Zcw6y#WqH_)1*(){LfHYZA&4s}o)|L!*cS`yqOx;TR+3m7Dk8cPRa= ziAF6+5=J3=!XQDlT)l#`vr5c6^UWB)!L{C?*wLXnu?9pKf3YRFQHIQRgX5Z2n2#@Y zkS-)Bva{f9HE4zb@Y9e;(xhH9&H-J8xic#e8|?2Gro7dkf-qzIKZf|eUUq&CW~({Kh&+~n~=(c2XXS9^%ntL9(z*=-1wf(sw2o(pfg_qGgaa{ z)dn^~7dnk6i4#($&g&#fQhAiT+zpWSe3TlXOU`mjnR6hLaXnNCf=kD$* z?!xG)SGcZ2aP!4xljxU+qOL?m$j69u)snkuf3}ws%1@3yjQ7gh*Agp}J$WTNRuF#G%;nH-tK}T)W&s9!^h2*`^fd2dtdqr-M*FNZI z_8%MkP;GZ?>m~4e5yH_qFsG ztP~dej>#y?dubFtM3IRlMsm|TQ)H5?(`8(IhbVk(Y5+NpDn6Iu*w}iSe*}_WzTWF9 zU56LVO;2X>WBY4ZqSgJ8JCg>@Ps!B3Z`#c86bqbuq(2+4dw7_nAZ24ssv5zqhSWYu(CNDJd!LJ@}q<cr~X_oB|)CTR_m61+eTo1m3==;_WbCU zNw}6iM_$@TS=ggIty_I_cNbYF?&L`8%g2iwcq%6A#6hK%RC$6+I<6IGxz=5^>n;u^ zk)`S~&*(1GR6L2WV9E8`duRj?OD|J>^<M}#?9kSuj}oL-6aaSD)#(hf zGcKR{bn;c>5$kaKmKu7#HP_BdcrlaI{iRLELGHfOa+Vz@2|J&iaNmhtz zR|4;Jz4>$bsmtC>CY+$lSEX>rQe{ReAg4^WVc)IPaef3^M}!0?65wmHD_?M+;E5^? z+Fz{i(#BD;#oQQ*^%E|@W39`U%g6hsugOW@ybJ*3`G`x&sT9pOnSVtI9d7!1x1T-b z2>pc!WjKXQP)%{^l#wYpET}EYz!^dK7a3hdR+T~4 zpc5|F12ef`JH?y>*eqLPQwK`5cyS;>Vzu$V&9}(o@cr{j=F>ZW#+}MQxat#IIg_l9 z?zsnKip)WZFnSIA%~-{IE7YZ$Ww$H_?sm>R8TaaP6m^?wZvv5PPC$Q;31vP_XgMVM zLpc$h!c(-cac!1;BbyY1l2wsIeYHBY_-)Ry<8P^fj>;^lT&JG++9PEjT(=hybWTe$ zyhl1xs-wH48ag$C1BR5twmTo*!0Ct3m%3_%gGrcz`b8y?sf!a`H_rl+Dtmt5&b@{o zc8k$rpAr`*TC*;GAz>#6UA#<-vxb%)slcTma%?e^!6~coN8Txma6R>~;lx+3tF53Q zVMTQrD1=hT@k%>&Dzp8_a;XZrOQcV>X z&j;a{UduQ2`n8>un6lE<)Te1V49QPx=TCKOwQiS(7k+=qQp^ArcBb=qjCJaZM6oQp z@{MvEUF6-HYFFCWw6ENG&n7gY+jBh;dzbqDi*P5TnI%Lv1=g$&d)F7h!Jx<4f+K{i4ycJ?yOX5yUa677bHLSs}aY($< z(X*Cd@veX5hLhMQZOQGoUN^N}9-zBCNyd|vz9N$QuhHGqc4I=DnJccZl%ZLb#pvzc z5om<_zQDY3!+62AGx$~A#i}UE#9zhj_WI|Kr_ZmFiH*AIN`Bm3aC*n-5>-04yMfD4 zZK`3LTROY=@Q#z*<)b@9$03x*MIU-eK>63~m!>>Ki9v|WAEgJqGQmdsU0$?9g~FF< z1G=hW%5``M%KTfow;;Hr#PLE!oE$+{D}ujUedF0(F4_or7%`Fbn9xbBdPk+`Qenk+ zgowDY;-s;5Yq3l1)S!67Axd&KxNJceH7Iq7mwR7}Z2Qg~f#_)%>)RuVRHgixS zZOkEjE%cF&Qb^)4?hnp6EECaY?4Z{&hxPMfg1J=7a)d5ztCE%!yYu6tOu%UJ&UM91 zZpgLeamzx4G&~fwh9>qEMN|4tPRDUIDaLIj{-{kC$guJOQvNPd=O63T@`i#c?Zp3O z$HrWVLc&1K!bzH>YXFr1;t47$g3azTKFUlFrc;~|8X=?Af9hKgap_p*m-Fw_n#0`u z70DY}GTe;Z87@v=vvN(OteTZzU}R+LTSG34=F2H>S-mGiHhDyG%q!-X_I>;muhJhg z`ar47mU)Ny;hS$z>#pn6eeW`$>{cUwN(#0FHFbO^H86QG0K6W`6l)o4?sm!c7Lx3De_ zMq*IzDg$Mc>b>xV@#1Ku^SC??s6{>=^+UQxzQ9m27|3{90?Rq1nylpp?&ZgvfZN{1 zwm*d`Si)jWdOwk8%NbR2feP_KZ8c{YVWeWq*V#M#R`lE6=~_l7NHMP+e!*w4@tUCsX7?i0~TzZU_@fdt*1 zj81$`Yopczdz=fFMIOg8^B%q{fBG$3S`+3pr24@czc2D&J3!{C&V>^A5i&=5sBy0w zMM@bJ?dStZzqXb~Y{Tliyw-_*ur+f(vVQ=GJddSC>t(Yqeu)I2%Kj$khPC4dm8`Jj zoEH9*XENVfX{WXBkwb!5I9IwydfJLz=w>UI1a#~!dou17BZcNsr2VB@IACE@l=BOF z!ql6pbERqaa^(~I9~a)I;f)-PM`(^C(4Qkz9%&1-=a?=ef0T%uu165a21AK5@S8h; z+?lPCRo-Fehftyi?Hm0Tn3y{L7drzlE{8|I!gq8A&E(%`PMs_M^-eZN+a_^3XGI$GQ>b%1=`!uC%)`S&GZLbYbnn#v(@0@H_*pKG2~HWgbWMyvJOp%cZ|wZ6 zJBIs;^xqF_2>RJir&ZL$L{9u0?J2!p>wYC*KbG!TvsJEN!UQRXcBie#wQ>}@oAscc z{|s}HZshoG#8ajS7+VNWDma>QA`$N~lO2<_+-o_vz7GF~8M{556@lXZX7MQH?JG-~ z#2Ky**M6kC27^x_SgW@)HzcllPq9ayQW+2pj!Q$Yvug2XhTh4*i0%Jf@QRr!d=8zs zWJ>uS*+-wUvm~7M{Vv^{f%+opbk&L(_wqsbkp#J(=2? z(kOU1ORs%F+!I)l=OWLD9+HHg!4c+L0V0Fy<@k?=)0MDz#I*}@@jCOT;5)**PKwPw zH&nZTXpMy3@|5^Zn)bvJeWKa-js-u&b_-zF>n9rm$2{R?`EKEaHifOXi)Eyih%LTA zhYOMNJVpQu>t7lFGfqNMa{7nyP3e=75t|DD7xn9{df%>6PQ?6rDYoeppEYQCEh7}? zPF{jy^Nn8n`^O)E68bzTOyhW{Cc1us1OIrQ{8-PAXA|pkzF3H*Z^b(3DD? zK*r%pOq3|bmg9K+sP79RObljY{tnZeTnpr{Em#ai|0grq3`(e7hhL2mk6;*@k!(r%nRpXex4zMgbtB+xk}m-^u-$&G}0 zD!cM&bGhQy)H>s>SlD`Lgi7g3dhnv>6XWld5oBVLjuNVJ-n_s=pw9}S%-9LyoCviTEY6~^>jao^j-s`U zvEvIxtR8vwgvjpj_SY7^G-n1X9p_ z9ucTq@=K={p=R|UlreIA%VsgL3!BB5iImuVI{Z4jlX6QPoUsF{7W{|5{1JD_G>~*? z<^*>Ds-oZc1|Vxv@XCP#f{8)&>3zjlL#aSg`J^Puu~S-#^?jp@(i&OySrAGxX*Tzn?9DTpUVxOFi%Z zY$VO*-1N1d(oqf$N>NFpeYa%}1;&gflEl6-$v6*-_SN;fuuu0=sT~A;xx6p?%ya=e zei{kW)R%cJlw$iV=f_ z1N2?x)z$CxruP-79e+zXkEp!EwXpU5dol9F=nro>Uvsz0Ly3f;l|q{ygWh~f1Mw=F zi@b}{IlbmBTkXJ-#~F=^U9#NI+>ei6X=hZs6WNop=s|to|18}&BWeLMKw2elvND1_ z$EkVY;Qg2qrz44l!=6~d)hgu1xTOh}M_I3*5z~toxYK!UZB$5^3L8gB=D~)yIvnBI z*&LKigB+P5U05>RgQtwS8<=P%O#cXDu61PRJ-Z$7O5EG1Ti)~X^Mb<;Ps!0LUM%T`$*;l zsW8GPw9^xM8u=!dRtF-bgWC!=%qq7R1gC1*WGseyDtc>8J-H3pH0OG$U>nXjeXGlv z*$iKw8RCz+Oxgq@=@#T-*H<+N=y*yJ>!hH;xa>%=lW15xJj8UimhSk{sKSuAezU{n zlY@`}->cGpg5@Fic`J*IRWA%MYsR9m($pp!MNI8AfI8ySRr`Dw)|FFuPrX89iP zFSB(mpVXLeQ0D+v^0uhI&&`?T#BEc%uLSD!f~ebuw=4Z#|ELt#xHB|Dd!HPZ;8(^| z{_4uu=4Fp64s=B_>=N8zP4E&JLR9H}m|(+jlJ`u%Btqq4&5Z zw$fuA>IzxT0*MXv4m+l4;YDUvgE+h6&$15u?{@kdl3u1dpNXAnKSZuL9+@dbkGUCr z`plG;M>;B6q!L%V`8h$QdJh)ywjzdk(T*W_Jj_*_J=%YK=ce*^O@WfCa4b?iIm~p7 zLYR)EsZB&VK)*9BY*rRMZ&r5o==P#+Ck($l>bvgG7Ly^tk5SdqU9!xX8 zwo?k1EYkxO85i11O6t3B#EdJ6!3l@m8%oXPLI)9}=Fu-qSys++)P?EdP&j>g3_}u~ zdIc?vUcmmV1xrv-;CCwi`<4 zx=8K)di^X2?r4Tr!+gH{+8oc?V=}%f*s5i2v~SAmHin;pa@UTq=Uo%YqaS5m+!RE~ z-3WW^w$;Fo1$DMln?_CsppkL&Um>f7Wkx98oK@zVO`J2jgWXKOu;WyQ?5AiAM=_&v zU-=;1LQv_cEhWavF@hc4sceN#jY<^3k$9SUc*pX_>s?W7Pqw6>^00nax|7+I9ZA{a z71npALe3KP@C7Ow@O^jDc!@*#h~YLF-#1aXJMd>u|3!T$x*_LBzTIyCFl=ROd$>oh zn4@(R`<{!c+D8CIm9(=H*mMS7XZ4+Tg260V92nLEB(D`SEwwb-6bE?hM%}FhaZ_=k zJ=tN2E<6-OJL8H6*}?>I-GO`P`rOK@oApXI#`X}T-SM*=NA@^?_)T~lJLrTCtf#eK zbk0#3(y;~mUGIPd`7RtMM~SZ8dU!&f+g*(8{Pe_^dK_I-oVd>nSnKhBW32=DuHZsi z)p$DZ5Qk{=ZmxSMjB1~zajfGk(O=U|C!8{m!3Foc?>O=c34iRd*=5t0eAo17I*~&7 zQhw!2?DoPqa_&3nLN+keow~Zaw$~3i!pBH$6p~@|*tpI(?nI!b^Hb>--7@a!n5Pis ze=&a@7BA_gB{zCZnru%&R8^}hrMmYt2=e;d(L<4>EQ{tX(-A$X zbV`BLRV3^NanrVJO8OPE6?AZ!w_ll!hW<0vTW5CN9>UtY*HxKJs&ZWO5{GcDq%OAY zWxuFr>YLry+1{rkFY&U7#Khe_qtI}+?=$ufJnfFq+23zm=punEOLXOr(L8$bs;pX) z_jHf{p?%9;*UjLADIWF>NYGGMLZ%=!rX)3PEJv>>AwfDgF`08@)tkoTdwqwEBOrBo zv+j5}Re-HW>q_-TTHd15SWJ3uqvIUF%rlv}Jl@>BmY^H6uUN89OV+a`=7_aE>`goR z=JXYD!ROjp@AfR8hY5Jz`-Kfpz{34Ky+X&>V(0Ltz?)-;B7X;?`C!akm|z^Kg)7jT z(BLevVy{U_RyvH+7aF=p#${ac*+#C;=gZ;pWf38LuTatBY^og5x{YNm(=a7#2J$@pp@2@jrDs|GK z{Z|~73TVdFJ3@Jv<=UGr|7O?za(f!}_>4*`%<9<6-~mvlFFTTPxxi|)HduN29jLWk zIs>UK?~U%%D-h5SoWnQJ(|aacXsZk*BIX!IHqKxPs-`rJ;1mZ(jTILc-A}>ARR@R) zz~Je_y5Ac@9h827UB${xqHor;KV+5tQ8?f605|Fi?{&n1-~%HjtGxRoS7VPPhn*I!mY zf}r|ng-!=IE*?(R1ia^_PjQkJqI#$N?3By(Le1tE<*>C0nDM?{y-a$73cnNa3IE2) z3YcG1Q_B)s((na=0GM`Cn|6yha?Fx8x-qiEHw8<+IDRnk`oxBGWZITg!c}N%O(#EO zS*<;^`?1j;toI77&37Zw+QI~A$Ab-y-tictKf>y`b!xVmr$h@57!# zyh0X4Ts_)+*~?D{`?hA7`$|81;|9Td@+G=5mqcWf`$_YYYZk2zpe@_d?|v~|F)m_8 z_IcN>TmocRjO;YyicBUC2f_o%%9u09p-uI{GRf-4>NL!dpt9A6!Jew}$j!3tKINvd zh2Evs^2E!rFnW`&qrRoOR7bo3FIz>28XTkX3Sd8LAI9AGOA|!`mFTD zC9)-tMSR}u*a-XFc?o+P1=pq^ViUdbW7txP zp&R}U2!b(X;Rd0h0%HLVbmU-};*;x)3s1d&7W&B5F_J=wK*b-Pl`)SwDFH-jkLlJ= z0$bl-saV0N!6$BdBTvM~4Ezj%-8Ih9E9fR}eBo$Xd>*zJT;^?}tx%#6a+4|KROsc6 z$1P2GRA?lDTSh%4yH$XzBz>wL@8~!pq3#JLH{TIxTfEAyHDz$P)m0-$HHDl91Z1`N z&1giu=k_BjFAahYuTMG$vLp&Tv@<{%x#urM0)*rT|@xp!2aJ=Q|Vfyo=tv3Gk3a$PRguM8q z1y%Q@OhDgw36cpXIlg%!d6TBvmC42iIu z@>N<-*0o|+KCnzDcD*xr@{?5wEKI)0YR&!eZ9zxnNfYD32cTuX&>WzEd6&Jt(KJxR zwM;>Tr=<8q$zAp}?V}u$$+5e=(2h{-^7F(u_}uj0LlX<8B^-}^p<#*buUWw{!hfVn z&UaY4C9@-!y*fjJgW3(tgRt8Le7q`-6wR)Z;+HAQZk% z8r5xzRs6P&Z*REQ5F-ta#bTOXhs60#oiyi#c=mh63s{-UY~Bc>;>!pZP8d3_rCyb$ zY=Q(aS@npY5|mWU6%1&5Jjs07uI&fA1+=nqbhoG@9^&JTo{VZOQrPU0cDG;>MN-Z} zkIZk@_N;nDp0$s82!^GbHXyjAk5Zu5Pj7p)?IYi!{Y7dSaxxc#%xGkZSSnL|7S-ff z!HuGdmdH+U-7vL8w4>KP$bn=sc?yo);WKQEAOQR62z#t0RV3yU?>@0bBVN+@1^}G1 z`kygdlL8x_r`S~<`9k)dwed++_~2~?nIDT*hdAd6Q?^HKH_&ocuUMoYDoDIf(%a$^ z_X6KfNp~JIm88aN?6aTO07PFVYWA?9^iv{7Kl{19{Hb_NBS_HW6%Fo42$ADrLw1dg zob|54kG^1P4r$lvO9b~UcBr(5uvA{Z<4AEVeIKa{2P zY>8nvR-R&G0sKwRbpOSzll;$h4o#%gBjhOu#`R$pf**KV9-Vcz{))YVRGDF=9e2b} z^5dBK=!{Qe5BiwxnLP?0VvU8)izStk@z&6{gHIBm5z8&2=L~*H{z0>AHag;?&{9$o z?a(f|p${v1kKuS_#eVIxB@rx%HzbJi;||Ol!s~X6Y3%&~t@C02 z=-!c-Cm;vTH(70Rjss+tk5`U7nMVm-8g3N9msvG(MljPTUmuU&Qv8Mfl~XD|+#_^F zjaO?Ym5}IL=U~S`a6|onbv!gv!ZAQwIEEKAA-+aC3T`{Z7*1nHk2OjfB&^J_X2~CY zUz{5E(QWRAs_Bf_|46+qe7{rYaNQFlMjv|INWWnf68Oq&ER7O6)Rf*nJXsen zOD*6*tliB+RyLl?CiMIU9E_vC2exlY#zAk#QjyK!p^w=nTSo4+Q5cZ?5oD9!64vNT zoM?Nors#{aXegof?QWi>E|E)Yj#4i~;f|l*wb;Pnn*^g2!-3G=fv@8;;kYGQs0Aod zJRmR8<{RJJ@{n#El2gWffGITK8Ywte1pw%;W@A@M+f}y(zsX_hV1x>ixgXd|{(s4mBS9N+rP1{x5SD z#iVZA#F{i$!!b_&p)DRC$1|q7g^P<-Mqi7BVd8EUcz7c@!sl94!G7maxG~fq6jvQw z>1yo+$feOAJx3{6COcH~Ah;sVY@<4Dx{VK~bX@6bD%SN6_fHPkS0))T-|9`cy^^-g z7;kx9NrBNHhQx~z6PtgScXfeDQ#!#N7vi8H=t>_OrZ2F)+fr-4f$G4LVjf`_NKf!rGl z0IzP5u)Y0BC;OE@j&SVJ@m0$ATK%aLV-o7 z9@8R^U#@Z=k)rpLIqk8zgviE9jU3XlAlu#L0kK5v(VBffO;_MMrTcbrH!X7Gg`3MJ z=OHOQM{~Vb9`FNt<;Nb69X>d79V7ZY)_u3@>xqjU$~GrD4ta|whaYTrzdkbgO0vZj zA+$x6tLh@TN4Q-63Ytwp0%%vLHorz6Po^do33`MFXw2QU`y6t3NbV(w5a0NHJO)VZlT&(; ztBcyykDFFIJ}&reICXz6ys-VzvRQ%P6nhCbd)j6+%MIgVKdMb=vQfDp%Yb@nm+4IS zTEzl0U|E-P!LY%^`G6leoAE6(t&iF5Vw|o8ml)ox8k+Cii_SRT^gc5ctumy zVF$HO?u^=u%8|KF*KB|F-%tGct#;|AtFz@Y&+S|PAPj#~|I^PLVOQIP(|zKySnFXv zd!Ij=@#PscYc5ZCS#;o-xAFUrAqY;xuV+jRBWDu^pm;E_@N`gXAI+_w{xWg<>dP!F zkQZJSm}h%lSx-}aV}CoE`^j zIzDuG6j?Uvn9|B9MVU`3oH2XFDHhcNF^aGT7-#48{-Q-4rkwXV-(T|ox!il)c-s>b ztFfBf%4Ep-9CiD{uBzTX1`n?&%t!O*;5yB=T-hq93>ZgNMY&tPy?%!KE%f@}y`?We zH_GcDoZ;_oREVz<3gRtAGn^(~HA9>8256k{E-&5+ec^b+s9DU>{Y$7h&m+KeO_Y^e z0-mD2TlwUArk}J0_D0#?_}{3COW03>b>8b%+bN#TmpED|6732x|BjCx8iqW0qe7J&t zM?BwsKV+9hGO$naNAXv5-Gm8tv*FsBx^Vx_;%%lX!7J!n8;=VzhPp65p#ee-B{1(G z*l|K+_FB;Vt37njU{?>G>PhI~-U)}plKTg1HKHE*W|WY}5q^eExNd4lPy-$DCR~x= zkfW$72C4U21~6RJl%nGdqkF2;V|ckB^)`$#N>9o-KuuF-WsH@{Zi4BL$PHA@9l9OK zp3SHDP#0U>%9Ai8yBRiMyD^HR)otL1I`r81Zu?-^HS;#A zV&?Bh#6#YHh=+bNX!m6rR;9OBx4e?8te8_n8!fWa`i1S+rdhgkELQpNy>Hp((I5QE z=i>C)VEPr!!4uB^VH9Wm+c5yk-{tgPc!xBIV@F1f2t^P?5&`QGhh((Ii zV}vAb6P$Z}%hQi@!rx*riK582a`16upUw~u*OOK;x==h;4`S?1BdpdPZ1~&pLSOaU z(1Y{tR;QVAyRg%?aezCw<${;`)!>;=;0gYJvcJ}L=O=dLeF4b^ZQ7ze$bf8+R(j|G zm%QOC!^@H3BisX@GL1$bAN~A~D{|ghqw_u0dUtC6PMwx_B1tZd2k2Izx&q%jyvw2V z-uuTofI<0J&-E)2*B0#W_P?{}DRXS?jbQbjy>Gh?e^?DOh~;els!!Kwc=qOf9qe7R z=%0*3-td1XG&wqdzQueM&ETOd8+xXk$dZ{GIzP_rwn4xEWe?#*CImC~a^16MFXBx^ zy3=nyH^Sc4+RZ+&hS6{0=x|hDo&E+{eK(O$fCa;U7B;L*mKQ>#mM%C0y750+kD&FS zU*&F$w+z@8Z;;l*Eb6KD!%J#1)B#Z~?21s-z>^T@(qOXY(}S05v-pMnzx!H%FfQqj zmX_9ZpORdD&po13A2f=6X3ESYa5^_NnD$1poH&niSs&t_xw0Gf4Gs1a4GEbG2a+!( zPG7a4fk?Z;=Q|*1%+^Qzo6d$dsrRLpV5#`{&;wc3Hc(`E%j5%A=`ukWts^~4S09kG ze%adut2g}B7$yIp@AzkFoM&VE4RLR>bKM;{NMT-Ri-V>9|MMOf>ws^>%h6v$4VMR+ zA#_aIPh+Os4tziTZpYxYJ%RrT>;2p$ke~;$V~bV3)QLbP9&Fn|`M=?if7;tR;Igb8 z5nSr@MI#+A$CCeGS<`=>;3Ep62(~ppU+Mrvg%Kcw{I^#6*@3mAa0WsJ2N;Mo#5|mK z<^5S)Wxd!gKC}M5V_D9tR?k~aH#kF_;O*7eq6QbZy>8{`J zZ?&MimYagoBY0P|oZ7{w(}TN-eEa9C1Lq+@T1^?ph^6{!-DJFSy>pf2Kb`3dg5b7! zJMn+<*58eC8vt2KUR6feWjl%M-9NdoSAACi#V*&FhE`HhF-kT=%FND*Ew3jyY!A%V zWD98p==iZutYQobqY^ocZWi&srOh8;5_qjrd(uC*9Sn;Xa#D3)QIir1a|9@oG+8eC zuA5i$Gr0m1WpFwUIBHG|Gmdk-jto4#5@%rHj&h#{=c%sqOf9Y?;7j64#8qtWZtTaa}g>AcOg%; zF6f(Oj?RaA9)ceP^CPR9bEbalB9)8Vw_x@YY{j;^-+_Y}wxzK;2vt`Xmp(+wts=(c zn22FvfULR}5!JH)ps!|JnB98f%j?6${(#EjV3>`k?aUo^42nZ3u`T@8nDE-zk2uIv z$7fo62YVk#TG#YoNzr-k*rjjVu`3c;pI)G@8n7!jZ>p~=GStw=Hosl|6BmxxD#edl8It_43>auEiI;;X(wD(VqnDBw6MzZ>4f) z5pCt}gB-x|>EzoZ`q@74>?{u!Rg5SbcyNaS0g+PGKjv?(&RKSp_aK^w{$8lZE9IOiuLNa zQ!{OPUoaS!die7`5V+iNc3)4)^^!>pF(kuK6T0UH2!Del2rXGg>vkB)daG($jHwuO zQ?yb8gnHjH5dVspYBB&x^7707uupmd^?lFV+<$97b0Qf(Kx1GeecZSHYgV8w`52H) z_dKIf0yn0Z5+sO8fc>5vAqT(J62UepG$zYupE*3eLB;xba}B8a@6R?96ZAO9SZ^o+HQytXu4Xq<3njrQ6B0y>DKu`1TWzMS`Mta=4aQ+hV%l0w z5ftKclhWxFsHW49k^hy=1E_Ni(8k~V?{c4}!FMtgI73U}HTKWo- zn!>Wqv^jrkEu_|qdP``*!h$ORLBhFR6Cfk*tm3!m?7W++-gk7fbmJ5~$^K#&mP5)J z4=As0%sOQ`)nZGo_7P+luP(?Ya~k)+mnfLub2m4XZTFKO3iZHuHm}(nNR1=D%54r# zV)0A5rc559ZG--`47T+M^qJa|a~5BN^uO`WA{);8Z+nHRa_Z7ZGoB)3JK|*}`zLY5$|nr z{qLU`2yW4gZG4W&$h89AHvyq|TKJSN?*ZKf-x; zECrFn$2s}6`h|lmPjMEe;rpGe^>C9P%eKIwp$o*jF|ixQax-TWpkG^_P+0}!IbbkO z3+*p$4(r!0nJ61@qr7pqSuhDYWL^q1FTPsT(NC=k4CA4HxFD;&Qe(=z-*PSyY~PnbaOtBZ{6Z{hfw*&aqA=#HtzK;-$KI{a6@_l}N)R4Dk&}#5 zVM+EnIj}uknczp)W{hql8mH~QJ``2Z3s6LU*EK?`M9m{x&w4x=y9Yjrc8}WN@bZW% zKt~49x`pDuXx%eMH5@^N38iv4iLm!>6Ynq{TtjJK#gAq0U4}I`#0TV)=oJ`01;A(?(YC~p+d46%d1M^xwLa<*jZdHP;m&=O2?rQwI ztnvBlzp}N7B=3vqN(1L-0#b(r2gA-ac!Yq0`~hB#<12lcaVf*P73qGhL0?<}{`BB> z*?KJ?UkYVvqd$H5sZl<9OVIe)ttXH*b&z}9V_E)4d2SU zbqvGr!>jB~+nMb`SJygCeZ_u_|iE4x__T=@ASEbXWUI4;-9nx0QHzl9Tq0Gi87|qMV z0^D~0sc%YP>FMX#xu-i|*y02yk?GNO2IvO01qr{^#(NW;)J>d(ybl*1(YeegJ#OrG zy{O)>$2SnPQDrW-I@nOWoQ|S{1jXW3TC@;t+-rJu&(OYIQn{FG0~w=n4vmU#z!72A z09F>dN;}}duep!W^j+mlvuhP=NhT>wMOK+FNSwN(xrEfHErBiKfTK+?xIiT|FRhKZ zo=ZU#|G4IHVck`HbZ(a?Lp|YOk*(wX#N?E?Y}2S<#V?H;H}gIc9o&%5^z=$PET$lO ze}#-~VJ1sDi>4+;CsVX#b3y{=ckL7p9GRrf*tx7h%IWcVeEnbJuY&}cWw{4p^JJiZ zi!QiY@Cu~i7sry8E*0|GJ52qxF28D3ZOIk~z)RO)t`o(A>LU#pOe6p6ZXvC;H%T>0 zyhr%k{D5Wwf)T~PQ72?IznFA)=wQ@m!Ax?n!Z8ysnd6x5HW>+@Ct(p!{GrT&&*CUH zX=={-`E2W!i#xgFDnA^3X{}nKPG%So#o!-fx3i=dp1Dqihft5eQ;?z&xM$^g`_)Hu z07v&+LpI4luNS<9R|lvY5_qNBb%qAbA8AhmWKP-tVhTaN)YVa(KlN5t^e)b#!b+k}= zJv4Y`t6@~!a?c)!yrsSGH~G*{?dg+KE{14JfQ1QHw03YEtomt92^S@)EUew8#SVpf zL;n?|CX%eb7AHJgs?WfmBlnELYvXl`j;tvz8dR(NolZ)$Wov9X-EbMZ%)v_tNQfrz zYz57GL%q2c4!u9&YooX=P=Cp$nhs7zfRm3T~YWA&T98$sc9N$*0A@|(n7kRqkd;E6Q5W$xEw5wElqD^+ zzcw$sDw42Wckvgeap&diW#IUS)Y7$LX7j`6wUbVRNh3u8$U#YXTu8bZ1#r-o#6j?e zq3o?QEJGCisuza3bTdMQ(TOYzJNk>(tL!<_(dOisNj+mB3*68o5&gbPAw9=Q}hcMJ!-q-^HeREx&s7_cd zFZ6C*7qWk!SQ>tG)e#F~SY(f!v$Claj5XP^QaGTH zU2!JdtIH313g0~Oiq1d6H0m6-zurper{26{++WP|zH4qvriABpC}s%7yg!P!y~h>R zOB=OUP)4)^SNwWL@B9Z-$Wjm;nPKAEBy!k)sQxIH-3qwyTLOYG{CcrgJR~X+@NM$< zKpg@^tT<^H^uBWD^+)hI`Mr9_!z(gLC&APQ2_-6g4%2uOFAbc2Ej(%s$No$tBKyd8>YbJZT>8UnOdTl21LV)nLwddXI@(+= zp1;3IdYQI~6ZsjCo0jiUnb=fZFznqN=ie=d}UF=1`Z0Jksx{X&kYO=EmF^U z&O}$O?jxa@)Yf=Td?ztp#tr$;uwlupQSM|X#@FTfaLpO1~g&=5-abiUi2h^th1%o=$%V3<+Q+@8RE z5ZQ6^yV@JXU~zw$hWBbYTy_&lH#N#0^krcvjG#L$t||NGk+ji8)+Dt!T=GR(vDCzjkDnfS?R&Pk=lm1%wHWKOxOs>p9@7s9pR_ik^&3-loT zdI;K{7JNM@UdpK4F8e(1Tq|MMt_07=nfcM4ujb=f%kAGv)22}FXE~(f8u6{^x*f4* zbGa1taGM|gnX!`CvbNjn+wvb)3iw5Z-q#KZBLX}U2_F9$?l2j5s?L>evh3#& zOH^*{HXJxyy#mjL5=cVyL#8xouFlpIM{>^nt~>`s!PIhbqaV&K zkbV)cKp>()7O9#$sgeAjp((<{cGL0c8Sx`t(wL;LdzEX%6F!+|w!L{R}WUlgG zOzw|be>59|w`tQ(pS;X`E%t}mB#<4IeI{X7s{>gf=bi$;Seukv_n6%zb4g@Kfj${J z(e!1SFb$Urru7VhzFR@FmB=(-xN1T1hrewN%P*SWFbM~}FGO2LpWjWT4+9q$1}q_S zCyp!NGnp4A*~Wdb4}1mb*J>u;c%O#y3Z$Sw)H>f0zxoPa?)5IDZOy!mFp+@O#|wjI zxr>qm{vI}rHb?sSZd`#V(=54Wu+B!P$FzIyf@q!cnB5r_4n2K}+C~5dDX$r3pT5RA z`L#d?RU2`{9)3JHbM)w{iDQPW(?i{sPu;8;6ZEvE)#Y05k^bzd>M*3;lF`^x+L@;{ zP>J_#RPO$e3tht-ko-bel9Nhhp&5T-TpNsVu=d0=L3r6}T!(G@+;=zcAdI&=JxwBa zG2vod{-M>Hn)sZeu0q@RWX*s`^;^c30c?Ll+$dzr*QneoN>@7pe5c3U{5n1_n?!0T zT4H%`OPl#CDhjFp;HCtr0`iWi_*C5+oQk&!JXB5Ot!EK_&kV>F=R|r@DXHRA*HF6H zA)pa+$u9~okL=v!NpFK&9VPEw`bebLWiujruU%I4>A2Kq8FH%)3!(e#o(nw$X;3Lo zMA437-Wm+P^PdaNE8p*F8DyS>kq|hWMJFZ2mr+6o=D3c32?^k7Au7ITP^CJTC44$8 z6wUj&eUUT%sFHbcB&5PxucZznK2f$dK^M=7X8I=Ti)Sw-hw?p`P#KdNMP`;pI**h( znm>v88Fb&%N){SUexiAqIRPJj>u{E}JjmNoEUX%MlV`=dGCEYsk;_>I!)ZtLK7XVO zsKfJ=b2w>v%{@v%Q{&*LH}(Fdn>9(z??JvqIf;wbOZxe}8&q16yi3RPE47m)_+nfV zfAynxi^kRR#G;6ec9M_j?~6B%G!r?;|2j)fa?6-W*=?TgYYXs6JsZ&dn5Rlf> zn^{fqIf;k%su%BN=hs+}r&5|d?ZW@4#f?nTrt|YNiZO+iupVL;Xyz)NkX2G+xX+dz z46G?QWyErsV%TTb&XC`m^{;!vDhasXE0U|1y_3NGQVLhzu7cD7FYB*qiw&R$7X;x|vO@vsJ#0+<^;HnzMisA5%)iTa;BRtoEw|4GNWYLZA#^L0h+5M~Wa`j{(H5 z*`pa;0#Ad7g|_Be4n#XH8Z&n1!^ANOi4zA%LYX%$Q!Wpd8<0ES54L{Y0W6s*PZoya zRheKj`~B63pjiA*S4Y~;t!E#zrKfK}AQ5Dj!!eAf$-qHJ$;?V-F+01Zj@U(w`EEIW z5~Jwl!6|NC?w3@?vHNug-Dqb4zV9!JcI~?-c&Ee-5XI(N9g-GMVFJ*}_^)1R3_1{4 z{s!WTR1+xYm44(}K)HVRff)V-M#L+_IObOYw;!2N}XwytR5%wefkjPRhU_{n>dF~esX!6O)|K_f1)uvOu2DnU z@W$aCzr|vSxxeCDu$woX99cxqvbaA(8J~X@>=id)QP!j$1i|Yca}QpYjuTO=%&o-v zfMBe5;Sem{y&<^<$$$*N>Jj6{^<@)p&BjT9(HIgRKVJ%>qiDqeKk#MW_$(l-E%vec zFrH}pL8X-!7ykYKn0aJKoDfmJ2RB|a>M)uf9q6H2vJ4WGdkP|e2+$%P5jK!%Lq7}t z%NNC=lc8l!?uomneN4@_%MuW9S|NfrCmLxWjtE9~Att{OU0g`J_foiM10JnQgL3_2 zY0xc^bg_H4?I_)kW8I9u@p~`mb5R>77P`R9Hxvo1zNki;5F3c?dx&+hcy9Be21UtA zp7?PJzIyKL2~UOHkH?XRy@pD~W~B`toND-8hJU0JK^_YZ(!|d(gAFP7xx`@s{Aqlk zYZxq+>_la35PE3(!;qr$rXpeko+{V8lGZ@zeD*kFUH$H&a&3TDH~@<N9A9|G?u+#(0QN^DIWZ-6~%T^!;TB~SK* zfS#h$YOGhY3Q4m2<5PgUTX*Sdu0SxOj{V7}ruQpcAjnaO4v5b`cpZ+&@lzV695eAG9fqtX9a~meO&$Lra zPok~7G-y9<5k+lX*!lY9?7~DFrItb)vfc=^+`(9`GW&(tQ^ z8h^~|HrxWc)E@v&7>x50!s+fIY|?TI@zy3GsMfk^=mGzMHZ>SKF2T>w&qpKnq5n_+ z`$_0xU7Y%+F;clKdcHsu&1e|b zttl}fsB)Gou=gm1$m%}R$Kc~U2|F6~a2^%z|)IlIYFMwf%n8P4wZA!NY7K(ZP>*InUS2L;<6qvOzKz_ZFp(*3y z4MKjd=k~JRdP^JavRrs&r5#D*Ae#h5S`bJRI3Eai%Ed#Gza$IhPMu8q{$bLV581-3 zo*)?*Jso)fsE(`Hi(Owj*fXWS-MeLuHi0kqJIe;FkbENzlEK;yFjA-gB1B=M_wx5}HyKtY_zsL6*>Y@?GbwB#LIhJK4P$SC z2TT9`qTsJmFv8N%;FX3pDF5QR-oH_uET_8zYCy0z>ii3X{GFmx>e!M4hPi`{oA2L0 zkZ6oRPCGFB$7umZcs;j{@JY=#$5QXOn~P;UPHQWCpJRP^p9c8bppUI>1q=+*eRBsL z0y&i0w;|y6GFC(qDv!@cU?6{sM+2+Vjn2NmnnJea&-z?O6~o*;pUk7yt^TIxS{}ie zwoK5HeLzPYDadc*{R?CKH@WrQPGaE#pn}4n$N!|JrVzn?_zJEH1FX{3{`#f@fv||F z!u#mly!;rm49lM*42G3BX?c1rm4=LOUXqkyzsfHEsNfP{8s={_e#KV?sMvQqNmm47 z7*IHd55Qt!1mY`J^KY!~ZyND$N-*~vK0h@Y5U%K>5r<)3uBV{9bj7!s`aSw9qd&Mh zr2hYWt}6kMaid$ihK2Nh(;@(oF!(MCoVO%wM=-4gnYx76vsgvFjRwVSBHQf3l^m@+E-!T}wCY$FIn!Fgj|?=Lzje zh5|&ByP1OP`EF42`pRf%yiPK^>vQp-J=p4)CAyq@%VC~@#CEGp92cY_^lLUR?8B)$ zTViB}b!!>s70v*X^GKBi%+SNW@ZTii77k_}2N+BEuV?2qUyj4*Ma6Hl^))nmI|@g{ zaOEfWL)XzaSiG}d2L@nHf}cf|ek5CA7}?DXtX*%v8Isgi*SUr4j^FL0P4sXvev&z8Y&<rr*he1DDp^3jSma97zSP}62Rq0Q3H9?rS@9H5Om;v3yiedvKa|`i(5}-H-``w&cWAro}RdyeAXnutrPwx~)TGg+rVfTI~ z{jrQ^`<;hyFoia^_Fm?D&=8C4AbHti0c~!_4~&*L5lxRpAbj{Wi+Zf2cO@}lH#~ei zr8?4+vqMen1+u5#6Mab!q#I=LU*`$ZEcZiA<+TH!0UTg;kkxqYztD*>uhhUmX`Qzy&w(q>;YlkwL>lIAHjho{+>sx@u% zO~i;>d&^XHLJCSxO2_#)3W5lEt#A8R8Qt{1OU@n;t6ri!D1p3j{E_6u>S6K4kQR=C z1s>zeTD9mdawtx1a&7fKI-_b4ZQ=nQXhoK(31nKe!m{F;6RyzT79Q5fv!@54wRK8dFDFJHK*L2mJru(2Wp~0qIN3rz+f+&_n9qK{Bvmri*cxo8)KaTn^>vGiT z9s)>s=_<^a=zbtgW{f37r=MKhp(*K^(9U+Wfg!d$UE;!oyX5JHu67+NyrJ= z=Fu>J0-I@zNXnvgghq@rL}`ld_j9hdR7wCqXX$|H3lajqKMO4{E}7l*xp-6Q@wUZR z#39(%06OuCOwPro&V=5X;D(~w{IFO8(|gcCojW=n-!z*pA&MY+By^Aw`Nq z4qnIAW|LebbOPk!`ED%4PtI88eVB^ZO93Hq`a*e?7tPXVO_)J@`_=ff3Xz7urGfhM zl~$oR8~pZ0v+KSuh>i@nrFrMazg zIs^RY?;RHg+M367nWrRqF1-L(f^4F>KCc0}OUpT{=5)k8=&|ZdB{eI=W;I zzH{jhHf(-^p|j|IPHMFYh{q%i?WHMZtSUb8;FgPTyjMm_%}P@rpxTC#fE+@c?*Lu- z*)tR;S>`coEOoYJZmN%l{CnJ15MrF1&+m9?Z3``$nL8^4`?bbs^Ej%U>l!Ix)rr5q zN#y%f1A1oPFgfoY@27nw_KBu^eU4n7OdHQ1d&inFHq@E`fC)-vw`)stdUk8Zh~D`8 zmmcz$>Ozh9G56PFgV?&t3P@IYrSv*?vgo$FN$f!&tA*ioFeglC{gZjHe82Z(om*+( zeW@+PWm3c|Q=7}E=S3%gnDPNCnsBTXUAUQiv7{$3YhhrxEXb<(O+44LduW>st3Mt+ z(-b0D6`}wPPue_rVjPuIJ2#}+)npy)lc(v)q{hs4<7xoKt<(iZX+X8ap1PvA{rW)J@M)R+QfcO)qRd_ z)ChiJoFm^HkGhP0QJ5h_y)=Z>mov9;AIzNfr0?-8XM@neI|j5gQ1{c^Y2m-E#s&9~5GFG9*;Z$6WR)=2<@Efbgo> zJ)z-1!!#}-Rhx{aW`oQNO0AHMuMxUO;5Z7cMu!=f3Um}Efgt@xZrVq6)ElYR-_$1K zk&vpGz?uKvDk^$#bDl9Q=AO#(hwFpmYE;rI?93yAg+O}n_L(uhTXYyNZ6-b+fl8`z z#p_c?Op#B^EQBlnJv^yE-tAA9|t;D=a+R(GNsY$vB#|}1esQ(r)SSf{h@4;bQ#1E2Mk^3fTxN%id%=~+I`M9)L+9C^m!k#JjjQ@N; z(b}LDVx!2rF$BZN`)t^>%eXrk>aAWt2csoep;9U}1-VD%64+j%F=W52Xl2wB$JG}F zhOFf`-!6RC)K0R}xvhbpDQH|*AtU?Fb_cIT_7lTi1ETn~gD|*2k0#Ze@p!&8+kIKI ztodg{hkSy$Oop-`RH8j)K5C69OkO{@T~-+`^d*l+3AHAM4ipeC(g(sg59i`9WldJ* zc1WqNL#>4U5yH1>lNSau1CW62KL-u5`+Cagew!MZk$W^1WpA`z@+TkrJ2p>k`b!kc zcxJ>LfJWrO*6y!`VSud~xhInI1)gHdUg78yw8*N*>r0!LQIQHAQJ>I5K)*%u&v!V% z8?IvA36TT`?<3^2)4ImwLb+5F%%a=!_zzftUb%zEgN~ztt|F!pfRIFFp#ysCKp?l5slM$+WdY0KHTU zfT;4t^8!Pif6rogV>&rV-y)^1x7|US7>B2X7uKU`u?R@QO`zfE=6m2;>k(v+%>MA= zG|6AR=iEEMZ#@Wzq!i-lC}>updF+~RfI7Oa7$DM$Nd6k605Oh#ADiwEeaqe#rCquA zTz-A{n)j)F#qy44K$U0BFnKK!NJzNAPAXMzAh_}`CRM0aluOJawF~8cp)7@_)d(3W z@(!zc=xJ}gD0)zRT8{Lw5w@qt;SoJs!$qCLwAwp}*`<{od7q$t_(WE_`A{Fy`fBXQ z4w^~LCs^e7J@A;vA4*d&!)`rGxcn*>Tydo3T{RD5p{PLwzfRS=($~7d);BsLsFrV@ zYgm473jd+Y3EJGeF}h5c?$)1&`pAsStW^O>egw1c>HYfXIBtV409XQfd}D<=*2H!v zvw zJ~p>t%jJPTDdF^sZ7d*bXp4Ziz>RpY?>nE$uPTperHZw4?~JOdN3z&yHBUxZ_$<=g zs^+y#B}5m^-j=#aa?=ljgs%WNSf5DX@={QG*7utW+z~3Jdzcn%@D@nM{ZJ_Kbbx00 zyx3=jKQq3?Do;~7(M+zE@pYloMnA@4ev3onJgL7QkV#{-o{ZZn;^*3h*jwsJB>=+K z&$JSk^g#)^QFFRIh6~sIqE}1>j1GJDGCCd~u}kx_LCs+%uA05mN6W^*W%+Fg4KO%h z)O9kRBD!5nT5)uiYYJ^4>#U7OFH*4w0&Y)Aa{cx{Mnus&%`e@LLj_HiHYEuTVqEiA zDu@R!ss3VrE@_ZQ028@98Q=?=AMY0-f>?Bx#<590rM^wbtZr~%k z+jOeqnwj}KpavRlLLi_qeuIqY2}i<9i-MlS@YYc#LSt@mI4P2OOgCVsP?{zeI(K(S zPaX2(dxgv_gwZ=t;3|?c%=Y${?%ACbfG>X!WvPj4a#M$nT7-i2P|>|-GY*ZIy~2j3 z+Ai2Lk>y1chJvQAhmp{;q3`YYK+_3?OkhgHiymr>?stcXbnfo9n)OHRM#R;}`ymhc zQ#0R$LP6X0M)+xz_{Y1LY2@(QRd=96d&GoJjYeh*q%P-9m?Km1i!4FwO7k8*KSw1? z1FHfxG-?_S(NP$H{)(vDY{j!TOM;VrJ^(o){5}uubgm|4lqHqHa2wcwkXWGv=dh(8 z#Yx1JL^%v^HY?lfR#AQjY@FPFWoKH5{IK(w|p?NA0-S)`w=v_JDb z&RUj13exrTJsN>ox7KvLDak4N_qkQmPwQ_v{31MrB|x1is$u;laK7 zW+5T}BBQ;9BJCyf%%OcZTX;-GJSa}aS4kC$nIA^?0o}HpZT%O1dZK%qwB#Pv9QU1pNb%-EJy`t~_bOXF8O>`Z5e;m+ zd8#~KPf$nx;@^2d$;YLxM$KXr@+e~1PL6{ZN3(l8#!5+Lp;tDuV^i*h-Ptck$yr^3 z`O{W2@Le`97U;pEBk&mTqz{VvY7C4<*jJd*50_@`OW?m35}0)rabKGa7$$rMjDBAmgDcXqx%{wz6Kt-n+>eYI&x1ASa49iMadYj3l|-y?a6s# zW)aJ?Tjpzkb&5bDa8FTh@N=N($5s%A88}q^N08dP+@X(mf?eY#K{%kP^4YSm#N4i(iV7T^fGp6m`1LI?fQvML^{&JIKc zz`ta-?m88SmNgnYa<}%-R}DQ8(dX_M<(7}Ku0mNnMn)C8dg<8fmmabH5n>7pLBU;2 znRkR*UX4+kyWZCtk~~dkj-VEh)o#3J%>~7hJuJ(-jEAr7z$J=vhTP09K!tpaOF#E( zfI_X-!x)vPj}zP}^$w#}LIia9s$z4w=8$BDLGQUpODVOLl{Pd&C3J7~ZUeeC^%78= zK)(6EMHKr~zgs*6TT+1KYTC8sL4qTo`VhDlqT10)L@hb&6Ww(~dEKo86UkHz{hj^Q z8K^?3MxTIXo@A`prxj>{D4}#eckr(1XX%@-m2VVadT! zQw#ac1sXHND&IH4u-Qix*lHq$Ra*P+C-`j}W{4;V6&i_BEp%CIC?oUoWjfJIuep{2 zV|sOD!HeV?%2?`yemqzYDThaHK?E|3@*HaG+ zf=tUzUdT}gPPvHth0<2w>fskC?~vAqHEQnIQA_zMzNOUpq7*+~%_l9^jq4L09u$}a zG+J*6#-%RoSFM+odINYsP@7vm^^CCo-FnRm2HUAumY#g=_->ELNTK~HgHxq)?f57C zsM%j2bMqmWuepPz^(bQI^nQ<|o&?>09%mq${spuCLJuC~s1&1_df%$8ya5S{gCzlo zH2kq)pUxCfY!iwjQ}kx*CeQIgZDM$Bww04tZ{$Imf&`w;H@-ZdAX|{uvSTTRA5Vm( zK5kn$&vOa1SWb^97}#RT9(e{z!oNaT;jk;7+6%dKcR-K{+g&zyZo|N(Aj=C}sZ8z7 zz1qxMs6UWV!S!KV+Koc_Rud#`h6F2m2hJ8Ipnl}r#I^jhAS2f=cf%5AOu(WX$&7qd zkSP3-OfApaYt<6geEI(zN3XT^4Y@kH-~QcYe0k~Lkxwj3p|37aqPx4ndJiCwdyaSI zLvN?$%sG>}gU><&*fNi)s+m4kg_)U7yha^eoB!u6q zoS;w0Oge9e;)sc8G~5q0QA-T^MBmzfK0nHCK7O!b^%e^5n6z@GG*eOVPjr&UZ}5yU z29xG-UM>}pK_DVPRlybjV`&Duo9t99D^5kS2e(o;< zaLe8Btr@nGRfo7(DdmwhO^3FbkXor!RRV!;pFNUL{OO;R_O>;d8x_B&qD^v~2zy*8@7zh4?d&G_1I=T6rvgXzGkKLf z#&FX!>*K}Hv?U=U#|*RGx>KDer_`Bh+;P;R>n{lOO(`kPJOOLKlG_FLsHooA(*((0&ows2Ner~1Q- z+tj!b94hoL*CI3DV9??cvSvMr?%nD7tTw&6mzQCbh!IyEg`&)>EOsGbqjEnj2aOP4 zq#lc&vHOQv<|f;5W95X;Z%^fJlwgKpUr%Rgq15mmB%I{du% z5i;H-;phDK?$#xa<4+~0b1<} zdFGeW_Xajm=i;STh);1mKHp{2)(EzOQ@UeEqv?&8^;Qh}N*e)~mF@8BR6WrW|HORW zRksZNZ_1|{sDfaP$gpgpj}(NLQ15drJ<%o}1MA!cwat0gV8HHZ7Ve;@qIzAfTggaq z${@{5{x)$;Sy#a2MOGgRMk^Zzl z+girKm_>T-uYBvL#5iLo{)v8mC<)>E$Fqp(0}t0CYb)2b;Fnrrwhl~yR?GQ&Gv~7k zUv$42#PPgp5lZ2+10`nzg=juv95`x4&o2y{UI;oWIat3Zx*){sv$aoyQBOFDMiu+7 z*`i2<*iFT`%8Cksr7AN<>5bF#rwD_lOakypzWjt)G6KlL5%S}kq6 z^d`{qELort?`8S~qgZV-#-opQqyRsiVDM?h3wqeO}{&4VEA* zlh?g>#wD`mq zDC$av3%B7QvzU8(0P~O8_C=`Z9Rbn%wFxrvDMQqrd=%RcMnh6+*bX56VF@^~XO%{? z66ov}vsfypn^_v)3hZj-#P6hO8R%U1n$0^3f}Q?-vS#wcPeN|Cma&5U&@%Tz;U~VQn;6?vcK*IH1=<(m0&1Ps7J|{5m+TWVdl4 z%n$oU1Gt-XcVnX5Z9LKvY8B|%2xr+u_hxCNV$kMC&Wq>cSpD~9PV{ZYWHSRR#dZ8G zcaeLGorriQgEYIM{ZAT>Y@H7eBbo?3CeF;2PF@dGE&u6L9atw{`&8h5QYG?vlma;6 zp%5e84&>)GQ96)Hpxk>pZ7Tl&H&$S5ZfWlF61CUnpUgo?P5+{xks_oflA|d5gc-xJ zRX9KKIThT3R(8le*Wb=$xm6afw>PgoeZOme8JEp!)(%_;Njt}UHzQc*(`QCCJ;K7F z?`ulnk`y3(F_l-w70|F;7G*Oc> zeF#G(y*945+`aW?dH@b+&=d&uX0oHAE(RaMF3U3p+LXlX;O5ls?4}OR;m(Y?IK7Qj zC!O7I=|)>ImNPoF0jEU3rryV;1T?C=h?2fbPo{1vX1(D$qz}clSrc(NX{X5z30+INtQZhwa)o8;qNOEv!ddFoW+-KhO8y!k_9vQ1 z#FQWvO}MamB%^sGvKq((zTSG)z>?sWy2L?k%NfR(fz{po%U9G{U>tl7dIArWCDtf-mt4X8#uf@u^{9+Go&ZQ zIzVDSyExOu+KDR@}e8DKB>x&b!E@|_+vQeKQXBs6d>2h>M%Rm zy0iwzkN@gqxlN2y6o6nIT$@4sB-E-a#k1Js^(7On%TppwOU_r&#AjZncV&A{R7Ddy zfe?ZW)DYWP3-a*|Z9)k>=?any-2a+vVyhg27)7bYlsPrA$1M9@Z603TtBk%3a1kYv zu`k!AiE$1JIwm@AjUr<%OV_`3>Uj3>Q}sKvE}GW^H64ua#1clWGPywIM8?t#j`zZ1~zKB4G^G5humX1)Zu zgXB}y4{jViOmvjAwZS`Tlw9yB?Yx0{T8Y?d|8jC9)D72P98u$XG9{)ISHyYpAom<* zd3FBK$&Y*d1QzF*7hCYq4ytO+x@wB^TmBN1M0h1SM{keBwgozFbqlhMc&Ljr#~=CtjbG6~K8%Z8#cK&Bopj_%_~^5CgD zZ<7E8?$f2&x!^dEVaIG}OcqKt;}8rY=!L5KpaeOxN5UolO=Bukz-UO|JjfzPw@26HGUrdNzJbqfZ zNIG5q)Vnj;roSNQ8ORtae%IPPbXex0?Ghp^9*!*QD|)&yUTB_6|ro;Ljk6` z?NqYsL26IlmwUqO?@K#(cMdIx%hs6njtz9Ev{&N?g;k=RpV!$mzyA5BeCiF;fxkXj60|uu`{$x*nZJbHDyPO$sDEcz*q!y@(%QuCL~9 zKH9PF@uRv}LM$*|I}Ym+!bBtLPoqR-NS2sT$G0n~i+D69;vz%39*~PS3dLbz5*YX} zu3oG1-h!j2D!A)c+{*W(W;xC2^Gs6`84ay%d_26Id70&|1S5+`1>7D!R(@Q(Ob_8R zUkP}lXeV!59Ro}mjooUbK&^%NS9UM>Vt9~GR$^b?7p@l4P`i0PVscJodOjq2nJGn! z(v_bikKq2(*R{wY$hC{9DCUc9CUNlYU+X&~r;ygH-V1LUb?E606n*{(mZm5lULpp# z_2C75`B~#G61Ii2#wAmd+Fg^PL=F2VyXYvxg`bS^+HYCq%!=~AiyncFAM_u3yAg5I z66&{9RYqza@b9;UQjAK$8e$?5Eax#WHl9!}RLM9|q6Y)wx?<}ds8r&}te~KS1p6(h zF8s|1A?O41@b)9z=2FzeS1_%5kqoy=IzIMyeMUYlPu z)nYJI2Pcnw1HRn_>oR2=d$91935tTtjicCizvbO4qHJB(sw-9+8_rzk;oA zvbAVaFCZ4r2>{{gDm4m|L%gEf%NY`MAuvbaRe4P1UBA~kR~9PhNoaY+xp*ZUTeUr9;<3fgtN{E6F7j~b)-i_&@aCCKEU zIN7m3Z~N77RF|nR8+4p&+MZhuXWnm}jQ2^@SO4xd;F%de^UjrwH631@$;LYG73}0_ z=x`RdoC_7bI7I9kE)Mqg-b%ENJaU7b%qceV*_wx7rn=^>O0?pSVId)h#dE17>|-|ph7^~a(e-1d zUB;FEZj3gUU`ZLa3#Pq_H;7#$CK4pg$Bcy;3)V1RFr;h>5aUg`y9#u=wi@pI+ZP&B zwV2qq+T9l6?1?XwO(-!!*DIN$r(Ku!FeZ{~;asyiqx3Y0Ls8)cWZ08_CuKPWnsZha z>)dz|(ql{SWdo41{`$pAvrCGyBgNy09hX?Fp7fl?sm2^lSw*GCM!97%w9zC@_M$#+ zP5$v(g}Tg#{)~JA;GlNQ1uE+3q;#UFme`WZILtE9^X;bv?--%;hn;V#Dv!$PL>q=- zzLDrzqZIE%@;0t?p*OmNQEO=u{K$S>Vq5ie z6rOg3FUZT!+Ed1eQiK2!@EGB^4B~SfEwM(R+q-R_Q|dtnD@iAqmRl zXk`u+E8kXVE`3@x%GD>V3-Nb30~XH?DAAE=s?uZTo#RVbEnpk9G*TR|u^ZJhAXSAv z2}5dH4~lalkmQ@TrFP>*nXQ~Pg_iwprly1uma)gXQf=yHN3pD z*>~!-(XmzKpJhL)$={=l@Nj3QrC&nHC!@WuWA|+P%?9W*Ly8%9Jb6po>&ZlNfR!^& z?C?giJ~pRlHHT(#7G0OinJ^?;&pu-%bR_y4oA*fbg7PLB5Z^9NVwAlbU^*_$*YC+D z#*(#+!U`gQRbe9sN0J$W&7S74m-ahKq3YH?$*bAoV9d(&9hC`2x$=5n0v7O?rD3h6 zX!~CIl0GK2nT@=tesZ}B(fDaKGCfzcm#lM~f#pC37wxANy+}3(Pahmgm0xtb{f2sBzqJd>UxQJd+r)#i@IhssUr$j(eGZx4% zx}pVuZYIwecdRS|9bF>YqH@2VxmE%3V=SM8IDb?odtGiXxbWd*ze{$wR-kLKt7`%7 z-59;>@>D}(Qu;Q0v46zObbP$MD(g<_;tHn-Vs|jUOp;8q<|#nB%M>l;1b0msdO1HC zsH*5M_IKG5-qr6+==^T^%VL7oM&ZudNQGZ)nbCtiZoneAlaH*RHBz5070zV&vhg+M zGeOOy%e5GUG9YavDet5`y;yHVB1*kP#NIa!*OVWrgE5Qw6EUjuIoA28C4==-5|4Px z*Z9L~erh2=AZDBSb?}F(-z~FmjK5af@9zIGPOa|yai;ND;nMZv_qCYmIF%$cl(hBrl7CWp3)Y0{&)UWp`+t{J4lj&; z*K%Mn&f6QHnRDgih#}`w85#dhgyAX+T(nh+bNW`&<5GhU=CQtL9Nn0a+swHjPs1u@ zao}8-6FQI%@0A1OoEgm+&)chQo~E51&$xVti<7h=4R!)B~5RPV5ZsE;S#7;GWA zGLF2F(y>r0JR^>t#6OmZF?Ju^D{f4D_MlCpAZ(wL>d2joFk`+=!II*FL9mNiuV85tNSn|LyLs{VX6TK^QF3!d~l>-uurwN6DJc zb(yb;4QB6JfuyOwftwajxw86E6ObF}fEef*Q1>d$A>LmY=cP5jE3ks9jsJJyquJ!& z24b2ctWu@tOh;#Txj=@(6+5+hgrmEkXU|{r_PK@kr>ClkM^wpIrR{HOK!$Q9O#=EG z*_XU5uKySgI8jL-Nb^<}9T3JQ(+j-f_6Ef28~^LW`$4#)^s|oo{!bQ&;58yHXA1~P-2~a#}|ESyM zLJ7WI)ols233cIHZ-N_kiLDT-OY|@qpLAjk7cuZ+-&(GQGQGkJL=hW@j_Ijj(Xx!B*ZBCOnL#_>%$h!x$hPBG*4 z(OXQ)La@X1b;I|6FBH(@H7OPoyrP4AqO3_)2?MQyrj|NyxT~fG(tii3zG{YmP{R3V z2|A|C`tuvu6|NQXxR%jq53nZ*aJGIwrB)-9^lNlI4C8oR%jDR(50hXP3?z(vc5Qw2 zx6#8c?Z-j)Q|PD`0TgQCxE`s}7*TwGds*a}NI552D3H-J{G%j!DYXF{l4~a}0)p;$ z2v=WJD0R}0)B-N40vNr^w;_YVB-8&ng^FCXv*n-Z>qJ=882+_D=I+9nZCAc^>rGSn z9~gI2W7LOB#hJM1)sVob-UV2*V$&+_AZzPz40kB?CeT2ofyTuKsS_8@S*xj>K(>)g=9YH~>(ty>iaO- zU-aZpqZg11rSka0=pnIq@VxqBZC$(UcXeP{fSp07t$w8N&yD1q^sk49l=Y8FzF}S* zcI3z539=7#2;8UT_Y2+N2Up^GrH}cl^r!+%n({yP^dAL059#ZW1#IMltX$hqnWwIE z#DAA3VX6iCT7`kT^84EE{#TVr=bZBJu+Ikx1>OsO9imfwS&IQls7vhxsOi(|=fQE3 zHmm&a!`=b;y`h0Zo?oAzy5<}ixpgYTG;xaoLstx-|Vs*cIckUVHH~n~a*4*R^{;yvG zHdwzHM{S!NJCA6X$zIkuG8sQZe-EVGqF{IC4SDAXtB7-Z!a)o7Q2P>rxcw6tVuIz|Dz)%}vu3{UzHUnUJ?V?dvM)TlbWY z;9BftxoB+_bZ6~f)X9GhMIpMD^ul^3So7JQ4csFu9Bjp1>J0|!(SGUa_%d67!lPqn zF&cSf*2{sYBL^lK=q$6Dd-$X{zM6REAOR7&d%#uJxivMWntcGb#ZH5pmaCv9{uMng zM+r>m0(1n@tBAeq$W8Y-EW~)M?#%!LHWlys<=(Hldj&Pp2lt1*)!>#;T*q6mwf`W> zdcXgr%KZfxsxO6ofWcIvpJ5pf@(Lc72(s49F#kiJQ9{++sB&!_cbm_roggf(4gTo(nU+rV0OVp7o=K zGX*r6`ObgG$@Ir>Dl)gjCKk2aTRgqrh%{0$H4pSZoH-99rmPZvXZ&7&D=I9VuXqhy zmpae>mwDfyFY?mC?B^!^@gmpel|#<>FhXVWdc0a{oPUVoAF7yg2u^^2Ahhs8Xy$qS zy#Gi>W1325Vv2H+lU%jWoi{Db80s_rF^4$SN9{C4&MPF{qfU5@u}~uYqiHd=i#C;| z2)aPA>GsoscgK4AR5`ih!h14WT1x_tHWKo)S0n717A04oJSFMYKr>`Sgq?Lv+SwTH zA1PLFL7QKb6@?+zN0k@f-{w9}3(zLkXw;zWDQOEKV#$f+8>;w{x0Uemu}WZjM|Z%* z1j2R9M%Kec6mP<&tY{~h4PUl2*bTIg%Pwfc!kj|Vl$jA+ zgXsp#`l1vH_X|-T`&{DYc+B8HiIS+4m9R#V?>ox#PEDFvm|P%E@seQ{?d}6B1wL>d|=b_DRNBP zf;nG$1bp1|C843+T)uco(hvc|-=#XnSAMd>X? z>sxM2PIReFtok6lg;+g&H9VA3J+OIC*{yY2rP_V<>RV1;PM>^-Q##>;@2onJV$J&5aEE$Tr1;DCpGtuhPJXX)PpE)NCZ z(BlWkB}VD?kYGkP3nlRTm$m)!(Eor$JuFT-J|XpkG1+?|8*6GvLj5){%K97Zk0h1J z3J;a@$SRxc#l~(xu5?stEoXwN>4sPUNHOncx%~L2ucqO83e}v`Vs=z2gN-zs{9g9R z5-0oyXUzxURHG;w#Zy_*vYGof+~R*70dqYb|HSsVsMjy3Uo|X zt)VV6x0iCyu?$n!b5@BD0F1K#NzY1#x%W@HPgK1PuD@N`TPzN6 zGe1og6^~*hdsa}xMKoM(gy^#3`I?PI4DXBR*cTO&H<9Xy7MmH26ZpIw?dSCXPxB_^5HtP}!^}@MA zP}4ua{f-(?wDDf#$(!DSG?`rM&aO=CXFkxBA}jV2_|oF*kJiOLWFCBgNW%NywWeWw zcuxo(>4{IrbwjZAG3w4ZL6>_yw_~+>CONVbgsYh_TOHb z?D$nW+*E6N77$r^i7s%Lf-9NCxTyh)6cx|yeft9`h)MWGaGWP2v^f5>~wpgfxG(Ko>Z!8N$M z1b26LcLRl&q!#z$MfjdS;_%1MZO?}iaiXg zc7*ujO+A}0#ULT_pT7(Flf5fi_!c`qfSzivLVp51rP=cCOu`JWu&g53FPk~S?E-RV z_F0EPv19$F;38q>bAFP2k=Ug=-(n-lFuU-8^jeC#cmX@W+PIdgD^9faB;&;f*xmnR;*yf zB$(fU*c0WkUcY`>Z1w{H&wp>r5r}}rj?AzKgqw=V#AL%oKf-HL*B{_f^Gtc zttl~#y$#%%De`dd8ri-GG;b9}iZl|oCZxCA+Sw-bzUCN@HwKqCZ#cO+3^B9V?+#z> z`x$>-_-%i%jQ~9b$=*gtd@s)x+X@U}ynRvR&34(ujTXGoPog}0na*-+oZhcRk8w?m zKg0mef=YMh3~0ZA#q8On18?!vz}_jp-6;b6d_PUh1>7pO4BQKGx!$GJNV5e1 zTcdVITm$lX*wXXZ)6>)LZ63BS<5b!_^t);po=DRq*D9Jf|EqMW^Yp-1h97-90hj=^ z4fbCp@ssiMA$vn)0+qTA&30KjJ@-8%3ZSJ7z%OQoodvy{=u8RxJ5WqGZD25n@HTe@ zjEwn=@*LHUl0id?my2c|4+hF`#L3K8y}Jw19sg?bhcBOcf1nfc3xGYS2FH*20Q6a> z7e;F2v`3VI`bqvb5Cj6RgRPB_6KLn5^=9rJ+JNU)M~=2`)dsxbX_R7(zFMtvPy}Xf z&F5p1QX~LjzJQAY64`y)!+l%6^DdWsLfUn&2g#xGU=%3W7wCVXWthe|Vc(z|60!iF zXDozh-(Wfg4|t(}mHmH@_~_AjpR#rgj9NJT3ois@^J-h(^sM9jnE3AxeYz%dzZK9F2IzINYX&@3^l3exefs72KY5P47Yp%*=i#kTD}2r{yF{k(i;(hdXs~H0e5~3*QYnW74lytiNG`|s`-oG zsvd>=4UiuMrrTsm%USI6nPWWwX6R_oX@6LYl0MwHg-z?ThMK8N|CVHOU0RYA8-EV?Kz<7S?f35{XBCP!W z*7`hwU(y16E4V5T+qVj@R+Qh4G%S@n5bH5ML$C zRSbR#<~v^?L>72FaQs_h|Bn(8PXB2Ve`~>QI%Dv?-}%4;%(4IXuSlTfh&UBH#k)e8 z)b`&fsDG51VW_X9dS)jerzY+nck!l&JEEG0$GIvoX>inw=4N^`GyqrYuYPt{IFU~- z+AhZb$GqQ6{6Cbv9nr<_fKPbyFwL#NUw;Wz|B$KdiqigfmH`+~>j3u~xQlca1iUjH z$%Jr;J&Ns6n53-P8|3hx-(T3_@IMB%Z<+Uxvw1^MffVBbo><(MJzueErk`)`Qf>AB zp@O5QmlqSpmVW%#I}J$#;;xa8r+9O)Z?2jPz?}WtnbP4f3@QCbCjWsz0&>{^B>A_I z00Dpf--NTH#9i}0oiN}NCIP5gwDTLSDaew;>VJXQuh>yPbHcN#7qxTS=}XUz;3}7iTF`W@cr(;BR+i zBD4?`Td4aUr*(1vM5Q7u7~jk1tG3_go5WAIA{~2ulEmIsF*^lO0qBmzTJb)zCc^NF z_dCarJ*>_q^E!2^sUysXYA8VOJHGp!8oSoQ=2t^bMOz}pjuy>S7EF+#+G#;;nCCnw zcF{=D-woEHLH(AL>j5L%JP)4VPV~ynvHIKP8LzMk@g_QfFpEVU$A*90B(Y4luxl6_KU^kGFk&9r%wyUYf6tJ40>p&WK^9~mVO9KHY<>FMP7a6m@KyH(g>K{ zh$y9R(w!F+!C{HRG`$qzOo?tD z!B7a{huJS811GkdS|Aun@&(z;;mR*Z+38PF}c` zg!ht49cM1a>>bL4E5V_&+|r{@#Ui?SJ!Dbef|oXu%ToBHO&a>WVxc8u|Asjm?t#@! zB+~$9S!Uo!W%wJYCrK7`6Ufc3Hd#+FEU(<3ryeSV?X42x4v;qrW znVe2#x=Psw>ReIufyufi5m>H4tv0;Qmf2#hJkbqRi|1`9x&H+?jGmBVy=!eLZ~ zaD^<1L}x&L4v)xkZb#PVr#rwgPv>@2-$WohwC9@i!uvH=N7j71=mHI%Aug?{JJcAL zJY-S)W7Y;arDii9BYxqoBp8;fl67Q{_#W z$wA>y$IG=r7|n}%15G~Yb-rW%G;H^rE22gc*s06n^5hYz>ABblcyGPjEb||y^r7)w zlo0dR5$SHDNoMbqqKa*7ba3sl(%B~4R`-|(Q}+zj47^%6oIJCKSD_BFf%scS2NfF( zwcq1dLxZ_~n^v~Y;2EfT7mZK#HHCHG)VqJYBWDdzro ztP@lRjG5Obxp^{8M$88<7cX=b9CNV|%9+4D)OG#ncHM~e)6lH4`^3tvFk>ZZ&LVXlHO zd4#;kqNmK1=hU$jQO+cGc1g=H*Kg;jZ5{v{$jlVrJnGHKF&H^I&kKuOYT&GuIZPF^ zXWu8Ys6%*%M+3W&B)%FPKRL>W3PetDQZfw&MjFklxmq8u2dsuT!KAno$0ES8$9JGf zyPZQJe}zl=IHZAh;h?8Q--Q;#MTs?P_41wV41icc4=)I@8g=i^+p*;jUiFP4Ls8>% zQtDxU;#I$?gn9QX>ZeDFReE2gtV&OQkXy?*r^dSLi&DJV93q8VYmsBj;c2@roUz<6 zzGcMe&P1WT!WUl|F3Q@hhQMqAki+2W8%y7rCDnp}#_fhl(0 z$K9t+(VB&x$y1o@y@kN+y3z<=0cv2ib_oT@QvnVGSQ2rP>2e)eWkKVW_O&rp8#XxK zohU2DoR|W!UoL;HewxBmjt8ql|4BE zloBk5d^yS49S|KV4iGbT#m4c5`Yt1|NPQs5Jz7AhD`M-X(^)=cWQR`GuN1UQ!A>=- z%WLs3i~64;SJ)=>qK5=K+27fXt_EK3=n^l$UCaq)g{PI_pI_hDC2BoZafh+raN@dY^E1EwnnMjl8|R_Vc|Y<>KQH^ zjte@VmF~c0uJXCr&v)G@moIg1(^jN}JuEi-q?AbB1in_Azt;li9dz#+!{V+M&#%Z= z^1B_xg-vD6?`qWnU-j4U$4HAE<-Fe)eB++1{4rTQx!RX%{@bDLI=srom6qPwDBLY6 zu4SsRWHFPw8W;`45%KP#+hqGvZahx-kQqALREnc^57*P`nd?e>Q$NIe3#^6n@jte#)@48E-P9C}+ddjW7m0hUY z<{RDcT3V&SJXR-@S+<(&s5#-+n1I@jG3HD$`yyrgoWk2I4Ie9tj$Q9`aYs%M`H|>! z@Vs^xUx!EtMM^IWq4rKL>3rFEF;vUPT> zrTLO>Hb21J;mTLCwO;kI7PcShMYdF=hlC>!Q(S}%?qYnc^SaA+=2wmJa>>-lM+@9{R1%8~ zn(IHG$$R?d8l5V_P4=9Otx_Xyy$oLUM(38PQOkeyF>q#-X=*;*F1XApT6bwYdYx|- z>UOJTbN7xD!7f#`clH%FR{2c+>Z?Q4yn|s2Jg>8{F&*EFAJ<%u&X2R{Vf$VzZwyB38GRTh)>0Iq!`J z7c?Y}@ak#I+VGG|e5&&HZPhqypuJBn8A529<&Qo47o_?*o&LUGWtMVVm$#ype7~ggRB zWva=BjtfT6kj4bkmxP9XoJ5?Z!R~>x3IHl}?`*zzjQ^q><_adwj~I1@!P@pgzCOu4 z%~8ih7R%2uoAt1-JdT_4aK19Ywcsm{C)_j+z1O6r0nT;gVjmgmSa;C{mqxpq*}b6B z*{keN_~laC3Cn$D_*5MJkhG37aO45Q*si>x?)9NXVgd0))orc*+j7Ho`^v_xO{98- zS1IS^PZkBs9b^xJH5`eQ_!@viHE_4#jP|{HLs-BY(;fM-r;&}-INdy9Zju@!IDfCI zyj%dgP^_OwzQLNLD$TH4rnfw=Ql;n7aC6OwNC>JL#dmhnb>f}Ws1Iomn7w9L_%eQ? z3N3o6UlA9efvO$+?AQBv5V_cO=8z2pTD4lROsei7Jtx*RoLVZLLupr1TBQB_)8U)( z-QcQ4YN5}CJ*@P_B$XRBo>J~N%*d|oJ*u$N$#aE)N7&BJEqJz#5LIIo9X*I#<^=1k zy87r>SK}%qfJZl+cU=26InKN2+o8n)MPRfu^6EOB5VxGz5@Owvw0~tB`~&12j3}zT zc()J{XVV`WA{H4DfBw0?aOWHU5FQj%EwFJj`-{hd(H&x`$H%5^FL2NB@;of>{u`cxcJEiDS zn@gvThxDx ze?;&%)KrBoI-w#=`$d{h6S!YNjC_d1s#z{W#6MldiKGfP+ODbl9q*?*w1&?9%QJbJl*6{)!Y5O!V*u*FzU zMbru!{#2WRn$kuM`R^53o}wH48HG<#8;Q3FERe=|QA*Y`@M(YL_VHd{M0CXgA0_Xl?giL7 z7U?duIrzJ(INNDEum;37UX~oYAA`$$L8v}4#x_4J2=df`t(W*1c5ZAYzxXjE2mk`H zO8etU)(Vvyane?GUNF$IS;b|&pzBzb95!ybr~k69|HCblio?R|DYJ=K+I$x96_mJi z&WGA$5xkf-gmLvKvhk;#>WnmT1k;?>htJaXlTp}`qtyFTv#?rqku`oJICpFQRI7I? zPUVCTLx1FiDsa&tpU|tO-Va_p@(eroq+6+&4hG~+3ljOx-fKHM3sbAnID0ici%PCa zG=^?0L0uGLNft@`>9>OSvS z3p$v46*>aLFdPWZ6JP9a9FrV0SZ7UJ?;M!k?_7#C9g%6U`98zQo%C{^9!#jX%%|Lp z5V~9UzQKMG?yoKZt{vzp)Z!TJ_0u>juv9`$SKo`=R*PXY1>9j}r<|FFQJChqb)0On z2L~dU!ilqeU*nJKHG!i6nt(-cLVmNb%V^=827%$TM_`&AJ990)NB`O^e5wkFm;^my zj;FZ)&ONqY0~frj?(+HBHM0r{TY`iPNfQOd4q0r9jnnXP%t#Lgu9*$1sM5 zq#4-NE>0X;^j*jBT)xupIoY#rkYzA-9I=snxxAbl=U%*j)YOyKz-ifttkQmmqX~lF zlb6Q0S7hz94H8U@+mQAOSqmH+KJ_ip{6rVt5m%OOg#}gR&f0;Rfj*QoUvq^E=c%43 z%Rh;@Vr?w9lli^nx-_&7{L@5@#JmMD!S0zqLs2{9u ziPYk<(l?8y1)_qReIql1=R;|emED>dN|-vSRhHpD7MPRhSwO_7_qwn=_>UbAs1&n; z>TGfluro()o@p>M2Ilhv7~?^3+_RD>rdy*RVxB3)ZDRijW9P~$^OD_Dx`WJpPb!=S zjVFgWDqwNc-8kOtnL0b=sFnBgIwExMtIe6tuj1khHqUgk_Mr2}KwMjMDT-lYadBxn zR%Yo*vFT2hVd-Q>JtkHfR%K=7q3YD{)Zb@l2U(PrCsE*->Kt0pRj|yXg|dk@Ad%5U zez&fBowVI>rgU?DCxoB4ZOFL(rTJJtw`5UK_j0C(>9+KU0ycz7IW%L-nei z%Kvf2QdjtJM%F1nh}c;W0=6?Q-i|jROGtwArBpXzf> zaM%41k8X8yH>XSMuP9cWgB|oFvI%77CZX}o&^~)2u@sxDU1djHcJ7*BqM}{;_&Xoa zvQYDM>8^v=-Lld2Hmxz~z@Vj3*VKX^XcTaxSw06!24A9mz3o4+(4m|EQ{!REAnz3+ zz^E}+H~%4?ZdQKCEi8;!Vd02IQka3A_l1wGlHbcV4ucYchVHqZ zfL@t2gr4bUgnaBpA#6KlaRM_Azok6V zUW~%E7$TYQ^%KNw($?QQ?sP_aLM4*JZ*RmP-vtC+~;dk4kKE1zN(JoSgQfoMPkV1=b zXmCzRFY1K}K<`Ltd2b{CK0RtZHX|-ntfa-!29nKGa*Yd~HWFfKahLrQ-MES)`|=lU zKMvK8$2T#7>Jof7`7Jf@lZPiHM#ma`ac#F&d%wW|a(V@KJI@RSUMJ^1ttop|zKKKPC9S??XS`jVnZC)B+^qg>?ZHsw z=Z+opf=`i4JJTN`*m8vv(vsV;5wp`aw^PWi)FUH9x1mx8(ke-X)(AW9v z6DaT8^Om;N$7b>6i#U-}UpN4->~R-%Lz;`*+O}+-XqsB<9Pa+=HKiAQV-k`rgxw1# zJYs*yi{Ne?C%+k!XJv4Wl2S_XTGOHKRJCyQSP}K;hJC<^0#(v>^bHA9D$VGVC6SU7 zwv|&;y1Y-e?*;>63z2oNFg&BD+U=%tw-);Y(x5yp6rUz}ztp4oRM;=tZ)WWAEbQe4 zTjdZIG%`0#iW?OIRf@;xTO79OJK?;Dv@+4#(PCP)J%csvPhIsFlL07{Jp4>AreFa- zqlN2!??ei0+_q$$&y9`UPx7wR`P4!(wW^Zev@)Ff!l0pypS68VBPWj$!Tbagx(QuN zu$a*gS9u(!vN?4hOielVoT{{^!^_!4n}F@j4_T^+Z~cuQ5Yd2-wgwTZ@jN?WKdQ^B zw~xS!KfZ1V=fwC+J*StZ9&;ImGSy7V>9sm&^zbEb#aA~!qXH^c-DeZ+vm*A=5X0Bt zl{F=I2%B#z7j30hvV3qe$_x$~}s( zw}_`y2_EI#K5kxb&DaYP_Neg!0$?Exu*?O_chJq7zl-`tb9}7dIqcvC<)jr5z)OEI zZLX@Zle)-Mr_nN1tov59^~78cXgpc}0#*vb*8}Z(L_EoR99RhoIf? z6|QRz%k0#J8!~qEG|J_Xj)jSyktxN-rqhM$kSHy`sUZ7wWtKV%8#C0L5P%^{v{~^E z>p4{|3GwI%Gxx+%DCkU&Hni=dP`c{`B}!cAd^wIFv7J*tHVb-RSGO)*GJI;JN;|JG z?E73x;L>Nj`N`xLe}0R`^M)K@zv&m6Cv?ib{rmT>{CT{V9}f&pl~+rZ+8jPzYzy6F za=fsPge>>aohL%hx9iy~gym;E@6gC+4ruLpLZOnT-sF~43Y^opDx@xfJt?M9KuT4Y zrIagwj8HsG_5yR-U!zfb;>oD1kgApe^znPcsbS4j`%Sx!^E2i2dUANRKO@7VXYp_U zlnm+ihOyg%s^#*I`}FV{j{sHOPDIcFtX>>14-#Z;Ewt)8rMc+22jCs*6&IkWiKmO zOYo=7Jkg&GI53m_D>tErH7$h*V7&<_W=#&t%Zd2)dUVpH5&o6^cxyr2y zZ(HqSF%IG$f3X!EmnW<^p6zQmyX#5>Vp)|@lN>y*XVi7zahf)*baUi4u_Rh$;}Dr_ zOv9k6v?ERi9!{u_Ru2liRIRO+Q2ew;bh9IZ2=yhUO1Q4VTc^EG|01ou!1OQ^6Cw89 z66z}zc=MY#)CUXLO6|{~I_+6znQ< zwnqEVpQK&oqf&q{&o+@}Y#xa12klI?XbJ|n^T7!Ag*Qiu_XL9nNY@-t+txOBj2j^y zPnwBA41#V+!_Nj;(H-!qQwx@*x2j)t+E04xAz;(ktv6$!>MT%1}+_B zElJ9WhxZ!0h~RqzO32bt___yQ4V%xu_O6Czm^D(9C@jpLC0(TI+@fP<(O@2FIr(%k zmpyfw1=w_JcNRf3+BQEnw}}Vgxt)C+XUsG)Bw()~Ct1=?@|}t|o8`ga%NC<2Y=?ji zP#)@zpGzPDiI?iZe2D2Nv)B767U{!t_H~)tV&{mKv9I*jsI*_{>)cd0&}oyLs$_m5 z9Y3v&JV|)=&^q*psX$!Pc4)8kfNU5iGAQVA2V-w>Q%sGySi*+-eXlAK@l8$oxHvGs zqn}E##_tsN@PsDp5cxddp_wA&W@PJv&jl@g>mhNkxZ-(`CXYUez9Q-*U{sRr)=e8> zfyORFLtEIb(w}PCNq#oWSP7?1zpL%Qe=VzN0<4!wl1B8$b5cUL;-JkOmZiQ)34@Q2 z;rOMzFV@6`1Li&oVb(cG0cc4 zunQm8s@$B$Y|$K9?Bbs<>n!>rqot#JQ}MLcz0mXdW(KNqp0tgWw>Y}=kQzVE_N2W zJ_(OC%zqf>9a2#hubXcZR>8B>Up*CqLyK@bx{3|f8lNXH$}43lx5%r3j`Ltg0T|G`9i?ZTKGenh#nu(_Ji^d~0zFvz&0yJdkdTKQU zZ141(IpZeZ#Qi)UTILqg@7h)#Nedsb`s$ImiXGjs+94jsk$QrkVzTu=J84EhMnAnk zV4`b8R1}UmCDGf@jxpkhQo@!^Sax%mfkbw^ui<4R&<+ZXM!kk!b-&P8s&I_tjde0(J8|E z!;Q_H)1%^zB)+Q;mY{Brldcs6|2dpcK-YDX@Ug>!wJN zKTwQS#ulkfqR`vpJuEkr`&#h%^3+1_9=Px60=2-apg&sWfNd~D0+oV}kRYHBr(q}X zC@p9h0(ZEoCJaK9OTvkY^qO~;XG`fw)oC+|6~atiPE0s?kcVT~xTLX|Ba_UY(Tv3u;Hp-p3yYf)UeGWCVvxt++HDl_CW_-tOuUsPVt7tW1KfY0S` z_e$i9a+$@=o+zc~76>RB1qUV2@4mpIk({wUyN1u z>$ivHWEHaX2vlJ{G&9VxOy7-@Z)&57$Jd#PPh;&=H-1822B-vrH%kj|xc;ucnM!n( z#rEL#hHid;`vQJ9Gbf-5c0O$EQ%|>}H7_YFIfg?8xFpH2 z;;%#tC)2h?_3KhzLRj)+3&tp!moABywxqEI%%5l$!d6e)o2~{UfnwH4oOP00YGa`y zKY}4%2k`1a7H8*W8Ak66fye4UCLtDuxoJI3?)@wHTFhRdf@6Uzn^z2%i}EM^GdWMhl`Ndg zwRRP95At!iFef%GJ$<=vgD)}v-QyZ zQ6g!;t7!7z3erC;Y!+CWRBKnqjk}qZw);Vim|XHGsG_E|@AxMxGz zsrp&R&{5rXbNQ`4k%>V@NAliGhkPi6F3ffavQ1owRUVy^eAlYR(poVs7P;dDKB6t5 z@KOp!JcaxN-e!-q&h<-{gLi8=qbq%x98~$`6rzRoIB@A;Z`x`1p`N)^;sqD zPx=d1w!*mj?1%YKyv)NVXneMeiVjC#Eyq9PX}78#2ZI$L_O%-L2G7}Hq^DRr8|jsU z^LR$rHi#ya^g5*sgs9e4rSv$)RDE8CB4@Xunsf>$RZT}<>?u9#$ z!{Y-QtVycYC96Y-0}cmV8Dr<>=2e&yX@CKPbX&|v!@`)D4P!DtY|m)xrn%+Mo#W$gL>E4i%C^04Fbd6iL^oq5Mn zOD?cz#W?M4j|se%YPSqKrbm*qyPDsK#>&6aSIyO7ntl3nbDeM``QCyZ3uFICMI=)p zHQu-T5K3Jg`=q4z9ha$FcTMkrE=QjX&V0h>Z^&A!`LiQ;>6WoVJ=hp877(GN9?{D6 z7=^4I!5;A6!)C00d0lgMsAVdwCek_1&fl9*w_I2b9lF*Z>E1R;^&~cFO|8z=(aCR~ z9|#o{=2p{9szn{~UKhU!N+ zx-L}@6;Qp)lUl)&6+uYD2Z}eST|GoAaoJlh6`_v3!8kPi zMJ5~sICS$9!;Qc<=5{Wa-%fynktEzX!Hqwbb!3We>CfcCJ{&S_wQBxgp9E@Km&`VV z3Okf`vC*9ex)BERp)>h;aDsv(`&JmVL$076fsQSxY5f4J+MbhhA^|_H{EM=#_&m1^ z_Y!ntM@xCeFZ01!k4qii1DLC;xj~*^@k<6)U|Ht3CQk`qjX~p#-Muh#yzK#Av?2NT{-l8<+16NQZ;dfskl2OF;AxUql? z-OM0+ab?O|J8LEj_FSxwpY=w z0IyrWj_KDmZztEjcwzS2=AFJ5XllOb7%G@c(A`O|ju@}!pgJpwTYr$9O9$!>IoI85 z6Tb#m^P=vi1;WLw^ix5Vk`t;B%y}f8>;7+#Dg4_xz4DOMaj?@kr+aiGZOaCaO7gYn zey`~0RCJ2Kd?q7bw-CYOJj6z=h^|Ac&tK|q(5i3WDaQ7AA5-=fV;z56GzvaNGuD2| zXeo7YzBnoI>Gbev>2ZnBvT&MzkO|*`;q)vhYfGRj265N1&M zSdV1j--?^!bo3l2P&Qi9w@sgh7>=^F5NdWS?hTUm>AtaUK*_o{m(h9mS?;5m+kzdl z5Bfz{ab=w~+!Z{y=~KV7x&b5K?81d)_o%f~CrVJFu3g#muO&*!uz7EhNX)H5tQLld zXb0uyy@H5F5WJ0ae zqA9&R<${+OF&giW+SpbT#<0u$T1+0WH(;_VHc4L>dVQESQqANMw$WYPe6c!J zA6sV9GUrfk^p`zRZv(kU>^(|e96crdddHiUb*OnY5E}!%<&z5L5rwJ3Wf|YfZ0o;W zCAQmCwyi1ioUr|g6*`=6Y>ba{4Yp=BEC@-6ddQRaOV!@=Qcga}HAsFottF&qbUZ7| zA4zEBraYN&Z5cO!68;T!lE{id4BgoSV)H zHtY6TYx6tmXOCz`*8n6T39`?DUecOe5<@dj$;DTPTv^ZSKJvG2XAv?|!alxH>#$V0 zoBc^p&v_FOi&~hiAw5(j`D(bp8^RFzN11~|!U}l`tFZ5m>qA?^K*gUjvV>tvdSZMo zW}P@B`W%p5)^?ArtSXvdiKmJ9mE6X^G^_rC{_PXx_z&BnnVZ{8mq2uudBWx+;a zA%g{V`}__TK{H=J^g(UGkQZL{)}HX%Xc%x-S-OU4EjTZ(^>rN}=M>MWSXJca!bT3I@0pS1LH~JAdE#-m z83r50FZ{4f77O>)G%44ZmsYBgy-u6JLdnEr~Dl z-mPLVM7a+FZ|XKA^Z~V^ZI|sUo%3GW!#kxd7(|9=9=a@I26+M%O(4%)E0NDg}tn z1eLx};=UiPBCQJzOa^qjC|aT<97!lRtd#b5PNa7Ts*l?loz;NW4=~Zu-V^~tXGETN zGHI~KYbWC4p~SdLEpTTHiF64OT@>80m0PO7tO?frV$k^xrmY4Vr}7WD{?vUe_t=;a zFyq7kRLD;)pFRGpM_gK4&USN<^SIOBm?rs38tNe^wJ-jFucA4BDE$PJ(ew_->9jM+ zh(9mzvcq7F_xg9?GP1T@Tx$Cthd$?EmD`ji+#vZBBByljz-vY7Qsyewox~0GR4)`s zZN5GxlJc6$ud28=xdf~?NfJDf1%}f>(xZRG>AUvyUxS5cg7=uCE8P)H+dlc>nlUP& zZk~75l$`69Hyof{elC-TUb(+O*iHz}R_?OJ)whZ0_D!OW=sLd{;vgm9p}(y{aM;v% z!0##3^4Hv8Mr!)Xx>--U(W7}=L(6puw>e)f`1IooM;hdSq)-x_1x%H@_3 z-g?-lPyluJ-Tv}>Qd}CRq#YMBG&u}QRWGB6f!&@wD!Ev`UOD_2uOi#f8>{k%>sNFx zq&A@?A`XpD!E8R8GO%J0Tu2HPpU7LUsELV9Gp%xHb`qfyTka`1e}z2#bi`VEX4`6Y zjaVY0rTu6~l25o%`Awux4$t5i&T^JuyyJqY&z~)Ny>61~$sYH*`;KO0!4zw$ZVAD6 zRYdJro4LEOezlNpY~hDN_qb2L-n#W&??VLUi{DC`Uf{`?z zn)r>hvR;<9fjQAgp)^(kE^mAw-9736Qy4TMcp=jTW&9Ep(#N`TfZ+>ipO5p}u+QGT z0Bwele)NrRJfElyX^y?8QBL4_x$2Aj4<1`lQHW5X@U!`$M!l96EgY}a^7p$olJor_ zWXd0X*>T&GF`#~*K)ejQ9lX~mVO#v7lK!mrp-a1P*D+a~xwtLs-eS@g4Kg$`lB;H| z>N7)H05q_Z^(MU*4k}7B6I~Xj5>;iW)-02Q<M@fqXWVB2-%6ohnJIJAxq z6syytu*G3^;*&qNsn^Gln}e>ZrZ}u*ysAr{LXrRl)7_vhitZfw9I&Z=lR+~GwC*o|DkA^5b^Gk&c$=bnS;pI zZnwb5$OC<^!)R@-rmt>CAfa%Rv!^@FT77Hml;nIZup%nmQRybNuU*s+`Ko29(fNig zl}c%YR!DExYm&8*4a^!h+$ItuSbqm1H0!eCvs)h8o?-7*5PS!BkVvygq!O5D=dDJ= zW*7>H;xN5rC-F!Z)W3ek(PV>%4b3r8dAY@rXhA-3kinKCoC)rX_!x=cCrXaruDe>m znI1koaC9MI)B3GUmLei(zNZ=!5UGUK7ZxEkXB-43S$#0K zYAJIlWoG8T?M!m_&@r{P>%ylLrV226M!1=Lv?o>sk)L!M(5qmCYap|3-Qu$qld#?*J3EePOiJL=KVc zcFSIyHHYc-`-+tt$Ox#e#(a6Jz>D7NVlrQD5$ax z)J8vTOAS?8AYkRYSLKM5vLA;S*VN7`Kk5ztx+N9Ic`|`PbCn1gCbXGEEQj=?p;K@P ze$TgcK*jXr>XYs8HX|&TOXjXae3sa)2Yd$aTmDZjqeKMazyt# zh~P@pTfbe0v<0uwemqA3??zS%4h_12mT6by>rJFtRBE)JuTg<|=dTMIG6ggf1G`9! z?+~>juk%~B+bZoY&G3p|5TVZ*ty+hk7{IXYn6D10jb<1mgG^VUA^1eSp%nxxPVh6N z-0y|{uQ|J9NWw1%2fJTltl6O@KN${N;f<|6o) zC5qzy-U>`gInRcnKabBRh(}GLJP@#h+}ipen0bhoJdw5Y){2gUs+T68KHIWWyuvaJ z&TYmzkIf3NyO|157MUAn0WC24zJeC#ycckfBDE@>9NrwjWe zH*_KTZ2pPAukQE|*pr)pge8-jc&UL&B10DB#i5w^49@f;L-ZjuORN$649g$291d+m zlbWp*sCZyB`KZSM+GqNegzCOa;R0?2-~OPFRZuSfRJL;d2R0Mj&HNuBZCAC z^O|^{Vw~fzlu#qobTTVXF(2;S`fRu%A@RrYIt&!FS%Gb}!-KEqwt!DJ7^;ZcUx0Xi z3dm+Ar6aUnB7AnB{N4?p7oiRdXqgRIFS`1>)fR9PvBcpK(+9>PeMJN|8933j^;yA3 zK?Y)1laJZ!cbNFr1>p(}0?`lO&<=;raI|>+Z;gy9?ItY}|LlYJF*^BdCg`4J$KUDB z=91(G$am*b;CEWkpzQGR8;iJIlW}3CiMIxt3}>HjmN4X8Uwg4UJs|^|&02M?Z!gu& zBsd`szkc0(Y*f18#C809(l)w~Qj020T#)UzVfF!y)1_7%$Km*rvQI8O@XvwrXX0AU zaw~R}q`rc4Bg;g7!kLtP%f>>;F5^7z z&V7%!H{lEb1T3)5R(1;^@v~#|`OeG1A(<%0qr#W?3foxA@k)pygk~=IKN@VMd z#?y0O3DQI*YIY&X@5%>9unMu;!J}xa(ojWCpKRGPTMg<1oEis&W|kI=AKocQ z=Ze*QWB*rYXBrPx_XluIlr?11SjINUzAqzdc8{I1@3QaN*Ag?v&XdA0mV`9m6quVICDrY#JjN@pM*EsWK~sOG5n*>Io>g^UbWq!c@CP+;ho07yXRk74 zBpRS=r28$+81qqHdBkfA|1cNzsR5NKwf3DD{B~PKAx_Gk%K$sA$=TraVc@0OTNYeZ;XI6u@~O6? zL0?~qCC#f8sm@XZU;QuMPl4hxoB%MortHmY3;=?}zhRdv^r9Sc8Q|Oy) z#IA}hn^(p|4Gg7F*oX3#Jo-m{ejh@8n;0X%D*1k!5VHPCP*(-6<}wi_26h$mNr$z* z6&2K}?a3}|i|J044WMBkJ}Jws$Nc)$N<)GkL1f&Kla_<@rM)(s@5gAd3=O6zkXp2+ zWs%PWY@q650^~IB{=Eq{8!@YioQrd}=8s{Kl!)zMBs}jrEAxGo)?AmW+`nX#y#_Ze zkd&=pJRZm@(hwD2XJ10Q2V+2PW|=~2uxz~+&7wr+$`uSx8dAUvy2H5mUHLS_Z!3nA zZCbpJnN*8n&*6&%OGKx#dB&U|sAK6tfQ`mHRiP_^C8Dkj zeXpQRc4RS@)X$uH&M>7{0;^jULm#*$y#H5S&Di#n4DeQ&(=w?-%~koS_1BX2bB?S;=Yvkl2X_W3Wh$M2>oIYIv(N#F3EAN zPmbF}$Uyn(?ZnyaB>LG9)Df+{PR~2Z;%W++k^1va7e3_=YZs)*DkC7&&66Q)dS)52 zAly$u>0cK^{O(#XkRlRuv|m|rC+jA%G=uM_F-c0Ma}f4olr!}fUCPC*1#13x?>L~j zMe#s3Hd~DF^QvFkC&Z|P9~AV(z-&u_fe;`>{qQh_Jj=-)qfxrMP>&3xiIs@B-7z>Q-{?ftW_!9R1Lg&2Ce#~@D z)KMv8nUe+u^6k&emaB~!<&0E?c$cXB?(!!xyWsGNH$I^%+aHUrrl}bH2yfh<*7~f2 z=g?9q_L_X-v#A}{S;253GT7vgWe00<_imd{5r*hkm}Gd^_0q>&cJi)J|GnPC&F+(| zZJzh*$~!DW&*>%g2f*;<4ml&AxJn0gisjY#hmRLsTmN~<)W>N~Yaor)>qe9~zFRyw zj43xDwM>l)$|eFv^WMh3ED0brz4 zb{Slp(AWJrxRpHq7U(m==49rK%OCP&YbcpTkq5EWf6vPY{{>UkN9zm(pR#uXzUxbO z#2PvH?g|O16u~lgbjyt))0RD{jRxke(mjb~Cqa;dw=#w4ImbT%ay8#IT=IqZQFm4% zuDJC+WSA(A^}e5Ryl@!^P0wML9g96&YC(awL0*`S1}S|e~mkzGK?1UGDAOLmQEvzsr5%lt33t8U_t`}=5>5HOXIMc*c+57k)1@}2T``=?Ee2f8 zCVn?gtk>m2>3~gkd!d!KAp?7VyWSxEsrs2P62t%2P^sS>hHD<$%k%f0ffpzx1dvnR z6KWvV%DH*7K~-`#zahRpIM0~%&rGDjZ2Ts+~EXu%iy+aGBiTA5RndxjU>y- z{N~6(*yCU>Q1aq^qOA&B&sf%TaSrUKN;7q)mfiG76&38im&y$9{;QFbP*0g=|EFt# zmgUS9f16A^6F{3`k?9efqa`h%F5PnA4TN%5_EQ`!S1Wxi9sq-gU21d62-B&gq6P8@ z%Y53O7u&VHd;MmJx4j%7a|h}2Q_bV6sECAF9*}{O%wnR8HvAssTi;+u8*I3~%Fw9y zj8m5+-lGGGjAS9Q1&JYJs9lqH;_TK& zMgqEu$9LZ8+ckS$f}j~Rw=qPf)`}=(P2zbUNHaXm`_8HoTwbV^a8$~Zio%dM5>{{w z%9P*yO9wuZ9ZPgLJ z+cxK%^X9-^%wEbqs}QDBqxL@1r@M9UA`D|>lWE(y!pl3=sR@@Q>UF5bDtt{lWp2a1 zUzH`C6yp#MB@aICJn>?Vhy!JA7jE$+oC-t7p1E6uc`k_JOCYO~J*x&jLJ}%jd5*L7kdV>|QA(Za+&2z;DPw&D&*;Og zXiPZgG9w{gZYK@D_tkdj(@@p*t2N-6uJs22&{P(m)Ka%92X}*y)%s8NSK0YeiLK~p zE+72QaUajB^_AqU+}P0#)p96`0Os?+A98e0sfpYiWIo0Ee@sxuqC83NiZmB-mJpH7 zFbOO2|7t}nBe`3GfZ6j!wYBJcR{odjRF@Tt&=MP}Act=*HmmEq--^lIc&D$QXC$wp zMW0}FeFZPyE#fJP$y$qcx(eN?zYzmv7tZA? Date: Mon, 28 Jan 2019 10:22:21 +0100 Subject: [PATCH 123/125] CI: removing the yml GitLab CI file (useless w/ our Jenkins pipelines) Signed-off-by: Raphael Defosseux --- .gitlab-ci.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 0dc8d3051b..0000000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,17 +0,0 @@ -job1: - script: - - date - - pwd - - echo $OAI_TEST_CASE_GROUP - - echo $MACHINELIST - - echo $MACHINELISTGENERIC - - echo $RESULT_DIR - - echo $NRUNS_LTE_SOFTMODEM - - source oaienv - - rm -rf cmake_targets/autotests/log - - mkdir cmake_targets/autotests/log - - cd cmake_targets/autotests/v2 - - python main.py - - date - only: - - triggers From f7938a4b24ea9520fde3c5f33729e9cc881e67d4 Mon Sep 17 00:00:00 2001 From: Raphael Defosseux Date: Tue, 29 Jan 2019 09:55:21 +0100 Subject: [PATCH 124/125] Fixing L2-simulator for TDD environment Signed-off-by: Raphael Defosseux --- targets/RT/USER/lte-ue.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/targets/RT/USER/lte-ue.c b/targets/RT/USER/lte-ue.c index 482533c829..1fe1d4c06b 100644 --- a/targets/RT/USER/lte-ue.c +++ b/targets/RT/USER/lte-ue.c @@ -984,6 +984,10 @@ static void *UE_phy_stub_single_thread_rxn_txnp4(void *arg) { proc = &PHY_vars_UE_g[0][0]->proc.proc_rxtx[0]; phy_stub_ticking->num_single_thread[ue_thread_id] = -1; + if (rtd != NULL) { + UE = rtd->UE; + } + if(ue_thread_id == 0){ phy_stub_ticking->ticking_var = -1; proc->subframe_rx=proc->sub_frame_start; From dd63e5239cdbbe1a611985ed3cd12060fd5b9bde Mon Sep 17 00:00:00 2001 From: Raymond Knopp Date: Fri, 8 Feb 2019 15:14:39 +0100 Subject: [PATCH 125/125] minor change for CI with L2 emulator (NFAPI) --- openair1/SCHED/fapi_l1.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/openair1/SCHED/fapi_l1.c b/openair1/SCHED/fapi_l1.c index 0140e63746..a057b243b9 100644 --- a/openair1/SCHED/fapi_l1.c +++ b/openair1/SCHED/fapi_l1.c @@ -55,6 +55,8 @@ void handle_nfapi_dci_dl_pdu(PHY_VARS_eNB *eNB, LTE_eNB_PDCCH *pdcch_vars = &eNB->pdcch_vars[idx]; nfapi_dl_config_dci_dl_pdu *pdu = &dl_config_pdu->dci_dl_pdu; + if (nfapi_mode==2) return; + LOG_D(PHY,"Frame %d, Subframe %d: DCI processing - populating pdcch_vars->dci_alloc[%d] proc:subframe_tx:%d idx:%d pdcch_vars->num_dci:%d\n",frame,subframe, pdcch_vars->num_dci, proc->subframe_tx, idx, pdcch_vars->num_dci); // copy dci configuration into eNB structure @@ -73,6 +75,8 @@ void handle_nfapi_mpdcch_pdu(PHY_VARS_eNB *eNB, LTE_eNB_MPDCCH *mpdcch_vars = &eNB->mpdcch_vars[idx]; nfapi_dl_config_mpdcch_pdu *pdu = &dl_config_pdu->mpdcch_pdu; + if (nfapi_mode==2) return; + LOG_D(PHY,"Frame %d, Subframe %d: MDCI processing\n",proc->frame_tx,proc->subframe_tx); // copy dci configuration into eNB structure @@ -87,6 +91,8 @@ void handle_nfapi_hi_dci0_dci_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rx int idx = subframe&1; LTE_eNB_PDCCH *pdcch_vars = &eNB->pdcch_vars[idx]; + if (nfapi_mode==2) return; + //LOG_D(PHY,"%s() SFN/SF:%04d%d Before num_dci:%d\n", __FUNCTION__,frame,subframe,pdcch_vars->num_dci); // copy dci configuration in to eNB structure @@ -100,6 +106,8 @@ void handle_nfapi_hi_dci0_mpdcch_dci_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, { int idx = proc->subframe_tx&1; LTE_eNB_MPDCCH *pdcch_vars = &eNB->mpdcch_vars[idx]; + if (nfapi_mode==2) return; + // copy dci configuration in to eNB structure fill_mpdcch_dci0(eNB,proc,&pdcch_vars->mdci_alloc[pdcch_vars->num_dci], &hi_dci0_config_pdu->mpdcch_dci_pdu); } @@ -110,6 +118,8 @@ void handle_nfapi_hi_dci0_hi_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxt { LTE_eNB_PHICH *phich = &eNB->phich_vars[subframe&1]; + if (nfapi_mode==2) return; + // copy dci configuration in to eNB structure LOG_D(PHY,"Received HI PDU with value %d (rbstart %d,cshift %d)\n", hi_dci0_config_pdu->hi_pdu.hi_pdu_rel8.hi_value, @@ -130,6 +140,8 @@ void handle_nfapi_bch_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, { nfapi_dl_config_bch_pdu_rel8_t *rel8 = &dl_config_pdu->bch_pdu.bch_pdu_rel8; + if (nfapi_mode==2) return; + AssertFatal(rel8->length == 3, "BCH PDU has length %d != 3\n",rel8->length); //LOG_D(PHY,"bch_pdu: %x,%x,%x\n",sdu[0],sdu[1],sdu[2]); @@ -168,6 +180,8 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,int frame,int subframe,L1_rxtx_pro int UE_id; int harq_pid; + if (nfapi_mode==2) return; + UE_id = find_dlsch(rel8->rnti,eNB,SEARCH_EXIST_OR_FREE); if( (UE_id<0) || (UE_id>=NUMBER_OF_UE_MAX) ){ LOG_E(PHY,"illegal UE_id found!!! rnti %04x UE_id %d\n",rel8->rnti,UE_id); @@ -420,6 +434,8 @@ void handle_ulsch_harq_pdu( LTE_eNB_ULSCH_t *ulsch=eNB->ulsch[UE_id]; LTE_UL_eNB_HARQ_t *ulsch_harq; + if (nfapi_mode==2) return; + int harq_pid = rel8->harq_process_number; ulsch_harq = ulsch->harq_processes[harq_pid]; ulsch_harq->frame = frame; @@ -443,6 +459,8 @@ void handle_ulsch_cqi_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request int harq_pid = ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8.harq_process_number; LTE_UL_eNB_HARQ_t *ulsch_harq = ulsch->harq_processes[harq_pid]; + if (nfapi_mode==2) return; + ulsch_harq->frame = frame; ulsch_harq->subframe = subframe; ulsch_harq->O_RI = rel9->aperiodic_cqi_pmi_ri_report.cc[0].ri_size; @@ -464,6 +482,8 @@ void handle_ulsch_cqi_harq_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_re LTE_UL_eNB_HARQ_t *ulsch_harq = ulsch->harq_processes[harq_pid]; nfapi_ul_config_ulsch_harq_information *harq_information = &ul_config_pdu->ulsch_cqi_harq_ri_pdu.harq_information; + if (nfapi_mode==2) return; + ulsch_harq->frame = frame; ulsch_harq->subframe = subframe; ulsch_harq->O_RI = rel9->aperiodic_cqi_pmi_ri_report.cc[0].ri_size; @@ -479,6 +499,9 @@ void handle_ulsch_cqi_harq_ri_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_re void handle_uci_harq_information(PHY_VARS_eNB *eNB, LTE_eNB_UCI *uci,nfapi_ul_config_harq_information *harq_information) { + + if (nfapi_mode==2) return; + if (eNB->frame_parms.frame_type == FDD) { uci->num_pucch_resources = harq_information->harq_information_rel9_fdd.number_of_pucch_resources; @@ -577,6 +600,8 @@ void handle_uci_sr_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request_pdu_t { LTE_eNB_UCI *uci = &eNB->uci_vars[UE_id]; + if (nfapi_mode==2) return; + uci->frame = frame; uci->subframe = subframe; uci->rnti = ul_config_pdu->uci_sr_pdu.ue_information.ue_information_rel8.rnti; @@ -600,6 +625,8 @@ void handle_uci_sr_harq_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request_ { LTE_eNB_UCI *uci = &eNB->uci_vars[UE_id]; + if (nfapi_mode==2) return; + uci->frame = frame; uci->subframe = subframe; uci->rnti = ul_config_pdu->uci_sr_harq_pdu.ue_information.ue_information_rel8.rnti; @@ -621,6 +648,8 @@ void handle_uci_harq_pdu(PHY_VARS_eNB *eNB,int UE_id,nfapi_ul_config_request_pdu { LTE_eNB_UCI *uci = &eNB->uci_vars[UE_id]; + if (nfapi_mode==2) return; + LOG_D(PHY,"Frame %d, Subframe %d: Programming UCI_HARQ process (type %d)\n",frame,subframe,HARQ); uci->frame = frame; uci->subframe = subframe; @@ -642,6 +671,8 @@ void handle_srs_pdu(PHY_VARS_eNB *eNB,nfapi_ul_config_request_pdu_t *ul_config_p { int i; + if (nfapi_mode==2) return; + for (i=0;isoundingrs_ul_config_dedicated[i].active==1) continue; @@ -668,6 +699,8 @@ void handle_nfapi_ul_pdu(PHY_VARS_eNB *eNB,L1_rxtx_proc_t *proc, nfapi_ul_config_ulsch_pdu_rel8_t *rel8 = &ul_config_pdu->ulsch_pdu.ulsch_pdu_rel8; int16_t UE_id; + if (nfapi_mode==2) return; + // check if we have received a dci for this ue and ulsch descriptor is configured if (ul_config_pdu->pdu_type == NFAPI_UL_CONFIG_ULSCH_PDU_TYPE) {